deepseek-harness/docs
Tianyi Cui b54381f3e7 fix(agent): commit mutable setup at publication
Agent setup may await while a mutable contribution registry changes. The previous subagent path validated and committed its provisioning batch inside the setup callback. A revocation queued after that callback returned therefore treated the installation as resident and released it, even though AgentLoop had not published the child yet. AgentLoop could then admit and announce a child whose required capability had already disappeared.

Introduce AgentSetupCommit as the optional synchronous result of create and resume setup. AgentLoop now awaits setup, invokes that commit with no intervening asynchronous boundary, and only then enters the Session and Agent registries. A commit failure follows the existing private-transaction rollback, so neither identity is published and the caller can reuse the id.

Keep continuable-subagent installations provisional until this publication commit. Contribution removal still releases every installation immediately, but now marks an unpublished batch invalid so its commit rejects with ACTIVATION_SETUP_REVOKED. Once the commit succeeds, later removal remains ordinary live revocation.

Cover create and resume ordering, resume commit rejection and identity reuse, and an assembled microtask revocation that leaves only the parent Agent and Session. Update the public JSDoc, architecture flow, package contracts, current Agent Notes, Chinese counterparts, pairing records, and generated Cordis API to describe the new boundary.

Validated with the four focused Agent/subagent test files (91 tests), the isolated assembled regression, targeted TypeScript project builds, generated Cordis API freshness, export JSDoc verification, scoped translation pairing, Markdown wrapping, and Mermaid parsing.
2026-08-02 20:09:05 +08:00
..
cookbook adopt native GitHub stack workflow 2026-08-02 03:17:42 +08:00
cordis-catalog fix(agent): commit mutable setup at publication 2026-08-02 20:09:05 +08:00
cordis-tutorial fix(cli): close shared config review gaps 2026-07-30 14:56:39 +08:00
core-data-structures feat(subagent): add explicit child reports 2026-08-02 12:51:10 +08:00
i18n Merge branch 'worktree-llm-dynamic-config' into worktree-llm-web-config 2026-07-30 15:18:26 +08:00
postmortem Merge fix/web-agent-runtime-context into fix/web-gui-feedback-loop 2026-08-01 22:15:36 +08:00
user Merge branch 'worktree-llm-dynamic-config' into worktree-llm-web-config 2026-07-30 20:15:40 +08:00
agent-lifecycle.md refactor(agent): return request retry action 2026-07-27 21:17:49 +08:00
AGENTS.md docs(notes): archive low-value decision records 2026-07-26 23:06:00 +08:00
architecture.i18n.yaml fix(agent): commit mutable setup at publication 2026-08-02 20:09:05 +08:00
architecture.md fix(agent): commit mutable setup at publication 2026-08-02 20:09:05 +08:00
architecture.zh.md fix(agent): commit mutable setup at publication 2026-08-02 20:09:05 +08:00
capability-seams.md fix(subagent): close continuation lifecycle gaps 2026-08-02 12:51:08 +08:00
config-catalog.md feat(subagent): add explicit child reports 2026-08-02 12:51:10 +08:00
cordis-paper.pdf docs: add cordis paper 2026-07-31 15:54:36 +08:00
cordis-primer.i18n.yaml docs(i18n): clarify Cordis and test wording 2026-07-24 14:21:15 +08:00
cordis-primer.md Merge remote-tracking branch 'origin/master' into worktree/pr343-retarget-latest-master 2026-07-23 13:40:29 +08:00
cordis-primer.zh.md docs(i18n): clarify Cordis and test wording 2026-07-24 14:21:15 +08:00
defensive-patterns.i18n.yaml docs(security): include password names in scrub rule 2026-07-28 09:40:33 -07:00
defensive-patterns.md docs(security): include password names in scrub rule 2026-07-28 09:40:33 -07:00
defensive-patterns.zh.md docs(security): include password names in scrub rule 2026-07-28 09:40:33 -07:00
development.i18n.yaml docs: evaluate SPDX conjunctions and read every Python manifest 2026-07-30 19:54:27 -07:00
development.md docs: evaluate SPDX conjunctions and read every Python manifest 2026-07-30 19:54:27 -07:00
development.zh.md docs: evaluate SPDX conjunctions and read every Python manifest 2026-07-30 19:54:27 -07:00
event-producer-consumer.md feat(subagent): add explicit child reports 2026-08-02 12:51:10 +08:00
glossary.i18n.yaml docs: align Goal Round step cardinality 2026-07-24 12:10:40 +08:00
glossary.md docs: align Goal Round step cardinality 2026-07-24 12:10:40 +08:00
glossary.zh.md docs(i18n): allow zero-step Goal Rounds 2026-07-23 21:13:34 +08:00
graph-atlas.md fix(docs): align catalogs with consolidated CLI 2026-07-30 10:34:21 +08:00
module-graph.md chore(docs): refresh the module graph for the ui-subagent locale edge 2026-08-02 14:05:37 +08:00
persistence-catalog.md chore(docs): refresh the persistence catalog after the descriptor doc edit 2026-08-02 14:05:36 +08:00
testing.i18n.yaml Merge remote-tracking branch 'origin/master' into feature/shared-cli-config-foundation 2026-07-30 15:00:42 +08:00
testing.md Merge remote-tracking branch 'origin/master' into feature/shared-cli-config-foundation 2026-07-30 15:00:42 +08:00
testing.zh.md Merge remote-tracking branch 'origin/master' into feature/shared-cli-config-foundation 2026-07-30 15:00:42 +08:00
tool-catalog.md feat(subagent): add explicit child reports 2026-08-02 12:51:10 +08:00
tool-execution-pipeline.md Merge remote-tracking branch 'origin/master' into feat/send-unify 2026-07-23 22:41:45 +08:00
typert-catalog-integration-design.i18n.yaml refactor(cordis): generate catalogs from Typert models 2026-07-29 23:55:12 +08:00
typert-catalog-integration-design.md refactor(cordis): generate catalogs from Typert models 2026-07-29 23:55:12 +08:00
typert-catalog-integration-design.zh.md refactor(cordis): generate catalogs from Typert models 2026-07-29 23:55:12 +08:00
web-styling.i18n.yaml docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
web-styling.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
web-styling.zh.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00