_Kerman
45fc7fda3d
refactor(agent-loop): separate injected context from turns
2026-07-24 16:05:52 +08:00
_Kerman
5c7505b208
refactor(agent): remove message metadata channel
2026-07-24 14:05:33 +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
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
Tianyi Cui
8d42d3c979
Merge branch 'codex/tool-json-schema-dsl' into codex/canonical-tool-output
...
# Conflicts:
# docs/config-catalog.md
# docs/persistence-catalog.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/agent-loop/tests/contract-regressions.spec.ts
# packages/ui/acp/src/index.ts
# packages/ui/tui/src/index.ts
2026-07-22 23:50:41 +08:00
Yichen Jiang
da8c0ab092
fix(session-reference): bind snapshots to prompts
2026-07-22 17:34:31 +08:00
Tianyi Cui
7d3cb39047
Merge branch 'codex/tool-json-schema-dsl' into codex/canonical-tool-output
...
# Conflicts:
# .agents/notes/implemented/feature/2026-06-30-interception-seams.md
# docs/config-catalog.md
# docs/cookbook/adding-a-tool.i18n.yaml
# docs/cookbook/adding-a-tool.md
# docs/cookbook/adding-a-tool.zh.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/tools.md
# docs/event-producer-consumer.md
# docs/persistence-catalog.md
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/stdout.expected.jsonl
# packages/bash/tool-bash/src/index.ts
# packages/core/agent-loop/src/tool-calls.ts
# packages/core/agent-loop/tests/cancel.spec.ts
# packages/core/agent-loop/tests/contract-regressions.spec.ts
# packages/core/agent-loop/tests/tool-calls.spec.ts
# packages/core/tools/README.md
# packages/core/tools/src/index.ts
# packages/core/tools/tests/code-mode.spec.ts
# packages/core/tools/tests/tools.spec.ts
# packages/fs/tool-fs-search/tests/integration.spec.ts
# packages/fs/tool-fs-search/tests/tools.spec.ts
# packages/fs/tool-fs/tests/integration.spec.ts
# packages/mcp/mcp-client/src/tools.ts
# packages/timeout/timeout-policy/tests/timeout-policy.spec.ts
# packages/web/tool-web/tests/integration.spec.ts
# packages/web/tool-web/tests/tool-web.spec.ts
2026-07-21 23:39:03 +08:00
Yichen Jiang
b964e81c11
Merge remote-tracking branch 'origin/master' into worktree/session-reference
...
# Conflicts:
# docs/cordis-catalog/events.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/agent-loop/src/loop.ts
# packages/core/agent-loop/tests/contract-regressions.spec.ts
# packages/core/agent/src/types.ts
# packages/ui/tui/tests/harness.ts
# scripts/type-equiv.manifest.json
2026-07-21 21:57:21 +08:00
Yichen Jiang
32d786c439
feat(session): add cross-session references
2026-07-21 16:46:48 +08:00
Tianyi Cui
66c36e7325
feat: add canonical typed tool outputs
2026-07-21 03:22:14 +08:00
Yichen Jiang
a92d2e5f34
Merge origin/master into worktree/explicit-turn-signal
2026-07-20 21:38:49 +08:00
Tianyi Cui
ec0a2bb623
Merge origin/master into codex/send-one-turn
...
# Conflicts:
# docs/cordis-catalog/events.md
# docs/event-producer-consumer.md
# docs/persistence-catalog.md
# packages/core/agent-loop/src/loop.ts
# packages/core/agent/README.md
# website/zh-CN/api/harness/events.md
2026-07-20 17:41:06 +08:00
Turtle
f593ef5ab5
fix(session): drop the <context> envelope and project context verbatim
...
context/message previously defaulted to a <context source="…">…</context>
wrapper. No model is trained on a <context> tag either, and message
framing does not belong on the session surface: the surface projects the
durable log, and a caller that wants a frame formats its own content —
which the one heavy producer (workspace-context) already does with its own
<system-reminder> frame, opting out via 'raw'. The tag only added
machinery — ContextEnvelope plus an envelope field threaded through
InjectOptions, HookContext, the context/message event, and the agent-loop
inject/additionalContexts plumbing.
context/message now projects its content verbatim as a user-role message,
sharing one deriveEventMessage case with user/message and steering/message.
ContextEnvelope and every envelope field are removed; context/message.meta
still carries durable, model-hidden JSON state. Regenerated catalogs and
website API; refreshed the three affected keyless snapshots (envelope field
only; timestamps unchanged).
Broadens and renames the steering Agent Note to cover both envelope
removals as one decision.
Agent Note: .agents/notes/implemented/simplification/2026-07-20-unwrap-injected-content-envelopes.md
2026-07-20 16:22:20 +08:00
pku-xht
da70e47048
review fix: preserve idle waiter quiescence
2026-07-20 13:15:11 +08:00
pku-xht
0891465ee0
Merge origin/master into codex/send-one-turn
2026-07-20 11:52:30 +08:00
Tianyi Cui
7be78c7d4c
Merge latest origin/master into compact-post-step-overflow-recovery
...
# Conflicts:
# docs/agent-lifecycle.md
# docs/architecture.md
# docs/cookbook/extension-cookbook.i18n.yaml
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
# docs/rfc/INDEX.md
# docs/rfc/implemented/architecture/2026-07-05-reconstructable-requests.md
# docs/rfc/implemented/architecture/2026-07-15-replay-token-meter-service.i18n.yaml
# docs/rfc/implemented/architecture/2026-07-15-replay-token-meter-service.md
# docs/rfc/implemented/architecture/2026-07-15-replay-token-meter-service.zh.md
# docs/rfc/implemented/feature/2026-06-18-compaction-capability-seam.md
# docs/rfc/implemented/feature/2026-07-07-session-prefix.md
# packages/compact/compact-basic/README.md
# packages/compact/compact-basic/src/config.ts
# packages/compact/compact-basic/src/index.ts
# packages/compact/compact-basic/src/summarizer.ts
# packages/compact/compact-basic/tests/compact-basic.spec.ts
# packages/compact/compact-basic/tests/compact-loop-repro.spec.ts
# packages/compact/compact/README.md
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/agent-loop/src/loop.ts
# packages/core/agent-loop/tests/cancel.spec.ts
# packages/llm/llm-deepseek/src/adapter.ts
# packages/llm/llm-pi-ai/README.md
# packages/llm/llm-pi-ai/src/stream.ts
# packages/llm/llm-pi-ai/tests/convert.spec.ts
# packages/llm/llm/README.md
# packages/llm/llm/src/index.ts
# packages/llm/llm/tests/service.spec.ts
# scripts/gen-doc-graphs.ts
2026-07-19 12:06:23 +08:00
Yichen Jiang
cddb79e844
Merge branch 'worktree/agent-execution-context-rfc' into worktree/explicit-turn-signal
2026-07-18 21:33:17 +08:00
Tianyi Cui
6f01d4d099
Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop
...
# Conflicts:
# docs/event-producer-consumer.md
# examples/coding-agent/tests/code-mode.e2e.ts
# examples/coding-agent/tests/harness.ts
# examples/coding-agent/tests/resume.e2e.ts
# examples/cordis-agent/tests/harness.ts
# packages/bash/tool-bash/tests/integration.spec.ts
# packages/compact/compact-basic/tests/compact-loop-repro.spec.ts
# packages/cordis/tool-cordis/tests/integration.spec.ts
# packages/core/agent-loop/tests/contract-regressions.spec.ts
# packages/guard/repeat-tool-guard/tests/repeat-tool-guard.spec.ts
# packages/hooks/hooks-claude/tests/bridge.spec.ts
# packages/hooks/hooks-claude/tests/coverage.spec.ts
# packages/hooks/hooks-codex/tests/bridge.spec.ts
# packages/hooks/hooks-codex/tests/coverage.spec.ts
# packages/todo/tool-todo/tests/integration.spec.ts
2026-07-18 12:33:49 +08:00
Tianyi Cui
59dc310bb5
Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id
...
# Conflicts:
# docs/architecture.md
# docs/config-catalog.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# examples/coding-agent/tests/code-mode.e2e.ts
# examples/coding-agent/tests/coding-task.e2e.ts
# examples/coding-agent/tests/compaction.e2e.ts
# examples/coding-agent/tests/full-loop.e2e.ts
# examples/coding-agent/tests/todo-write.e2e.ts
# examples/cordis-agent/tests/cordis-tools.e2e.ts
# packages/bash/tool-bash/tests/integration.spec.ts
# packages/bash/tool-bash/tests/tools.spec.ts
# packages/compact/compact-basic/tests/compact-loop-repro.spec.ts
# packages/context/time-context/tests/time-context.spec.ts
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/cordis/tool-cordis/tests/integration.spec.ts
# packages/core/agent-loop/README.md
# packages/core/agent-loop/src/agent.ts
# packages/core/agent-loop/src/index.ts
# packages/core/agent-loop/tests/agent.spec.ts
# packages/core/agent-loop/tests/cancel.spec.ts
# packages/core/agent-loop/tests/config-session-id.spec.ts
# packages/core/agent-loop/tests/contract-regressions.spec.ts
# packages/core/agent-loop/tests/coverage-edges.spec.ts
# packages/core/agent-loop/tests/interception.spec.ts
# packages/core/agent-loop/tests/loop.spec.ts
# packages/core/agent-loop/tests/properties.spec.ts
# packages/core/agent-loop/tests/request-cache.e2e.ts
# packages/core/agent-loop/tests/request-reconstruction.spec.ts
# packages/core/agent-loop/tests/resume.spec.ts
# packages/core/agent-loop/tests/scope-lifecycle.spec.ts
# packages/core/agent-loop/tests/tool-order.spec.ts
# packages/core/agent-loop/tests/turn-stop.spec.ts
# packages/core/agent/src/types.ts
# packages/examples/agent-spine-demo/README.md
# packages/examples/agent-spine-demo/tests/agent-core.spec.ts
# packages/examples/stdio-demo/README.md
# packages/examples/stdio-demo/src/index.ts
# packages/examples/stdio-demo/tests/stdio-agent.spec.ts
# packages/fs/tool-fs/tests/fs-tools.e2e.ts
# packages/guard/repeat-tool-guard/tests/repeat-tool-guard.spec.ts
# packages/hooks/hooks-claude/tests/bridge.spec.ts
# packages/hooks/hooks-claude/tests/coverage.spec.ts
# packages/hooks/hooks-codex/tests/bridge.spec.ts
# packages/hooks/hooks-codex/tests/coverage.spec.ts
# packages/subagent/subagent-fork/tests/multi-subagent.spec.ts
# packages/subagent/subagent-fork/tests/subagent-fork.spec.ts
# packages/subagent/subagent-inprocess/tests/structured.spec.ts
# packages/subagent/subagent-inprocess/tests/subagent-inprocess.spec.ts
# packages/subagent/subagent-spawn/tests/spawn.e2e.ts
# packages/subagent/subagent-spawn/tests/subagent-spawn.spec.ts
# packages/todo/tool-todo/tests/integration.spec.ts
# packages/ui/acp/tests/dispose.spec.ts
# packages/ui/acp/tests/edges.spec.ts
# packages/workflow/workflow-workerthread/tests/integration.spec.ts
2026-07-18 12:21:15 +08:00
Yichen Jiang
be3d2076b8
Merge origin/master into worktree/agent-execution-context-rfc
2026-07-17 23:25:01 +08:00
Tianyi Cui
7a2d5cd28d
Merge master into codex/simp-session-log-representation
2026-07-17 22:33:42 +08:00
Tianyi Cui
53680ee6bc
Merge remote-tracking branch 'origin/master' into worktree/provider-routed-llm-adapters
...
# Conflicts:
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# packages/context/time-context/tests/time-context.spec.ts
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/session/README.md
# packages/core/session/src/types.ts
# packages/core/session/tests/surface.spec.ts
# packages/examples/acp-demo/tests/acp-agent.spec.ts
# packages/examples/stdio-demo/tests/stdio-agent.spec.ts
# packages/hooks/hooks-claude/tests/coverage.spec.ts
# packages/hooks/hooks-codex/tests/coverage.spec.ts
# packages/session-query/session-query/tests/session-query.spec.ts
# packages/support/invariants/tests/invariants.spec.ts
# packages/ui/acp/tests/harness.ts
2026-07-17 21:56:10 +08:00
Tianyi Cui
ce393ccb93
Merge master into codex/simp-session-log-representation
2026-07-17 21:51:36 +08:00
pku-xht
2cf689301c
review fix: close one-turn lifecycle gaps
2026-07-17 17:27:53 +08:00
pku-xht
55f61189b1
Merge remote-tracking branch 'origin/master' into codex/send-one-turn
...
# Conflicts:
# docs/architecture.md
# docs/core-data-structures/core.md
# docs/rfc/implemented/feature/2026-06-30-interception-seams.md
# packages/core/agent-loop/src/loop.ts
# packages/core/agent/src/types.ts
2026-07-17 17:25:06 +08:00
pku-xht
aa4e629874
feat(agent-loop): give each send its own turn
2026-07-17 17:14:52 +08:00
Yichen Jiang
c238992fbb
feat(core): make turn cancellation explicit
2026-07-16 18:14:13 +08:00
Yichen Jiang
7bcae0cd64
feat(core): add agent execution context
2026-07-16 16:29:46 +08:00
Hypatia May
12484104c8
feat(compact): recover context overflow (PR3 phase 2)
2026-07-15 16:50:44 +08:00
Yichen Jiang
815365dbbe
Merge remote-tracking branch 'origin/master' into worktree/provider-routed-llm-adapters
...
# Conflicts:
# docs/config-catalog.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.md
# docs/event-producer-consumer.md
# docs/persistence-catalog.md
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.jsonl
# examples/acp-agent/tests/snapshots/both-mode-turn/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
# examples/acp-agent/tests/snapshots/skill-load/session.jsonl
# examples/acp-agent/tests/snapshots/text-turn/session.jsonl
# examples/sandbox-acp-agent/cordis.yml
# examples/sandbox-acp-agent/tests/snapshots/escalation-approved/session.jsonl
# examples/sandbox-acp-agent/tests/snapshots/escalation-rejected/session.jsonl
# examples/sandbox-acp-agent/tests/snapshots/mode-switching/session.jsonl
# packages/compact/compact-basic/README.md
# packages/compact/compact-basic/src/index.ts
# packages/compact/compact-basic/tests/compact-basic.spec.ts
# packages/core/agent-loop/README.md
# packages/core/agent-loop/src/loop.ts
# packages/core/agent-loop/tests/properties.spec.ts
# packages/core/session/README.md
# packages/core/session/src/types.ts
# packages/core/session/tests/derived-cache.spec.ts
# packages/llm/llm-deepseek/src/index.ts
# packages/llm/llm-pi-ai/README.md
# packages/llm/llm-pi-ai/src/adapter.ts
# packages/llm/llm-pi-ai/src/convert.ts
# packages/llm/llm-pi-ai/tests/adapter.spec.ts
# packages/llm/llm/README.md
# packages/llm/llm/src/call-config.ts
# packages/llm/llm/src/index.ts
# packages/ui/acp-agent/src/index.ts
# packages/ui/acp/tests/harness.ts
# packages/ui/jsonrpc/README.md
# packages/ui/jsonrpc/src/server.ts
# packages/ui/stdio-agent/README.md
# packages/ui/stdio-agent/src/index.ts
# python/sdk/README.i18n.yaml
2026-07-14 22:17:50 +08:00
Yichen Jiang
e547980d77
feat(llm): route adapters by provider
2026-07-14 21:57:52 +08:00
Yichen Jiang
ee111fd978
Merge remote-tracking branch 'origin/master' into codex/project-instruction-files
...
# Conflicts:
# AGENTS.md
# docs/config-catalog.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.md
# docs/event-producer-consumer.md
# docs/persistence-catalog.md
# docs/rfc/implemented/architecture/2026-07-05-reconstructable-requests.md
# docs/rfc/implemented/feature/2026-06-15-code-mode.md
# docs/rfc/implemented/feature/2026-06-30-hook-bridges.md
# docs/rfc/implemented/feature/2026-06-30-interception-seams.md
# docs/rfc/implemented/feature/2026-07-08-repeat-tool-guard.md
# docs/rfc/proposed/simplification/2026-07-04-prune-dead-core-spine-surface.md
# examples/AGENTS.md
# examples/acp-agent/cordis.yml
# examples/acp-agent/tests/acp.snapshot.ts
# examples/echo-agent/cordis.yml
# examples/sandbox-acp-agent/cordis.yml
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/agent-core/README.md
# packages/core/agent-core/src/index.ts
# packages/core/agent-loop/README.md
# packages/core/agent-loop/src/loop.ts
# packages/core/agent-loop/tests/interception.spec.ts
# packages/core/agent/src/types.ts
# packages/core/tools/README.md
# packages/core/tools/src/code-mode.ts
# packages/core/tools/src/index.ts
# packages/fs/fs-local/src/index.ts
# packages/fs/fs/README.md
# packages/fs/fs/src/index.ts
# packages/guard/repeat-tool-guard/README.md
# packages/guard/repeat-tool-guard/src/index.ts
# packages/hooks/hooks-claude/src/index.ts
# packages/hooks/hooks-codex/src/index.ts
# packages/ui/acp-agent/src/index.ts
2026-07-14 19:50:25 +08:00
Tianyi Cui
93dc0f30a9
Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop
...
# Conflicts:
# docs/config-catalog.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
# packages/core/agent-loop/tests/agent.spec.ts
# packages/core/agent-loop/tests/contract-regressions.spec.ts
2026-07-14 18:58:29 +08:00
Tianyi Cui
83271191d1
Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id
...
# Conflicts:
# docs/config-catalog.md
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
# docs/rfc/implemented/architecture/2026-06-18-agent-lifecycle-and-ownership-seams.md
# docs/rfc/implemented/architecture/2026-06-20-branded-ids.md
# docs/rfc/implemented/simplification/2026-06-20-remove-agent-boundary-mirror-events.md
# docs/rfc/proposed/feature/2026-07-07-claude-code-and-codex-subagent-backends.md
# docs/rfc/proposed/simplification/2026-06-20-unify-agent-and-session-id.md
# packages/bash/tool-bash/README.md
# packages/bash/tool-bash/src/index.ts
# packages/bash/tool-bash/tests/tools.spec.ts
# packages/core/agent-loop/README.md
# packages/core/agent-loop/tests/properties.spec.ts
# packages/core/agent/README.md
# packages/core/agent/src/index.ts
# packages/guard/repeat-tool-guard/src/index.ts
# packages/hooks/hooks-claude/tests/bridge.spec.ts
# packages/subagent/subagent-acp/tests/mock-acp-server.ts
# packages/ui/acp/tests/dispose.spec.ts
# packages/ui/stdio-agent/src/index.ts
# packages/ui/stdio-agent/src/stdio-chat.ts
# packages/ui/stdio-agent/tests/stdio-chat.spec.ts
# packages/util/brand/src/index.ts
2026-07-14 18:51:24 +08:00
Tianyi Cui
78276c52a7
Merge branch 'codex/simp-session-dead-surface' into codex/simp-session-log-representation
...
# Conflicts:
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.md
# docs/persistence-catalog.md
# docs/rfc/implemented/architecture/2026-07-05-reconstructable-requests.md
# docs/rfc/implemented/feature/2026-06-18-compaction-capability-seam.md
# docs/rfc/implemented/feature/2026-07-06-explicit-tool-order.md
# docs/rfc/implemented/feature/2026-07-06-sandbox.md
# docs/rfc/implemented/feature/2026-07-07-session-prefix.md
# packages/compact/compact-basic/src/index.ts
# packages/compact/compact-basic/tests/compact-basic.spec.ts
# packages/core/agent-loop/src/loop.ts
# packages/core/agent-loop/src/request-log.ts
# packages/core/agent-loop/tests/request-reconstruction.spec.ts
# packages/core/agent/src/types.ts
# packages/core/session/README.md
# packages/core/session/src/request-header.ts
# packages/core/session/src/surface.ts
# packages/core/session/src/tool-pairing.ts
# packages/core/session/src/types.ts
# packages/core/session/tests/surface.spec.ts
# packages/core/session/tests/tool-pairing.spec.ts
# packages/llm/llm/src/call-config.ts
# packages/support/acp-snapshot/src/suite.ts
# packages/support/invariants/README.md
# packages/ui/user-approval/README.md
2026-07-14 18:34:34 +08:00
Tianyi Cui
225796c90d
refactor: hide the concrete agent loop
2026-07-14 02:32:35 +08:00
Tianyi Cui
709cc7200e
refactor: unify agent and session identity
2026-07-14 01:59:21 +08:00
Tianyi Cui
1123e946c0
refactor: simplify session log representation
2026-07-13 23:56:10 +08:00
Tianyi Cui
148046b9c8
docs: rebalance prose cleanup and add trimming skill
2026-07-13 23:27:00 +08:00
Yichen Jiang
aa62b5109a
Fix workspace context review findings
2026-07-13 16:31:03 +08:00
Yichen Jiang
adf6b8a1ab
Merge remote-tracking branch 'origin/master' into codex/project-instruction-files
...
# Conflicts:
# docs/config-catalog.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.md
# docs/event-producer-consumer.md
# docs/persistence-catalog.md
# docs/rfc/implemented/feature/2026-06-15-code-mode.md
# docs/rfc/implemented/feature/2026-06-30-interception-seams.md
# docs/rfc/proposed/simplification/2026-07-04-prune-dead-core-spine-surface.md
# docs/tool-execution-pipeline.md
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/agent-core/tests/agent-core.spec.ts
# packages/core/agent-loop/src/agent.ts
# packages/core/agent/README.md
# packages/core/session/src/index.ts
# packages/core/tools/README.md
# packages/core/tools/src/index.ts
# pnpm-lock.yaml
# scripts/gen-doc-graphs.ts
# scripts/type-equiv.manifest.json
2026-07-13 14:37:32 +08:00
Yichen Jiang
768c79fd45
Fix Code Mode workspace context propagation
2026-07-13 13:56:45 +08:00
Tianyi Cui
75838e10b5
docs: trim generated prose
2026-07-12 03:36:43 +08:00
Tianyi Cui
172005e0e6
fix(scope): align merged agent event contracts
2026-07-11 23:22:57 +08:00
Yichen Jiang
3fe196a751
Adapt workspace context to session prefixes
2026-07-10 14:32:44 +08:00
Yichen Jiang
765052a7d1
fix(agent-loop): compose the session prefix before pre-step; hand it to the pressure gate
...
ds-review-bot critical (follow-up): on the first step of a resumed or
seeded/forked instance, auto-compaction ran before runStep composed
this instance's prefix, so the gate read the PREVIOUS instance's logged
prefix from the header fold — a contributor that grew across
resume/fork (skills added, AGENTS.md grown: exactly the
environment-dependent case) could under-gate and ship an over-window
first request.
The loop now composes agent/session-prefix before the instance's first
agent/pre-step (still once per instance; runStep just reads the cache),
and agent/pre-step carries the composed prefix to its listeners.
CompactService.compactIfNeeded gains the sessionPrefix parameter;
BasicCompactService.estimatePressure gates on the handed value — the
header-fold read is gone, so the estimate is exact at every step
including a resumed/forked instance's first. Composition moving before
the boundary snapshot also means a composing listener's session append
now joins the CURRENT request (documented on the seam).
New coverage: composition precedes pre-step and the seam receives the
composed prefix; cancel and disposal landing inside the composition
window drop the step cleanly; the compact gate test hands the prefix
directly.
2026-07-08 20:30:10 +08:00
Yichen Jiang
77333c0a19
fix(agent): correct session-prefix composition-order docs; scrub messagePrefix in snapshots
...
Two ds-review-bot findings:
The seam JSDoc claimed extending 'await next()' composes in
registration order — false for the append form: the waterfall unwinds
innermost-first, so appending places later-registered contributions
first. The canonical contribution is now documented as the PREPEND
'[mine, ...await next()]' (registration order on the wire), with the
append form's reverse-order behavior stated explicitly; the ordering
test now uses the canonical pattern in both listeners.
scrubRequestHeaders tokenized only system/tools, so a fixture recording
a composed session prefix would carry its raw text (workspace-specific
churn/leak). The scrubber now maps each header/delta messagePrefix
entry to a {{messagePrefix}} token — count stays a structural fact,
absence stays absent, the empty-array transition stays visible — with
normalize.spec coverage for the header, delta, absence, and odd-shape
paths.
2026-07-08 16:16:08 +08:00
Yichen Jiang
ea4c10d753
refactor(agent): replace the per-step advice seam with agent/session-prefix
...
Review discussion converged on the industry shape (Claude Code caches
user context per conversation; Codex separates initial context from
diffs; Kimi appends at continuation boundaries to protect prompt
caching): stable openers belong in a compose-once prefix, mid-session
changes belong in append-only history — not in a per-request slot.
agent/session-prefix fires ONCE per loop instance, lazily on its first
request-building step: the composed Message[] is deep-frozen, cached on
the transmission bookkeeping, recorded as EpochHeader.messagePrefix on
the anchoring 'initial'/'resume' snapshot, and reused verbatim for
every request the instance sends — prefix stability is structural, not
a producer discipline, and a resume recomposes with attributable drift.
The request is messagePrefix + boundary snapshot.
The per-step RequestAdvice/RequestAdviceContext surface and the
messageSuffix header field are dropped: the tail slot had no consumer,
and every current update pattern (new AGENTS.md discovered, memory
update, skills change) routes through the existing append-only history
channels — inject(), tools/post-execute additionalContext,
prompt-submit additionalContext — each paid once and prefix-cached
thereafter. The messagePrefix delta arm stays for codec totality; the
loop never produces one in practice.
2026-07-08 15:44:30 +08:00
Yichen Jiang
e97fffeab7
refactor(agent): rename agent/request-messages to agent/request-advice
...
tianyicui's review: the seam name did not say what the event or its
types do. 'advice' reads both ways — advisory content for the model,
and AOP before/after advice woven around a join point (here the
derived history) without modifying it — so RequestAdvice.before/after
are self-describing. Types follow: RequestAdvice / RequestAdviceContext;
the logged EpochHeader fields keep their positional names
(messagePrefix/messageSuffix).
Also sharpens the core.md wording the review flagged as ambiguous:
before-advice sits in front of the ENTIRE derived history, directly
after the system slot (the conventional home for session-stable openers
— an AGENTS.md digest, a skills catalog), after-advice follows the
history's last message. Catalogs and doc graphs regenerated.
2026-07-08 10:05:34 +08:00
Yichen Jiang
f3d26ed049
fix request-messages boundary immutability
2026-07-07 20:55:13 +08:00