_Kerman
45fc7fda3d
refactor(agent-loop): separate injected context from turns
2026-07-24 16:05:52 +08:00
_Kerman
fdeadc9dda
Merge remote-tracking branch 'origin/feat/send-unify' into xtr/agent-loop-message-machine
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-22-unified-send-and-coalesced-user-messages.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-22-unified-send-and-coalesced-user-messages.md
# .agents/notes/implemented/architecture/2026-07-22-unified-send-and-coalesced-user-messages.zh.md
# packages/context/workspace-context/README.md
# packages/core/agent-loop/src/agent.ts
# packages/core/agent-loop/src/inbox.ts
# packages/core/agent-loop/tests/agent.spec.ts
# packages/core/agent-loop/tests/inbox.spec.ts
# packages/goal/goal/README.md
2026-07-24 14:14:12 +08:00
_Kerman
5c7505b208
refactor(agent): remove message metadata channel
2026-07-24 14:05:33 +08:00
Turtle
d613fdb073
fix(agent-loop): third review pass — disposal discard ordering, flush guard, docs
...
Address a fresh-eye review of the disposal/injection fixes:
- disposal now snapshots, clears, and marks disposed BEFORE emitting
agent/inbox/discard (mirroring cancel's snapshot→clear→emit), so a
re-entrant send/cancel from a discard listener throws 'disposed' or
finds an empty inbox instead of leaking or double-discarding an id.
The discard is unconditional (even on unpublished setup-rollback) to
match send's unconditional enqueue, keeping every id balanced.
- restore the turnRecorded guard on the idle-injection flush: a
turn/start rejected pre-commit (append reentrancy / internal-dispatch
veto) records nothing and owes no flush; the previous unconditional
flush emitted a phantom-turn agent/error. The isTurnOpen/turnRecorded
branches are reachable (reentrant inject from a session/event
listener) and now covered by a regression test rather than v8-ignored.
- rewrite the agent/inbox/discard event JSDoc to enumerate all three
emitters (cancel, terminal turn-stop, disposal) — every enqueued id
gets exactly one terminal dequeue-or-discard.
Per-file coverage stays 100%.
2026-07-24 13:39:06 +08:00
_Kerman
7d5c8b12c0
fix(agent-loop): preserve unified send contracts
2026-07-24 13:20:51 +08:00
Turtle
d5f88f1221
Merge remote-tracking branch 'origin/master' into feat/send-unify
...
# Conflicts:
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/stdout.expected.jsonl
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/pty/pty-local/tests/index.spec.ts
# packages/session-query/session-query/tests/tracing.spec.ts
2026-07-23 22:41:45 +08:00
Turtle
1f9a3e1bee
fix(agent-loop): second review pass — late-steering discard, dead-branch, catalog leaks
...
Address a second fresh-eye review of the review fixes:
- MAJOR: late steering that lands after runTurn returns terminally
stopped (e.g. during the post-turn flush) was drained by runLoop and
dropped without a discard, leaving a dangling outstanding id the
negative-only invariant can't catch. Emit agent/inbox/discard for it,
symmetric with the in-turn terminal-stop drop.
- remove the dead cancel() idle-settle branch: whenIdle's fast path
already resolves for a lone quiet item, so no waiter is ever left for
it to settle. Document why.
- gen-cordis-api classShape now drops private/protected/#private members
and strips getter/setter bodies, so Session no longer leaks private
fields and getter bodies into the model catalog.
- document that AgentMessage intentionally omits meta (durable-only).
Adds a regression test for the late-steering discard.
2026-07-23 22:33:12 +08:00
Tianyi Cui
9fdbae66e7
Merge remote-tracking branch 'origin/master' into worktree/pr576-merge-master-20260723
2026-07-23 22:18:30 +08:00
Tianyi Cui
c688aa486c
Merge remote-tracking branch 'origin/master' into worktree/remove-expose-internals
2026-07-23 22:08:44 +08:00
Tianyi Cui
ce232f8e28
Merge remote-tracking branch 'origin/master' into worktree/web-session-titles
2026-07-23 22:07:31 +08:00
Tianyi Cui
85335acd10
Merge remote-tracking branch 'origin/master' into worktree/web-session-titles
2026-07-23 22:00:59 +08:00
Tianyi Cui
404da65595
Merge branch 'master' into worktree/web-session-titles
...
# Conflicts:
# apps/web/tests/smoke-real.e2e.ts
# packages/client/connection/tests/fixture.spec.ts
# packages/host/runtime/README.md
# packages/host/runtime/src/api-proxy.ts
2026-07-23 22:00:17 +08:00
Hypatia May
00191e75dd
Merge remote-tracking branch 'origin/master' into session-query-search
2026-07-23 21:55:59 +08:00
Tianyi Cui
64eebc1b35
Merge branch 'master' into codex/plan-mode-active-exit
2026-07-23 21:52:23 +08:00
Hypatia May
72fdf57c00
Merge remote-tracking branch 'origin/session-query-search' into session-query-search
2026-07-23 21:34:23 +08:00
Hypatia May
9482affc48
fix(session-query): make persisted observation non-mutating
2026-07-23 21:33:28 +08:00
Tianyi Cui
f9120a944c
Merge master into session-query-search
2026-07-23 21:18:05 +08:00
Hypatia May
c1fa985c20
Merge remote-tracking branch 'origin/master' into session-query-search
...
# Conflicts:
# docs/architecture.i18n.yaml
# packages/client/ui-sidebar/tests/sidebar-root.spec.tsx
# packages/session-persistence/session-persistence-jsonl/src/index.ts
# packages/session-persistence/session-persistence/README.md
2026-07-23 21:13:29 +08:00
Tianyi Cui
bd04f759a0
Merge master into worktree/pty-review-fixes
2026-07-23 21:09:10 +08:00
fz
8e4f666238
feat(plan): add direct plan exit command
2026-07-23 21:06:03 +08:00
Turtle
a3ad5241ba
Merge remote-tracking branch 'origin/master' into feat/send-unify
...
# Conflicts:
# docs/persistence-catalog.md
# examples/acp-agent/tests/snapshots/code-mode-workspace-context/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/stdout.expected.jsonl
# packages/context/time-context/tests/time-context.spec.ts
# packages/cordis/tool-cordis/src/api-catalog.ts
2026-07-23 20:54:48 +08:00
Tianyi Cui
26bfd37da0
Merge commit 'refs/codex-unblock/20260723/master' into worktree/pty-review-fixes
...
# Conflicts:
# .agents/notes/implemented/feature/2026-06-30-interception-seams.md
# docs/config-catalog.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/tools.md
# docs/event-producer-consumer.md
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/stdout.expected.jsonl
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/tools/README.md
# packages/core/tools/src/index.ts
# packages/core/tools/src/schema.ts
# packages/core/tools/tests/tools.spec.ts
# packages/pty/tool-pty/README.md
# packages/pty/tool-pty/src/index.ts
# packages/pty/tool-pty/src/render.ts
# packages/tasks/tool-tasks/README.md
# packages/tasks/tool-tasks/src/index.ts
2026-07-23 20:50:45 +08:00
Turtle
866b543700
docs(agent): fix stale 'info' param name in agent/inbox/enqueue JSDoc
...
The @param was renamed info→message; the body sentence still named info.
Found by fresh-eye review. Regenerated the catalog/graph docs.
2026-07-23 20:50:13 +08:00
Turtle
3fd72f7c74
feat(agent): rename InboxItemInfo to AgentMessage with an id; send returns it
...
Add a branded AgentMessageId assigned to each accepted send message and
returned from send/followup/steer/inject (was void). Rename the inbox
event payload InboxItemInfo to AgentMessage, carrying that id so a caller
can correlate a queued item with its enqueue/dequeue/discard events.
2026-07-23 20:45:29 +08:00
imccyu
8f54ccae7f
Merge branch 'worktree/web-carrier-chain' into worktree/web-ask-user-question
2026-07-23 20:36:20 +08:00
Tianyi Cui
eb0cc4eb18
refactor: drop obsolete expose-internals flag
2026-07-23 20:35:09 +08:00
Tianyi Cui
6cb0372d86
Merge remote-tracking branch 'origin/master' into worktree/web-session-titles
2026-07-23 20:19:50 +08:00
Hypatia May
1e457b22e0
refactor(session-query): unify query service
2026-07-23 20:18:05 +08:00
Tianyi Cui
d7c4822f95
Merge origin/master into worktree/web-session-titles
...
# Conflicts:
# packages/client/connection/src/client/fixture.ts
2026-07-23 20:12:40 +08:00
Tianyi Cui
a5cb16cc0e
Merge master into codex/jsonl-storage-identity
2026-07-23 20:12:26 +08:00
imccyu
0f63666522
Merge branch 'worktree/web-carrier-chain' into worktree/web-ask-user-question
2026-07-23 20:09:11 +08:00
imccyu
6a896e62a1
Merge branch 'worktree/web-carrier-chain' into worktree/web-ask-user-question
2026-07-23 19:45:41 +08:00
Hypatia May
a2a89bf300
fix(session-query): protect derived index permissions
2026-07-23 19:36:05 +08:00
Yichen Jiang
40ce342d81
Merge remote-tracking branch 'origin/master' into worktree/tui-file-autocomplete
...
# Conflicts:
# docs/config-catalog.md
2026-07-23 19:32:13 +08:00
Turtle
44fd93fd06
feat(agent): unify send(target × wakeup), coalesce context/message into user/message
...
Replace send/steer/inject with one Agent.send primitive over the
(target × wakeup) matrix; followup/steer/inject become fixed-preset
alias methods on the now-abstract Agent class. Coalesce context/message
into user/message (injected context is a non-user source). Replace
agent/queued with agent/inbox/enqueue/dequeue/discard, add cancel
keepInbox, and add a FIFO-conservation invariant.
2026-07-23 19:15:45 +08:00
imccyu
2b06aa0102
Merge branch 'worktree/web-carrier-chain' into worktree/web-ask-user-question
...
Restack the ask-user domain layer onto the carrier-chain architecture
branch. Conflict policy: runtime and ui-conversation take the
carrier-chain side (master sessions shape, dual-kind PendingCard,
'internal' envelope shell tests); the 'cancelled' wire code and its
semantics tests stay in apiproxy + ui-question (domain layer); the
smoke fixture keeps the nine-bundle success pass with the resident
question round over the carrier-chain first-describe shape.
2026-07-23 18:50:30 +08:00
Tianyi Cui
7e27f1b00f
Merge remote-tracking branch 'origin/master' into worktree/web-session-titles
2026-07-23 18:40:13 +08:00
Tianyi Cui
d2dc618e3f
Merge remote-tracking branch 'origin/master' into worktree/web-session-titles
...
# Conflicts:
# .agents/notes/implemented/process/2026-07-20-gui-testing-system.i18n.yaml
# packages/client/ui-conversation/tests/apply-inject.spec.tsx
# packages/client/ui-conversation/tests/chat-stats-bash-sample.spec.tsx
# packages/client/ui-conversation/tests/gate-branch-tails.spec.tsx
# packages/client/ui-conversation/tests/selection-survival.spec.ts
# packages/client/ui-conversation/tests/skeleton-branches.spec.tsx
# packages/client/ui-conversation/tests/skeleton.spec.tsx
# packages/client/ui-layout/tests/service.spec.ts
# packages/client/ui-sidebar/tests/apply.spec.tsx
# packages/client/ui-sidebar/tests/store.spec.ts
# packages/client/ui-trajectory/tests/views.spec.tsx
# packages/client/web/src/app.tsx
# packages/client/web/tests/boot.spec.tsx
# packages/host/runtime/README.md
# packages/host/runtime/tests/host-runtime.spec.ts
2026-07-23 18:39:48 +08:00
Tianyi Cui
f666c39379
fix(web): generate model-backed session titles
2026-07-23 18:20:17 +08:00
Tianyi Cui
625e8f0ed2
docs: update tutorial for canonical tool output
2026-07-23 18:04:49 +08:00
Tianyi Cui
fa5c3fa0b9
Merge origin/master into codex/code-mode-complete-result-card
2026-07-23 17:59:58 +08:00
Yichen Jiang
d633758a30
fix(tui): keep config schema statically walkable
2026-07-23 17:50:32 +08:00
Yichen Jiang
23fc9cc226
feat(tui): add path-only @file autocomplete
2026-07-23 17:39:30 +08:00
imccyu
61dc4b6b99
Merge remote-tracking branch 'origin/master' into worktree/web-ask-user-question
2026-07-23 14:05:08 +08:00
Tianyi Cui
c79b34bda5
Revert "chore: run primary CI before push"
2026-07-23 14:02:58 +08:00
Hypatia May
0a0f19cf57
Merge remote-tracking branch 'origin/master' into session-query-search
...
# Conflicts:
# .agents/notes/implemented/feature/2026-07-10-session-query-service.md
# .agents/notes/implemented/feature/2026-07-10-sqlite-session-query-provider.md
# .agents/notes/proposed/feature/2026-07-10-sqlite-session-query-provider.md
# docs/architecture.md
# docs/capability-seams.md
# docs/config-catalog.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.md
# docs/core-data-structures/persistence.md
# docs/core-data-structures/session-query.md
# docs/module-graph.md
# docs/rfc/INDEX.md
# packages/README.md
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/hooks/hooks-claude/tests/coverage.spec.ts
# packages/session-persistence/session-persistence-jsonl/src/index.ts
# packages/session-persistence/session-persistence-jsonl/tests/jsonl.spec.ts
# packages/session-persistence/session-persistence-sqlite/README.md
# packages/session-persistence/session-persistence-sqlite/src/index.ts
# packages/session-persistence/session-persistence-sqlite/src/schema.ts
# packages/session-persistence/session-persistence-sqlite/tests/sqlite.spec.ts
# packages/session-persistence/session-persistence/README.md
# packages/session-persistence/session-persistence/package.json
# packages/session-query/README.md
# packages/session-query/session-query/README.md
# packages/session-query/session-query/package.json
# packages/session-query/session-query/src/config.ts
# packages/session-query/session-query/src/index.ts
# packages/session-query/session-query/src/types.ts
# pnpm-lock.yaml
# scripts/gen-doc-graphs.ts
# scripts/type-equiv.manifest.json
# tsconfig.host.json
# tsconfig.json
2026-07-23 13:56:56 +08:00
Tianyi Cui
00d5b69882
chore: run primary CI before push
2026-07-23 13:09:52 +08:00
ZiyaZhang
2a1b3139f9
feat(tui): add interactive extension service
2026-07-22 21:30:17 -07:00
imccyu
e4d3f6fd53
Merge branch 'master' into worktree-webts
2026-07-23 11:50:08 +08:00
Yichen Jiang
d93e0188a4
Merge branch 'master' into worktree/web-ask-user-question
2026-07-23 11:42:53 +08:00