Tianyi Cui
fd54b5c848
Merge latest master into post-step recovery
...
Combine agent initiator scoping and exact Cordis JSDoc inspection with post-step compaction and bounded request recovery.
Regenerate the Cordis and website API catalogs, and classify the recovery and compaction types required by the current catalog link-coverage gate.
2026-07-19 16:46:01 +08:00
Tianyi Cui
ee1a44793a
fix(core): make initiator teardown reentrant-safe
2026-07-19 15:12:18 +08:00
Tianyi Cui
f66cde41d1
docs(core): clarify initiator restoration timing
2026-07-19 14:16:07 +08:00
Tianyi Cui
c23214be56
refactor(core): fold initiator scope into agents
2026-07-19 13:30:45 +08:00
Tianyi Cui
86d97845dc
docs(agent): remove stale pre-step contracts
2026-07-19 12:14:37 +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
Tianyi Cui
7d34e33b9e
Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue
...
# Conflicts:
# docs/event-producer-consumer.md
2026-07-18 14:51:21 +08:00
Tianyi Cui
d2426fed5d
Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id
...
# Conflicts:
# docs/cordis-catalog/events.md
# docs/event-producer-consumer.md
# packages/core/agent-loop/src/agent.ts
# packages/core/agent-loop/tests/contract-regressions.spec.ts
# packages/core/agent-loop/tests/loop.spec.ts
# website/zh-CN/api/harness/events.md
2026-07-18 14:50:55 +08:00
Tianyi Cui
aacedf2700
Merge current master into debug-pangwenjie
...
# Conflicts:
# docs/cordis-catalog/events.md
# docs/core-data-structures/core.md
# docs/core-data-structures/tools.md
# docs/event-producer-consumer.md
# docs/rfc/implemented/feature/2026-06-30-interception-seams.md
# docs/tool-execution-pipeline.md
# packages/core/agent-loop/src/agent.ts
# packages/core/agent-loop/src/loop.ts
# packages/core/agent-loop/tests/loop.spec.ts
# packages/core/agent/README.md
# packages/core/tools/src/index.ts
# scripts/gen-doc-graphs.ts
2026-07-18 13:39:12 +08:00
Tianyi Cui
35473c2701
Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue
...
# Conflicts:
# AGENTS.md
# docs/config-catalog.md
# docs/event-producer-consumer.md
# examples/acp-agent/tests/snapshots/advanced-toolchain/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/both-mode-turn/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/cancel/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/code-mode-turn/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/config-options/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/error-finish/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/escalation-approved/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/escalation-rejected/session.jsonl
# examples/acp-agent/tests/snapshots/escalation-rejected/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/fs-edit/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/fs-policy-reject/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/fs-read-window/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/fs-read/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/fs-terminal-card/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/fs-write-overwrite/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/fs-write/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/handshake/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-posttool-block/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-posttool-context/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-deny/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-promptsubmit-block/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-promptsubmit-context/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-stop-continue/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-posttool-block/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-posttool-context/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-pretool-block/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-promptsubmit-block/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-promptsubmit-context/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-stop-continue/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/multi-turn/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/permission-switching/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/repeat-tool-guard/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/skill-load/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/subagent-fork/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/subagent-spawn/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/text-turn/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/todo-plan/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/tool-call-turn/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/workflow-run/stdout.golden.jsonl
# examples/acp-agent/tests/snapshots/workspace-edit/stdout.golden.jsonl
# packages/ui/acp/README.md
# packages/ui/acp/src/index.ts
# packages/ui/jsonrpc/README.md
# packages/ui/jsonrpc/src/server.ts
2026-07-18 12:25:33 +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
Hypatia May
e8d066f750
feat(core): add post-step request recovery (PR3 phase 1)
2026-07-15 16:03:52 +08:00
Hypatia May
28144077f3
Fix deferred injection lifecycle
2026-07-15 12:22:39 +08:00
Hypatia May
4ce32807e1
Fix async injection tool-result ordering
2026-07-15 11:12:05 +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
e3767c64d9
Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue
2026-07-14 15:31:13 +08:00
Tianyi Cui
440afff96e
Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id
...
# Conflicts:
# packages/ui/stdio-agent/README.md
2026-07-14 15:27:32 +08:00
Tianyi Cui
8590ba00a4
Merge remote-tracking branch 'origin/master' into codex/trim-ai-prose
...
# Conflicts:
# docs/AGENTS.md
# docs/config-catalog.md
# packages/bash/bash-sandbox/src/index.ts
# packages/bash/bash/src/session-mode.ts
# packages/bash/tool-bash/README.md
# packages/code-runtime/code-runtime-worker/README.md
# packages/compact/compact/src/index.ts
# packages/core/agent-core/README.md
# packages/hooks/hooks-claude/src/config.ts
# packages/hooks/hooks-claude/src/index.ts
# packages/hooks/hooks-codex/src/config.ts
# packages/hooks/hooks-codex/src/index.ts
# packages/llm/llm/README.md
# packages/session-persistence/session-persistence-jsonl/README.md
# packages/session-persistence/session-persistence/README.md
# packages/skill/skill-local/README.md
# packages/support/acp-snapshot/README.md
# packages/support/invariants/src/index.ts
# packages/ui/acp/README.md
# packages/ui/jsonrpc-agent/README.md
# packages/ui/jsonrpc/README.md
# packages/ui/permission/README.md
# packages/ui/user-approval/README.md
# packages/ui/user-interaction/README.md
# packages/web/web-search-deepseek/README.md
2026-07-14 14:37:16 +08:00
Tianyi Cui
2333ab19e3
fix: verify JSON-RPC child ownership
2026-07-14 09:46:05 +08:00
Tianyi Cui
f02005c832
fix: enforce unified agent startup invariants
2026-07-14 07:41:08 +08:00
Tianyi Cui
c2979322c8
fix: keep stdio targeting on runtime roots
2026-07-14 07:13:42 +08:00
Tianyi Cui
709cc7200e
refactor: unify agent and session identity
2026-07-14 01:59:21 +08:00
Tianyi Cui
eed43abe66
docs: address final model experience review
2026-07-14 00:22:52 +08:00
Tianyi Cui
d77f797d89
docs: replace model experience tables with sections
2026-07-13 22:26:33 +08:00
Yichen Jiang
aa62b5109a
Fix workspace context review findings
2026-07-13 16:31:03 +08:00
Tianyi Cui
c45d7927cf
docs: tighten prose audit after master retarget
2026-07-13 16:24:32 +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
Tianyi Cui
8ee569d6bf
Merge remote-tracking branch 'origin/codex/package-readme-limitations-audit-20260712' into codex/model-experience-readmes-20260712
...
# Conflicts:
# packages/core/tools/README.md
2026-07-13 13:48:43 +08:00
Tianyi Cui
7499fb677a
Merge commit '09d5549b92f9aa9752c480a2bfaa0fcc24e05e91' into codex/package-readme-limitations-audit-20260712
2026-07-13 13:22:05 +08:00
Tianyi Cui
e04ec07345
refactor(core): remove owner-final assembly machinery
2026-07-13 13:09:41 +08:00
Tianyi Cui
331734526c
Merge branch 'codex/package-readme-limitations-audit-20260712' into codex/model-experience-readmes-20260712
2026-07-13 12:07:00 +08:00
Tianyi Cui
5f944d6254
Merge remote-tracking branch 'origin/worktree-agent-scope-design' into codex/package-readme-limitations-audit-20260712
2026-07-13 12:06:54 +08:00
Tianyi Cui
f32cfafa1a
refactor: narrow synchronous extension contracts
2026-07-13 11:58:55 +08:00
Tianyi Cui
5158cc3e0b
Merge remote-tracking branch 'origin/codex/package-readme-limitations-audit-20260712' into codex/model-experience-readmes-20260712
...
# Conflicts:
# packages/AGENTS.md
2026-07-12 23:54:00 +08:00
Tianyi Cui
6967c584d1
Merge remote-tracking branch 'origin/worktree-agent-scope-design' into codex/package-readme-limitations-audit-20260712
...
# Conflicts:
# packages/core/scope/README.md
# packages/session-persistence/session-persistence-jsonl/README.md
# packages/session-persistence/session-persistence-sqlite/README.md
# packages/subagent/subagent-acp/README.md
# packages/subagent/subagent-fork/README.md
# packages/subagent/subagent-inprocess/README.md
# packages/subagent/subagent/README.md
# packages/subagent/tool-subagent/README.md
# packages/support/invariants/README.md
# packages/support/subagent-mock/README.md
# packages/workflow/workflow-workerthread/README.md
# packages/workflow/workflow/README.md
2026-07-12 23:35:47 +08:00
Tianyi Cui
28e04ff4fb
refactor(core): simplify scoped agent lifecycles
2026-07-12 22:36:04 +08:00
Tianyi Cui
a34801df4b
fix(agent-loop): own queued message input
2026-07-12 16:54:37 +08:00
Tianyi Cui
7e3d46a3ce
docs(scope): split contract from runtime design
2026-07-12 13:25:04 +08:00
Tianyi Cui
c5b1a7941f
fix(scope): harden lifecycle ownership foundation
...
Make Cordis construction and teardown ownership reentrancy-safe, then carry caller and provider ownership through reservation, setup, publication, quiescence, and sentinel retirement.
Stabilize registry carriers and factory/workflow boundaries, add adversarial lifecycle regressions, and align the rewritten RFC plus generated contracts with the enforced behavior.
2026-07-12 08:57:05 +08:00
Tianyi Cui
a9cb70d896
fix(scope): harden final ownership boundaries
2026-07-12 05:13:17 +08:00
Tianyi Cui
36b8370027
fix(scope): close remaining ownership boundaries
2026-07-12 03:51:55 +08:00
Tianyi Cui
b5cd511f35
docs: address model experience review
2026-07-12 02:55:26 +08:00
Tianyi Cui
a08485fc80
Merge remote-tracking branch 'origin/codex/package-readme-limitations-audit-20260712' into codex/model-experience-readmes-20260712
...
# Conflicts:
# docs/cookbook/adding-a-package.md
# docs/rfc/INDEX.md
# package.json
# packages/AGENTS.md
# packages/bash/bash-sandbox/README.md
# packages/sandbox/sandbox-local/README.md
# packages/sandbox/sandbox/README.md
# packages/session-persistence/session-persistence-sqlite/README.md
# packages/support/acp-snapshot/README.md
# packages/ui/app-boot/README.md
# packages/ui/user-approval/README.md
# packages/workflow/tool-workflow/README.md
2026-07-12 02:48:49 +08:00
Tianyi Cui
027970043c
docs: document package model experience
2026-07-12 02:12:36 +08:00
Tianyi Cui
41a7c70cb1
docs: audit package limitations on current stack
2026-07-12 02:08:35 +08:00
Tianyi Cui
ecb8aa5b8e
Add a gated Known Limitations and Deferred Work section to every package README
...
Every packages/*/* README now carries a canonical '## Known Limitations and
Deferred Work' section: condensed, evidence-backed bullets for consumer-visible
gaps (unimplemented features, platform caveats, MVP cuts) and consciously
postponed work (TODO/FIXME/XXX markers, RFC deferrals still open). The ten
pre-existing ad-hoc variants ('What is NOT here (TODO)', 'Deferred',
'Limitations (MVP)', 'Known limitations (tracked TODOs)', ...) are normalized
into the canonical heading.
A new doc-sync gate, scripts/verify-readme-limitations.ts, enforces the shape:
exactly one limitations-like heading per package README, byte-equal to the
canonical h2, with at least one bullet; near-miss headings fail so variants
cannot creep back. Packages with genuinely nothing to declare (dsh-brand,
dsh-timeout, dsh-subagent-mock, dsh-app-boot) are whitelisted in the script and
must NOT carry the section; whitelist entries are validated against the scanned
package set so a rename fails loud.
Wired into the doc-sync chain (package.json) and the run-gates doc-sync leaf
set; the standing rule lands in packages/AGENTS.md and the adding-a-package
cookbook; decision record in
docs/rfc/implemented/process/2026-07-10-readme-known-limitations-gate.md
(RFC index regenerated).
Also fixes two stale '(deferred)' markers claiming dsh-compact-basic is
unimplemented (the dsh-compact seam README's package table and the seam's
module doc comment).
2026-07-12 01:46:34 +08:00
Tianyi Cui
3529b3c166
fix(scope): close final ownership races
...
Drain idle injection flushes before agent teardown, snapshot approval and subagent provider inputs, and gate subagent lifecycle events on real child readiness. Align the RFCs and generated contracts with the hardened behavior.
2026-07-12 00:31:46 +08:00
Tianyi Cui
36c94fbe3e
docs: align the agent-scope contracts
2026-07-11 22:55:40 +08:00
Yichen Jiang
3fe196a751
Adapt workspace context to session prefixes
2026-07-10 14:32:44 +08:00
Tianyi Cui
2489402610
Merge origin/master: scope-aware fusion of the tools/execute seam, session-prefix, and tool-cordis
...
Master brought 50 commits (the tool-cordis group, dsh-code-runtime + worker,
the tools/execute around-dispatch seam + timeout-policy, repeat-tool-guard,
agent/session-prefix, the ui reorganization). Beyond the ten textual
conflicts, the merge reconciles master's new seams with this branch's
scoped-registration world:
- tools/execute (new waterfall around core dispatch): dispatched with the
SAME exec.agent carrier as the pre/post waterfalls — an agent.ctx wrapper
times/retries only its own agent's calls — and its base thunk resolves the
tool through the caller's visible view (get(exec.name, exec.agent)), so a
scoped/shadowed tool dispatches and a restricted-away global stays
UNKNOWN_TOOL. Declared this: Scoped<ToolRegistry> with the scope-filtered
doc sentence; invariants table + verify-scoped-dispatch pin it (21 events).
- agent/session-prefix (new waterfall, once per loop instance): composed via
the fused agentEvents dispatcher (scope-filtered like every agent-subject
event), declared this: Scoped<Agent>, table-pinned. agent/pre-step keeps
master's new sessionPrefix parameter with this branch's Scoped this.
- timeout-policy reads the budget through the caller's visible view
(get(exec.name, exec.agent)): a scoped tool's own timeoutMs governs its
calls; a global name-twin's budget is never misapplied to a shadowing
per-agent variant.
- tool-cordis: cordis_inspect's tools section lists the CALLING agent's view
(its description promises "what you can call"); the sandbox tool façade's
reads resolve through the mount's own scope, mirroring where its register
lands writes; sandboxRegisterTool's return type carries the exact-disposer
union honestly. dsh-scope declared as peer+dev with the project reference.
- doc-sync chain unions master's verify-cordis-api with this branch's
verify-scoped-dispatch; the generated catalogs, event matrix (the
zero-dispatcher guard passes over master's new events), module graph, and
the cordis api-catalog are regenerated on the merged surface.
Full gate sequence green on the merged tree: typecheck, lint, per-file 100%
coverage (2668 tests), snapshots (38), doc-sync, module graph, build,
hygiene, demo smoke.
2026-07-09 23:24:42 +08:00