diff --git a/.agents/notes/README.i18n.yaml b/.agents/notes/README.i18n.yaml index 1fa95a5e2d..57ff21c782 100644 --- a/.agents/notes/README.i18n.yaml +++ b/.agents/notes/README.i18n.yaml @@ -6,20 +6,20 @@ en: a10991a192c7b55d zh: c2e5b938ece4f366 /agent-notes/layout-and-naming: - en: 6b38cb0eb38c2baf - zh: 535234fb23fc8921 + en: 0a517dfc15d4af0a + zh: 324bd9e13a0295e3 /agent-notes/classification: en: 055a5e49f9af3dc2 zh: 9f7c78409cccfded /agent-notes/archiving-and-deletion: - en: 6c393c7058c787d7 - zh: 70ce9ca3bd9c2133 + en: 57ccc5fec461ebb0 + zh: 69e8f9e79abc53aa /agent-notes/when-to-write-one: en: 2beb1b94d8fb633c zh: 889b5542bb771205 /agent-notes/the-file-format: - en: 601f85df49f80fc7 - zh: acbd0955d6543b13 + en: c8efdd37e51c8746 + zh: 0080340005bd31db /agent-notes/the-file-format/the-header-block: en: 16fdaab0c74a5bb5 zh: 2553f145a1eb878f diff --git a/.agents/notes/README.md b/.agents/notes/README.md index 6872de0a13..518851d672 100644 --- a/.agents/notes/README.md +++ b/.agents/notes/README.md @@ -16,7 +16,7 @@ Every Agent Note has two axes, both encoded in its **path** — `{lifecycle}/{cl The date in the filename is when the topic was **first proposed** (per git history). Cross-references between Agent Notes use relative markdown links (`[topic](../../implemented/architecture/2026-…-….md)`) — never bare prose or numbers — so they are mechanically checkable and survive moves between folders. -The active lifecycle tree is the working inventory: browse its lifecycle/class folders or search the repository. Do not add a centralized `INDEX.md`; the [no-index Agent Note](implemented/process/2026-07-19-remove-generated-agent-note-index.md) owns the rationale. Implemented records with historical decision value but little future guidance move to the separate frozen [`archived/`](archived/AGENTS.md) tree described below. +The active lifecycle tree is the working inventory: browse its lifecycle/class folders or search the repository. Do not add a centralized `INDEX.md`: it duplicates path metadata and makes unrelated note changes contend on one generated file. Implemented records with historical decision value but little future guidance move to the separate frozen [`archived/`](archived/AGENTS.md) tree described below. ## Classification @@ -39,7 +39,7 @@ Delete an implemented Agent Note that only describes small UI adjustments or pur The archive is path-encoded as `archived/{class}/yyyy-mm-dd-topic-title.md`; `implemented` is deliberately absent because only implemented notes can enter it. An archival change moves the complete English/Chinese/sidecar triplet, retains `Status: implemented`, inserts the same `Archived: YYYY-MM-DD` line immediately below that status in both language files, re-records the sidecar, and repairs or deletes inbound links. These are the only permitted content changes during archival. Existing title punctuation, blank-line layout, and language-switcher wording do not block archival; preserve them with the body. -Once sealed, every archived triplet is permanently frozen. Do not edit, translate, reformat, update, move, or delete it, and do not treat it as authority for current behavior. Documentation gates skip archived sources, including their outbound links; active prose may still link into an archived note when it intentionally cites history. [`verify-archived-agent-notes`](../../scripts/verify-archived-agent-notes.ts) enforces the closed class tree, complete triplets, archive metadata, sidecar hashes, and the append-only frozen-content manifest. The [archive-policy Agent Note](implemented/process/2026-07-26-frozen-agent-note-archive.md) owns the rationale. +Once sealed, every archived triplet is permanently frozen. Do not edit, translate, reformat, update, move, or delete it, and do not treat it as authority for current behavior. Documentation gates skip archived sources, including their outbound links; active prose may still link into an archived note when it intentionally cites history. [`verify-archived-agent-notes`](../../scripts/verify-archived-agent-notes.ts) enforces the closed class tree, complete triplets, archive metadata, sidecar hashes, and the append-only frozen-content manifest, except for the exact seal transitions documented in [archive instructions](archived/AGENTS.md). The [archive-policy Agent Note](implemented/process/2026-07-26-frozen-agent-note-archive.md) owns the rationale. ## When to write one @@ -53,7 +53,7 @@ A feature-addition note may be consolidated into the later removal note only whe ## The file format -Every active Agent Note follows one in-file format, enforced by `pnpm run verify-agent-note-format` ([scripts/verify-agent-note-format.ts](../../scripts/verify-agent-note-format.ts), part of `doc-sync`); the rationale for the format — and the alternatives it rejected — is [the uniform-format Agent Note](implemented/process/2026-07-05-uniform-agent-note-format.md). Archived notes retain the format they had when sealed plus the archive-date line above. +Every active Agent Note follows one in-file format, enforced by `pnpm run verify-agent-note-format` ([scripts/verify-agent-note-format.ts](../../scripts/verify-agent-note-format.ts), part of `doc-sync`); the rationale for the format — and the alternatives it rejected — is [archived the uniform-format Agent Note](archived/process/2026-07-05-uniform-agent-note-format.md). Archived notes retain the format they had when sealed plus the archive-date line above. ### The header block diff --git a/.agents/notes/README.zh.md b/.agents/notes/README.zh.md index ced81f77fa..b2a6717098 100644 --- a/.agents/notes/README.zh.md +++ b/.agents/notes/README.zh.md @@ -16,7 +16,7 @@ 文件名中的日期是该主题**首次提出**的时间(以 git 历史为准)。Agent Note 之间的交叉引用使用相对 Markdown 链接(`[topic](../../implemented/architecture/2026-…-….md)`),从不使用纯文字或编号,这样既可机械检查,也能在文件夹间移动时保持有效。 -活跃生命周期目录树就是工作清单:浏览其生命周期/类别文件夹,或搜索仓库即可。请勿添加集中式 `INDEX.md`;设计理由见[不设索引的 Agent Note](implemented/process/2026-07-19-remove-generated-agent-note-index.zh.md)。具有历史决策价值但未来指导价值较低的已实施记录会移至下文所述、单独冻结的 [`archived/`](archived/AGENTS.md) 目录树。 +活跃生命周期目录树就是工作清单:浏览其生命周期/类别文件夹,或搜索仓库即可。请勿添加集中式 `INDEX.md`:它重复路径元数据,并让无关记录的变更争用同一个生成文件。具有历史决策价值但未来指导价值较低的已实施记录会移至下文所述、单独冻结的 [`archived/`](archived/AGENTS.md) 目录树。 @@ -41,7 +41,7 @@ 归档路径编码为 `archived/{class}/yyyy-mm-dd-topic-title.md`;其中有意省略 `implemented`,因为只有 implemented Agent Note 可以进入归档。归档变更会移动完整的英文、中文和伴随记录三个文件,保留 `Status: implemented`,在两种语言的文件中紧接该状态行插入相同的 `Archived: YYYY-MM-DD` 行,重新记录伴随记录,并修复或删除入站链接。归档时只允许对内容做这些更改。 既有标题标点、空行布局和语言切换栏措辞不阻止归档;与正文一起保留。 -封存后,每组归档文件都永久冻结。禁止编辑、翻译、重新格式化、更新、移动或删除,也不得将其视为当前行为的权威依据。文档门禁会跳过归档源文件,包括其中的出站链接;当活跃文档有意引用历史时,仍可链接到归档 Agent Note。[`verify-archived-agent-notes`](../../scripts/verify-archived-agent-notes.ts) 强制执行封闭的类别目录树、完整的三文件配对、归档元数据、伴随记录 hash,以及仅追加的冻结内容 manifest(元数据清单)。[归档政策 Agent Note](implemented/process/2026-07-26-frozen-agent-note-archive.zh.md) 记录了设计依据。 +封存后,每组归档文件都永久冻结。禁止编辑、翻译、重新格式化、更新、移动或删除,也不得将其视为当前行为的权威依据。文档门禁会跳过归档源文件,包括其中的出站链接;当活跃文档有意引用历史时,仍可链接到归档 Agent Note。[`verify-archived-agent-notes`](../../scripts/verify-archived-agent-notes.ts) 强制执行封闭的类别目录树、完整的三文件配对、归档元数据、伴随记录 hash,以及仅追加的冻结内容 manifest(元数据清单),但[归档说明](archived/AGENTS.md)中记录的精确封存哈希转换除外。[归档政策 Agent Note](implemented/process/2026-07-26-frozen-agent-note-archive.zh.md) 记录了设计依据。 @@ -59,7 +59,7 @@ ## 文件格式 -每份活跃 Agent Note 遵循统一的文件内格式,由 `pnpm run verify-agent-note-format`([scripts/verify-agent-note-format.ts](../../scripts/verify-agent-note-format.ts),`doc-sync`(文档同步门禁)的一环)强制执行;该格式的设计动机及其否决的替代方案见[统一格式 Agent Note](implemented/process/2026-07-05-uniform-agent-note-format.zh.md)。归档记录保留封存时的格式,并增加上述归档日期行。 +每份活跃 Agent Note 遵循统一的文件内格式,由 `pnpm run verify-agent-note-format`([scripts/verify-agent-note-format.ts](../../scripts/verify-agent-note-format.ts),`doc-sync`(文档同步门禁)的一环)强制执行;该格式的设计动机及其否决的替代方案见[已归档的统一格式 Agent Note](archived/process/2026-07-05-uniform-agent-note-format.md)。归档记录保留封存时的格式,并增加上述归档日期行。 ### 头部块 diff --git a/.agents/notes/archived/AGENTS.md b/.agents/notes/archived/AGENTS.md index 2ac4518a6a..d013ed068e 100644 --- a/.agents/notes/archived/AGENTS.md +++ b/.agents/notes/archived/AGENTS.md @@ -5,3 +5,5 @@ Archived Agent Note triplets under the kind directories are frozen historical sn The archival change may only relocate a complete English/Chinese/sidecar triplet, insert the identical `Archived: YYYY-MM-DD` line below both `Status: implemented` lines, re-record the sidecar, and repair or delete inbound links. Do not inspect, verify, or repair links out of archived notes. Run the [`dsh-archive-agent-notes`](../../skills/dsh-archive-agent-notes/SKILL.md) workflow and append new artifact hashes with `pnpm run verify-archived-agent-notes --write`. The normal verifier rejects changed or missing sealed artifacts, incomplete triplets, unknown kind folders, and invalid archive metadata. + +The authorized Figma-link removal from `feature/2026-08-10-durable-workflow-runs-in-chat` has three exact old-to-new seal exceptions in `scripts/archived-agent-notes.ts` for its English, Chinese, and pairing files. These exceptions permit no other content change, reversal, or deletion. diff --git a/.agents/notes/archived/architecture/2026-06-11-content-block-vocabulary.i18n.yaml b/.agents/notes/archived/architecture/2026-06-11-content-block-vocabulary.i18n.yaml new file mode 100644 index 0000000000..051d5f8082 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-06-11-content-block-vocabulary.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-06-11-content-block-vocabulary.md +2026-06-11-content-block-vocabulary.md: ae60931f37b3c470d0a1d6ee5f074ee77f9b3c14 +2026-06-11-content-block-vocabulary.zh.md: 3feed6e3ac9e7836a6e36be47fb19f346978886c diff --git a/.agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.md b/.agents/notes/archived/architecture/2026-06-11-content-block-vocabulary.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.md rename to .agents/notes/archived/architecture/2026-06-11-content-block-vocabulary.md index 917dd5225f..ae60931f37 100644 --- a/.agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.md +++ b/.agents/notes/archived/architecture/2026-06-11-content-block-vocabulary.md @@ -1,6 +1,7 @@ # Agent Note: Provider-neutral content-block vocabulary owned by dsh-llm Status: implemented +Archived: 2026-09-30 English | [中文](2026-06-11-content-block-vocabulary.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.zh.md b/.agents/notes/archived/architecture/2026-06-11-content-block-vocabulary.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.zh.md rename to .agents/notes/archived/architecture/2026-06-11-content-block-vocabulary.zh.md index 9d228eb34d..3feed6e3ac 100644 --- a/.agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.zh.md +++ b/.agents/notes/archived/architecture/2026-06-11-content-block-vocabulary.zh.md @@ -1,6 +1,7 @@ # Agent Note: 由 dsh-llm 拥有的提供方无关内容块词汇 Status: implemented +Archived: 2026-09-30 [English](2026-06-11-content-block-vocabulary.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-06-11-microkernel-event-taxonomy.i18n.yaml b/.agents/notes/archived/architecture/2026-06-11-microkernel-event-taxonomy.i18n.yaml new file mode 100644 index 0000000000..72e631f43c --- /dev/null +++ b/.agents/notes/archived/architecture/2026-06-11-microkernel-event-taxonomy.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-06-11-microkernel-event-taxonomy.md +2026-06-11-microkernel-event-taxonomy.md: 681ab6eed1dc4d8a361990e69f071b918ce297c2 +2026-06-11-microkernel-event-taxonomy.zh.md: 3b7504a21be7d83969c9cee77a77c33803a41e74 diff --git a/.agents/notes/implemented/architecture/2026-06-11-microkernel-event-taxonomy.md b/.agents/notes/archived/architecture/2026-06-11-microkernel-event-taxonomy.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-06-11-microkernel-event-taxonomy.md rename to .agents/notes/archived/architecture/2026-06-11-microkernel-event-taxonomy.md index 6cacbc30f2..681ab6eed1 100644 --- a/.agents/notes/implemented/architecture/2026-06-11-microkernel-event-taxonomy.md +++ b/.agents/notes/archived/architecture/2026-06-11-microkernel-event-taxonomy.md @@ -1,6 +1,7 @@ # Agent Note: Microkernel — extension via Cordis event taxonomy, one concrete loop Status: implemented +Archived: 2026-09-30 English | [中文](2026-06-11-microkernel-event-taxonomy.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-06-11-microkernel-event-taxonomy.zh.md b/.agents/notes/archived/architecture/2026-06-11-microkernel-event-taxonomy.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-06-11-microkernel-event-taxonomy.zh.md rename to .agents/notes/archived/architecture/2026-06-11-microkernel-event-taxonomy.zh.md index 1c7919392b..3b7504a21b 100644 --- a/.agents/notes/implemented/architecture/2026-06-11-microkernel-event-taxonomy.zh.md +++ b/.agents/notes/archived/architecture/2026-06-11-microkernel-event-taxonomy.zh.md @@ -1,6 +1,7 @@ # Agent Note: 微内核——通过 Cordis 事件分类体系实现扩展,唯一具体循环 Status: implemented +Archived: 2026-09-30 [English](2026-06-11-microkernel-event-taxonomy.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-06-14-session-persistence.i18n.yaml b/.agents/notes/archived/architecture/2026-06-14-session-persistence.i18n.yaml new file mode 100644 index 0000000000..b2a2b15256 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-06-14-session-persistence.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-06-14-session-persistence.md +2026-06-14-session-persistence.md: 4d067d2905d764a5c0d70b0a3eae5de68cb717f4 +2026-06-14-session-persistence.zh.md: 1f0f4af301a439c02fc23a1ffdc541d6bcbb24d2 diff --git a/.agents/notes/implemented/architecture/2026-06-14-session-persistence.md b/.agents/notes/archived/architecture/2026-06-14-session-persistence.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-06-14-session-persistence.md rename to .agents/notes/archived/architecture/2026-06-14-session-persistence.md index d79975e1fe..4d067d2905 100644 --- a/.agents/notes/implemented/architecture/2026-06-14-session-persistence.md +++ b/.agents/notes/archived/architecture/2026-06-14-session-persistence.md @@ -1,6 +1,7 @@ # Agent Note: Session persistence as an abstract service over the existing `SessionEvent` Status: implemented +Archived: 2026-09-30 English | [中文](2026-06-14-session-persistence.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-06-14-session-persistence.zh.md b/.agents/notes/archived/architecture/2026-06-14-session-persistence.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-06-14-session-persistence.zh.md rename to .agents/notes/archived/architecture/2026-06-14-session-persistence.zh.md index f70b8005a2..1f0f4af301 100644 --- a/.agents/notes/implemented/architecture/2026-06-14-session-persistence.zh.md +++ b/.agents/notes/archived/architecture/2026-06-14-session-persistence.zh.md @@ -1,6 +1,7 @@ # Agent Note: 会话持久化作为基于现有 `SessionEvent` 的抽象服务 Status: implemented +Archived: 2026-09-30 [English](2026-06-14-session-persistence.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-06-20-generic-long-running-tool-runtime.i18n.yaml b/.agents/notes/archived/architecture/2026-06-20-generic-long-running-tool-runtime.i18n.yaml new file mode 100644 index 0000000000..bec82919f0 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-06-20-generic-long-running-tool-runtime.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-06-20-generic-long-running-tool-runtime.md +2026-06-20-generic-long-running-tool-runtime.md: 7cdb72ece6ca5681ba83999dd5d95fc2c27bf318 +2026-06-20-generic-long-running-tool-runtime.zh.md: bf0a5d61c0e45aa6b39c6bcd0ac71cfb9b61d43f diff --git a/.agents/notes/implemented/architecture/2026-06-20-generic-long-running-tool-runtime.md b/.agents/notes/archived/architecture/2026-06-20-generic-long-running-tool-runtime.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-06-20-generic-long-running-tool-runtime.md rename to .agents/notes/archived/architecture/2026-06-20-generic-long-running-tool-runtime.md index 5960eb2686..7cdb72ece6 100644 --- a/.agents/notes/implemented/architecture/2026-06-20-generic-long-running-tool-runtime.md +++ b/.agents/notes/archived/architecture/2026-06-20-generic-long-running-tool-runtime.md @@ -1,6 +1,7 @@ # Agent Note: The background job runtime (`ctx.jobs`) and generic task control tools Status: implemented +Archived: 2026-09-30 English | [中文](2026-06-20-generic-long-running-tool-runtime.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-06-20-generic-long-running-tool-runtime.zh.md b/.agents/notes/archived/architecture/2026-06-20-generic-long-running-tool-runtime.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-06-20-generic-long-running-tool-runtime.zh.md rename to .agents/notes/archived/architecture/2026-06-20-generic-long-running-tool-runtime.zh.md index ea63ae8296..bf0a5d61c0 100644 --- a/.agents/notes/implemented/architecture/2026-06-20-generic-long-running-tool-runtime.zh.md +++ b/.agents/notes/archived/architecture/2026-06-20-generic-long-running-tool-runtime.zh.md @@ -1,6 +1,7 @@ # Agent Note: 后台任务运行时(`ctx.jobs`)与通用任务控制工具 Status: implemented +Archived: 2026-09-30 [English](2026-06-20-generic-long-running-tool-runtime.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-06-21-mandatory-app-attribution-headers.i18n.yaml b/.agents/notes/archived/architecture/2026-06-21-mandatory-app-attribution-headers.i18n.yaml new file mode 100644 index 0000000000..7874665937 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-06-21-mandatory-app-attribution-headers.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-06-21-mandatory-app-attribution-headers.md +2026-06-21-mandatory-app-attribution-headers.md: 680bd56301d80f87f13294bc7744a5de376425be +2026-06-21-mandatory-app-attribution-headers.zh.md: d9e19dbf8cf5a8f8594f25c0cd8565a7deb4b8a6 diff --git a/.agents/notes/implemented/architecture/2026-06-21-mandatory-app-attribution-headers.md b/.agents/notes/archived/architecture/2026-06-21-mandatory-app-attribution-headers.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-06-21-mandatory-app-attribution-headers.md rename to .agents/notes/archived/architecture/2026-06-21-mandatory-app-attribution-headers.md index 9e0c029dc0..680bd56301 100644 --- a/.agents/notes/implemented/architecture/2026-06-21-mandatory-app-attribution-headers.md +++ b/.agents/notes/archived/architecture/2026-06-21-mandatory-app-attribution-headers.md @@ -1,6 +1,7 @@ # Agent Note: Mandatory `User-Agent` attribution for provider requests Status: implemented +Archived: 2026-09-30 English | [中文](2026-06-21-mandatory-app-attribution-headers.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-06-21-mandatory-app-attribution-headers.zh.md b/.agents/notes/archived/architecture/2026-06-21-mandatory-app-attribution-headers.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-06-21-mandatory-app-attribution-headers.zh.md rename to .agents/notes/archived/architecture/2026-06-21-mandatory-app-attribution-headers.zh.md index 1427daf8f6..d9e19dbf8c 100644 --- a/.agents/notes/implemented/architecture/2026-06-21-mandatory-app-attribution-headers.zh.md +++ b/.agents/notes/archived/architecture/2026-06-21-mandatory-app-attribution-headers.zh.md @@ -1,6 +1,7 @@ # Agent Note: 对提供方请求强制携带 `User-Agent` 归属标识 Status: implemented +Archived: 2026-09-30 [English](2026-06-21-mandatory-app-attribution-headers.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-06-26-file-context-as-event-gate.i18n.yaml b/.agents/notes/archived/architecture/2026-06-26-file-context-as-event-gate.i18n.yaml new file mode 100644 index 0000000000..c88c672448 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-06-26-file-context-as-event-gate.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-06-26-file-context-as-event-gate.md +2026-06-26-file-context-as-event-gate.md: 96962f6a7260cc4da393a90349528aece3c23ce1 +2026-06-26-file-context-as-event-gate.zh.md: 22fb85fc1246bb67bc0793f8cf7816b6134f11ae diff --git a/.agents/notes/implemented/architecture/2026-06-26-file-context-as-event-gate.md b/.agents/notes/archived/architecture/2026-06-26-file-context-as-event-gate.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-06-26-file-context-as-event-gate.md rename to .agents/notes/archived/architecture/2026-06-26-file-context-as-event-gate.md index 2943f11190..96962f6a72 100644 --- a/.agents/notes/implemented/architecture/2026-06-26-file-context-as-event-gate.md +++ b/.agents/notes/archived/architecture/2026-06-26-file-context-as-event-gate.md @@ -1,6 +1,7 @@ # Agent Note: Make `dsh-fs-observation-policy` an event-gate plugin, not a method interface Status: implemented +Archived: 2026-09-30 English | [中文](2026-06-26-file-context-as-event-gate.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-06-26-file-context-as-event-gate.zh.md b/.agents/notes/archived/architecture/2026-06-26-file-context-as-event-gate.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-06-26-file-context-as-event-gate.zh.md rename to .agents/notes/archived/architecture/2026-06-26-file-context-as-event-gate.zh.md index 053f4269b1..22fb85fc12 100644 --- a/.agents/notes/implemented/architecture/2026-06-26-file-context-as-event-gate.zh.md +++ b/.agents/notes/archived/architecture/2026-06-26-file-context-as-event-gate.zh.md @@ -1,6 +1,7 @@ # Agent Note: 将 `dsh-fs-observation-policy` 改为事件门禁插件,而非方法接口 Status: implemented +Archived: 2026-09-30 [English](2026-06-26-file-context-as-event-gate.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-07-05-windows-jsonl-durable-publish.i18n.yaml b/.agents/notes/archived/architecture/2026-07-05-windows-jsonl-durable-publish.i18n.yaml new file mode 100644 index 0000000000..221279b3c7 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-07-05-windows-jsonl-durable-publish.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-05-windows-jsonl-durable-publish.md +2026-07-05-windows-jsonl-durable-publish.md: f6be0b602d00daabdffc152508b0f8658fcb47a5 +2026-07-05-windows-jsonl-durable-publish.zh.md: 136b4c92b44d53c6fbfcefc94b683c9cbbfc9597 diff --git a/.agents/notes/implemented/architecture/2026-07-05-windows-jsonl-durable-publish.md b/.agents/notes/archived/architecture/2026-07-05-windows-jsonl-durable-publish.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-05-windows-jsonl-durable-publish.md rename to .agents/notes/archived/architecture/2026-07-05-windows-jsonl-durable-publish.md index 546cde6086..f6be0b602d 100644 --- a/.agents/notes/implemented/architecture/2026-07-05-windows-jsonl-durable-publish.md +++ b/.agents/notes/archived/architecture/2026-07-05-windows-jsonl-durable-publish.md @@ -1,6 +1,7 @@ # Agent Note: Windows-native durable JSONL publication Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-05-windows-jsonl-durable-publish.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-07-05-windows-jsonl-durable-publish.zh.md b/.agents/notes/archived/architecture/2026-07-05-windows-jsonl-durable-publish.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-05-windows-jsonl-durable-publish.zh.md rename to .agents/notes/archived/architecture/2026-07-05-windows-jsonl-durable-publish.zh.md index b99032e9d7..136b4c92b4 100644 --- a/.agents/notes/implemented/architecture/2026-07-05-windows-jsonl-durable-publish.zh.md +++ b/.agents/notes/archived/architecture/2026-07-05-windows-jsonl-durable-publish.zh.md @@ -1,6 +1,7 @@ # Agent Note: Windows 原生持久 JSONL 发布 Status: implemented +Archived: 2026-09-30 [English](2026-07-05-windows-jsonl-durable-publish.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-07-08-agent-scope-contexts.i18n.yaml b/.agents/notes/archived/architecture/2026-07-08-agent-scope-contexts.i18n.yaml new file mode 100644 index 0000000000..66c509e818 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-07-08-agent-scope-contexts.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-08-agent-scope-contexts.md +2026-07-08-agent-scope-contexts.md: e6513e6dc5aab699ba12d028aa7985f8dc5e33af +2026-07-08-agent-scope-contexts.zh.md: bfb1dfdad882c51ea39fd701e5a6c549af9b2349 diff --git a/.agents/notes/implemented/architecture/2026-07-08-agent-scope-contexts.md b/.agents/notes/archived/architecture/2026-07-08-agent-scope-contexts.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-08-agent-scope-contexts.md rename to .agents/notes/archived/architecture/2026-07-08-agent-scope-contexts.md index 45e635b7bc..e6513e6dc5 100644 --- a/.agents/notes/implemented/architecture/2026-07-08-agent-scope-contexts.md +++ b/.agents/notes/archived/architecture/2026-07-08-agent-scope-contexts.md @@ -1,6 +1,7 @@ # Agent Note: The agent is a registration scope Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-08-agent-scope-contexts.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-07-08-agent-scope-contexts.zh.md b/.agents/notes/archived/architecture/2026-07-08-agent-scope-contexts.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-08-agent-scope-contexts.zh.md rename to .agents/notes/archived/architecture/2026-07-08-agent-scope-contexts.zh.md index aac860734e..bfb1dfdad8 100644 --- a/.agents/notes/implemented/architecture/2026-07-08-agent-scope-contexts.zh.md +++ b/.agents/notes/archived/architecture/2026-07-08-agent-scope-contexts.zh.md @@ -1,6 +1,7 @@ # Agent Note: agent 即注册作用域 Status: implemented +Archived: 2026-09-30 [English](2026-07-08-agent-scope-contexts.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.i18n.yaml b/.agents/notes/archived/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.i18n.yaml new file mode 100644 index 0000000000..add9b57b6c --- /dev/null +++ b/.agents/notes/archived/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.md +2026-07-10-after-call-compaction-pressure-and-overflow-recovery.md: f5b739b80022c85c9009a37de0e8b3f147f920b1 +2026-07-10-after-call-compaction-pressure-and-overflow-recovery.zh.md: 303f266079e0738ed9b0c6d7a19fadce7dc77442 diff --git a/.agents/notes/implemented/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.md b/.agents/notes/archived/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.md rename to .agents/notes/archived/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.md index 89c8917484..f5b739b800 100644 --- a/.agents/notes/implemented/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.md +++ b/.agents/notes/archived/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.md @@ -1,6 +1,7 @@ # Agent Note: After-call compaction pressure and context-overflow recovery Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-10-after-call-compaction-pressure-and-overflow-recovery.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.zh.md b/.agents/notes/archived/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.zh.md rename to .agents/notes/archived/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.zh.md index 48f954f2c4..303f266079 100644 --- a/.agents/notes/implemented/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.zh.md +++ b/.agents/notes/archived/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.zh.md @@ -1,6 +1,7 @@ # Agent Note: 调用后压缩压力与上下文溢出恢复 Status: implemented +Archived: 2026-09-30 [English](2026-07-10-after-call-compaction-pressure-and-overflow-recovery.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-07-12-agent-scope-runtime-design.i18n.yaml b/.agents/notes/archived/architecture/2026-07-12-agent-scope-runtime-design.i18n.yaml new file mode 100644 index 0000000000..94b1ef391f --- /dev/null +++ b/.agents/notes/archived/architecture/2026-07-12-agent-scope-runtime-design.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-12-agent-scope-runtime-design.md +2026-07-12-agent-scope-runtime-design.md: dba700b99a622a2f38c964fcfe6a6fdcf877c45e +2026-07-12-agent-scope-runtime-design.zh.md: f5c12fce6b9829e4ada61eab44d49232fa5aa241 diff --git a/.agents/notes/implemented/architecture/2026-07-12-agent-scope-runtime-design.md b/.agents/notes/archived/architecture/2026-07-12-agent-scope-runtime-design.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-12-agent-scope-runtime-design.md rename to .agents/notes/archived/architecture/2026-07-12-agent-scope-runtime-design.md index b9b2c837f5..dba700b99a 100644 --- a/.agents/notes/implemented/architecture/2026-07-12-agent-scope-runtime-design.md +++ b/.agents/notes/archived/architecture/2026-07-12-agent-scope-runtime-design.md @@ -1,6 +1,7 @@ # Agent Note: Agent-scope runtime design and correctness Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-12-agent-scope-runtime-design.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-07-12-agent-scope-runtime-design.zh.md b/.agents/notes/archived/architecture/2026-07-12-agent-scope-runtime-design.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-12-agent-scope-runtime-design.zh.md rename to .agents/notes/archived/architecture/2026-07-12-agent-scope-runtime-design.zh.md index 4b94d1b844..f5c12fce6b 100644 --- a/.agents/notes/implemented/architecture/2026-07-12-agent-scope-runtime-design.zh.md +++ b/.agents/notes/archived/architecture/2026-07-12-agent-scope-runtime-design.zh.md @@ -1,6 +1,7 @@ # Agent Note: Agent 作用域运行时设计与正确性 Status: implemented +Archived: 2026-09-30 [English](2026-07-12-agent-scope-runtime-design.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-07-16-explicit-turn-cancellation.i18n.yaml b/.agents/notes/archived/architecture/2026-07-16-explicit-turn-cancellation.i18n.yaml new file mode 100644 index 0000000000..ff2be756e3 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-07-16-explicit-turn-cancellation.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-16-explicit-turn-cancellation.md +2026-07-16-explicit-turn-cancellation.md: 23aaaae2d1f57a546ccbae7986c163e50f89fe24 +2026-07-16-explicit-turn-cancellation.zh.md: 4ce379c84640a214be1fa9708426e15ecc25c1d4 diff --git a/.agents/notes/implemented/architecture/2026-07-16-explicit-turn-cancellation.md b/.agents/notes/archived/architecture/2026-07-16-explicit-turn-cancellation.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-16-explicit-turn-cancellation.md rename to .agents/notes/archived/architecture/2026-07-16-explicit-turn-cancellation.md index d59accf2dc..23aaaae2d1 100644 --- a/.agents/notes/implemented/architecture/2026-07-16-explicit-turn-cancellation.md +++ b/.agents/notes/archived/architecture/2026-07-16-explicit-turn-cancellation.md @@ -1,6 +1,7 @@ # Agent Note: Explicit turn cancellation capability Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-16-explicit-turn-cancellation.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-07-16-explicit-turn-cancellation.zh.md b/.agents/notes/archived/architecture/2026-07-16-explicit-turn-cancellation.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-16-explicit-turn-cancellation.zh.md rename to .agents/notes/archived/architecture/2026-07-16-explicit-turn-cancellation.zh.md index 8fb0728eb2..4ce379c846 100644 --- a/.agents/notes/implemented/architecture/2026-07-16-explicit-turn-cancellation.zh.md +++ b/.agents/notes/archived/architecture/2026-07-16-explicit-turn-cancellation.zh.md @@ -1,6 +1,7 @@ # Agent Note: 显式轮次取消能力 Status: implemented +Archived: 2026-09-30 [English](2026-07-16-explicit-turn-cancellation.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-07-19-gui-web-client-architecture.i18n.yaml b/.agents/notes/archived/architecture/2026-07-19-gui-web-client-architecture.i18n.yaml new file mode 100644 index 0000000000..c79a5315c3 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-07-19-gui-web-client-architecture.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-19-gui-web-client-architecture.md +2026-07-19-gui-web-client-architecture.md: f54f13869d748b68fd00bdfff23c2da49b8fdc81 +2026-07-19-gui-web-client-architecture.zh.md: 4ab3639dac9d7e8916a0d3affb14bd965c11d783 diff --git a/.agents/notes/implemented/architecture/2026-07-19-gui-web-client-architecture.md b/.agents/notes/archived/architecture/2026-07-19-gui-web-client-architecture.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-19-gui-web-client-architecture.md rename to .agents/notes/archived/architecture/2026-07-19-gui-web-client-architecture.md index 4d62d7ddbe..f54f13869d 100644 --- a/.agents/notes/implemented/architecture/2026-07-19-gui-web-client-architecture.md +++ b/.agents/notes/archived/architecture/2026-07-19-gui-web-client-architecture.md @@ -1,6 +1,7 @@ # Agent Note: Web client architecture — the client cordis plugin tree, the slot system, and the React-free object layer Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-19-gui-web-client-architecture.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-07-19-gui-web-client-architecture.zh.md b/.agents/notes/archived/architecture/2026-07-19-gui-web-client-architecture.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-19-gui-web-client-architecture.zh.md rename to .agents/notes/archived/architecture/2026-07-19-gui-web-client-architecture.zh.md index aeb6c89e67..4ab3639dac 100644 --- a/.agents/notes/implemented/architecture/2026-07-19-gui-web-client-architecture.zh.md +++ b/.agents/notes/archived/architecture/2026-07-19-gui-web-client-architecture.zh.md @@ -1,6 +1,7 @@ # Agent Note: Web 客户端架构——client cordis 插件树、slot 体系与 React-free 对象层 Status: implemented +Archived: 2026-09-30 [English](2026-07-19-gui-web-client-architecture.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-07-19-package-invariant-runtime-contracts.i18n.yaml b/.agents/notes/archived/architecture/2026-07-19-package-invariant-runtime-contracts.i18n.yaml new file mode 100644 index 0000000000..93ae94beb7 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-07-19-package-invariant-runtime-contracts.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-19-package-invariant-runtime-contracts.md +2026-07-19-package-invariant-runtime-contracts.md: d0559b0379ce05aa9a5a0c30df4808e3088c840b +2026-07-19-package-invariant-runtime-contracts.zh.md: 0cfe61ee6344a4f6da73ffff22bb8a1b30f9f3a9 diff --git a/.agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.md b/.agents/notes/archived/architecture/2026-07-19-package-invariant-runtime-contracts.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.md rename to .agents/notes/archived/architecture/2026-07-19-package-invariant-runtime-contracts.md index a1b635cc40..d0559b0379 100644 --- a/.agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.md +++ b/.agents/notes/archived/architecture/2026-07-19-package-invariant-runtime-contracts.md @@ -1,6 +1,7 @@ # Agent Note: Meaningful package invariant contracts Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-19-package-invariant-runtime-contracts.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.zh.md b/.agents/notes/archived/architecture/2026-07-19-package-invariant-runtime-contracts.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.zh.md rename to .agents/notes/archived/architecture/2026-07-19-package-invariant-runtime-contracts.zh.md index d315c440f1..0cfe61ee63 100644 --- a/.agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.zh.md +++ b/.agents/notes/archived/architecture/2026-07-19-package-invariant-runtime-contracts.zh.md @@ -1,6 +1,7 @@ # Agent Note: 有意义的包不变量约定 Status: implemented +Archived: 2026-09-30 [English](2026-07-19-package-invariant-runtime-contracts.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-07-19-zstandard-jsonl-session-logs.i18n.yaml b/.agents/notes/archived/architecture/2026-07-19-zstandard-jsonl-session-logs.i18n.yaml new file mode 100644 index 0000000000..5547922c17 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-07-19-zstandard-jsonl-session-logs.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-19-zstandard-jsonl-session-logs.md +2026-07-19-zstandard-jsonl-session-logs.md: 8ab55279bc94224b8b048c972bfda5c4a91a2fc8 +2026-07-19-zstandard-jsonl-session-logs.zh.md: c8f1b1599c415aaec37af3f238a2a979461f855b diff --git a/.agents/notes/implemented/architecture/2026-07-19-zstandard-jsonl-session-logs.md b/.agents/notes/archived/architecture/2026-07-19-zstandard-jsonl-session-logs.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-19-zstandard-jsonl-session-logs.md rename to .agents/notes/archived/architecture/2026-07-19-zstandard-jsonl-session-logs.md index 96b76febee..8ab55279bc 100644 --- a/.agents/notes/implemented/architecture/2026-07-19-zstandard-jsonl-session-logs.md +++ b/.agents/notes/archived/architecture/2026-07-19-zstandard-jsonl-session-logs.md @@ -1,6 +1,7 @@ # Agent Note: Zstandard JSONL session logs Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-19-zstandard-jsonl-session-logs.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-07-19-zstandard-jsonl-session-logs.zh.md b/.agents/notes/archived/architecture/2026-07-19-zstandard-jsonl-session-logs.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-19-zstandard-jsonl-session-logs.zh.md rename to .agents/notes/archived/architecture/2026-07-19-zstandard-jsonl-session-logs.zh.md index 4cf184ce10..c8f1b1599c 100644 --- a/.agents/notes/implemented/architecture/2026-07-19-zstandard-jsonl-session-logs.zh.md +++ b/.agents/notes/archived/architecture/2026-07-19-zstandard-jsonl-session-logs.zh.md @@ -1,6 +1,7 @@ # Agent Note: Zstandard JSONL 会话日志 Status: implemented +Archived: 2026-09-30 [English](2026-07-19-zstandard-jsonl-session-logs.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-07-20-canonical-tool-output-contract.i18n.yaml b/.agents/notes/archived/architecture/2026-07-20-canonical-tool-output-contract.i18n.yaml new file mode 100644 index 0000000000..c4ddbb7bf2 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-07-20-canonical-tool-output-contract.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-20-canonical-tool-output-contract.md +2026-07-20-canonical-tool-output-contract.md: 1e2cdacdfa9100ca89840bb6ff0c98f07cecf8be +2026-07-20-canonical-tool-output-contract.zh.md: 6fa16a682a03a79d98278e2ffa543ec330550b9b diff --git a/.agents/notes/implemented/architecture/2026-07-20-canonical-tool-output-contract.md b/.agents/notes/archived/architecture/2026-07-20-canonical-tool-output-contract.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-20-canonical-tool-output-contract.md rename to .agents/notes/archived/architecture/2026-07-20-canonical-tool-output-contract.md index 4dbcac3da8..1e2cdacdfa 100644 --- a/.agents/notes/implemented/architecture/2026-07-20-canonical-tool-output-contract.md +++ b/.agents/notes/archived/architecture/2026-07-20-canonical-tool-output-contract.md @@ -1,6 +1,7 @@ # Agent Note: Canonical tool output contract Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-20-canonical-tool-output-contract.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-07-20-canonical-tool-output-contract.zh.md b/.agents/notes/archived/architecture/2026-07-20-canonical-tool-output-contract.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-20-canonical-tool-output-contract.zh.md rename to .agents/notes/archived/architecture/2026-07-20-canonical-tool-output-contract.zh.md index c2f4ebdfc7..6fa16a682a 100644 --- a/.agents/notes/implemented/architecture/2026-07-20-canonical-tool-output-contract.zh.md +++ b/.agents/notes/archived/architecture/2026-07-20-canonical-tool-output-contract.zh.md @@ -1,6 +1,7 @@ # Agent Note: 规范工具输出约定 Status: implemented +Archived: 2026-09-30 [English](2026-07-20-canonical-tool-output-contract.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-07-20-unified-json-value-schema-dsl.i18n.yaml b/.agents/notes/archived/architecture/2026-07-20-unified-json-value-schema-dsl.i18n.yaml new file mode 100644 index 0000000000..819e30d978 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-07-20-unified-json-value-schema-dsl.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-20-unified-json-value-schema-dsl.md +2026-07-20-unified-json-value-schema-dsl.md: c1cc5c16f3d0e8ac65cff881a9f7b2ff51259e2a +2026-07-20-unified-json-value-schema-dsl.zh.md: 7cd7be62c47ba96914c802b208fd87640849b3eb diff --git a/.agents/notes/implemented/architecture/2026-07-20-unified-json-value-schema-dsl.md b/.agents/notes/archived/architecture/2026-07-20-unified-json-value-schema-dsl.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-20-unified-json-value-schema-dsl.md rename to .agents/notes/archived/architecture/2026-07-20-unified-json-value-schema-dsl.md index 5de3523eab..c1cc5c16f3 100644 --- a/.agents/notes/implemented/architecture/2026-07-20-unified-json-value-schema-dsl.md +++ b/.agents/notes/archived/architecture/2026-07-20-unified-json-value-schema-dsl.md @@ -1,6 +1,7 @@ # Agent Note: Unified JSON-value schema DSL Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-20-unified-json-value-schema-dsl.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-07-20-unified-json-value-schema-dsl.zh.md b/.agents/notes/archived/architecture/2026-07-20-unified-json-value-schema-dsl.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-20-unified-json-value-schema-dsl.zh.md rename to .agents/notes/archived/architecture/2026-07-20-unified-json-value-schema-dsl.zh.md index 0dc38dc289..7cd7be62c4 100644 --- a/.agents/notes/implemented/architecture/2026-07-20-unified-json-value-schema-dsl.zh.md +++ b/.agents/notes/archived/architecture/2026-07-20-unified-json-value-schema-dsl.zh.md @@ -1,6 +1,7 @@ # Agent Note: 统一 JSON 值 schema DSL Status: implemented +Archived: 2026-09-30 [English](2026-07-20-unified-json-value-schema-dsl.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-07-24-project-session-directories.i18n.yaml b/.agents/notes/archived/architecture/2026-07-24-project-session-directories.i18n.yaml new file mode 100644 index 0000000000..95b06b698d --- /dev/null +++ b/.agents/notes/archived/architecture/2026-07-24-project-session-directories.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-24-project-session-directories.md +2026-07-24-project-session-directories.md: 92a8ea11b8150b7c60fe76ae1354c5fadddd13c9 +2026-07-24-project-session-directories.zh.md: 1850f04366deb79709b2bc51db194098eab9a95e diff --git a/.agents/notes/implemented/architecture/2026-07-24-project-session-directories.md b/.agents/notes/archived/architecture/2026-07-24-project-session-directories.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-24-project-session-directories.md rename to .agents/notes/archived/architecture/2026-07-24-project-session-directories.md index 0074c8b313..92a8ea11b8 100644 --- a/.agents/notes/implemented/architecture/2026-07-24-project-session-directories.md +++ b/.agents/notes/archived/architecture/2026-07-24-project-session-directories.md @@ -1,6 +1,7 @@ # Agent Note: Project-grouped session directories Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-24-project-session-directories.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-07-24-project-session-directories.zh.md b/.agents/notes/archived/architecture/2026-07-24-project-session-directories.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-24-project-session-directories.zh.md rename to .agents/notes/archived/architecture/2026-07-24-project-session-directories.zh.md index 3a1d348255..1850f04366 100644 --- a/.agents/notes/implemented/architecture/2026-07-24-project-session-directories.zh.md +++ b/.agents/notes/archived/architecture/2026-07-24-project-session-directories.zh.md @@ -1,6 +1,7 @@ # Agent Note: 按项目分组的会话目录 Status: implemented +Archived: 2026-09-30 [English](2026-07-24-project-session-directories.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.i18n.yaml b/.agents/notes/archived/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.i18n.yaml new file mode 100644 index 0000000000..f72915a6e7 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.md +2026-07-24-web-config-tree-boot-and-transport-layering.md: 7f1a619796158be987e58fa718af119421e477fa +2026-07-24-web-config-tree-boot-and-transport-layering.zh.md: 6f0dc590944f3994752ef1de06de46a843fdbc94 diff --git a/.agents/notes/implemented/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.md b/.agents/notes/archived/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.md rename to .agents/notes/archived/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.md index c8a1db3cd7..7f1a619796 100644 --- a/.agents/notes/implemented/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.md +++ b/.agents/notes/archived/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.md @@ -1,6 +1,7 @@ # Agent Note: dsh web config-tree boot and the web transport layering Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-24-web-config-tree-boot-and-transport-layering.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.zh.md b/.agents/notes/archived/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.zh.md rename to .agents/notes/archived/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.zh.md index 41fcf65b06..6f0dc59094 100644 --- a/.agents/notes/implemented/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.zh.md +++ b/.agents/notes/archived/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.zh.md @@ -1,6 +1,7 @@ # Agent Note: dsh web 的 config-tree boot 与 web 传输分层 Status: implemented +Archived: 2026-09-30 [English](2026-07-24-web-config-tree-boot-and-transport-layering.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-07-25-web-client-session-scope-and-provide-channel.i18n.yaml b/.agents/notes/archived/architecture/2026-07-25-web-client-session-scope-and-provide-channel.i18n.yaml new file mode 100644 index 0000000000..3652679718 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-07-25-web-client-session-scope-and-provide-channel.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-25-web-client-session-scope-and-provide-channel.md +2026-07-25-web-client-session-scope-and-provide-channel.md: 9afd2419c24f21b903c6e2c692cc6ee943244e07 +2026-07-25-web-client-session-scope-and-provide-channel.zh.md: 2385cfc8edde2dd65291037ea6d0d18c90f720d4 diff --git a/.agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.md b/.agents/notes/archived/architecture/2026-07-25-web-client-session-scope-and-provide-channel.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.md rename to .agents/notes/archived/architecture/2026-07-25-web-client-session-scope-and-provide-channel.md index 76561bc0e3..9afd2419c2 100644 --- a/.agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.md +++ b/.agents/notes/archived/architecture/2026-07-25-web-client-session-scope-and-provide-channel.md @@ -1,6 +1,7 @@ # Agent Note: Web client Agent-scope parity model and the provisioning channel (agents/scope / blank reuse / provide) Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-25-web-client-session-scope-and-provide-channel.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.zh.md b/.agents/notes/archived/architecture/2026-07-25-web-client-session-scope-and-provide-channel.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.zh.md rename to .agents/notes/archived/architecture/2026-07-25-web-client-session-scope-and-provide-channel.zh.md index d5d92b2ca5..2385cfc8ed 100644 --- a/.agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.zh.md +++ b/.agents/notes/archived/architecture/2026-07-25-web-client-session-scope-and-provide-channel.zh.md @@ -1,6 +1,7 @@ # Agent Note: Web client Agent-scope 对等模型与供数通道(agents/scope / blank 复用 / provide) Status: implemented +Archived: 2026-09-30 [English](2026-07-25-web-client-session-scope-and-provide-channel.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-07-30-session-end-seed-log-boundary.i18n.yaml b/.agents/notes/archived/architecture/2026-07-30-session-end-seed-log-boundary.i18n.yaml new file mode 100644 index 0000000000..ee29fbe1a2 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-07-30-session-end-seed-log-boundary.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-30-session-end-seed-log-boundary.md +2026-07-30-session-end-seed-log-boundary.md: d7025aac7a69ffafd4f64a2f73d202e7107452b2 +2026-07-30-session-end-seed-log-boundary.zh.md: 5c6227c5866b8a12506709726a1a0f93a8a6dcdc diff --git a/.agents/notes/implemented/architecture/2026-07-30-session-end-seed-log-boundary.md b/.agents/notes/archived/architecture/2026-07-30-session-end-seed-log-boundary.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-30-session-end-seed-log-boundary.md rename to .agents/notes/archived/architecture/2026-07-30-session-end-seed-log-boundary.md index 9cf7c7f207..d7025aac7a 100644 --- a/.agents/notes/implemented/architecture/2026-07-30-session-end-seed-log-boundary.md +++ b/.agents/notes/archived/architecture/2026-07-30-session-end-seed-log-boundary.md @@ -1,6 +1,7 @@ # Agent Note: the end-seed log boundary Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-30-session-end-seed-log-boundary.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-07-30-session-end-seed-log-boundary.zh.md b/.agents/notes/archived/architecture/2026-07-30-session-end-seed-log-boundary.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-30-session-end-seed-log-boundary.zh.md rename to .agents/notes/archived/architecture/2026-07-30-session-end-seed-log-boundary.zh.md index fdf4ec9de6..5c6227c586 100644 --- a/.agents/notes/implemented/architecture/2026-07-30-session-end-seed-log-boundary.zh.md +++ b/.agents/notes/archived/architecture/2026-07-30-session-end-seed-log-boundary.zh.md @@ -1,6 +1,7 @@ # Agent Note: 种子结束日志边界 Status: implemented +Archived: 2026-09-30 [English](2026-07-30-session-end-seed-log-boundary.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.i18n.yaml b/.agents/notes/archived/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.i18n.yaml new file mode 100644 index 0000000000..f8074a4444 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.md +2026-07-31-claimed-pre-step-inbox-lifecycle.md: 1f5d06b7314e1433880e17cc370a842b153fe287 +2026-07-31-claimed-pre-step-inbox-lifecycle.zh.md: f31790826ea3464ab519a5b21084834390075526 diff --git a/.agents/notes/implemented/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.md b/.agents/notes/archived/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.md rename to .agents/notes/archived/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.md index 3ebb73279e..1f5d06b731 100644 --- a/.agents/notes/implemented/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.md +++ b/.agents/notes/archived/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.md @@ -1,6 +1,7 @@ # Agent Note: Claim inbox input before one pre-step decision Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-31-claimed-pre-step-inbox-lifecycle.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.zh.md b/.agents/notes/archived/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.zh.md rename to .agents/notes/archived/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.zh.md index 809470e5b5..f31790826e 100644 --- a/.agents/notes/implemented/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.zh.md +++ b/.agents/notes/archived/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.zh.md @@ -1,6 +1,7 @@ # Agent Note: 在单一 pre-step 决策前领取 inbox 输入 Status: implemented +Archived: 2026-09-30 [English](2026-07-31-claimed-pre-step-inbox-lifecycle.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-08-04-draft-provider-endpoint-interrogation.i18n.yaml b/.agents/notes/archived/architecture/2026-08-04-draft-provider-endpoint-interrogation.i18n.yaml new file mode 100644 index 0000000000..3dc7899665 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-08-04-draft-provider-endpoint-interrogation.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-08-04-draft-provider-endpoint-interrogation.md +2026-08-04-draft-provider-endpoint-interrogation.md: d6de95d91b4c045d4eca793ca7190f6d148888d4 +2026-08-04-draft-provider-endpoint-interrogation.zh.md: eb72884a7119db36549d64a613a5f9d927a1d30a diff --git a/.agents/notes/implemented/architecture/2026-08-04-draft-provider-endpoint-interrogation.md b/.agents/notes/archived/architecture/2026-08-04-draft-provider-endpoint-interrogation.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-08-04-draft-provider-endpoint-interrogation.md rename to .agents/notes/archived/architecture/2026-08-04-draft-provider-endpoint-interrogation.md index 469ab38b0f..d6de95d91b 100644 --- a/.agents/notes/implemented/architecture/2026-08-04-draft-provider-endpoint-interrogation.md +++ b/.agents/notes/archived/architecture/2026-08-04-draft-provider-endpoint-interrogation.md @@ -1,6 +1,7 @@ # Agent Note: Interrogating a draft provider endpoint Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-04-draft-provider-endpoint-interrogation.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-08-04-draft-provider-endpoint-interrogation.zh.md b/.agents/notes/archived/architecture/2026-08-04-draft-provider-endpoint-interrogation.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-08-04-draft-provider-endpoint-interrogation.zh.md rename to .agents/notes/archived/architecture/2026-08-04-draft-provider-endpoint-interrogation.zh.md index 74c6bc7ed7..eb72884a71 100644 --- a/.agents/notes/implemented/architecture/2026-08-04-draft-provider-endpoint-interrogation.zh.md +++ b/.agents/notes/archived/architecture/2026-08-04-draft-provider-endpoint-interrogation.zh.md @@ -1,6 +1,7 @@ # Agent Note: 询问草稿中的提供方端点 Status: implemented +Archived: 2026-09-30 [English](2026-08-04-draft-provider-endpoint-interrogation.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-08-10-remote-event-delivery.i18n.yaml b/.agents/notes/archived/architecture/2026-08-10-remote-event-delivery.i18n.yaml new file mode 100644 index 0000000000..81e4d917f1 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-08-10-remote-event-delivery.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-08-10-remote-event-delivery.md +2026-08-10-remote-event-delivery.md: c5c68db6e280dcd10344d019d7f961bd0530f965 +2026-08-10-remote-event-delivery.zh.md: 86c1321fd153ea0e062193f95e31aafbf0dd6c46 diff --git a/.agents/notes/implemented/architecture/2026-08-10-remote-event-delivery.md b/.agents/notes/archived/architecture/2026-08-10-remote-event-delivery.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-08-10-remote-event-delivery.md rename to .agents/notes/archived/architecture/2026-08-10-remote-event-delivery.md index 3eaa26fb92..c5c68db6e2 100644 --- a/.agents/notes/implemented/architecture/2026-08-10-remote-event-delivery.md +++ b/.agents/notes/archived/architecture/2026-08-10-remote-event-delivery.md @@ -1,6 +1,7 @@ # Agent Note: Remote event delivery (`ctx.remote.$on`) Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-10-remote-event-delivery.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-08-10-remote-event-delivery.zh.md b/.agents/notes/archived/architecture/2026-08-10-remote-event-delivery.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-08-10-remote-event-delivery.zh.md rename to .agents/notes/archived/architecture/2026-08-10-remote-event-delivery.zh.md index d41589f1b8..86c1321fd1 100644 --- a/.agents/notes/implemented/architecture/2026-08-10-remote-event-delivery.zh.md +++ b/.agents/notes/archived/architecture/2026-08-10-remote-event-delivery.zh.md @@ -1,6 +1,7 @@ # Agent Note: Remote 事件投递(ctx.remote.$on) Status: implemented +Archived: 2026-09-30 [English](2026-08-10-remote-event-delivery.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-08-18-experimental-agent-teams-packages.i18n.yaml b/.agents/notes/archived/architecture/2026-08-18-experimental-agent-teams-packages.i18n.yaml new file mode 100644 index 0000000000..7185f190e5 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-08-18-experimental-agent-teams-packages.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-08-18-experimental-agent-teams-packages.md +2026-08-18-experimental-agent-teams-packages.md: 358eec1f0d51286fe1bfb8b6b7ab71a858c26bef +2026-08-18-experimental-agent-teams-packages.zh.md: f511a2b5ae5560d8cae0f5925e67b7ea00da49c3 diff --git a/.agents/notes/implemented/architecture/2026-08-18-experimental-agent-teams-packages.md b/.agents/notes/archived/architecture/2026-08-18-experimental-agent-teams-packages.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-08-18-experimental-agent-teams-packages.md rename to .agents/notes/archived/architecture/2026-08-18-experimental-agent-teams-packages.md index 92eba148b3..358eec1f0d 100644 --- a/.agents/notes/implemented/architecture/2026-08-18-experimental-agent-teams-packages.md +++ b/.agents/notes/archived/architecture/2026-08-18-experimental-agent-teams-packages.md @@ -1,6 +1,7 @@ # Agent Note: Publish Agent Teams under experimental package names Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-18-experimental-agent-teams-packages.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-08-18-experimental-agent-teams-packages.zh.md b/.agents/notes/archived/architecture/2026-08-18-experimental-agent-teams-packages.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-08-18-experimental-agent-teams-packages.zh.md rename to .agents/notes/archived/architecture/2026-08-18-experimental-agent-teams-packages.zh.md index 6f4d004a78..f511a2b5ae 100644 --- a/.agents/notes/implemented/architecture/2026-08-18-experimental-agent-teams-packages.zh.md +++ b/.agents/notes/archived/architecture/2026-08-18-experimental-agent-teams-packages.zh.md @@ -1,6 +1,7 @@ # Agent Note: 以实验性包名发布 Agent Teams Status: implemented +Archived: 2026-09-30 [English](2026-08-18-experimental-agent-teams-packages.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-08-28-subprocess-native-containment.i18n.yaml b/.agents/notes/archived/architecture/2026-08-28-subprocess-native-containment.i18n.yaml new file mode 100644 index 0000000000..4ad71c6c07 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-08-28-subprocess-native-containment.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-08-28-subprocess-native-containment.md +2026-08-28-subprocess-native-containment.md: ea47118fa7da79bc56bfdba9fe08eb91d04c6a51 +2026-08-28-subprocess-native-containment.zh.md: 750315d4b406cd0a802b91314e4cd4a77a19a99e diff --git a/.agents/notes/implemented/architecture/2026-08-28-subprocess-native-containment.md b/.agents/notes/archived/architecture/2026-08-28-subprocess-native-containment.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-08-28-subprocess-native-containment.md rename to .agents/notes/archived/architecture/2026-08-28-subprocess-native-containment.md index 88acee2d41..ea47118fa7 100644 --- a/.agents/notes/implemented/architecture/2026-08-28-subprocess-native-containment.md +++ b/.agents/notes/archived/architecture/2026-08-28-subprocess-native-containment.md @@ -1,6 +1,7 @@ # Agent Note: Native owners contain escaped subprocess descendants Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-28-subprocess-native-containment.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-08-28-subprocess-native-containment.zh.md b/.agents/notes/archived/architecture/2026-08-28-subprocess-native-containment.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-08-28-subprocess-native-containment.zh.md rename to .agents/notes/archived/architecture/2026-08-28-subprocess-native-containment.zh.md index 53406f9953..750315d4b4 100644 --- a/.agents/notes/implemented/architecture/2026-08-28-subprocess-native-containment.zh.md +++ b/.agents/notes/archived/architecture/2026-08-28-subprocess-native-containment.zh.md @@ -1,6 +1,7 @@ # Agent Note: 原生 owner 收容逃逸的 subprocess 后代 Status: implemented +Archived: 2026-09-30 [English](2026-08-28-subprocess-native-containment.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-01-jobs-absorb-activity-record.i18n.yaml b/.agents/notes/archived/architecture/2026-09-01-jobs-absorb-activity-record.i18n.yaml new file mode 100644 index 0000000000..47ff4f1425 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-01-jobs-absorb-activity-record.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-01-jobs-absorb-activity-record.md +2026-09-01-jobs-absorb-activity-record.md: e5543737155cc75f62485d8b125a7fa178e63ca0 +2026-09-01-jobs-absorb-activity-record.zh.md: 1f6e283c7924e2a30cc6f617396e4e0c9852e7e0 diff --git a/.agents/notes/implemented/architecture/2026-09-01-jobs-absorb-activity-record.md b/.agents/notes/archived/architecture/2026-09-01-jobs-absorb-activity-record.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-01-jobs-absorb-activity-record.md rename to .agents/notes/archived/architecture/2026-09-01-jobs-absorb-activity-record.md index 508608f7eb..e554373715 100644 --- a/.agents/notes/implemented/architecture/2026-09-01-jobs-absorb-activity-record.md +++ b/.agents/notes/archived/architecture/2026-09-01-jobs-absorb-activity-record.md @@ -1,6 +1,7 @@ # Agent Note: The job registry absorbs the observation record; the standalone activity seam is removed Status: implemented +Archived: 2026-09-30 Superseded: the record declaration (`JobStart.record`, `RecordingJob`, `readRecord`, `pumpJobOutput`) and the split wire (`SessionJob.record` on the session control stream, `ctx.jobOutput`) described below were consolidated into one output ring and direct operations on `ctx.jobs` — see [the jobs seam consolidation](2026-09-03-jobs-seam-consolidation.md). The argument for absorbing the standalone activity seam into `ctx.jobs` still holds. diff --git a/.agents/notes/implemented/architecture/2026-09-01-jobs-absorb-activity-record.zh.md b/.agents/notes/archived/architecture/2026-09-01-jobs-absorb-activity-record.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-01-jobs-absorb-activity-record.zh.md rename to .agents/notes/archived/architecture/2026-09-01-jobs-absorb-activity-record.zh.md index 2c157d9510..1f6e283c79 100644 --- a/.agents/notes/implemented/architecture/2026-09-01-jobs-absorb-activity-record.zh.md +++ b/.agents/notes/archived/architecture/2026-09-01-jobs-absorb-activity-record.zh.md @@ -1,6 +1,7 @@ # Agent Note:job 注册表吸收观测 record;独立的 activity seam 被移除 Status: implemented +Archived: 2026-09-30 Superseded:下文描述的 record 声明(`JobStart.record`、`RecordingJob`、`readRecord`、`pumpJobOutput`)与拆分的线路(会话控制流上的 `SessionJob.record`、`ctx.jobOutput`)已收敛为一个输出环与 `ctx.jobs` 上的直接操作——见 [jobs seam 收敛](2026-09-03-jobs-seam-consolidation.zh.md)。把独立 activity seam 吸收进 `ctx.jobs` 的论证仍然成立。 diff --git a/.agents/notes/archived/architecture/2026-09-02-projcache-cross-version-read-compat.i18n.yaml b/.agents/notes/archived/architecture/2026-09-02-projcache-cross-version-read-compat.i18n.yaml new file mode 100644 index 0000000000..fa83ba82e7 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-02-projcache-cross-version-read-compat.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-02-projcache-cross-version-read-compat.md +2026-09-02-projcache-cross-version-read-compat.md: 22722e7bb41c2d06ffbdf433aad10a9647abce3f +2026-09-02-projcache-cross-version-read-compat.zh.md: a928c40bfa6d294b2ed927a381528ccc260692ea diff --git a/.agents/notes/implemented/architecture/2026-09-02-projcache-cross-version-read-compat.md b/.agents/notes/archived/architecture/2026-09-02-projcache-cross-version-read-compat.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-02-projcache-cross-version-read-compat.md rename to .agents/notes/archived/architecture/2026-09-02-projcache-cross-version-read-compat.md index 160c5c796b..22722e7bb4 100644 --- a/.agents/notes/implemented/architecture/2026-09-02-projcache-cross-version-read-compat.md +++ b/.agents/notes/archived/architecture/2026-09-02-projcache-cross-version-read-compat.md @@ -1,6 +1,7 @@ # Agent Note: Projection-cache predecessor recovery and Session-format binding (session_projcache v3-v6 → v7) Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-02-projcache-cross-version-read-compat.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-02-projcache-cross-version-read-compat.zh.md b/.agents/notes/archived/architecture/2026-09-02-projcache-cross-version-read-compat.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-02-projcache-cross-version-read-compat.zh.md rename to .agents/notes/archived/architecture/2026-09-02-projcache-cross-version-read-compat.zh.md index cff7742f6c..a928c40bfa 100644 --- a/.agents/notes/implemented/architecture/2026-09-02-projcache-cross-version-read-compat.zh.md +++ b/.agents/notes/archived/architecture/2026-09-02-projcache-cross-version-read-compat.zh.md @@ -1,6 +1,7 @@ # Agent Note: 投影缓存前代恢复与 Session 格式绑定(session_projcache v3-v6 → v7) Status: implemented +Archived: 2026-09-30 [English](2026-09-02-projcache-cross-version-read-compat.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-05-package-manifest-types.i18n.yaml b/.agents/notes/archived/architecture/2026-09-05-package-manifest-types.i18n.yaml new file mode 100644 index 0000000000..1dcf3b2d34 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-05-package-manifest-types.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-05-package-manifest-types.md +2026-09-05-package-manifest-types.md: 63c2dd833508d2246ba818b584eabe5c02846c07 +2026-09-05-package-manifest-types.zh.md: 794983e05b914705eb431d204470cd67d512fab4 diff --git a/.agents/notes/implemented/architecture/2026-09-05-package-manifest-types.md b/.agents/notes/archived/architecture/2026-09-05-package-manifest-types.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-05-package-manifest-types.md rename to .agents/notes/archived/architecture/2026-09-05-package-manifest-types.md index dc018ba019..63c2dd8335 100644 --- a/.agents/notes/implemented/architecture/2026-09-05-package-manifest-types.md +++ b/.agents/notes/archived/architecture/2026-09-05-package-manifest-types.md @@ -1,6 +1,7 @@ # Agent Note: Package manifest declaration ownership Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-05-package-manifest-types.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-05-package-manifest-types.zh.md b/.agents/notes/archived/architecture/2026-09-05-package-manifest-types.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-05-package-manifest-types.zh.md rename to .agents/notes/archived/architecture/2026-09-05-package-manifest-types.zh.md index 8fd323bfe6..794983e05b 100644 --- a/.agents/notes/implemented/architecture/2026-09-05-package-manifest-types.zh.md +++ b/.agents/notes/archived/architecture/2026-09-05-package-manifest-types.zh.md @@ -1,6 +1,7 @@ # Agent Note: Package manifest 声明归属 Status: implemented +Archived: 2026-09-30 [English](2026-09-05-package-manifest-types.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-05-sidebar-tab-types-and-navigation.i18n.yaml b/.agents/notes/archived/architecture/2026-09-05-sidebar-tab-types-and-navigation.i18n.yaml new file mode 100644 index 0000000000..765ea074b9 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-05-sidebar-tab-types-and-navigation.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-05-sidebar-tab-types-and-navigation.md +2026-09-05-sidebar-tab-types-and-navigation.md: a2eaed465332d1dc9adc4a770554ecac69535920 +2026-09-05-sidebar-tab-types-and-navigation.zh.md: 60d0fc9ae20e6e234939a2cf45233a5c6bd602e9 diff --git a/.agents/notes/implemented/architecture/2026-09-05-sidebar-tab-types-and-navigation.md b/.agents/notes/archived/architecture/2026-09-05-sidebar-tab-types-and-navigation.md similarity index 91% rename from .agents/notes/implemented/architecture/2026-09-05-sidebar-tab-types-and-navigation.md rename to .agents/notes/archived/architecture/2026-09-05-sidebar-tab-types-and-navigation.md index 599ce36ed4..a2eaed4653 100644 --- a/.agents/notes/implemented/architecture/2026-09-05-sidebar-tab-types-and-navigation.md +++ b/.agents/notes/archived/architecture/2026-09-05-sidebar-tab-types-and-navigation.md @@ -1,6 +1,7 @@ # Agent Note: Right Sidebar tab types and navigation Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-05-sidebar-tab-types-and-navigation.zh.md) @@ -72,7 +73,7 @@ interface SidebarRightTabParamsMap {} // key: kind — a page type declar `openResource` accepts the union of every declared resource shape and `openTab` the shape declared for `K`; a body narrows `navigation.params` by the protocol or kind it knows it serves. Parameters belong to the resource type rather than to the viewer because a line number is a fact about a file location, not about the text preview, and any type that claims `file` addresses receives the same shape. Values must be JSON-serializable, and a record must be rebuildable from address and parameters alone, because undo, redo, reload, and HMR rebuild tabs after the opener is gone. -Beside the two opens, the face carries `close(tabId)`, `active()`, `isExpanded()`, `toggleExpanded()`, and four operational methods — `focus(tabId)`, `split(paneId?)` (returning the new pane, or `undefined` when the pane budget or the width rule forbids the split, recording nothing), `float(tabId, rect?)`, and `dock(paneId)` — each recording one history entry and a no-op on a missing target or one already in the requested state. There is no layout snapshot, no subscription, and no lookup by address: the face grants control over the layout, not a view of it. The seat publishes its binding — its session, its store's actions, and its surface — while mounted; a command on the public face acts on the mounted session and throws with no mounted session surface. A tab's own actions reach their session's own store instead: the slot runtime mints one store per session, the plugin adopts each as it is minted, and the controller routes by session id, so an action fired after the user switched sessions still lands, and does nothing for a session whose store was never minted. +Beside the two opens, the face carries `close(tabId)`, `active()`, `isExpanded()`, `toggleExpanded()`, and four operational methods — `focus(tabId)`, `split(paneId?)` (returning the new pane, or `undefined` when the pane budget or the width rule forbids the split, recording nothing), `float(tabId, rect?)`, and `dock(paneId)` — each recording one history entry and a no-op on a missing target or one already in the requested state. There is no layout snapshot, no subscription, and no lookup by address: the face grants control over the layout, not a view of it. The plugin names the Session on screen — the selected Session while the Conversation fills the main column — from the Session selection and the main panel, before React renders either change, and publishes it as `mounted`; a command on the public face acts on that Session through its adopted store and throws when no Session is on screen or its store has not been minted. The seat reports only what it renders with: the room its docking kit measured and whether its frame width presents the panel fullscreen automatically. A tab's own actions reach their session's own store instead: the slot runtime mints one store per session, the plugin adopts each as it is minted, and the controller routes by session id, so an action fired after the user switched sessions still lands, and does nothing for a session whose store was never minted. ### Addresses @@ -100,6 +101,8 @@ The conversation's `openFile(path, { line? })` — tool-row path links, produced **Slot priorities to express an extension taking over a builtin, then registry-minted slot keys.** The first attempt had the overriding type register its body at a lower slot priority through an exported constant — a value import across dynamic plugins, and a second rule system (slot priority) standing in for the registry's. The second attempt had the registry mint a key per registration and return it from `register()`, which made registration a two-step dance whose ordering mattered. Letting the implementation declare its own `id` — required, unique, the same string it registers its seats under — needs no constant, no minting, and no ordering, and gives the registry the identity it needs to reject duplicates. +**A binding the seat publishes from its own effects.** The first form had the mounted seat publish its session, actions, and surface after each commit and release them when it left. React runs a commit's passive effects in tree order, and the frame renders the Conversation column before the right column, so in a commit that switched Sessions or returned from a global panel a Conversation component opening content from its effect ran while no seat was bound — after the departing seat's release and before the arriving seat's bind — and the open threw. The Session selection and the main panel change before React renders, so deriving the on-screen Session from them removes that ordering dependency. The seat still measures pane room, because only its rendered kit can. + ## Consequences - A type is one static object plus one or two keyed seat registrations; its occurrence information is read through injected `useTabInfo()`. The framework grows no per-type API surface, and a type shipped from outside this repository imports only types from the Sidebar package. @@ -116,5 +119,5 @@ The conversation's `openFile(path, { line? })` — tool-row path links, produced ## Deferred - A navigation protocol beyond `sidebar://`: sub-routes within a page, naming an implementation, and the ecosystem-facing rules for other navigation schemes. -- Opening into a session other than the one on screen from the public face, which acts on the mounted session only; a tab's own actions already act on their tab's session. +- Opening into a session other than the one on screen from the public face, which acts on the on-screen Session only; a tab's own actions already act on their tab's session. - A localized message when an open fails from the conversation; the failure is currently the thrown error's text. diff --git a/.agents/notes/implemented/architecture/2026-09-05-sidebar-tab-types-and-navigation.zh.md b/.agents/notes/archived/architecture/2026-09-05-sidebar-tab-types-and-navigation.zh.md similarity index 91% rename from .agents/notes/implemented/architecture/2026-09-05-sidebar-tab-types-and-navigation.zh.md rename to .agents/notes/archived/architecture/2026-09-05-sidebar-tab-types-and-navigation.zh.md index e4e8de5a38..60d0fc9ae2 100644 --- a/.agents/notes/implemented/architecture/2026-09-05-sidebar-tab-types-and-navigation.zh.md +++ b/.agents/notes/archived/architecture/2026-09-05-sidebar-tab-types-and-navigation.zh.md @@ -1,6 +1,7 @@ # Agent Note: 右侧 Sidebar 的 tab 类型与导航 Status: implemented +Archived: 2026-09-30 [English](2026-09-05-sidebar-tab-types-and-navigation.md) | 中文 @@ -72,7 +73,7 @@ interface SidebarRightTabParamsMap {} // key: kind — a page type declar `openResource` 接受所有已声明资源形状的联合,`openTab` 接受为 `K` 声明的形状;正文按自己所服务的协议或 kind 收窄 `navigation.params`。参数属于资源类型而非查看器,因为行号是关于文件位置的事实,不是关于文本预览的,任何认领 `file` 地址的类型收到同一形状。值必须可 JSON 序列化,一条记录必须只凭地址与参数就能重建,因为撤销、重做、刷新与 HMR 都在开启方已不在时重建 tab。 -除两种打开外,该面还有 `close(tabId)`、`active()`、`isExpanded()`、`toggleExpanded()`,以及四个操作型方法——`focus(tabId)`、`split(paneId?)`(返回新格,预算或宽度规则不允许分栏时返回 `undefined` 且不记账)、`float(tabId, rect?)` 与 `dock(paneId)`——每个记一条历史,目标不存在或已在目标态时为 no-op。没有布局快照、没有订阅、没有按地址查找:该面给的是对布局的控制权,不是布局的视图。座位挂载期间发布其绑定——自己的会话、其 store 的 action 与其面;公开面上的命令作用于已挂载会话,没有已挂载会话面时抛错。tab 自己的动作则到达其会话自己的 store:slot 运行时每个会话铸一个 store,插件在铸出时逐个收养,控制器按会话 id 路由,因此用户切换会话之后触发的动作照样落地,而 store 从未铸出的会话什么也不做。 +除两种打开外,该面还有 `close(tabId)`、`active()`、`isExpanded()`、`toggleExpanded()`,以及四个操作型方法——`focus(tabId)`、`split(paneId?)`(返回新格,预算或宽度规则不允许分栏时返回 `undefined` 且不记账)、`float(tabId, rect?)` 与 `dock(paneId)`——每个记一条历史,目标不存在或已在目标态时为 no-op。没有布局快照、没有订阅、没有按地址查找:该面给的是对布局的控制权,不是布局的视图。插件依据会话选择与主面板确定屏上会话——Conversation 占据主栏时的选中会话——并在 React 渲染这两者的变化之前将其发布为 `mounted`;公开面上的命令经该会话被收养的 store 作用于它,没有会话在屏上或其 store 尚未铸出时抛错。座位只上报它渲染时依据的事实:停靠套件测得的空间,以及框架宽度是否让面板自动全屏。tab 自己的动作则到达其会话自己的 store:slot 运行时每个会话铸一个 store,插件在铸出时逐个收养,控制器按会话 id 路由,因此用户切换会话之后触发的动作照样落地,而 store 从未铸出的会话什么也不做。 ### 地址 @@ -100,6 +101,8 @@ interface SidebarRightTabParamsMap {} // key: kind — a page type declar **用 Slot 优先级表达 extension 接管 builtin,随后是注册表铸造的坑位键。** 第一次尝试让覆盖方经一个导出常量以更低的 Slot 优先级注册正文——这是动态插件间的值引用,也是拿第二套规则(Slot 优先级)替注册表的规则站台。第二次尝试让注册表为每次注册铸一个键并从 `register()` 返回,这把注册变成了两步且顺序敏感的舞步。让实现自己声明 `id`——必填、唯一、与它注册坑位所用的同一个串——既不需要常量,也不需要铸键与顺序,还给了注册表拒绝重复所需的身份。 +**由座位在自己的 effect 里发布绑定。** 最初的形式由已挂载的座位在每次提交后发布自己的会话、action 与面,离开时释放。React 按树序运行一次提交的被动 effect,而框架先渲染 Conversation 列、后渲染右栏,于是在切换会话或从全局面板返回的那次提交里,从自己 effect 打开内容的 Conversation 组件运行时没有任何座位已绑定——在离开的座位释放之后、到来的座位绑定之前——打开随之抛错。会话选择与主面板都在 React 渲染之前变化,从它们推导屏上会话便消除了这一顺序依赖。分栏空间仍由座位测量,因为只有它渲染出的套件能测。 + ## Consequences - 一个类型 = 一个静态对象 + 一到两个 keyed 坑位注册;其实例信息通过注入的 `useTabInfo()` 读取。框架不长任何按类型的 API 面,仓外类型从 Sidebar 包只引类型。 @@ -116,5 +119,5 @@ interface SidebarRightTabParamsMap {} // key: kind — a page type declar ## Deferred - `sidebar://` 之外的导航协议:页内子路由、点名实现、以及面向生态的其它导航 scheme 规则。 -- 从公开面往屏上会话之外的会话里打开;公开面只作用于已挂载的会话,而 tab 自己的动作已作用于其所在会话。 +- 从公开面往屏上会话之外的会话里打开;公开面只作用于屏上会话,而 tab 自己的动作已作用于其所在会话。 - 从会话区打开失败时的本地化提示;目前是抛错文本本身。 diff --git a/.agents/notes/archived/architecture/2026-09-06-embedded-stream-record-readers.i18n.yaml b/.agents/notes/archived/architecture/2026-09-06-embedded-stream-record-readers.i18n.yaml new file mode 100644 index 0000000000..79b5865cfc --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-06-embedded-stream-record-readers.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-06-embedded-stream-record-readers.md +2026-09-06-embedded-stream-record-readers.md: 88a15f50f8d122676b1b5d2c7df39aa7b7e7b331 +2026-09-06-embedded-stream-record-readers.zh.md: a66dbc69c788a05569859de7de4bc43b985183ff diff --git a/.agents/notes/implemented/architecture/2026-09-06-embedded-stream-record-readers.md b/.agents/notes/archived/architecture/2026-09-06-embedded-stream-record-readers.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-06-embedded-stream-record-readers.md rename to .agents/notes/archived/architecture/2026-09-06-embedded-stream-record-readers.md index efad86a4f9..88a15f50f8 100644 --- a/.agents/notes/implemented/architecture/2026-09-06-embedded-stream-record-readers.md +++ b/.agents/notes/archived/architecture/2026-09-06-embedded-stream-record-readers.md @@ -1,6 +1,7 @@ # Agent Note: Embedded Assistant stream consumers read compact records Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-06-embedded-stream-record-readers.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-06-embedded-stream-record-readers.zh.md b/.agents/notes/archived/architecture/2026-09-06-embedded-stream-record-readers.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-06-embedded-stream-record-readers.zh.md rename to .agents/notes/archived/architecture/2026-09-06-embedded-stream-record-readers.zh.md index f7131a2717..a66dbc69c7 100644 --- a/.agents/notes/implemented/architecture/2026-09-06-embedded-stream-record-readers.zh.md +++ b/.agents/notes/archived/architecture/2026-09-06-embedded-stream-record-readers.zh.md @@ -1,6 +1,7 @@ # Agent Note: 内嵌 Assistant 流的消费方直接读取紧凑记录 Status: implemented +Archived: 2026-09-30 [English](2026-09-06-embedded-stream-record-readers.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-07-sidebar-responsive-tab-info.i18n.yaml b/.agents/notes/archived/architecture/2026-09-07-sidebar-responsive-tab-info.i18n.yaml new file mode 100644 index 0000000000..1e98674ef4 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-07-sidebar-responsive-tab-info.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-07-sidebar-responsive-tab-info.md +2026-09-07-sidebar-responsive-tab-info.md: e47ad9cd1a9b24b783d5acec780f0a2af6303727 +2026-09-07-sidebar-responsive-tab-info.zh.md: d2e3c84b76ffad6f52f7db1d13158ed51e3d5624 diff --git a/.agents/notes/implemented/architecture/2026-09-07-sidebar-responsive-tab-info.md b/.agents/notes/archived/architecture/2026-09-07-sidebar-responsive-tab-info.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-07-sidebar-responsive-tab-info.md rename to .agents/notes/archived/architecture/2026-09-07-sidebar-responsive-tab-info.md index 96f7f047d0..e47ad9cd1a 100644 --- a/.agents/notes/implemented/architecture/2026-09-07-sidebar-responsive-tab-info.md +++ b/.agents/notes/archived/architecture/2026-09-07-sidebar-responsive-tab-info.md @@ -1,6 +1,7 @@ # Agent Note: Responsive Sidebar and injected tab information Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-07-sidebar-responsive-tab-info.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-07-sidebar-responsive-tab-info.zh.md b/.agents/notes/archived/architecture/2026-09-07-sidebar-responsive-tab-info.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-07-sidebar-responsive-tab-info.zh.md rename to .agents/notes/archived/architecture/2026-09-07-sidebar-responsive-tab-info.zh.md index f020068e71..d2e3c84b76 100644 --- a/.agents/notes/implemented/architecture/2026-09-07-sidebar-responsive-tab-info.zh.md +++ b/.agents/notes/archived/architecture/2026-09-07-sidebar-responsive-tab-info.zh.md @@ -1,6 +1,7 @@ # Agent Note: 响应式 Sidebar 与注入的标签信息 Status: implemented +Archived: 2026-09-30 [English](2026-09-07-sidebar-responsive-tab-info.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-07-workspace-files-dual-face-package.i18n.yaml b/.agents/notes/archived/architecture/2026-09-07-workspace-files-dual-face-package.i18n.yaml new file mode 100644 index 0000000000..a7346e77f3 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-07-workspace-files-dual-face-package.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-07-workspace-files-dual-face-package.md +2026-09-07-workspace-files-dual-face-package.md: dbefb894291ac7c0b3e7847c75a7bd4d19c19d3e +2026-09-07-workspace-files-dual-face-package.zh.md: c10a46736982a2b326bcedae11723feef6871476 diff --git a/.agents/notes/implemented/architecture/2026-09-07-workspace-files-dual-face-package.md b/.agents/notes/archived/architecture/2026-09-07-workspace-files-dual-face-package.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-07-workspace-files-dual-face-package.md rename to .agents/notes/archived/architecture/2026-09-07-workspace-files-dual-face-package.md index adc900865c..dbefb89429 100644 --- a/.agents/notes/implemented/architecture/2026-09-07-workspace-files-dual-face-package.md +++ b/.agents/notes/archived/architecture/2026-09-07-workspace-files-dual-face-package.md @@ -1,6 +1,7 @@ # Agent Note: Workspace files as one dual-face API package Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-07-workspace-files-dual-face-package.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-07-workspace-files-dual-face-package.zh.md b/.agents/notes/archived/architecture/2026-09-07-workspace-files-dual-face-package.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-07-workspace-files-dual-face-package.zh.md rename to .agents/notes/archived/architecture/2026-09-07-workspace-files-dual-face-package.zh.md index ccfa604172..c10a467369 100644 --- a/.agents/notes/implemented/architecture/2026-09-07-workspace-files-dual-face-package.zh.md +++ b/.agents/notes/archived/architecture/2026-09-07-workspace-files-dual-face-package.zh.md @@ -1,6 +1,7 @@ # Agent Note: 工作区文件统一为 API 双面包 Status: implemented +Archived: 2026-09-30 [English](2026-09-07-workspace-files-dual-face-package.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-08-global-main-panels.i18n.yaml b/.agents/notes/archived/architecture/2026-09-08-global-main-panels.i18n.yaml new file mode 100644 index 0000000000..f3b0953a4d --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-08-global-main-panels.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-08-global-main-panels.md +2026-09-08-global-main-panels.md: 86336e694ea89bcb219b1fb927f92a5c72ee2630 +2026-09-08-global-main-panels.zh.md: 89743b456c7aad101705c2d9264e63449222b29a diff --git a/.agents/notes/implemented/architecture/2026-09-08-global-main-panels.md b/.agents/notes/archived/architecture/2026-09-08-global-main-panels.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-08-global-main-panels.md rename to .agents/notes/archived/architecture/2026-09-08-global-main-panels.md index 63530a6b49..86336e694e 100644 --- a/.agents/notes/implemented/architecture/2026-09-08-global-main-panels.md +++ b/.agents/notes/archived/architecture/2026-09-08-global-main-panels.md @@ -1,6 +1,7 @@ # Agent Note: Global main panels without default UI additions Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-08-global-main-panels.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-08-global-main-panels.zh.md b/.agents/notes/archived/architecture/2026-09-08-global-main-panels.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-08-global-main-panels.zh.md rename to .agents/notes/archived/architecture/2026-09-08-global-main-panels.zh.md index 776787c3de..89743b456c 100644 --- a/.agents/notes/implemented/architecture/2026-09-08-global-main-panels.zh.md +++ b/.agents/notes/archived/architecture/2026-09-08-global-main-panels.zh.md @@ -1,6 +1,7 @@ # Agent Note: 不增加默认界面的全局主面板 Status: implemented +Archived: 2026-09-30 [English](2026-09-08-global-main-panels.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-09-desktop-build-release-validation.i18n.yaml b/.agents/notes/archived/architecture/2026-09-09-desktop-build-release-validation.i18n.yaml new file mode 100644 index 0000000000..7e7b1757ef --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-09-desktop-build-release-validation.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-09-desktop-build-release-validation.md +2026-09-09-desktop-build-release-validation.md: a267cd21fe3cbc9d008aac226a873fd9624e69a5 +2026-09-09-desktop-build-release-validation.zh.md: e66dd0863589c23e479521543c5a2afd11659408 diff --git a/.agents/notes/implemented/architecture/2026-09-09-desktop-build-release-validation.md b/.agents/notes/archived/architecture/2026-09-09-desktop-build-release-validation.md similarity index 98% rename from .agents/notes/implemented/architecture/2026-09-09-desktop-build-release-validation.md rename to .agents/notes/archived/architecture/2026-09-09-desktop-build-release-validation.md index 23aeeaa98d..a267cd21fe 100644 --- a/.agents/notes/implemented/architecture/2026-09-09-desktop-build-release-validation.md +++ b/.agents/notes/archived/architecture/2026-09-09-desktop-build-release-validation.md @@ -1,6 +1,7 @@ # Agent Note: Verify Desktop release compatibility during packaging Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-09-desktop-build-release-validation.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-09-desktop-build-release-validation.zh.md b/.agents/notes/archived/architecture/2026-09-09-desktop-build-release-validation.zh.md similarity index 98% rename from .agents/notes/implemented/architecture/2026-09-09-desktop-build-release-validation.zh.md rename to .agents/notes/archived/architecture/2026-09-09-desktop-build-release-validation.zh.md index 266bca5bbd..e66dd08635 100644 --- a/.agents/notes/implemented/architecture/2026-09-09-desktop-build-release-validation.zh.md +++ b/.agents/notes/archived/architecture/2026-09-09-desktop-build-release-validation.zh.md @@ -1,6 +1,7 @@ # Agent Note: 在打包时验证 Desktop 发布兼容性 Status: implemented +Archived: 2026-09-30 [English](2026-09-09-desktop-build-release-validation.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-09-desktop-immediate-window-and-direct-start.i18n.yaml b/.agents/notes/archived/architecture/2026-09-09-desktop-immediate-window-and-direct-start.i18n.yaml new file mode 100644 index 0000000000..db75b0640a --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-09-desktop-immediate-window-and-direct-start.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-09-desktop-immediate-window-and-direct-start.md +2026-09-09-desktop-immediate-window-and-direct-start.md: 0219a441dc4967cbfbd68b8902c93ba1b50b9b6b +2026-09-09-desktop-immediate-window-and-direct-start.zh.md: 85bbfc7ee484d7ea9da9153bec844cc276a8682a diff --git a/.agents/notes/implemented/architecture/2026-09-09-desktop-immediate-window-and-direct-start.md b/.agents/notes/archived/architecture/2026-09-09-desktop-immediate-window-and-direct-start.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-09-desktop-immediate-window-and-direct-start.md rename to .agents/notes/archived/architecture/2026-09-09-desktop-immediate-window-and-direct-start.md index e7ccf9b745..0219a441dc 100644 --- a/.agents/notes/implemented/architecture/2026-09-09-desktop-immediate-window-and-direct-start.md +++ b/.agents/notes/archived/architecture/2026-09-09-desktop-immediate-window-and-direct-start.md @@ -1,6 +1,7 @@ # Agent Note: Show the Desktop window before starting the Host Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-09-desktop-immediate-window-and-direct-start.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-09-desktop-immediate-window-and-direct-start.zh.md b/.agents/notes/archived/architecture/2026-09-09-desktop-immediate-window-and-direct-start.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-09-desktop-immediate-window-and-direct-start.zh.md rename to .agents/notes/archived/architecture/2026-09-09-desktop-immediate-window-and-direct-start.zh.md index c59cc91f00..85bbfc7ee4 100644 --- a/.agents/notes/implemented/architecture/2026-09-09-desktop-immediate-window-and-direct-start.zh.md +++ b/.agents/notes/archived/architecture/2026-09-09-desktop-immediate-window-and-direct-start.zh.md @@ -1,6 +1,7 @@ # Agent Note: Show the Desktop window before starting the Host Status: implemented +Archived: 2026-09-30 [English](2026-09-09-desktop-immediate-window-and-direct-start.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-09-plugin-management-in-the-web-sidebar.i18n.yaml b/.agents/notes/archived/architecture/2026-09-09-plugin-management-in-the-web-sidebar.i18n.yaml new file mode 100644 index 0000000000..a9e0c9b57d --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-09-plugin-management-in-the-web-sidebar.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-09-plugin-management-in-the-web-sidebar.md +2026-09-09-plugin-management-in-the-web-sidebar.md: cc501473734b1b99fef33a42e76124fcbeb16bf5 +2026-09-09-plugin-management-in-the-web-sidebar.zh.md: c09a1c762d25a0a07e70a86a1baef0c9333e7087 diff --git a/.agents/notes/implemented/architecture/2026-09-09-plugin-management-in-the-web-sidebar.md b/.agents/notes/archived/architecture/2026-09-09-plugin-management-in-the-web-sidebar.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-09-plugin-management-in-the-web-sidebar.md rename to .agents/notes/archived/architecture/2026-09-09-plugin-management-in-the-web-sidebar.md index ba359aeefe..cc50147373 100644 --- a/.agents/notes/implemented/architecture/2026-09-09-plugin-management-in-the-web-sidebar.md +++ b/.agents/notes/archived/architecture/2026-09-09-plugin-management-in-the-web-sidebar.md @@ -1,6 +1,7 @@ # Agent Note: Plugin management moves to the Web sidebar Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-09-plugin-management-in-the-web-sidebar.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-09-plugin-management-in-the-web-sidebar.zh.md b/.agents/notes/archived/architecture/2026-09-09-plugin-management-in-the-web-sidebar.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-09-plugin-management-in-the-web-sidebar.zh.md rename to .agents/notes/archived/architecture/2026-09-09-plugin-management-in-the-web-sidebar.zh.md index 91664deeb4..c09a1c762d 100644 --- a/.agents/notes/implemented/architecture/2026-09-09-plugin-management-in-the-web-sidebar.zh.md +++ b/.agents/notes/archived/architecture/2026-09-09-plugin-management-in-the-web-sidebar.zh.md @@ -1,6 +1,7 @@ # Agent Note: 插件管理移到 Web 侧栏 Status: implemented +Archived: 2026-09-30 [English](2026-09-09-plugin-management-in-the-web-sidebar.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-10-command-identities-and-composer-file-action.i18n.yaml b/.agents/notes/archived/architecture/2026-09-10-command-identities-and-composer-file-action.i18n.yaml new file mode 100644 index 0000000000..d48e6efb3f --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-10-command-identities-and-composer-file-action.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-10-command-identities-and-composer-file-action.md +2026-09-10-command-identities-and-composer-file-action.md: 516fcb38753026b6318e5bea008897ef4313c778 +2026-09-10-command-identities-and-composer-file-action.zh.md: cf75610a507d8256344017b77b4af8c435a36f96 diff --git a/.agents/notes/implemented/architecture/2026-09-10-command-identities-and-composer-file-action.md b/.agents/notes/archived/architecture/2026-09-10-command-identities-and-composer-file-action.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-10-command-identities-and-composer-file-action.md rename to .agents/notes/archived/architecture/2026-09-10-command-identities-and-composer-file-action.md index 696c3486c5..516fcb3875 100644 --- a/.agents/notes/implemented/architecture/2026-09-10-command-identities-and-composer-file-action.md +++ b/.agents/notes/archived/architecture/2026-09-10-command-identities-and-composer-file-action.md @@ -1,6 +1,7 @@ # Agent Note: Command identities and composer-owned File action Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-10-command-identities-and-composer-file-action.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-10-command-identities-and-composer-file-action.zh.md b/.agents/notes/archived/architecture/2026-09-10-command-identities-and-composer-file-action.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-10-command-identities-and-composer-file-action.zh.md rename to .agents/notes/archived/architecture/2026-09-10-command-identities-and-composer-file-action.zh.md index 2ce803bad5..cf75610a50 100644 --- a/.agents/notes/implemented/architecture/2026-09-10-command-identities-and-composer-file-action.zh.md +++ b/.agents/notes/archived/architecture/2026-09-10-command-identities-and-composer-file-action.zh.md @@ -1,6 +1,7 @@ # Agent Note: 命令标识与输入框拥有的文件动作 Status: implemented +Archived: 2026-09-30 [English](2026-09-10-command-identities-and-composer-file-action.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-10-windows-native-installer-pages.i18n.yaml b/.agents/notes/archived/architecture/2026-09-10-windows-native-installer-pages.i18n.yaml new file mode 100644 index 0000000000..d796ff3482 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-10-windows-native-installer-pages.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-10-windows-native-installer-pages.md +2026-09-10-windows-native-installer-pages.md: b801c512c8b2603f82c613bcdcbdfbe569daf303 +2026-09-10-windows-native-installer-pages.zh.md: 926665e83ea1c5187d1808d4281cc5291e320f7b diff --git a/.agents/notes/implemented/architecture/2026-09-10-windows-native-installer-pages.md b/.agents/notes/archived/architecture/2026-09-10-windows-native-installer-pages.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-10-windows-native-installer-pages.md rename to .agents/notes/archived/architecture/2026-09-10-windows-native-installer-pages.md index 93aa483962..b801c512c8 100644 --- a/.agents/notes/implemented/architecture/2026-09-10-windows-native-installer-pages.md +++ b/.agents/notes/archived/architecture/2026-09-10-windows-native-installer-pages.md @@ -1,6 +1,7 @@ # Agent Note: Native Windows installer pages Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-10-windows-native-installer-pages.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-10-windows-native-installer-pages.zh.md b/.agents/notes/archived/architecture/2026-09-10-windows-native-installer-pages.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-10-windows-native-installer-pages.zh.md rename to .agents/notes/archived/architecture/2026-09-10-windows-native-installer-pages.zh.md index da28e22f82..926665e83e 100644 --- a/.agents/notes/implemented/architecture/2026-09-10-windows-native-installer-pages.zh.md +++ b/.agents/notes/archived/architecture/2026-09-10-windows-native-installer-pages.zh.md @@ -1,6 +1,7 @@ # Agent Note: 原生 Windows 安装页面 Status: implemented +Archived: 2026-09-30 [English](2026-09-10-windows-native-installer-pages.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-11-desktop-electron-node-runtime.i18n.yaml b/.agents/notes/archived/architecture/2026-09-11-desktop-electron-node-runtime.i18n.yaml new file mode 100644 index 0000000000..5016e89423 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-11-desktop-electron-node-runtime.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-11-desktop-electron-node-runtime.md +2026-09-11-desktop-electron-node-runtime.md: 1cfb07676db8e1a56c1290d4156c922dc33a53b8 +2026-09-11-desktop-electron-node-runtime.zh.md: 02f9e493c439b9c3a3c698cb909b44fc98af5ef9 diff --git a/.agents/notes/archived/architecture/2026-09-11-desktop-electron-node-runtime.md b/.agents/notes/archived/architecture/2026-09-11-desktop-electron-node-runtime.md new file mode 100644 index 0000000000..1cfb07676d --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-11-desktop-electron-node-runtime.md @@ -0,0 +1,28 @@ +# Agent Note: Use Electron as the Desktop Node runtime + +Status: implemented +Archived: 2026-09-30 + +English | [中文](2026-09-11-desktop-electron-node-runtime.zh.md) + +## Problem + +Shipping an upstream Node executable alongside Electron duplicates the JavaScript runtime. Desktop needs one runtime for its Host and package scripts without requiring users to install Node. + +## Decision + +Desktop runs the shared Web Host and bundled pnpm through its own Electron executable with `ELECTRON_RUN_AS_NODE=1`. The [primary runtime](../feature/2026-09-14-desktop-primary-runtime.md) separately supplies Node for Office authoring. The target Electron distribution supplies both the packaging input and the runtime used to prepare and verify production dependencies; release metadata records its actual Node version. Development uses the installed Electron distribution. The [installed CLI](../feature/2026-09-27-desktop-cli-runtime.md) reuses this execution environment. + +This supersedes the separate-Node choice in the [packaging decision](2026-08-25-electron-desktop-packaging-and-updates.md) and [bundled-runtime decision](2026-09-08-desktop-bundled-runtime-and-external-plugins.md). Their independent plugin storage remains applicable. The [Web wrapper](2026-09-10-desktop-web-wrapper.md) retains the shared profile runner and HTTP transport. + +## Consequences + +Host and pnpm launches pass `--expose-internals`: the bundled Cordis loader uses Node's internal ESM loader, while its native builtin accessor cannot locate the required symbol in Electron 44. The explicit flag makes that loader available without modifying Cordis. The RunAsNode fuse remains enabled. + +The Host inherits Desktop’s PATH, merged with the [login-shell environment](../feature/2026-09-28-desktop-login-shell-environment.md) on macOS and Linux, without Desktop’s private `bin` directory, so PTC and agent shells cannot resolve internal launchers through that directory. `DSH_DESKTOP_NODE_EXECUTABLE` is injected only for package installation. Package-script environments prepend a small `node` shell launcher that forwards arguments to the current Electron executable. This supports shell lifecycle scripts without a system Node installation. On Windows it is `node.cmd`, not a replacement `node.exe`; third-party code that directly spawns the literal `node` executable without a shell must use `process.execPath` or provide its own runtime. Child processes inherit RunAsNode; worker threads inherit the Host's arguments. Desktop does not emulate upstream OpenSSL behavior or rebuild arbitrary third-party native addons automatically. + +Electron's Node patches and native ABI are release compatibility obligations. The packaged native smoke exercises pnpm shell scripts without system Node on PATH, terminal output through the Windows shell, Koffi, Sharp, and HTML conversion. The Host smoke loads an external plugin sharing Cordis and serves its route through the real Web application. Platform signing and installed-application qualification remain required; Windows results do not establish macOS compatibility. Windows token signing runs serially and retains the first failure, preventing queued tasks from repeating a rejected PIN. + +## Alternatives considered + +A separate Node executable decouples the Host from Electron's runtime but adds another binary, download, signature, and version selection for that role. Electron RunAsNode reuses the GUI executable. Production packages reside in ASAR with native resources unpacked; packaging and physical-resource resolution remain separate from the execution-engine choice. diff --git a/.agents/notes/archived/architecture/2026-09-11-desktop-electron-node-runtime.zh.md b/.agents/notes/archived/architecture/2026-09-11-desktop-electron-node-runtime.zh.md new file mode 100644 index 0000000000..02f9e493c4 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-11-desktop-electron-node-runtime.zh.md @@ -0,0 +1,28 @@ +# Agent Note: 使用 Electron 作为 Desktop 的 Node 运行时 + +Status: implemented +Archived: 2026-09-30 + +[English](2026-09-11-desktop-electron-node-runtime.md) | 中文 + +## 问题 + +在 Electron 之外携带上游 Node 可执行文件会重复分发 JavaScript 运行时。Desktop 需要让 Host 和包脚本共用一个运行时,无需用户安装 Node。 + +## 决策 + +Desktop 通过自己的 Electron 可执行文件运行共享 Web Host 和内置 pnpm,并设置 `ELECTRON_RUN_AS_NODE=1`。[主运行时](../feature/2026-09-14-desktop-primary-runtime.zh.md)另行提供 Office 创作使用的 Node。目标 Electron 分发包同时作为打包输入,以及准备和验证生产依赖的运行时;发布元数据记录其实际 Node 版本。开发模式使用已安装的 Electron 分发包。[安装包中的 CLI](../feature/2026-09-27-desktop-cli-runtime.zh.md)复用此执行环境。 + +此决策替代[打包决策](2026-08-25-electron-desktop-packaging-and-updates.zh.md)和[内置运行时决策](2026-09-08-desktop-bundled-runtime-and-external-plugins.zh.md)中的独立 Node 选择。独立插件存储仍然适用。[Web 薄壳](2026-09-10-desktop-web-wrapper.zh.md)保留共享 profile runner 和 HTTP 传输。 + +## 后果 + +Host 和 pnpm 启动时传入 `--expose-internals`:内置 Cordis 加载器使用 Node 内部 ESM 加载器,而其原生 builtin 访问器无法在 Electron 44 中找到所需符号。显式参数使加载器可用,无需修改 Cordis。RunAsNode fuse 保持启用。 + +Host 继承 Desktop 的 PATH(macOS 和 Linux 上合并了[登录 shell 环境](../feature/2026-09-28-desktop-login-shell-environment.zh.md)),不加入 Desktop 私有的 `bin` 目录,因此 PTC 和 agent shell 不会通过该目录解析内部启动器。`DSH_DESKTOP_NODE_EXECUTABLE` 仅为包安装注入。包脚本环境在 PATH 前添加一个小型 `node` shell 启动器,把参数转发给当前 Electron 可执行文件。这支持没有系统 Node 的 shell 生命周期脚本。Windows 上它是 `node.cmd`,并非替代的 `node.exe`;第三方代码若绕过 shell 直接启动名为 `node` 的可执行文件,必须使用 `process.execPath` 或提供自己的运行时。子进程继承 RunAsNode;worker 线程继承 Host 参数。Desktop 不模拟上游 OpenSSL 行为,也不自动重编译任意第三方原生扩展。 + +Electron 的 Node 补丁和原生 ABI 属于发布兼容性责任。打包原生 smoke 在 PATH 不含系统 Node 的情况下验证 pnpm shell 脚本,并验证 Windows shell 终端输出、Koffi、Sharp 和 HTML 转换。Host smoke 加载共享 Cordis 的外部插件,通过真实 Web 应用提供其路由。各平台仍需完成签名和已安装应用验收;Windows 结果不能证明 macOS 兼容性。Windows Token 签名串行执行并保留首次失败,阻止排队任务重复提交被拒绝的 PIN。 + +## 考虑过的替代方案 + +独立 Node 可执行文件可以让 Host 与 Electron 运行时分离,但会为该职责增加另一份二进制文件、下载、签名和版本选择。Electron RunAsNode 复用 GUI 可执行文件。生产包位于 ASAR 中,原生资源解包存放;打包与物理资源解析仍独立于执行引擎选择。 diff --git a/.agents/notes/archived/architecture/2026-09-11-node-office-kit.i18n.yaml b/.agents/notes/archived/architecture/2026-09-11-node-office-kit.i18n.yaml new file mode 100644 index 0000000000..1ba8cd1f2d --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-11-node-office-kit.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-11-node-office-kit.md +2026-09-11-node-office-kit.md: 222f6836ae121ff5882dcd83dca8135dd06625bd +2026-09-11-node-office-kit.zh.md: bff5f2916a4c150e2d2af0709d62afc0969e73f7 diff --git a/.agents/notes/implemented/architecture/2026-09-11-node-office-kit.md b/.agents/notes/archived/architecture/2026-09-11-node-office-kit.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-11-node-office-kit.md rename to .agents/notes/archived/architecture/2026-09-11-node-office-kit.md index 2c95b7e27e..222f6836ae 100644 --- a/.agents/notes/implemented/architecture/2026-09-11-node-office-kit.md +++ b/.agents/notes/archived/architecture/2026-09-11-node-office-kit.md @@ -1,6 +1,7 @@ # Agent Note: Node Office conversion with independently packaged engines Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-11-node-office-kit.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-11-node-office-kit.zh.md b/.agents/notes/archived/architecture/2026-09-11-node-office-kit.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-11-node-office-kit.zh.md rename to .agents/notes/archived/architecture/2026-09-11-node-office-kit.zh.md index bec5d6bb59..bff5f2916a 100644 --- a/.agents/notes/implemented/architecture/2026-09-11-node-office-kit.zh.md +++ b/.agents/notes/archived/architecture/2026-09-11-node-office-kit.zh.md @@ -1,6 +1,7 @@ # Agent Note: 独立打包引擎的 Node Office 转换 Status: implemented +Archived: 2026-09-30 [English](2026-09-11-node-office-kit.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-11-windows-directory-installation.i18n.yaml b/.agents/notes/archived/architecture/2026-09-11-windows-directory-installation.i18n.yaml new file mode 100644 index 0000000000..647453d662 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-11-windows-directory-installation.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-11-windows-directory-installation.md +2026-09-11-windows-directory-installation.md: d59df214a2b84e31d94de1d99c41c74859d64d32 +2026-09-11-windows-directory-installation.zh.md: 0a0976a2e3ca2a5cbcf8e8f4be152e91942a6488 diff --git a/.agents/notes/implemented/architecture/2026-09-11-windows-directory-installation.md b/.agents/notes/archived/architecture/2026-09-11-windows-directory-installation.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-11-windows-directory-installation.md rename to .agents/notes/archived/architecture/2026-09-11-windows-directory-installation.md index 8208c6cc4b..d59df214a2 100644 --- a/.agents/notes/implemented/architecture/2026-09-11-windows-directory-installation.md +++ b/.agents/notes/archived/architecture/2026-09-11-windows-directory-installation.md @@ -1,6 +1,7 @@ # Agent Note: Replace Windows application directories after staging Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-11-windows-directory-installation.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-11-windows-directory-installation.zh.md b/.agents/notes/archived/architecture/2026-09-11-windows-directory-installation.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-11-windows-directory-installation.zh.md rename to .agents/notes/archived/architecture/2026-09-11-windows-directory-installation.zh.md index d337397e8e..0a0976a2e3 100644 --- a/.agents/notes/implemented/architecture/2026-09-11-windows-directory-installation.zh.md +++ b/.agents/notes/archived/architecture/2026-09-11-windows-directory-installation.zh.md @@ -1,6 +1,7 @@ # Agent Note: 暂存完成后替换 Windows 应用目录 Status: implemented +Archived: 2026-09-30 [English](2026-09-11-windows-directory-installation.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-12-ptc-runtime-vocabulary.i18n.yaml b/.agents/notes/archived/architecture/2026-09-12-ptc-runtime-vocabulary.i18n.yaml new file mode 100644 index 0000000000..820342cde5 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-12-ptc-runtime-vocabulary.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-12-ptc-runtime-vocabulary.md +2026-09-12-ptc-runtime-vocabulary.md: 9698ab8471b50744ffc9c237e9a9d3eec0c928d7 +2026-09-12-ptc-runtime-vocabulary.zh.md: 6be726990b0c86833e6f8cec3778e5834b91942a diff --git a/.agents/notes/implemented/architecture/2026-09-12-ptc-runtime-vocabulary.md b/.agents/notes/archived/architecture/2026-09-12-ptc-runtime-vocabulary.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-12-ptc-runtime-vocabulary.md rename to .agents/notes/archived/architecture/2026-09-12-ptc-runtime-vocabulary.md index 86d2132b73..9698ab8471 100644 --- a/.agents/notes/implemented/architecture/2026-09-12-ptc-runtime-vocabulary.md +++ b/.agents/notes/archived/architecture/2026-09-12-ptc-runtime-vocabulary.md @@ -1,6 +1,7 @@ # Agent Note: PTC runtime vocabulary Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-12-ptc-runtime-vocabulary.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-12-ptc-runtime-vocabulary.zh.md b/.agents/notes/archived/architecture/2026-09-12-ptc-runtime-vocabulary.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-12-ptc-runtime-vocabulary.zh.md rename to .agents/notes/archived/architecture/2026-09-12-ptc-runtime-vocabulary.zh.md index 5951c43b95..6be726990b 100644 --- a/.agents/notes/implemented/architecture/2026-09-12-ptc-runtime-vocabulary.zh.md +++ b/.agents/notes/archived/architecture/2026-09-12-ptc-runtime-vocabulary.zh.md @@ -1,6 +1,7 @@ # Agent Note: PTC 运行时词汇 Status: implemented +Archived: 2026-09-30 [English](2026-09-12-ptc-runtime-vocabulary.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-14-sidebar-layout-provider-recovery.i18n.yaml b/.agents/notes/archived/architecture/2026-09-14-sidebar-layout-provider-recovery.i18n.yaml new file mode 100644 index 0000000000..4db5e573c8 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-14-sidebar-layout-provider-recovery.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-14-sidebar-layout-provider-recovery.md +2026-09-14-sidebar-layout-provider-recovery.md: b66111f95f5230b0fd4be31a616650002b8cb45e +2026-09-14-sidebar-layout-provider-recovery.zh.md: 989cc496b967b092d9e15c6ca8952865a8c1afa4 diff --git a/.agents/notes/implemented/architecture/2026-09-14-sidebar-layout-provider-recovery.md b/.agents/notes/archived/architecture/2026-09-14-sidebar-layout-provider-recovery.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-14-sidebar-layout-provider-recovery.md rename to .agents/notes/archived/architecture/2026-09-14-sidebar-layout-provider-recovery.md index f7ec0324f9..b66111f95f 100644 --- a/.agents/notes/implemented/architecture/2026-09-14-sidebar-layout-provider-recovery.md +++ b/.agents/notes/archived/architecture/2026-09-14-sidebar-layout-provider-recovery.md @@ -1,6 +1,7 @@ # Agent Note: Sidebar layout persistence and provider recovery Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-14-sidebar-layout-provider-recovery.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-14-sidebar-layout-provider-recovery.zh.md b/.agents/notes/archived/architecture/2026-09-14-sidebar-layout-provider-recovery.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-14-sidebar-layout-provider-recovery.zh.md rename to .agents/notes/archived/architecture/2026-09-14-sidebar-layout-provider-recovery.zh.md index 02440391e5..989cc496b9 100644 --- a/.agents/notes/implemented/architecture/2026-09-14-sidebar-layout-provider-recovery.zh.md +++ b/.agents/notes/archived/architecture/2026-09-14-sidebar-layout-provider-recovery.zh.md @@ -1,6 +1,7 @@ # Agent Note: 侧栏布局持久化与 provider 恢复 Status: implemented +Archived: 2026-09-30 [English](2026-09-14-sidebar-layout-provider-recovery.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-15-narrow-pi-ai-runtime-imports.i18n.yaml b/.agents/notes/archived/architecture/2026-09-15-narrow-pi-ai-runtime-imports.i18n.yaml new file mode 100644 index 0000000000..9182899e33 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-15-narrow-pi-ai-runtime-imports.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-15-narrow-pi-ai-runtime-imports.md +2026-09-15-narrow-pi-ai-runtime-imports.md: d042b3099c2955d7239192bb72ae5a5b58cb7f05 +2026-09-15-narrow-pi-ai-runtime-imports.zh.md: ed4f51d326a07107f0e1d49172f07aabb868f016 diff --git a/.agents/notes/implemented/architecture/2026-09-15-narrow-pi-ai-runtime-imports.md b/.agents/notes/archived/architecture/2026-09-15-narrow-pi-ai-runtime-imports.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-15-narrow-pi-ai-runtime-imports.md rename to .agents/notes/archived/architecture/2026-09-15-narrow-pi-ai-runtime-imports.md index 307d880f3f..d042b3099c 100644 --- a/.agents/notes/implemented/architecture/2026-09-15-narrow-pi-ai-runtime-imports.md +++ b/.agents/notes/archived/architecture/2026-09-15-narrow-pi-ai-runtime-imports.md @@ -1,6 +1,7 @@ # Agent Note: Narrow pi-ai runtime imports Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-15-narrow-pi-ai-runtime-imports.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-15-narrow-pi-ai-runtime-imports.zh.md b/.agents/notes/archived/architecture/2026-09-15-narrow-pi-ai-runtime-imports.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-15-narrow-pi-ai-runtime-imports.zh.md rename to .agents/notes/archived/architecture/2026-09-15-narrow-pi-ai-runtime-imports.zh.md index 139983446a..ed4f51d326 100644 --- a/.agents/notes/implemented/architecture/2026-09-15-narrow-pi-ai-runtime-imports.zh.md +++ b/.agents/notes/archived/architecture/2026-09-15-narrow-pi-ai-runtime-imports.zh.md @@ -1,6 +1,7 @@ # Agent Note:收窄 pi-ai 运行时 import Status: implemented +Archived: 2026-09-30 [English](2026-09-15-narrow-pi-ai-runtime-imports.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-15-platform-office-engines.i18n.yaml b/.agents/notes/archived/architecture/2026-09-15-platform-office-engines.i18n.yaml new file mode 100644 index 0000000000..10437b3435 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-15-platform-office-engines.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-15-platform-office-engines.md +2026-09-15-platform-office-engines.md: 420a65772e8237803eaf537276ff0c84d667a223 +2026-09-15-platform-office-engines.zh.md: 4ba90ea17a847d313d6c8dc6f9cdc4f84a7cb9da diff --git a/.agents/notes/implemented/architecture/2026-09-15-platform-office-engines.md b/.agents/notes/archived/architecture/2026-09-15-platform-office-engines.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-15-platform-office-engines.md rename to .agents/notes/archived/architecture/2026-09-15-platform-office-engines.md index 4272054672..420a65772e 100644 --- a/.agents/notes/implemented/architecture/2026-09-15-platform-office-engines.md +++ b/.agents/notes/archived/architecture/2026-09-15-platform-office-engines.md @@ -1,6 +1,7 @@ # Agent Note: One Office engine per platform Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-15-platform-office-engines.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-15-platform-office-engines.zh.md b/.agents/notes/archived/architecture/2026-09-15-platform-office-engines.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-15-platform-office-engines.zh.md rename to .agents/notes/archived/architecture/2026-09-15-platform-office-engines.zh.md index d0a3173330..4ba90ea17a 100644 --- a/.agents/notes/implemented/architecture/2026-09-15-platform-office-engines.zh.md +++ b/.agents/notes/archived/architecture/2026-09-15-platform-office-engines.zh.md @@ -1,6 +1,7 @@ # Agent Note: 每个平台使用一个 Office 引擎 Status: implemented +Archived: 2026-09-30 [English](2026-09-15-platform-office-engines.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-16-desktop-cos-upload-transport.i18n.yaml b/.agents/notes/archived/architecture/2026-09-16-desktop-cos-upload-transport.i18n.yaml new file mode 100644 index 0000000000..6b303f36c1 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-16-desktop-cos-upload-transport.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-16-desktop-cos-upload-transport.md +2026-09-16-desktop-cos-upload-transport.md: e1760522b8a6862673b256d8edbd1f42399d4e80 +2026-09-16-desktop-cos-upload-transport.zh.md: 9a0725d492bd3b81f2c2423abc120c8ee59ebfe1 diff --git a/.agents/notes/implemented/architecture/2026-09-16-desktop-cos-upload-transport.md b/.agents/notes/archived/architecture/2026-09-16-desktop-cos-upload-transport.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-16-desktop-cos-upload-transport.md rename to .agents/notes/archived/architecture/2026-09-16-desktop-cos-upload-transport.md index 84504b32fd..e1760522b8 100644 --- a/.agents/notes/implemented/architecture/2026-09-16-desktop-cos-upload-transport.md +++ b/.agents/notes/archived/architecture/2026-09-16-desktop-cos-upload-transport.md @@ -1,6 +1,7 @@ # Agent Note: Upload Desktop releases through the Tencent COS SDK Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-16-desktop-cos-upload-transport.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-16-desktop-cos-upload-transport.zh.md b/.agents/notes/archived/architecture/2026-09-16-desktop-cos-upload-transport.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-16-desktop-cos-upload-transport.zh.md rename to .agents/notes/archived/architecture/2026-09-16-desktop-cos-upload-transport.zh.md index 2a2080f95b..9a0725d492 100644 --- a/.agents/notes/implemented/architecture/2026-09-16-desktop-cos-upload-transport.zh.md +++ b/.agents/notes/archived/architecture/2026-09-16-desktop-cos-upload-transport.zh.md @@ -1,6 +1,7 @@ # Agent Note: 通过腾讯 COS SDK 上传 Desktop 发布产物 Status: implemented +Archived: 2026-09-30 [English](2026-09-16-desktop-cos-upload-transport.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.i18n.yaml b/.agents/notes/archived/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.i18n.yaml new file mode 100644 index 0000000000..09a11f6b3c --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.md +2026-09-16-plugin-configuration-on-the-plugins-page.md: ebb38a80f84c81233b6c9736581dcefb5fb77da1 +2026-09-16-plugin-configuration-on-the-plugins-page.zh.md: d84571d673b8839bc99fd423f11fdd7ff8ec246e diff --git a/.agents/notes/implemented/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.md b/.agents/notes/archived/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.md similarity index 94% rename from .agents/notes/implemented/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.md rename to .agents/notes/archived/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.md index 700ada1538..ebb38a80f8 100644 --- a/.agents/notes/implemented/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.md +++ b/.agents/notes/archived/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.md @@ -1,6 +1,7 @@ # Agent Note: Plugin configuration on the Plugins page Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-16-plugin-configuration-on-the-plugins-page.zh.md) @@ -20,7 +21,7 @@ The page passes `view: 'page'` for each form. Official plugin cards and details **The four host-plane pages register while the Host serves their namespaces.** Each page's package registers it through `ctx.slots.inject` when the shared settings mirror shows the namespace and disposes it when the namespace goes, so a deployment that does not compose the owning plugin shows no trace of it; since [settings pages as companion packages](2026-09-17-settings-pages-as-companion-packages.md) that is one companion package per page, and `ui-settings-plugins` keeps the Settings section as the **Built-in plugins** shell around the inventory tab. The `settings.plugin.item` slot is retired. -**The Official group.** The optional bundles the installation ships open the group, tagged **Beta** where the feature is one (Agent Teams), with no official tag; the configuration pages follow. Auto review is a published experimental package used as the install guide's example, not an `OPTIONAL_BUNDLES` entry or a CLI dependency. +**The Official group.** The optional bundles the installation ships open the group, tagged **Beta** where the package is experimental, with no official tag; the configuration pages follow. The [optional-bundle decision for experimental capabilities](2026-09-21-experimental-capabilities-as-optional-bundles.md) names the entries. ## Consequences diff --git a/.agents/notes/implemented/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.zh.md b/.agents/notes/archived/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.zh.md similarity index 95% rename from .agents/notes/implemented/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.zh.md rename to .agents/notes/archived/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.zh.md index 23935312d2..d84571d673 100644 --- a/.agents/notes/implemented/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.zh.md +++ b/.agents/notes/archived/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.zh.md @@ -1,6 +1,7 @@ # Agent Note: 插件页上的插件配置 Status: implemented +Archived: 2026-09-30 [English](2026-09-16-plugin-configuration-on-the-plugins-page.md) | 中文 @@ -20,7 +21,7 @@ Status: implemented **四个宿主平面页面在 Host 服务其命名空间期间注册。** 每个页面所在的包在共享的 settings 镜像显示某个命名空间时通过 `ctx.slots.inject` 注册对应页面,命名空间消失时销毁,因此没有组装该插件的部署不会留下它的痕迹;自[设置页作为伴生包](2026-09-17-settings-pages-as-companion-packages.zh.md)起,每个页面各是一个伴生包,`ui-settings-plugins` 把设置分区保留为清单标签页外面的**内置插件**外壳。`settings.plugin.item` slot 退役。 -**官方分组。** 安装随附的可选组合包开启这个分组,属于 beta 功能的(Agent Teams)带 **Beta** 标签,没有官方标签;配置页排在其后。Auto review 是安装引导用作示例的已发布实验包,不属于 `OPTIONAL_BUNDLES` 或 CLI 依赖。 +**官方分组。** 安装随附的可选组合包开启这个分组,属于实验包的带 **Beta** 标签,没有官方标签;配置页排在其后。[实验能力的可选 bundle 决策](2026-09-21-experimental-capabilities-as-optional-bundles.zh.md)列出这些条目。 ## 后果 diff --git a/.agents/notes/archived/architecture/2026-09-17-plugin-detail-page-extension-slots.i18n.yaml b/.agents/notes/archived/architecture/2026-09-17-plugin-detail-page-extension-slots.i18n.yaml new file mode 100644 index 0000000000..5eec9e3c13 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-17-plugin-detail-page-extension-slots.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-17-plugin-detail-page-extension-slots.md +2026-09-17-plugin-detail-page-extension-slots.md: 8d552de48b99f6d76afd9d5798892f29073a3120 +2026-09-17-plugin-detail-page-extension-slots.zh.md: f16544e1dceff4ad3ee0737fbf3fae9fee68ebd2 diff --git a/.agents/notes/implemented/architecture/2026-09-17-plugin-detail-page-extension-slots.md b/.agents/notes/archived/architecture/2026-09-17-plugin-detail-page-extension-slots.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-17-plugin-detail-page-extension-slots.md rename to .agents/notes/archived/architecture/2026-09-17-plugin-detail-page-extension-slots.md index d4bbca0c44..8d552de48b 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-plugin-detail-page-extension-slots.md +++ b/.agents/notes/archived/architecture/2026-09-17-plugin-detail-page-extension-slots.md @@ -1,6 +1,7 @@ # Agent Note: Plugin detail pages as an extension point Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-17-plugin-detail-page-extension-slots.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-17-plugin-detail-page-extension-slots.zh.md b/.agents/notes/archived/architecture/2026-09-17-plugin-detail-page-extension-slots.zh.md similarity index 98% rename from .agents/notes/implemented/architecture/2026-09-17-plugin-detail-page-extension-slots.zh.md rename to .agents/notes/archived/architecture/2026-09-17-plugin-detail-page-extension-slots.zh.md index f07efc3d3c..f16544e1dc 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-plugin-detail-page-extension-slots.zh.md +++ b/.agents/notes/archived/architecture/2026-09-17-plugin-detail-page-extension-slots.zh.md @@ -1,6 +1,7 @@ # Agent Note:插件详情页作为扩展点 -状态:已实现 +Status: implemented +Archived: 2026-09-30 [English](2026-09-17-plugin-detail-page-extension-slots.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-17-session-row-menu-actions-slot.i18n.yaml b/.agents/notes/archived/architecture/2026-09-17-session-row-menu-actions-slot.i18n.yaml new file mode 100644 index 0000000000..c9c100b61f --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-17-session-row-menu-actions-slot.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-17-session-row-menu-actions-slot.md +2026-09-17-session-row-menu-actions-slot.md: 4d1d192c54fc06baf15e58d51550fa3822f3fda5 +2026-09-17-session-row-menu-actions-slot.zh.md: e5bd054ae2dfd53592a650f378ea9b34f535e727 diff --git a/.agents/notes/implemented/architecture/2026-09-17-session-row-menu-actions-slot.md b/.agents/notes/archived/architecture/2026-09-17-session-row-menu-actions-slot.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-17-session-row-menu-actions-slot.md rename to .agents/notes/archived/architecture/2026-09-17-session-row-menu-actions-slot.md index 034144b2b7..4d1d192c54 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-session-row-menu-actions-slot.md +++ b/.agents/notes/archived/architecture/2026-09-17-session-row-menu-actions-slot.md @@ -1,6 +1,7 @@ # Agent Note: Session row actions as slot lists Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-17-session-row-menu-actions-slot.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-17-session-row-menu-actions-slot.zh.md b/.agents/notes/archived/architecture/2026-09-17-session-row-menu-actions-slot.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-17-session-row-menu-actions-slot.zh.md rename to .agents/notes/archived/architecture/2026-09-17-session-row-menu-actions-slot.zh.md index 6ad15d263f..e5bd054ae2 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-session-row-menu-actions-slot.zh.md +++ b/.agents/notes/archived/architecture/2026-09-17-session-row-menu-actions-slot.zh.md @@ -1,6 +1,7 @@ # Agent Note: Session 行 action 即 slot 列表 Status: implemented +Archived: 2026-09-30 [English](2026-09-17-session-row-menu-actions-slot.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-17-settings-pages-as-companion-packages.i18n.yaml b/.agents/notes/archived/architecture/2026-09-17-settings-pages-as-companion-packages.i18n.yaml new file mode 100644 index 0000000000..0dcdea37a4 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-17-settings-pages-as-companion-packages.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-17-settings-pages-as-companion-packages.md +2026-09-17-settings-pages-as-companion-packages.md: b9a2144254d86d668b81b65f7fe3e4d6cce02f07 +2026-09-17-settings-pages-as-companion-packages.zh.md: 881bca17c00264e63e03a26a33078672d020c354 diff --git a/.agents/notes/implemented/architecture/2026-09-17-settings-pages-as-companion-packages.md b/.agents/notes/archived/architecture/2026-09-17-settings-pages-as-companion-packages.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-17-settings-pages-as-companion-packages.md rename to .agents/notes/archived/architecture/2026-09-17-settings-pages-as-companion-packages.md index de2f289793..b9a2144254 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-settings-pages-as-companion-packages.md +++ b/.agents/notes/archived/architecture/2026-09-17-settings-pages-as-companion-packages.md @@ -1,6 +1,7 @@ # Agent Note: Settings pages as companion packages Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-17-settings-pages-as-companion-packages.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-17-settings-pages-as-companion-packages.zh.md b/.agents/notes/archived/architecture/2026-09-17-settings-pages-as-companion-packages.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-17-settings-pages-as-companion-packages.zh.md rename to .agents/notes/archived/architecture/2026-09-17-settings-pages-as-companion-packages.zh.md index 27d00faa15..881bca17c0 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-settings-pages-as-companion-packages.zh.md +++ b/.agents/notes/archived/architecture/2026-09-17-settings-pages-as-companion-packages.zh.md @@ -1,6 +1,7 @@ # Agent Note:设置页作为伴生包 -状态:已实现 +Status: implemented +Archived: 2026-09-30 [English](2026-09-17-settings-pages-as-companion-packages.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-17-shared-office-runtime.i18n.yaml b/.agents/notes/archived/architecture/2026-09-17-shared-office-runtime.i18n.yaml new file mode 100644 index 0000000000..c6fa7571da --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-17-shared-office-runtime.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-17-shared-office-runtime.md +2026-09-17-shared-office-runtime.md: 92ef99a76fd20e51479ab8a354bcd2b77be4f675 +2026-09-17-shared-office-runtime.zh.md: ce1188847dab99eacbaf25ee94d652be85defb97 diff --git a/.agents/notes/implemented/architecture/2026-09-17-shared-office-runtime.md b/.agents/notes/archived/architecture/2026-09-17-shared-office-runtime.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-17-shared-office-runtime.md rename to .agents/notes/archived/architecture/2026-09-17-shared-office-runtime.md index 25b6ddccbb..92ef99a76f 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-shared-office-runtime.md +++ b/.agents/notes/archived/architecture/2026-09-17-shared-office-runtime.md @@ -1,6 +1,7 @@ # Agent Note: Shared Office runtime for Desktop and SDK Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-17-shared-office-runtime.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-17-shared-office-runtime.zh.md b/.agents/notes/archived/architecture/2026-09-17-shared-office-runtime.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-17-shared-office-runtime.zh.md rename to .agents/notes/archived/architecture/2026-09-17-shared-office-runtime.zh.md index 99dffe8d02..ce1188847d 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-shared-office-runtime.zh.md +++ b/.agents/notes/archived/architecture/2026-09-17-shared-office-runtime.zh.md @@ -1,6 +1,7 @@ # Agent Note: Desktop 与 SDK 共享 Office 运行时 Status: implemented +Archived: 2026-09-30 [English](2026-09-17-shared-office-runtime.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-17-web-feature-routes-and-route-gate.i18n.yaml b/.agents/notes/archived/architecture/2026-09-17-web-feature-routes-and-route-gate.i18n.yaml new file mode 100644 index 0000000000..c45939984f --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-17-web-feature-routes-and-route-gate.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-17-web-feature-routes-and-route-gate.md +2026-09-17-web-feature-routes-and-route-gate.md: eb9e6d9c19010c08143501f63135981e33fad28f +2026-09-17-web-feature-routes-and-route-gate.zh.md: 27951c475b043781cdb52c682fd539dca56db681 diff --git a/.agents/notes/implemented/architecture/2026-09-17-web-feature-routes-and-route-gate.md b/.agents/notes/archived/architecture/2026-09-17-web-feature-routes-and-route-gate.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-17-web-feature-routes-and-route-gate.md rename to .agents/notes/archived/architecture/2026-09-17-web-feature-routes-and-route-gate.md index 3939bdcd0c..eb9e6d9c19 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-web-feature-routes-and-route-gate.md +++ b/.agents/notes/archived/architecture/2026-09-17-web-feature-routes-and-route-gate.md @@ -1,6 +1,7 @@ # Agent Note: Feature routes follow the document base, and a gate keeps them there Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-17-web-feature-routes-and-route-gate.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-17-web-feature-routes-and-route-gate.zh.md b/.agents/notes/archived/architecture/2026-09-17-web-feature-routes-and-route-gate.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-17-web-feature-routes-and-route-gate.zh.md rename to .agents/notes/archived/architecture/2026-09-17-web-feature-routes-and-route-gate.zh.md index fb329c8fc1..27951c475b 100644 --- a/.agents/notes/implemented/architecture/2026-09-17-web-feature-routes-and-route-gate.zh.md +++ b/.agents/notes/archived/architecture/2026-09-17-web-feature-routes-and-route-gate.zh.md @@ -1,6 +1,7 @@ # Agent Note: 功能路由遵循文档 base,并由门禁维持 Status: implemented +Archived: 2026-09-30 [English](2026-09-17-web-feature-routes-and-route-gate.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-18-agent-teams-single-bundle.i18n.yaml b/.agents/notes/archived/architecture/2026-09-18-agent-teams-single-bundle.i18n.yaml new file mode 100644 index 0000000000..7017db1f5e --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-18-agent-teams-single-bundle.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-18-agent-teams-single-bundle.md +2026-09-18-agent-teams-single-bundle.md: 99f51cd6075af74acfe7c52f121b03dd7c3a5cbb +2026-09-18-agent-teams-single-bundle.zh.md: a386029227a2f07ebb1a880bfeb192dc72ced855 diff --git a/.agents/notes/implemented/architecture/2026-09-18-agent-teams-single-bundle.md b/.agents/notes/archived/architecture/2026-09-18-agent-teams-single-bundle.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-18-agent-teams-single-bundle.md rename to .agents/notes/archived/architecture/2026-09-18-agent-teams-single-bundle.md index b417061d24..99f51cd607 100644 --- a/.agents/notes/implemented/architecture/2026-09-18-agent-teams-single-bundle.md +++ b/.agents/notes/archived/architecture/2026-09-18-agent-teams-single-bundle.md @@ -1,6 +1,7 @@ # Agent Note: Enable Agent Teams with one bundle Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-18-agent-teams-single-bundle.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-18-agent-teams-single-bundle.zh.md b/.agents/notes/archived/architecture/2026-09-18-agent-teams-single-bundle.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-18-agent-teams-single-bundle.zh.md rename to .agents/notes/archived/architecture/2026-09-18-agent-teams-single-bundle.zh.md index ed20dac79f..a386029227 100644 --- a/.agents/notes/implemented/architecture/2026-09-18-agent-teams-single-bundle.zh.md +++ b/.agents/notes/archived/architecture/2026-09-18-agent-teams-single-bundle.zh.md @@ -1,6 +1,7 @@ # Agent Note: 通过一个组合包启用 Agent Teams Status: implemented +Archived: 2026-09-30 [English](2026-09-18-agent-teams-single-bundle.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-18-chat-navigation-performance.i18n.yaml b/.agents/notes/archived/architecture/2026-09-18-chat-navigation-performance.i18n.yaml new file mode 100644 index 0000000000..61b2c3c460 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-18-chat-navigation-performance.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-18-chat-navigation-performance.md +2026-09-18-chat-navigation-performance.md: c9f7ab74bd730b5caca7b7a8b49b6c2d7f874f93 +2026-09-18-chat-navigation-performance.zh.md: f410999e461e4f2bdfa6f996400d9fea8811abac diff --git a/.agents/notes/implemented/architecture/2026-09-18-chat-navigation-performance.md b/.agents/notes/archived/architecture/2026-09-18-chat-navigation-performance.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-18-chat-navigation-performance.md rename to .agents/notes/archived/architecture/2026-09-18-chat-navigation-performance.md index d82c68098f..c9f7ab74bd 100644 --- a/.agents/notes/implemented/architecture/2026-09-18-chat-navigation-performance.md +++ b/.agents/notes/archived/architecture/2026-09-18-chat-navigation-performance.md @@ -1,6 +1,7 @@ # Agent Note: Bound turn navigation work and batch historical jumps Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-18-chat-navigation-performance.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-18-chat-navigation-performance.zh.md b/.agents/notes/archived/architecture/2026-09-18-chat-navigation-performance.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-18-chat-navigation-performance.zh.md rename to .agents/notes/archived/architecture/2026-09-18-chat-navigation-performance.zh.md index 9c2f81a51c..f410999e46 100644 --- a/.agents/notes/implemented/architecture/2026-09-18-chat-navigation-performance.zh.md +++ b/.agents/notes/archived/architecture/2026-09-18-chat-navigation-performance.zh.md @@ -1,6 +1,7 @@ # Agent Note: 限制轮次导航工作量并聚合历史跳转 Status: implemented +Archived: 2026-09-30 [English](2026-09-18-chat-navigation-performance.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-18-localized-package-metadata.i18n.yaml b/.agents/notes/archived/architecture/2026-09-18-localized-package-metadata.i18n.yaml new file mode 100644 index 0000000000..5c4560e79e --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-18-localized-package-metadata.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-18-localized-package-metadata.md +2026-09-18-localized-package-metadata.md: 7d57a1c7b290021dbddde66d7623fbe31c7dfa04 +2026-09-18-localized-package-metadata.zh.md: 7bbea03d4cfe6b887026331a298d3849c592407b diff --git a/.agents/notes/implemented/architecture/2026-09-18-localized-package-metadata.md b/.agents/notes/archived/architecture/2026-09-18-localized-package-metadata.md similarity index 87% rename from .agents/notes/implemented/architecture/2026-09-18-localized-package-metadata.md rename to .agents/notes/archived/architecture/2026-09-18-localized-package-metadata.md index a7e41cccbb..7d57a1c7b2 100644 --- a/.agents/notes/implemented/architecture/2026-09-18-localized-package-metadata.md +++ b/.agents/notes/archived/architecture/2026-09-18-localized-package-metadata.md @@ -1,6 +1,7 @@ # Agent Note: Plugin-owned localized display metadata Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-18-localized-package-metadata.zh.md) @@ -37,12 +38,14 @@ The Host reads installed bundles and their declared plugin rows without importin Each field falls back independently before view-specific name formatting: -| Field | Existing locale fallback chain | Same-address package fallback | Final fallback | +| Field | Existing locale fallback chain | Package-root fallback | Final fallback | |---|---|---|---| -| Title | `meta.title` | Non-empty `name` from `/package.json` | Complete configured Cordis plugin name | -| Description | `meta.description` | Non-empty `description` from `/package.json` | No package description | +| Title | `meta.title` | Non-empty `name` from `/package.json` | Complete configured Cordis plugin name | +| Description | `meta.description` | Non-empty `description` from `/package.json` | No package description | -The package fallback obeys resource exports and belongs to the same plugin address; a subpath does not inherit its owning package's introduction. The Host supplies the package or final value as the English fallback for a field that has translations but no English value, preserving the existing Client locale API. Missing or unexported resources and missing fields use these fallbacks; invalid locale fields or malformed files report a diagnostic instead of silently falling back, while retaining management operations. +The package fallback obeys resource exports and applies only when the configured plugin name is the package itself. A subpath plugin is not a package: it never reads a `package.json`, even one exported at its address, and does not inherit its owning package's introduction. The Host supplies the package or final value as the English fallback for a field that has translations but no English value, preserving the existing Client locale API. Missing or unexported resources and missing fields use these fallbacks; invalid locale fields or malformed files report a diagnostic instead of silently falling back, while retaining management operations. + +Icons follow the same address rule. A package root uses its manifest `icon`, or the exported `/icon` when that field is omitted. A subpath uses only `/icon`, resolved through Node exports like its locale resources and confined to its package. Plugin Manager uses this metadata on installed bundle cards and details, component lists, and component configuration details, preserving complete technical-name fallbacks. Settings uses it in the plugin inventory, including preset plugins, but shortens literal package-name and module-name fallbacks by removing their npm scope and Cordis/DSH prefixes. Translated titles remain verbatim in both views; full module names, entry ids, search identities, and operation targets stay unchanged. The [Settings inventory README](../../../../packages/client/ui-settings-plugin-inventory/README.md#use-this-package) owns the prefix rules. @@ -62,6 +65,8 @@ Built-in bundle introductions live in their exported language files. Beta marker **Declare references in package.json.** This duplicates the declaration between a manifest and locale files, and one package-level declaration cannot distinguish its exported plugins. +**Read `/package.json` for subpath plugins.** A package has one manifest; exporting another at a subpath suggests that subpaths own manifests. Locale files and `/icon` already give each subpath independent text and artwork. + **Read locale beside the resolved JavaScript file.** Build tools can put several plugin entries in the same directory. Resource exports preserve each plugin's identity independently of its compiled layout. **Register copy when the displayed plugin activates.** Disabled packages, packages without a Client half, and packages that fail to load still need readable introductions. @@ -77,7 +82,7 @@ Built-in bundle introductions live in their exported language files. Beta marker - Direct metadata, unrelated locale content, absent resources, malformed JSON, missing display fields, and conflicting language identifiers have focused coverage. - Separate exports in one package and same-named packages under different parents retain independent metadata without executing plugin entries. - Windows drive paths, UNC paths, relative and absolute file paths, and file URLs return no metadata without invoking resource resolution. -- Missing locale resources and individual fields fall back independently to address-local package fields, then the complete module specifier without a description. +- Missing locale resources and individual fields fall back independently to package-root manifest fields, then the complete module specifier without a description; subpath plugins ignore exported manifests and read only `/icon`. - Publication checks require readable resource exports and included language files, without duplicate ownership of built-in copy in the manager and plugins. - Management tools preserve existing model output, and pre-installation inspection adds no package-content lookup. - Focused tests and the complete `pnpm run build` succeed. diff --git a/.agents/notes/implemented/architecture/2026-09-18-localized-package-metadata.zh.md b/.agents/notes/archived/architecture/2026-09-18-localized-package-metadata.zh.md similarity index 82% rename from .agents/notes/implemented/architecture/2026-09-18-localized-package-metadata.zh.md rename to .agents/notes/archived/architecture/2026-09-18-localized-package-metadata.zh.md index d70aed2a57..7bbea03d4c 100644 --- a/.agents/notes/implemented/architecture/2026-09-18-localized-package-metadata.zh.md +++ b/.agents/notes/archived/architecture/2026-09-18-localized-package-metadata.zh.md @@ -1,6 +1,7 @@ # Agent Note: 插件自有的多语言展示元信息 Status: implemented +Archived: 2026-09-30 [English](2026-09-18-localized-package-metadata.md) | 中文 @@ -37,12 +38,14 @@ Host 读取已安装 bundle 及其声明的插件行,不 import 或激活它 每个字段先独立回退,再按页面规则格式化技术名称: -| 字段 | 现有 locale 语言回退链 | 同地址包字段回退 | 最终回退 | +| 字段 | 现有 locale 语言回退链 | 包根字段回退 | 最终回退 | |---|---|---|---| -| 标题 | `meta.title` | `<插件模块名>/package.json` 中非空的 `name` | Cordis 配置中的完整插件名 | -| 描述 | `meta.description` | `<插件模块名>/package.json` 中非空的 `description` | 不提供包描述 | +| 标题 | `meta.title` | `<包名>/package.json` 中非空的 `name` | Cordis 配置中的完整插件名 | +| 描述 | `meta.description` | `<包名>/package.json` 中非空的 `description` | 不提供包描述 | -包字段回退遵守资源 exports,并且仍属于同一插件地址,子路径不继承所属包的介绍。字段有其他语言译文但没有英文值时,Host 将包字段或最终值放入英文回退位,保持现有 Client locale API 不变。资源不存在、未导出或缺少字段时使用上述回退;locale 字段无效或文件格式损坏时明确诊断,不静默回退,同时保留管理操作。 +包字段回退遵守资源 exports,仅在配置的插件名就是包本身时生效。子路径插件不是包:它从不读取 `package.json`,即使该地址导出了一个,也不继承所属包的介绍。字段有其他语言译文但没有英文值时,Host 将包字段或最终值放入英文回退位,保持现有 Client locale API 不变。资源不存在、未导出或缺少字段时使用上述回退;locale 字段无效或文件格式损坏时明确诊断,不静默回退,同时保留管理操作。 + +图标遵循相同的地址规则。包根使用清单 `icon`,省略该字段时使用导出的 `<包名>/icon`。子路径只使用 `<插件模块名>/icon`,像其 locale 资源一样经 Node exports 解析,并限制在所属包内。 插件管理页在已安装 bundle 的卡片和详情、组件列表、组件配置详情中使用这些元信息,保留完整技术名回退。设置中的插件清单也使用它,包括预设内插件,但会移除字面包名和模块名回退值的 npm scope 与 Cordis/DSH 前缀。两个页面都原样展示翻译标题;完整模块名、条目 id、搜索身份与操作目标保持不变。具体前缀规则由[设置插件清单 README](../../../../packages/client/ui-settings-plugin-inventory/README.zh.md#use-this-package)维护。 @@ -62,6 +65,8 @@ Host 读取已安装 bundle 及其声明的插件行,不 import 或激活它 **在 package.json 中声明引用。** 将声明重复放在 manifest 与 locale 文件中,而且一份包级声明无法区分包内导出的插件。 +**为子路径插件读取 `<子路径>/package.json`。** 一个包只有一个清单;在子路径导出另一个清单会让人以为子路径拥有自己的清单。locale 文件和 `<子路径>/icon` 已经为每个子路径提供独立的文本和图片。 + **从解析后的 JavaScript 文件旁读取 locale。** 构建工具可能把多个插件入口放在同一目录。资源 exports 让各插件的身份独立于编译产物布局。 **由被展示插件激活时注册文案。** 未启用包、无 Client 半边的包和加载失败的包仍然需要可读的介绍。 @@ -77,7 +82,7 @@ Host 读取已安装 bundle 及其声明的插件行,不 import 或激活它 - 直接元信息、无关 locale 内容、缺失资源、损坏 JSON、缺失展示字段及语言标识冲突均有针对性覆盖。 - 同包的不同 exports,以及不同父目录中的同名包,各自保持独立元信息,读取不执行插件入口。 - Windows 盘符路径、UNC 路径、相对与绝对文件路径及文件 URL 均不调用资源解析,直接返回无元信息。 -- locale 资源或个别字段缺失时,各字段独立回退到该插件地址的包字段,再回退到完整模块名且不显示描述。 +- locale 资源或个别字段缺失时,各字段独立回退到包根清单字段,再回退到完整模块名且不显示描述;子路径插件忽略导出的清单,只读取 `<插件模块名>/icon`。 - 发布检查要求资源 exports 可解析且包含语言文件,内置文案不在管理器和插件中双份维护。 - 管理工具保留现有模型输出,安装前查询不增加包内容探查。 - 针对性测试以及完整 `pnpm run build` 通过。 diff --git a/.agents/notes/archived/architecture/2026-09-18-profile-plugin-host-runtime-instances.i18n.yaml b/.agents/notes/archived/architecture/2026-09-18-profile-plugin-host-runtime-instances.i18n.yaml new file mode 100644 index 0000000000..5f94dbf6cc --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-18-profile-plugin-host-runtime-instances.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-18-profile-plugin-host-runtime-instances.md +2026-09-18-profile-plugin-host-runtime-instances.md: 2f1ae23fc73d1d1f6b82677d18cb6a4df282b5b1 +2026-09-18-profile-plugin-host-runtime-instances.zh.md: 3365d2b93b32e99c00448a8324cecfd0af6e7b9a diff --git a/.agents/notes/implemented/architecture/2026-09-18-profile-plugin-host-runtime-instances.md b/.agents/notes/archived/architecture/2026-09-18-profile-plugin-host-runtime-instances.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-18-profile-plugin-host-runtime-instances.md rename to .agents/notes/archived/architecture/2026-09-18-profile-plugin-host-runtime-instances.md index 76135318b3..2f1ae23fc7 100644 --- a/.agents/notes/implemented/architecture/2026-09-18-profile-plugin-host-runtime-instances.md +++ b/.agents/notes/archived/architecture/2026-09-18-profile-plugin-host-runtime-instances.md @@ -1,6 +1,7 @@ # Agent Note: Profile plugins share the installation's host runtime instances Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-18-profile-plugin-host-runtime-instances.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-18-profile-plugin-host-runtime-instances.zh.md b/.agents/notes/archived/architecture/2026-09-18-profile-plugin-host-runtime-instances.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-18-profile-plugin-host-runtime-instances.zh.md rename to .agents/notes/archived/architecture/2026-09-18-profile-plugin-host-runtime-instances.zh.md index b222957487..3365d2b93b 100644 --- a/.agents/notes/implemented/architecture/2026-09-18-profile-plugin-host-runtime-instances.zh.md +++ b/.agents/notes/archived/architecture/2026-09-18-profile-plugin-host-runtime-instances.zh.md @@ -1,6 +1,7 @@ # Agent Note: Profile 插件共享安装自带的宿主运行时实例 Status: implemented +Archived: 2026-09-30 [English](2026-09-18-profile-plugin-host-runtime-instances.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-19-lossless-projection-checkpoint-json.i18n.yaml b/.agents/notes/archived/architecture/2026-09-19-lossless-projection-checkpoint-json.i18n.yaml new file mode 100644 index 0000000000..35395f25de --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-19-lossless-projection-checkpoint-json.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-19-lossless-projection-checkpoint-json.md +2026-09-19-lossless-projection-checkpoint-json.md: 3375cd580de3d30f0b493dc9e2ebfafae671cce2 +2026-09-19-lossless-projection-checkpoint-json.zh.md: 4ce4d370aa53bcf4fc002a320f282bbc0a4ba948 diff --git a/.agents/notes/implemented/architecture/2026-09-19-lossless-projection-checkpoint-json.md b/.agents/notes/archived/architecture/2026-09-19-lossless-projection-checkpoint-json.md similarity index 98% rename from .agents/notes/implemented/architecture/2026-09-19-lossless-projection-checkpoint-json.md rename to .agents/notes/archived/architecture/2026-09-19-lossless-projection-checkpoint-json.md index 9c7d15dbd2..3375cd580d 100644 --- a/.agents/notes/implemented/architecture/2026-09-19-lossless-projection-checkpoint-json.md +++ b/.agents/notes/archived/architecture/2026-09-19-lossless-projection-checkpoint-json.md @@ -1,6 +1,7 @@ # Agent Note: Lossless projection checkpoint JSON Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-19-lossless-projection-checkpoint-json.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-19-lossless-projection-checkpoint-json.zh.md b/.agents/notes/archived/architecture/2026-09-19-lossless-projection-checkpoint-json.zh.md similarity index 98% rename from .agents/notes/implemented/architecture/2026-09-19-lossless-projection-checkpoint-json.zh.md rename to .agents/notes/archived/architecture/2026-09-19-lossless-projection-checkpoint-json.zh.md index 8c2b720358..4ce4d370aa 100644 --- a/.agents/notes/implemented/architecture/2026-09-19-lossless-projection-checkpoint-json.zh.md +++ b/.agents/notes/archived/architecture/2026-09-19-lossless-projection-checkpoint-json.zh.md @@ -1,6 +1,7 @@ # Agent Note: 无损投影检查点 JSON Status: implemented +Archived: 2026-09-30 [English](2026-09-19-lossless-projection-checkpoint-json.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-21-creator-skills-progressive-disclosure.i18n.yaml b/.agents/notes/archived/architecture/2026-09-21-creator-skills-progressive-disclosure.i18n.yaml new file mode 100644 index 0000000000..42d7fe5802 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-21-creator-skills-progressive-disclosure.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-21-creator-skills-progressive-disclosure.md +2026-09-21-creator-skills-progressive-disclosure.md: 8b0de4a3de6d43e5529f35ad7803df5c582d2417 +2026-09-21-creator-skills-progressive-disclosure.zh.md: c91164dd822008e06ff619526b902b9fb7df5231 diff --git a/.agents/notes/implemented/architecture/2026-09-21-creator-skills-progressive-disclosure.md b/.agents/notes/archived/architecture/2026-09-21-creator-skills-progressive-disclosure.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-21-creator-skills-progressive-disclosure.md rename to .agents/notes/archived/architecture/2026-09-21-creator-skills-progressive-disclosure.md index bdd70beda7..8b0de4a3de 100644 --- a/.agents/notes/implemented/architecture/2026-09-21-creator-skills-progressive-disclosure.md +++ b/.agents/notes/archived/architecture/2026-09-21-creator-skills-progressive-disclosure.md @@ -1,6 +1,7 @@ # Agent Note: Creator skills disclose progressively and may read sources Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-21-creator-skills-progressive-disclosure.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-21-creator-skills-progressive-disclosure.zh.md b/.agents/notes/archived/architecture/2026-09-21-creator-skills-progressive-disclosure.zh.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-21-creator-skills-progressive-disclosure.zh.md rename to .agents/notes/archived/architecture/2026-09-21-creator-skills-progressive-disclosure.zh.md index 265d9db21a..c91164dd82 100644 --- a/.agents/notes/implemented/architecture/2026-09-21-creator-skills-progressive-disclosure.zh.md +++ b/.agents/notes/archived/architecture/2026-09-21-creator-skills-progressive-disclosure.zh.md @@ -1,6 +1,7 @@ # Agent Note: 创造模式 skill 渐进式披露并允许读源码 Status: implemented +Archived: 2026-09-30 [English](2026-09-21-creator-skills-progressive-disclosure.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-21-live-config-inspect-provider.i18n.yaml b/.agents/notes/archived/architecture/2026-09-21-live-config-inspect-provider.i18n.yaml new file mode 100644 index 0000000000..60d7414481 --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-21-live-config-inspect-provider.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-09-21-live-config-inspect-provider.md +2026-09-21-live-config-inspect-provider.md: b7a71d3b1d346bcb7038a815935c4b6d8e7b6c4b +2026-09-21-live-config-inspect-provider.zh.md: c8c90f252b5fa7d101959979e811dc51c06a1869 diff --git a/.agents/notes/implemented/architecture/2026-09-21-live-config-inspect-provider.md b/.agents/notes/archived/architecture/2026-09-21-live-config-inspect-provider.md similarity index 99% rename from .agents/notes/implemented/architecture/2026-09-21-live-config-inspect-provider.md rename to .agents/notes/archived/architecture/2026-09-21-live-config-inspect-provider.md index b4be508526..b7a71d3b1d 100644 --- a/.agents/notes/implemented/architecture/2026-09-21-live-config-inspect-provider.md +++ b/.agents/notes/archived/architecture/2026-09-21-live-config-inspect-provider.md @@ -1,6 +1,7 @@ # Agent Note: Live plugin Config inspection replaces the Host Builtin provider Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-21-live-config-inspect-provider.zh.md) diff --git a/.agents/notes/implemented/architecture/2026-09-21-live-config-inspect-provider.zh.md b/.agents/notes/archived/architecture/2026-09-21-live-config-inspect-provider.zh.md similarity index 98% rename from .agents/notes/implemented/architecture/2026-09-21-live-config-inspect-provider.zh.md rename to .agents/notes/archived/architecture/2026-09-21-live-config-inspect-provider.zh.md index e1eead7b68..c8c90f252b 100644 --- a/.agents/notes/implemented/architecture/2026-09-21-live-config-inspect-provider.zh.md +++ b/.agents/notes/archived/architecture/2026-09-21-live-config-inspect-provider.zh.md @@ -1,6 +1,7 @@ # Agent Note: 运行中插件 Config 检查取代 Host Builtin provider Status: implemented +Archived: 2026-09-30 [English](2026-09-21-live-config-inspect-provider.md) | 中文 diff --git a/.agents/notes/archived/architecture/2026-09-24-web-default-schedule-composition.i18n.yaml b/.agents/notes/archived/architecture/2026-09-24-web-default-schedule-composition.i18n.yaml new file mode 100644 index 0000000000..b5321c036f --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-24-web-default-schedule-composition.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write +2026-09-24-web-default-schedule-composition.md: 3f27bb09ebc00d42c32563e17a1de82c8e525be1 +2026-09-24-web-default-schedule-composition.zh.md: 9e0e1fb77ce89b579e1bc8b0d4d0a1b9f4e9fea5 diff --git a/.agents/notes/archived/architecture/2026-09-24-web-default-schedule-composition.md b/.agents/notes/archived/architecture/2026-09-24-web-default-schedule-composition.md new file mode 100644 index 0000000000..3f27bb09eb --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-24-web-default-schedule-composition.md @@ -0,0 +1,40 @@ +# Agent Note: Schedule in the shipped Web composition + +Status: implemented +Archived: 2026-09-25 + +English | [中文](2026-09-24-web-default-schedule-composition.zh.md) + +## Problem + +The Automation tasks page, the Session reminder catalog, and the `schedule_*` tools reached a Web deployment only through `--patch apps/cli/config/examples/schedule/cordis.yml`. `packages/bundle/web-app/cordis.patch.yml` carried the `ui-schedule` client row with `disabled: true`, and the Host rows `time-context` and `schedule` existed in that overlay alone. A person running the shipped `web` profile therefore saw no Automation tasks entry and no reminder tools, while every consumer that wanted them repeated the same three rows: the repository preview image kept its own overlay list, and two Web suites hard-coded the overlay path. + +## Decision + +`packages/bundle/web-app/cordis.patch.yml` inserts `time-context` and `schedule` in its Host row list and leaves `ui-schedule` enabled; `packages/bundle/web-app/package.json` declares both packages, which `verify-cordis-config` requires for a bare row name in a bundle patch. The `web` profile consequently ships the Automation tasks page, the Session-header reminder clock, the idle Session row's clock mark and hover list, the right-Sidebar task tab, and `schedule_create`, `schedule_list`, `schedule_update`, and `schedule_delete` on every live root Agent. + +`apps/cli/config/examples/schedule/cordis.yml` is deleted. `applyEntryPatches` appends an `insert` list without de-duplicating ids, so keeping the overlay would mount `time-context` and `schedule` a second time; the two Web suites and the preview packer that named the overlay compose the shipped profile alone. + +`time-context` ships with Schedule because a reminder request states a wall-clock target. The plugin appends one durable user message per eligible step carrying the sampled instant, the browser zone attached to the open request, and the elapsed time since the preceding model-visible message. The sampling instant is what lets the model turn a request such as "tomorrow at nine" into an offset-bearing `at` value; the [Schedule subsystem](../../../../docs/subsystems/schedule.md) owns that interpretation boundary and the explicit-zone requirement it feeds. + +The Host service, its storage domain, and the client half are unchanged. This decision moves which composition mounts them, and the [Host-owned scheduled messages decision](2026-09-16-host-schedule-storage.md) continues to own task storage, activation, dispatch, and delivery records. + +## Recorded sessions + +A Web scenario that drives a live step now logs one time-context reading per step, so its committed Session fixture and header sidecars were refreshed. A reading's sampled instant, browser zone, and elapsed duration are volatile, and `normalizeWebSessionVolatiles` in `apps/web/tests/scaffold.ts` replaces them with `{{timeContextTimestamp}}`, `{{clientTimeZone}}`, and `{{elapsed}}`. The turn and step numbers and the preceding-event baseline stay readable, so a fixture still shows what the model received. Refresh writes the current writer generation (`session.v4.jsonl`) beside the retained predecessors, which remain committed replay baselines. + +## Alternatives considered + +**Keep the overlay and change nothing.** The shipped surface would keep contradicting the product documentation that describes the Automation tasks entry, and each consumer would keep its own copy of the three rows. The overlay also cannot satisfy the request that the default `dsh web` process exposes the page without a flag. + +**Ship the Schedule rows without `time-context`.** The model would then have no sampling instant of its own, so an unqualified date or time in a reminder request would depend on a separate clock source; the overlay paired the two rows for that reason. + +**Reach for a separate optional bundle.** `OPTIONAL_BUNDLES` exists for bundles a person switches on from the plugin manager, which is the same opt-in shape as the overlay; the decision here is that a default Web surface owns the page and the tools. + +## Consequences + +- Every Web session's request header carries four additional tool schemas, and every eligible step appends one durable user message. A conversation that never creates a reminder pays that token cost. +- The clock reading is model-visible and durable, so it replays, compacts, and appears in exported Session logs like any other user message. +- A deployment that wants the previous behavior disables the `time-context`, `schedule`, and `ui-schedule` rows in its own profile patch layer; the capability itself is untouched. +- The `cordis_inspect_query` `listTools` answer for a full preset table now passes the base composition's 12,500-token inline budget, so the spill policy retains that answer's head and tail with a spill path instead of the complete JSON. +- The repository preview image and both Web suites drop their overlay arguments, so one composition change reaches every surface at once. diff --git a/.agents/notes/archived/architecture/2026-09-24-web-default-schedule-composition.zh.md b/.agents/notes/archived/architecture/2026-09-24-web-default-schedule-composition.zh.md new file mode 100644 index 0000000000..9e0e1fb77c --- /dev/null +++ b/.agents/notes/archived/architecture/2026-09-24-web-default-schedule-composition.zh.md @@ -0,0 +1,40 @@ +# Agent Note: 默认 Web 组合中的 Schedule + +Status: implemented +Archived: 2026-09-25 + +[English](2026-09-24-web-default-schedule-composition.md) | 中文 + +## Problem + +自动化任务页面、Session 提醒目录以及 `schedule_*` 工具此前只能通过 `--patch apps/cli/config/examples/schedule/cordis.yml` 进入某个 Web 部署:`packages/bundle/web-app/cordis.patch.yml` 里的 `ui-schedule` 客户端行带 `disabled: true`,而宿主行 `time-context` 与 `schedule` 只存在于那个 overlay 中。因此运行发布版 `web` profile 的人既看不到自动化任务入口,也拿不到提醒工具;同时每个需要它们的消费者都要重复同样的三行:仓库预览镜像自行维护了一份 overlay 列表,两个 Web 测试套件各自硬编码了 overlay 路径。 + +## Decision + +`packages/bundle/web-app/cordis.patch.yml` 在其宿主行列表中插入 `time-context` 与 `schedule`,并让 `ui-schedule` 保持启用;`packages/bundle/web-app/package.json` 声明这两个包,这是 `verify-cordis-config` 对 bundle patch 中裸包名的要求。因此 `web` profile 会交付自动化任务页面、Session 页头的提醒时钟、空闲 Session 行的时钟标记与悬停列表、右侧栏任务页签,并在每个 live 根 Agent 上注册 `schedule_create`、`schedule_list`、`schedule_update` 与 `schedule_delete`。 + +`apps/cli/config/examples/schedule/cordis.yml` 已删除。`applyEntryPatches` 追加 `insert` 列表时不对 id 去重,保留该 overlay 会把 `time-context` 与 `schedule` 挂载两次;原本引用它的两个 Web 测试套件与预览打包器现在只组合发布版 profile。 + +`time-context` 随 Schedule 一起发布,因为提醒请求本身给出的是墙上时钟目标。该插件在每个符合条件的步骤追加一条持久 user 消息,包含采样瞬时、附加到当前开放请求的浏览器时区,以及自前一条模型可见消息以来的经过时长。正是采样瞬时让模型能把「明天九点」这类请求落成带偏移量的 `at` 值;该解释边界及其要求的显式时区由 [Schedule 子系统](../../../../docs/subsystems/schedule.zh.md)负责。 + +宿主服务、其存储 domain 与客户端半边都没有改动。本决策改变的是由哪个组合挂载它们,任务存储、激活、投递与投递记录仍由[宿主定时消息决策](2026-09-16-host-schedule-storage.zh.md)负责。 + +## Recorded sessions + +驱动 live 步骤的 Web 场景现在每步记录一条 time-context 读数,因此其已提交的 Session 夹具与页头 sidecar 都已重刷。一条读数中的采样瞬时、浏览器时区与经过时长是易变值,`apps/web/tests/scaffold.ts` 的 `normalizeWebSessionVolatiles` 会把它们替换为 `{{timeContextTimestamp}}`、`{{clientTimeZone}}` 和 `{{elapsed}}`。turn 与 step 序号以及"前一条事件"的基线保持可读,因此夹具仍能显示模型收到的内容。重刷会在已保留的上一代旁写入当前 writer 代次(`session.v4.jsonl`),旧代次继续作为已提交的回放基线保留。 + +## Alternatives considered + +**保留 overlay,不做任何改动。** 发布版界面会继续与描述该自动化任务入口的产品文档相矛盾,而每个消费者都要各自保留那三行的副本。overlay 也无法满足「默认 `dsh web` 进程不带 flag 就暴露该页面」这一要求。 + +**只发布 Schedule 两行,不带 `time-context`。** 模型将没有自己的采样瞬时,于是提醒请求中未明确限定时区的日期或时间要依赖另一个时钟来源;overlay 当初正是为此把两行配对。 + +**另建一个可选 bundle。** `OPTIONAL_BUNDLES` 面向的是用户在插件管理器里主动开启的 bundle,与 overlay 是同一种 opt-in 形态;本决策要的是默认 Web 界面自己拥有该页面与这些工具。 + +## Consequences + +- 每个 Web 会话的请求头多出四个工具 schema,且每个符合条件的步骤追加一条持久 user 消息。从不创建提醒的对话也要承担这份 token 成本。 +- 时钟读数对模型可见且持久,因此它与其他 user 消息一样参与回放、压缩,并出现在导出的 Session 日志中。 +- 想要恢复旧行为的部署,可在自己的 profile patch 层禁用 `time-context`、`schedule` 与 `ui-schedule` 三行;能力本身没有改动。 +- 完整预设表的 `cordis_inspect_query` `listTools` 答案现在超过基础组合 12,500 token 的内联预算,因此 spill 策略改为保留该答案的首尾并给出 spill 路径,而不是完整 JSON。 +- 仓库预览镜像与两个 Web 测试套件都不再传 overlay 参数,一处组合改动即同时作用于所有界面。 diff --git a/.agents/notes/archived/bug-fix/2026-07-20-jsonl-storage-identity.i18n.yaml b/.agents/notes/archived/bug-fix/2026-07-20-jsonl-storage-identity.i18n.yaml new file mode 100644 index 0000000000..4e6a13ef64 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-07-20-jsonl-storage-identity.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-07-20-jsonl-storage-identity.md +2026-07-20-jsonl-storage-identity.md: b62ac9cc1648c980079e26f95680ac31ca89fee1 +2026-07-20-jsonl-storage-identity.zh.md: 82bffc9693cc6b747ef9d993d518ae789bef451a diff --git a/.agents/notes/implemented/bug-fix/2026-07-20-jsonl-storage-identity.md b/.agents/notes/archived/bug-fix/2026-07-20-jsonl-storage-identity.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-07-20-jsonl-storage-identity.md rename to .agents/notes/archived/bug-fix/2026-07-20-jsonl-storage-identity.md index 5224ebf6be..b62ac9cc16 100644 --- a/.agents/notes/implemented/bug-fix/2026-07-20-jsonl-storage-identity.md +++ b/.agents/notes/archived/bug-fix/2026-07-20-jsonl-storage-identity.md @@ -1,6 +1,7 @@ # Agent Note: Bind JSONL session identity before mutation Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-20-jsonl-storage-identity.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-07-20-jsonl-storage-identity.zh.md b/.agents/notes/archived/bug-fix/2026-07-20-jsonl-storage-identity.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-07-20-jsonl-storage-identity.zh.md rename to .agents/notes/archived/bug-fix/2026-07-20-jsonl-storage-identity.zh.md index 05b7150edb..82bffc9693 100644 --- a/.agents/notes/implemented/bug-fix/2026-07-20-jsonl-storage-identity.zh.md +++ b/.agents/notes/archived/bug-fix/2026-07-20-jsonl-storage-identity.zh.md @@ -1,6 +1,7 @@ # Agent Note: 在变更前绑定 JSONL 会话身份 Status: implemented +Archived: 2026-09-30 [English](2026-07-20-jsonl-storage-identity.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-07-31-fail-loud-releases-the-terminal.i18n.yaml b/.agents/notes/archived/bug-fix/2026-07-31-fail-loud-releases-the-terminal.i18n.yaml new file mode 100644 index 0000000000..d17f432a4f --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-07-31-fail-loud-releases-the-terminal.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-07-31-fail-loud-releases-the-terminal.md +2026-07-31-fail-loud-releases-the-terminal.md: 770b5e4a07c6fbcdb9430c7df529ba82600fc72b +2026-07-31-fail-loud-releases-the-terminal.zh.md: af3eb559ad61be47b4900822d138b7fa86af7365 diff --git a/.agents/notes/implemented/bug-fix/2026-07-31-fail-loud-releases-the-terminal.md b/.agents/notes/archived/bug-fix/2026-07-31-fail-loud-releases-the-terminal.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-07-31-fail-loud-releases-the-terminal.md rename to .agents/notes/archived/bug-fix/2026-07-31-fail-loud-releases-the-terminal.md index 9c8aa41e96..770b5e4a07 100644 --- a/.agents/notes/implemented/bug-fix/2026-07-31-fail-loud-releases-the-terminal.md +++ b/.agents/notes/archived/bug-fix/2026-07-31-fail-loud-releases-the-terminal.md @@ -1,6 +1,7 @@ # Agent Note: fail-loud releases the terminal before exiting Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-31-fail-loud-releases-the-terminal.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-07-31-fail-loud-releases-the-terminal.zh.md b/.agents/notes/archived/bug-fix/2026-07-31-fail-loud-releases-the-terminal.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-07-31-fail-loud-releases-the-terminal.zh.md rename to .agents/notes/archived/bug-fix/2026-07-31-fail-loud-releases-the-terminal.zh.md index e44d4672dc..af3eb559ad 100644 --- a/.agents/notes/implemented/bug-fix/2026-07-31-fail-loud-releases-the-terminal.zh.md +++ b/.agents/notes/archived/bug-fix/2026-07-31-fail-loud-releases-the-terminal.zh.md @@ -1,6 +1,7 @@ # Agent Note: fail-loud 在退出前释放终端 Status: implemented +Archived: 2026-09-30 [English](2026-07-31-fail-loud-releases-the-terminal.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-08-03-cli-signal-shutdown-escalation.i18n.yaml b/.agents/notes/archived/bug-fix/2026-08-03-cli-signal-shutdown-escalation.i18n.yaml new file mode 100644 index 0000000000..2d8afe66ae --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-08-03-cli-signal-shutdown-escalation.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-08-03-cli-signal-shutdown-escalation.md +2026-08-03-cli-signal-shutdown-escalation.md: 8f8dce5f4d09c71a4a93b719138c995e79e82f8b +2026-08-03-cli-signal-shutdown-escalation.zh.md: 1b3a56ed3741bf08f54f12e18d1482edcf1d08b2 diff --git a/.agents/notes/implemented/bug-fix/2026-08-03-cli-signal-shutdown-escalation.md b/.agents/notes/archived/bug-fix/2026-08-03-cli-signal-shutdown-escalation.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-03-cli-signal-shutdown-escalation.md rename to .agents/notes/archived/bug-fix/2026-08-03-cli-signal-shutdown-escalation.md index 2f8bdce548..8f8dce5f4d 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-03-cli-signal-shutdown-escalation.md +++ b/.agents/notes/archived/bug-fix/2026-08-03-cli-signal-shutdown-escalation.md @@ -1,6 +1,7 @@ # Agent Note: Bounded, escalating signal shutdown for Web and headless Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-03-cli-signal-shutdown-escalation.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-08-03-cli-signal-shutdown-escalation.zh.md b/.agents/notes/archived/bug-fix/2026-08-03-cli-signal-shutdown-escalation.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-03-cli-signal-shutdown-escalation.zh.md rename to .agents/notes/archived/bug-fix/2026-08-03-cli-signal-shutdown-escalation.zh.md index 8e3b90ff15..1b3a56ed37 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-03-cli-signal-shutdown-escalation.zh.md +++ b/.agents/notes/archived/bug-fix/2026-08-03-cli-signal-shutdown-escalation.zh.md @@ -1,6 +1,7 @@ # Agent Note: Web 与 headless 的有界信号关闭和重复信号强制退出 Status: implemented +Archived: 2026-09-30 [English](2026-08-03-cli-signal-shutdown-escalation.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-08-06-bwrap-private-pid-namespace.i18n.yaml b/.agents/notes/archived/bug-fix/2026-08-06-bwrap-private-pid-namespace.i18n.yaml new file mode 100644 index 0000000000..8d7be151fb --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-08-06-bwrap-private-pid-namespace.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-08-06-bwrap-private-pid-namespace.md +2026-08-06-bwrap-private-pid-namespace.md: eb5818a9292d7c96d7d1623865058182befd891b +2026-08-06-bwrap-private-pid-namespace.zh.md: 396ee74b1b2377e31a4b8753d9a165081c6dac82 diff --git a/.agents/notes/implemented/bug-fix/2026-08-06-bwrap-private-pid-namespace.md b/.agents/notes/archived/bug-fix/2026-08-06-bwrap-private-pid-namespace.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-06-bwrap-private-pid-namespace.md rename to .agents/notes/archived/bug-fix/2026-08-06-bwrap-private-pid-namespace.md index c7c83fd274..eb5818a929 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-06-bwrap-private-pid-namespace.md +++ b/.agents/notes/archived/bug-fix/2026-08-06-bwrap-private-pid-namespace.md @@ -1,6 +1,7 @@ # Agent Note: isolate bwrap from the host PID namespace Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-06-bwrap-private-pid-namespace.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-08-06-bwrap-private-pid-namespace.zh.md b/.agents/notes/archived/bug-fix/2026-08-06-bwrap-private-pid-namespace.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-06-bwrap-private-pid-namespace.zh.md rename to .agents/notes/archived/bug-fix/2026-08-06-bwrap-private-pid-namespace.zh.md index fa53d4eb66..396ee74b1b 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-06-bwrap-private-pid-namespace.zh.md +++ b/.agents/notes/archived/bug-fix/2026-08-06-bwrap-private-pid-namespace.zh.md @@ -1,6 +1,7 @@ # Agent Note: 将 bwrap 与宿主 PID 命名空间隔离 Status: implemented +Archived: 2026-09-30 [English](2026-08-06-bwrap-private-pid-namespace.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-08-06-host-backed-web-preferences.i18n.yaml b/.agents/notes/archived/bug-fix/2026-08-06-host-backed-web-preferences.i18n.yaml new file mode 100644 index 0000000000..f71f5cd74c --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-08-06-host-backed-web-preferences.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-08-06-host-backed-web-preferences.md +2026-08-06-host-backed-web-preferences.md: fcbcb0405162a70cbface43ffcbe2b08d32f3e10 +2026-08-06-host-backed-web-preferences.zh.md: 45ece0f982d67f1f08bec9fdaeb2887a92db3f0f diff --git a/.agents/notes/implemented/bug-fix/2026-08-06-host-backed-web-preferences.md b/.agents/notes/archived/bug-fix/2026-08-06-host-backed-web-preferences.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-06-host-backed-web-preferences.md rename to .agents/notes/archived/bug-fix/2026-08-06-host-backed-web-preferences.md index 4b8d528875..fcbcb04051 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-06-host-backed-web-preferences.md +++ b/.agents/notes/archived/bug-fix/2026-08-06-host-backed-web-preferences.md @@ -1,6 +1,7 @@ # Agent Note: Persist Web user preferences through Host settings Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-06-host-backed-web-preferences.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-08-06-host-backed-web-preferences.zh.md b/.agents/notes/archived/bug-fix/2026-08-06-host-backed-web-preferences.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-06-host-backed-web-preferences.zh.md rename to .agents/notes/archived/bug-fix/2026-08-06-host-backed-web-preferences.zh.md index 9c61de7198..45ece0f982 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-06-host-backed-web-preferences.zh.md +++ b/.agents/notes/archived/bug-fix/2026-08-06-host-backed-web-preferences.zh.md @@ -1,6 +1,7 @@ # Agent Note: 通过 Host settings 持久化 Web 用户偏好 Status: implemented +Archived: 2026-09-30 [English](2026-08-06-host-backed-web-preferences.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-08-07-cancel-convergence-wake-latch.i18n.yaml b/.agents/notes/archived/bug-fix/2026-08-07-cancel-convergence-wake-latch.i18n.yaml new file mode 100644 index 0000000000..90cbd0bf23 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-08-07-cancel-convergence-wake-latch.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-08-07-cancel-convergence-wake-latch.md +2026-08-07-cancel-convergence-wake-latch.md: ad42de0440dd9903ada478094e7841d1227247b4 +2026-08-07-cancel-convergence-wake-latch.zh.md: 2c2973fff2d6345141369a1359d7fd5d123f84f1 diff --git a/.agents/notes/implemented/bug-fix/2026-08-07-cancel-convergence-wake-latch.md b/.agents/notes/archived/bug-fix/2026-08-07-cancel-convergence-wake-latch.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-07-cancel-convergence-wake-latch.md rename to .agents/notes/archived/bug-fix/2026-08-07-cancel-convergence-wake-latch.md index a6540a7b46..ad42de0440 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-07-cancel-convergence-wake-latch.md +++ b/.agents/notes/archived/bug-fix/2026-08-07-cancel-convergence-wake-latch.md @@ -1,6 +1,7 @@ # Agent Note: Latch wake-ups that land in the cancel-convergence window Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-07-cancel-convergence-wake-latch.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-08-07-cancel-convergence-wake-latch.zh.md b/.agents/notes/archived/bug-fix/2026-08-07-cancel-convergence-wake-latch.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-07-cancel-convergence-wake-latch.zh.md rename to .agents/notes/archived/bug-fix/2026-08-07-cancel-convergence-wake-latch.zh.md index 2c4f368fea..2c2973fff2 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-07-cancel-convergence-wake-latch.zh.md +++ b/.agents/notes/archived/bug-fix/2026-08-07-cancel-convergence-wake-latch.zh.md @@ -1,6 +1,7 @@ # Agent Note: 锁存取消收敛窗口内到达的唤醒请求 Status: implemented +Archived: 2026-09-30 [English](2026-08-07-cancel-convergence-wake-latch.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-08-07-ptc-executor-collapse.i18n.yaml b/.agents/notes/archived/bug-fix/2026-08-07-ptc-executor-collapse.i18n.yaml new file mode 100644 index 0000000000..18fabd73d3 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-08-07-ptc-executor-collapse.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-08-07-ptc-executor-collapse.md +2026-08-07-ptc-executor-collapse.md: de8047625f3638aab594aed992162d2548193c20 +2026-08-07-ptc-executor-collapse.zh.md: a8bc6b1f12734625879ac2de78c830123cacb263 diff --git a/.agents/notes/implemented/bug-fix/2026-08-07-ptc-executor-collapse.md b/.agents/notes/archived/bug-fix/2026-08-07-ptc-executor-collapse.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-07-ptc-executor-collapse.md rename to .agents/notes/archived/bug-fix/2026-08-07-ptc-executor-collapse.md index e034d30ff5..de8047625f 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-07-ptc-executor-collapse.md +++ b/.agents/notes/archived/bug-fix/2026-08-07-ptc-executor-collapse.md @@ -1,6 +1,7 @@ # Agent Note: PTC mode collapses the executor, not just the wire Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-07-ptc-executor-collapse.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-08-07-ptc-executor-collapse.zh.md b/.agents/notes/archived/bug-fix/2026-08-07-ptc-executor-collapse.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-07-ptc-executor-collapse.zh.md rename to .agents/notes/archived/bug-fix/2026-08-07-ptc-executor-collapse.zh.md index 03f93a3235..a8bc6b1f12 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-07-ptc-executor-collapse.zh.md +++ b/.agents/notes/archived/bug-fix/2026-08-07-ptc-executor-collapse.zh.md @@ -1,6 +1,7 @@ # Agent Note: PTC mode 塌缩执行器而非仅通告面 Status: implemented +Archived: 2026-09-30 [English](2026-08-07-ptc-executor-collapse.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-08-10-child-agents-join-their-parent-preset.i18n.yaml b/.agents/notes/archived/bug-fix/2026-08-10-child-agents-join-their-parent-preset.i18n.yaml new file mode 100644 index 0000000000..5d143ca75b --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-08-10-child-agents-join-their-parent-preset.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-08-10-child-agents-join-their-parent-preset.md +2026-08-10-child-agents-join-their-parent-preset.md: cae95345f0ea3abb997ea10a36627f5a94603042 +2026-08-10-child-agents-join-their-parent-preset.zh.md: e93f42c85c778120448c43998ce10aa926b30583 diff --git a/.agents/notes/implemented/bug-fix/2026-08-10-child-agents-join-their-parent-preset.md b/.agents/notes/archived/bug-fix/2026-08-10-child-agents-join-their-parent-preset.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-10-child-agents-join-their-parent-preset.md rename to .agents/notes/archived/bug-fix/2026-08-10-child-agents-join-their-parent-preset.md index 7de247a7a3..cae95345f0 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-10-child-agents-join-their-parent-preset.md +++ b/.agents/notes/archived/bug-fix/2026-08-10-child-agents-join-their-parent-preset.md @@ -1,6 +1,7 @@ # Agent Note: Child agents join their parent's preset composition Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-10-child-agents-join-their-parent-preset.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-08-10-child-agents-join-their-parent-preset.zh.md b/.agents/notes/archived/bug-fix/2026-08-10-child-agents-join-their-parent-preset.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-10-child-agents-join-their-parent-preset.zh.md rename to .agents/notes/archived/bug-fix/2026-08-10-child-agents-join-their-parent-preset.zh.md index c9d392cd75..e93f42c85c 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-10-child-agents-join-their-parent-preset.zh.md +++ b/.agents/notes/archived/bug-fix/2026-08-10-child-agents-join-their-parent-preset.zh.md @@ -1,6 +1,7 @@ # Agent Note: Child agents join their parent's preset composition Status: implemented +Archived: 2026-09-30 [English](2026-08-10-child-agents-join-their-parent-preset.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-08-17-durable-web-queue-recovery.i18n.yaml b/.agents/notes/archived/bug-fix/2026-08-17-durable-web-queue-recovery.i18n.yaml new file mode 100644 index 0000000000..a1bf462cc7 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-08-17-durable-web-queue-recovery.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-08-17-durable-web-queue-recovery.md +2026-08-17-durable-web-queue-recovery.md: bf04d65c1d834507c47271db68487b3e969db821 +2026-08-17-durable-web-queue-recovery.zh.md: c1ef9c77891a739314ca510af2debc824cf1b178 diff --git a/.agents/notes/implemented/bug-fix/2026-08-17-durable-web-queue-recovery.md b/.agents/notes/archived/bug-fix/2026-08-17-durable-web-queue-recovery.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-17-durable-web-queue-recovery.md rename to .agents/notes/archived/bug-fix/2026-08-17-durable-web-queue-recovery.md index 0f18cd7a2b..bf04d65c1d 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-17-durable-web-queue-recovery.md +++ b/.agents/notes/archived/bug-fix/2026-08-17-durable-web-queue-recovery.md @@ -1,6 +1,7 @@ # Agent Note: Recover the Web queue from durable Inbox state Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-17-durable-web-queue-recovery.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-08-17-durable-web-queue-recovery.zh.md b/.agents/notes/archived/bug-fix/2026-08-17-durable-web-queue-recovery.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-17-durable-web-queue-recovery.zh.md rename to .agents/notes/archived/bug-fix/2026-08-17-durable-web-queue-recovery.zh.md index 476c1b2fe8..c1ef9c7789 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-17-durable-web-queue-recovery.zh.md +++ b/.agents/notes/archived/bug-fix/2026-08-17-durable-web-queue-recovery.zh.md @@ -1,6 +1,7 @@ # Agent Note: 从持久 Inbox 状态恢复 Web Queue Status: implemented +Archived: 2026-09-30 [English](2026-08-17-durable-web-queue-recovery.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-08-17-subagent-message-settlement-ordering.i18n.yaml b/.agents/notes/archived/bug-fix/2026-08-17-subagent-message-settlement-ordering.i18n.yaml new file mode 100644 index 0000000000..0c4062dd01 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-08-17-subagent-message-settlement-ordering.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-08-17-subagent-message-settlement-ordering.md +2026-08-17-subagent-message-settlement-ordering.md: 4e269b3a822825db88e18e870e0b27d4789e1a35 +2026-08-17-subagent-message-settlement-ordering.zh.md: 8e54128075eb6b03b6f8cc32e87847091e49f39c diff --git a/.agents/notes/implemented/bug-fix/2026-08-17-subagent-message-settlement-ordering.md b/.agents/notes/archived/bug-fix/2026-08-17-subagent-message-settlement-ordering.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-17-subagent-message-settlement-ordering.md rename to .agents/notes/archived/bug-fix/2026-08-17-subagent-message-settlement-ordering.md index b383dc2909..4e269b3a82 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-17-subagent-message-settlement-ordering.md +++ b/.agents/notes/archived/bug-fix/2026-08-17-subagent-message-settlement-ordering.md @@ -1,6 +1,7 @@ # Agent Note: Child Agent messages precede their settlement notices Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-17-subagent-message-settlement-ordering.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-08-17-subagent-message-settlement-ordering.zh.md b/.agents/notes/archived/bug-fix/2026-08-17-subagent-message-settlement-ordering.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-17-subagent-message-settlement-ordering.zh.md rename to .agents/notes/archived/bug-fix/2026-08-17-subagent-message-settlement-ordering.zh.md index 330c19b20b..8e54128075 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-17-subagent-message-settlement-ordering.zh.md +++ b/.agents/notes/archived/bug-fix/2026-08-17-subagent-message-settlement-ordering.zh.md @@ -1,6 +1,7 @@ # Agent Note: Child Agent 消息先于其结算通知 Status: implemented +Archived: 2026-09-30 [English](2026-08-17-subagent-message-settlement-ordering.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.i18n.yaml b/.agents/notes/archived/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.i18n.yaml new file mode 100644 index 0000000000..24aaf81bac --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.md +2026-08-24-alpha-routed-image-quality-ladders.md: 8a66d392e79c7c6cd1f447488021170c4953c9a2 +2026-08-24-alpha-routed-image-quality-ladders.zh.md: e43fc1de4098de4f0de6add7bd633c2c7863f66a diff --git a/.agents/notes/implemented/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.md b/.agents/notes/archived/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.md rename to .agents/notes/archived/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.md index cdf5e7bd90..8a66d392e7 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.md +++ b/.agents/notes/archived/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.md @@ -1,6 +1,7 @@ # Agent Note: Alpha-routed image quality ladders replace colour-count codec routing Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-24-alpha-routed-image-quality-ladders.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.zh.md b/.agents/notes/archived/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.zh.md rename to .agents/notes/archived/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.zh.md index fbe8215b0c..e43fc1de40 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.zh.md +++ b/.agents/notes/archived/bug-fix/2026-08-24-alpha-routed-image-quality-ladders.zh.md @@ -1,6 +1,7 @@ # Agent Note: 按 alpha 路由的图片质量阶梯取代按色数分类的编码路由 Status: implemented +Archived: 2026-09-30 [English](2026-08-24-alpha-routed-image-quality-ladders.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-08-31-win32-picker-path-string-read.i18n.yaml b/.agents/notes/archived/bug-fix/2026-08-31-win32-picker-path-string-read.i18n.yaml new file mode 100644 index 0000000000..2281c8df26 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-08-31-win32-picker-path-string-read.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-08-31-win32-picker-path-string-read.md +2026-08-31-win32-picker-path-string-read.md: b6ac8babafb35df0618c5da99d2c1d48f6df75fa +2026-08-31-win32-picker-path-string-read.zh.md: 344ecf91d7a6332ffa5e449d5041d21a6a036b7b diff --git a/.agents/notes/implemented/bug-fix/2026-08-31-win32-picker-path-string-read.md b/.agents/notes/archived/bug-fix/2026-08-31-win32-picker-path-string-read.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-08-31-win32-picker-path-string-read.md rename to .agents/notes/archived/bug-fix/2026-08-31-win32-picker-path-string-read.md index 63b2a2ea5e..b6ac8babaf 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-31-win32-picker-path-string-read.md +++ b/.agents/notes/archived/bug-fix/2026-08-31-win32-picker-path-string-read.md @@ -1,6 +1,7 @@ # Agent Note: Read the Win32 picker path without a fixed-size unmanaged view Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-31-win32-picker-path-string-read.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-08-31-win32-picker-path-string-read.zh.md b/.agents/notes/archived/bug-fix/2026-08-31-win32-picker-path-string-read.zh.md similarity index 98% rename from .agents/notes/implemented/bug-fix/2026-08-31-win32-picker-path-string-read.zh.md rename to .agents/notes/archived/bug-fix/2026-08-31-win32-picker-path-string-read.zh.md index 8afc6610a0..344ecf91d7 100644 --- a/.agents/notes/implemented/bug-fix/2026-08-31-win32-picker-path-string-read.zh.md +++ b/.agents/notes/archived/bug-fix/2026-08-31-win32-picker-path-string-read.zh.md @@ -1,6 +1,7 @@ # Agent Note: 不用固定长度的非托管视图读取 Win32 选择器路径 Status: implemented +Archived: 2026-09-30 [English](2026-08-31-win32-picker-path-string-read.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.i18n.yaml new file mode 100644 index 0000000000..70d4833c10 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.md +2026-09-03-normalized-unread-fs-tool-diagnostic.md: 67d3dca2b9944303cf1ae4cdb12f07b44f0d4d04 +2026-09-03-normalized-unread-fs-tool-diagnostic.zh.md: 21a9e338c78db8aa338970dd03046de0cb41172c diff --git a/.agents/notes/implemented/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.md b/.agents/notes/archived/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.md rename to .agents/notes/archived/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.md index 01287a0806..67d3dca2b9 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.md +++ b/.agents/notes/archived/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.md @@ -1,6 +1,7 @@ # Agent Note: Normalized unread filesystem tool diagnostic Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-03-normalized-unread-fs-tool-diagnostic.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.zh.md b/.agents/notes/archived/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.zh.md rename to .agents/notes/archived/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.zh.md index 5aba96ce76..21a9e338c7 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.zh.md @@ -1,6 +1,7 @@ # Agent Note: 统一未读取文件系统工具诊断 Status: implemented +Archived: 2026-09-30 [English](2026-09-03-normalized-unread-fs-tool-diagnostic.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-03-root-marker-metadata-failures.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-03-root-marker-metadata-failures.i18n.yaml new file mode 100644 index 0000000000..ea240bc230 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-03-root-marker-metadata-failures.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-03-root-marker-metadata-failures.md +2026-09-03-root-marker-metadata-failures.md: 04d54ecd7006683e080a71fc7c88946e8e7a99fd +2026-09-03-root-marker-metadata-failures.zh.md: 7e515d56a2968ba6607463bbac2cc888030066d0 diff --git a/.agents/notes/implemented/bug-fix/2026-09-03-root-marker-metadata-failures.md b/.agents/notes/archived/bug-fix/2026-09-03-root-marker-metadata-failures.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-03-root-marker-metadata-failures.md rename to .agents/notes/archived/bug-fix/2026-09-03-root-marker-metadata-failures.md index e31ef646d7..04d54ecd70 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-03-root-marker-metadata-failures.md +++ b/.agents/notes/archived/bug-fix/2026-09-03-root-marker-metadata-failures.md @@ -1,6 +1,7 @@ # Agent Note: Root marker metadata failures Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-03-root-marker-metadata-failures.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-03-root-marker-metadata-failures.zh.md b/.agents/notes/archived/bug-fix/2026-09-03-root-marker-metadata-failures.zh.md similarity index 98% rename from .agents/notes/implemented/bug-fix/2026-09-03-root-marker-metadata-failures.zh.md rename to .agents/notes/archived/bug-fix/2026-09-03-root-marker-metadata-failures.zh.md index 4b62f4e01b..7e515d56a2 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-03-root-marker-metadata-failures.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-03-root-marker-metadata-failures.zh.md @@ -1,6 +1,7 @@ # Agent Note: 根标记元数据故障 Status: implemented +Archived: 2026-09-30 [English](2026-09-03-root-marker-metadata-failures.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-03-user-owned-goal-pause-activation.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-03-user-owned-goal-pause-activation.i18n.yaml new file mode 100644 index 0000000000..9291f62844 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-03-user-owned-goal-pause-activation.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-03-user-owned-goal-pause-activation.md +2026-09-03-user-owned-goal-pause-activation.md: a38011025b0c18a55e5ca2358c409331eb892136 +2026-09-03-user-owned-goal-pause-activation.zh.md: 36930d351da768eb93afd1868f4336af53909cf8 diff --git a/.agents/notes/implemented/bug-fix/2026-09-03-user-owned-goal-pause-activation.md b/.agents/notes/archived/bug-fix/2026-09-03-user-owned-goal-pause-activation.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-03-user-owned-goal-pause-activation.md rename to .agents/notes/archived/bug-fix/2026-09-03-user-owned-goal-pause-activation.md index d58566938e..a38011025b 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-03-user-owned-goal-pause-activation.md +++ b/.agents/notes/archived/bug-fix/2026-09-03-user-owned-goal-pause-activation.md @@ -1,6 +1,7 @@ # Agent Note: User-owned goal pause exposes live activation Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-03-user-owned-goal-pause-activation.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-03-user-owned-goal-pause-activation.zh.md b/.agents/notes/archived/bug-fix/2026-09-03-user-owned-goal-pause-activation.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-03-user-owned-goal-pause-activation.zh.md rename to .agents/notes/archived/bug-fix/2026-09-03-user-owned-goal-pause-activation.zh.md index 675d61009f..36930d351d 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-03-user-owned-goal-pause-activation.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-03-user-owned-goal-pause-activation.zh.md @@ -1,6 +1,7 @@ # Agent Note: 用户独占的 goal 暂停并暴露实时激活态 Status: implemented +Archived: 2026-09-30 [English](2026-09-03-user-owned-goal-pause-activation.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-05-continuous-client-recovery.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-05-continuous-client-recovery.i18n.yaml new file mode 100644 index 0000000000..c674eae532 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-05-continuous-client-recovery.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-05-continuous-client-recovery.md +2026-09-05-continuous-client-recovery.md: 132d94f741165a30fc96477aefb78cdd68ffeb37 +2026-09-05-continuous-client-recovery.zh.md: 658d731e0689d0a34e2548cc87916c19738f8e38 diff --git a/.agents/notes/implemented/bug-fix/2026-09-05-continuous-client-recovery.md b/.agents/notes/archived/bug-fix/2026-09-05-continuous-client-recovery.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-05-continuous-client-recovery.md rename to .agents/notes/archived/bug-fix/2026-09-05-continuous-client-recovery.md index 2eacaca4f8..132d94f741 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-05-continuous-client-recovery.md +++ b/.agents/notes/archived/bug-fix/2026-09-05-continuous-client-recovery.md @@ -1,6 +1,7 @@ # Agent Note: Continuous Client connection recovery Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-05-continuous-client-recovery.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-05-continuous-client-recovery.zh.md b/.agents/notes/archived/bug-fix/2026-09-05-continuous-client-recovery.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-05-continuous-client-recovery.zh.md rename to .agents/notes/archived/bug-fix/2026-09-05-continuous-client-recovery.zh.md index 96908b1217..658d731e06 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-05-continuous-client-recovery.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-05-continuous-client-recovery.zh.md @@ -1,6 +1,7 @@ # Agent Note: Client 连接持续恢复 Status: implemented +Archived: 2026-09-30 [English](2026-09-05-continuous-client-recovery.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-05-nested-terminal-cards.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-05-nested-terminal-cards.i18n.yaml new file mode 100644 index 0000000000..419268eb13 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-05-nested-terminal-cards.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-05-nested-terminal-cards.md +2026-09-05-nested-terminal-cards.md: 5ad15750b94e57728d1160c0e98b830a6978a946 +2026-09-05-nested-terminal-cards.zh.md: f0c00a5070ef8f553eaebff1858116da42801711 diff --git a/.agents/notes/implemented/bug-fix/2026-09-05-nested-terminal-cards.md b/.agents/notes/archived/bug-fix/2026-09-05-nested-terminal-cards.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-05-nested-terminal-cards.md rename to .agents/notes/archived/bug-fix/2026-09-05-nested-terminal-cards.md index c5946a332f..5ad15750b9 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-05-nested-terminal-cards.md +++ b/.agents/notes/archived/bug-fix/2026-09-05-nested-terminal-cards.md @@ -1,6 +1,7 @@ # Agent Note: Nested terminal cards Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-05-nested-terminal-cards.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-05-nested-terminal-cards.zh.md b/.agents/notes/archived/bug-fix/2026-09-05-nested-terminal-cards.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-05-nested-terminal-cards.zh.md rename to .agents/notes/archived/bug-fix/2026-09-05-nested-terminal-cards.zh.md index 74056014ce..f0c00a5070 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-05-nested-terminal-cards.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-05-nested-terminal-cards.zh.md @@ -1,6 +1,7 @@ # Agent Note: 嵌套 terminal 卡片 Status: implemented +Archived: 2026-09-30 [English](2026-09-05-nested-terminal-cards.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-05-patch-plugin-file-urls.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-05-patch-plugin-file-urls.i18n.yaml new file mode 100644 index 0000000000..817b22c234 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-05-patch-plugin-file-urls.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-05-patch-plugin-file-urls.md +2026-09-05-patch-plugin-file-urls.md: d43cb730ceee688e59200a7016eb5b8da912ab0d +2026-09-05-patch-plugin-file-urls.zh.md: 346940728af827e50217049efed3699fcc2b692d diff --git a/.agents/notes/implemented/bug-fix/2026-09-05-patch-plugin-file-urls.md b/.agents/notes/archived/bug-fix/2026-09-05-patch-plugin-file-urls.md similarity index 98% rename from .agents/notes/implemented/bug-fix/2026-09-05-patch-plugin-file-urls.md rename to .agents/notes/archived/bug-fix/2026-09-05-patch-plugin-file-urls.md index bad63355ce..d43cb730ce 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-05-patch-plugin-file-urls.md +++ b/.agents/notes/archived/bug-fix/2026-09-05-patch-plugin-file-urls.md @@ -1,6 +1,7 @@ # Agent Note: File URLs for inserted patch plugins Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-05-patch-plugin-file-urls.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-05-patch-plugin-file-urls.zh.md b/.agents/notes/archived/bug-fix/2026-09-05-patch-plugin-file-urls.zh.md similarity index 98% rename from .agents/notes/implemented/bug-fix/2026-09-05-patch-plugin-file-urls.zh.md rename to .agents/notes/archived/bug-fix/2026-09-05-patch-plugin-file-urls.zh.md index 775a576324..346940728a 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-05-patch-plugin-file-urls.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-05-patch-plugin-file-urls.zh.md @@ -1,6 +1,7 @@ # Agent Note: 插入补丁插件的文件 URL Status: implemented +Archived: 2026-09-30 [English](2026-09-05-patch-plugin-file-urls.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.i18n.yaml new file mode 100644 index 0000000000..d817561114 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.md +2026-09-05-pi-ai-upgrade-compatibility.md: 51f7f861015cacc45ccb3b2752fbe6f9b93ad6b4 +2026-09-05-pi-ai-upgrade-compatibility.zh.md: 993e118d21b1b96280ad4c0be9903d6c6d42ec13 diff --git a/.agents/notes/implemented/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.md b/.agents/notes/archived/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.md rename to .agents/notes/archived/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.md index e28d911fac..51f7f86101 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.md +++ b/.agents/notes/archived/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.md @@ -1,6 +1,7 @@ # Agent Note: pi-ai upgrade compatibility Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-05-pi-ai-upgrade-compatibility.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.zh.md b/.agents/notes/archived/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.zh.md rename to .agents/notes/archived/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.zh.md index 408669ddc9..993e118d21 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-05-pi-ai-upgrade-compatibility.zh.md @@ -1,6 +1,7 @@ # Agent Note: pi-ai 升级兼容性 Status: implemented +Archived: 2026-09-30 [English](2026-09-05-pi-ai-upgrade-compatibility.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-05-session-reference-model-budget.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-05-session-reference-model-budget.i18n.yaml new file mode 100644 index 0000000000..a07ec6b255 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-05-session-reference-model-budget.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-05-session-reference-model-budget.md +2026-09-05-session-reference-model-budget.md: 679073552021106be7294f2c8b40108384af4f8c +2026-09-05-session-reference-model-budget.zh.md: 3ceb13e2c7b67fb36376032b3615fb46e11c7db9 diff --git a/.agents/notes/implemented/bug-fix/2026-09-05-session-reference-model-budget.md b/.agents/notes/archived/bug-fix/2026-09-05-session-reference-model-budget.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-05-session-reference-model-budget.md rename to .agents/notes/archived/bug-fix/2026-09-05-session-reference-model-budget.md index 0654f2b891..6790735520 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-05-session-reference-model-budget.md +++ b/.agents/notes/archived/bug-fix/2026-09-05-session-reference-model-budget.md @@ -1,6 +1,7 @@ # Agent Note: Model-relative session-reference budgets Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-05-session-reference-model-budget.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-05-session-reference-model-budget.zh.md b/.agents/notes/archived/bug-fix/2026-09-05-session-reference-model-budget.zh.md similarity index 98% rename from .agents/notes/implemented/bug-fix/2026-09-05-session-reference-model-budget.zh.md rename to .agents/notes/archived/bug-fix/2026-09-05-session-reference-model-budget.zh.md index 84f4fee76c..3ceb13e2c7 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-05-session-reference-model-budget.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-05-session-reference-model-budget.zh.md @@ -1,6 +1,7 @@ # Agent Note: 模型相对会话引用预算 Status: implemented +Archived: 2026-09-30 [English](2026-09-05-session-reference-model-budget.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-05-session-reference-spill-reuse.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-05-session-reference-spill-reuse.i18n.yaml new file mode 100644 index 0000000000..9df0b074b1 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-05-session-reference-spill-reuse.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-05-session-reference-spill-reuse.md +2026-09-05-session-reference-spill-reuse.md: e77c9761d20fe3170cece635faffa2097d5bdb34 +2026-09-05-session-reference-spill-reuse.zh.md: c3ff525e546294c017a482f15023e7b6a1af1951 diff --git a/.agents/notes/implemented/bug-fix/2026-09-05-session-reference-spill-reuse.md b/.agents/notes/archived/bug-fix/2026-09-05-session-reference-spill-reuse.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-05-session-reference-spill-reuse.md rename to .agents/notes/archived/bug-fix/2026-09-05-session-reference-spill-reuse.md index 2a24e3adf2..e77c9761d2 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-05-session-reference-spill-reuse.md +++ b/.agents/notes/archived/bug-fix/2026-09-05-session-reference-spill-reuse.md @@ -1,6 +1,7 @@ # Agent Note: Reuse spill storage for truncated session references Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-05-session-reference-spill-reuse.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-05-session-reference-spill-reuse.zh.md b/.agents/notes/archived/bug-fix/2026-09-05-session-reference-spill-reuse.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-05-session-reference-spill-reuse.zh.md rename to .agents/notes/archived/bug-fix/2026-09-05-session-reference-spill-reuse.zh.md index 346ed1a39e..c3ff525e54 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-05-session-reference-spill-reuse.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-05-session-reference-spill-reuse.zh.md @@ -1,6 +1,7 @@ # Agent Note: 为截断的会话引用复用 spill 存储 Status: implemented +Archived: 2026-09-30 [English](2026-09-05-session-reference-spill-reuse.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-06-environment-prompt-suffix.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-06-environment-prompt-suffix.i18n.yaml new file mode 100644 index 0000000000..f0d07bf604 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-06-environment-prompt-suffix.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-06-environment-prompt-suffix.md +2026-09-06-environment-prompt-suffix.md: fba3bcb1fb32c1b49feeebeb92bce18f331995bf +2026-09-06-environment-prompt-suffix.zh.md: 27c9d9057c36c040a2b947bc5ad4bfd82ff916a9 diff --git a/.agents/notes/implemented/bug-fix/2026-09-06-environment-prompt-suffix.md b/.agents/notes/archived/bug-fix/2026-09-06-environment-prompt-suffix.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-06-environment-prompt-suffix.md rename to .agents/notes/archived/bug-fix/2026-09-06-environment-prompt-suffix.md index 3438df0fec..fba3bcb1fb 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-06-environment-prompt-suffix.md +++ b/.agents/notes/archived/bug-fix/2026-09-06-environment-prompt-suffix.md @@ -1,6 +1,7 @@ # Agent Note: Environment facts follow reusable prompt instructions Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-06-environment-prompt-suffix.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-06-environment-prompt-suffix.zh.md b/.agents/notes/archived/bug-fix/2026-09-06-environment-prompt-suffix.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-06-environment-prompt-suffix.zh.md rename to .agents/notes/archived/bug-fix/2026-09-06-environment-prompt-suffix.zh.md index 102d119663..27c9d9057c 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-06-environment-prompt-suffix.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-06-environment-prompt-suffix.zh.md @@ -1,6 +1,7 @@ # Agent Note: 环境事实位于可复用提示词指令之后 Status: implemented +Archived: 2026-09-30 [English](2026-09-06-environment-prompt-suffix.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-06-windows-python-console-spawn-wait.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-06-windows-python-console-spawn-wait.i18n.yaml new file mode 100644 index 0000000000..1374aa68df --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-06-windows-python-console-spawn-wait.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-06-windows-python-console-spawn-wait.md +2026-09-06-windows-python-console-spawn-wait.md: d980c1fd771ec22e90b6fed2727b6eb5a0a89b54 +2026-09-06-windows-python-console-spawn-wait.zh.md: 7a19fa9813033ae2404a2e92b7f9fbf67dc8a403 diff --git a/.agents/notes/implemented/bug-fix/2026-09-06-windows-python-console-spawn-wait.md b/.agents/notes/archived/bug-fix/2026-09-06-windows-python-console-spawn-wait.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-06-windows-python-console-spawn-wait.md rename to .agents/notes/archived/bug-fix/2026-09-06-windows-python-console-spawn-wait.md index 036062bdf4..d980c1fd77 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-06-windows-python-console-spawn-wait.md +++ b/.agents/notes/archived/bug-fix/2026-09-06-windows-python-console-spawn-wait.md @@ -1,6 +1,7 @@ # Agent Note: Wait for the Windows Python console runtime Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-06-windows-python-console-spawn-wait.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-06-windows-python-console-spawn-wait.zh.md b/.agents/notes/archived/bug-fix/2026-09-06-windows-python-console-spawn-wait.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-06-windows-python-console-spawn-wait.zh.md rename to .agents/notes/archived/bug-fix/2026-09-06-windows-python-console-spawn-wait.zh.md index d0870be840..7a19fa9813 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-06-windows-python-console-spawn-wait.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-06-windows-python-console-spawn-wait.zh.md @@ -1,6 +1,7 @@ # Agent Note: 等待 Windows Python 控制台运行时 Status: implemented +Archived: 2026-09-30 [English](2026-09-06-windows-python-console-spawn-wait.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.i18n.yaml new file mode 100644 index 0000000000..952b469cb3 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.md +2026-09-07-pi-ai-settings-catalog-recovery.md: 1fe975a7c74924a7676f24da32895ad20a841f4e +2026-09-07-pi-ai-settings-catalog-recovery.zh.md: fde8ee7de35eac1eb4749d1439c71fd0941ea283 diff --git a/.agents/notes/implemented/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.md b/.agents/notes/archived/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.md rename to .agents/notes/archived/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.md index 21fe532a49..1fe975a7c7 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.md +++ b/.agents/notes/archived/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.md @@ -1,6 +1,7 @@ # Agent Note: Repairable pi-ai settings after catalog changes Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-07-pi-ai-settings-catalog-recovery.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.zh.md b/.agents/notes/archived/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.zh.md rename to .agents/notes/archived/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.zh.md index 80bd0758e1..fde8ee7de3 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.zh.md @@ -1,6 +1,7 @@ # Agent Note: pi-ai 目录变化后可修复的设置 Status: implemented +Archived: 2026-09-30 [English](2026-09-07-pi-ai-settings-catalog-recovery.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-07-typert-package-local-forwarding-imports.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-07-typert-package-local-forwarding-imports.i18n.yaml new file mode 100644 index 0000000000..5982f964ef --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-07-typert-package-local-forwarding-imports.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-07-typert-package-local-forwarding-imports.md +2026-09-07-typert-package-local-forwarding-imports.md: dd51274ed94f06dc0977130cf13ee97fc2cbf0ed +2026-09-07-typert-package-local-forwarding-imports.zh.md: 57ec6345ee399431806e7b3d19297e375301e9ee diff --git a/.agents/notes/implemented/bug-fix/2026-09-07-typert-package-local-forwarding-imports.md b/.agents/notes/archived/bug-fix/2026-09-07-typert-package-local-forwarding-imports.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-07-typert-package-local-forwarding-imports.md rename to .agents/notes/archived/bug-fix/2026-09-07-typert-package-local-forwarding-imports.md index 33e4334ede..dd51274ed9 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-07-typert-package-local-forwarding-imports.md +++ b/.agents/notes/archived/bug-fix/2026-09-07-typert-package-local-forwarding-imports.md @@ -1,6 +1,7 @@ # Agent Note: Follow package-local forwarding modules in Typert references Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-07-typert-package-local-forwarding-imports.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-07-typert-package-local-forwarding-imports.zh.md b/.agents/notes/archived/bug-fix/2026-09-07-typert-package-local-forwarding-imports.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-07-typert-package-local-forwarding-imports.zh.md rename to .agents/notes/archived/bug-fix/2026-09-07-typert-package-local-forwarding-imports.zh.md index ea4babdb4b..57ec6345ee 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-07-typert-package-local-forwarding-imports.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-07-typert-package-local-forwarding-imports.zh.md @@ -1,6 +1,7 @@ # Agent Note: Typert 引用追踪包内转发模块 Status: implemented +Archived: 2026-09-30 [English](2026-09-07-typert-package-local-forwarding-imports.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-07-win32-picker-foreground-alt-key.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-07-win32-picker-foreground-alt-key.i18n.yaml new file mode 100644 index 0000000000..28a4fb7f8c --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-07-win32-picker-foreground-alt-key.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-07-win32-picker-foreground-alt-key.md +2026-09-07-win32-picker-foreground-alt-key.md: 52c2dacc1ec95f78100734ac155ae8afa369c996 +2026-09-07-win32-picker-foreground-alt-key.zh.md: ba407c41126c21f5e84e89f3488cddc1218300c4 diff --git a/.agents/notes/implemented/bug-fix/2026-09-07-win32-picker-foreground-alt-key.md b/.agents/notes/archived/bug-fix/2026-09-07-win32-picker-foreground-alt-key.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-07-win32-picker-foreground-alt-key.md rename to .agents/notes/archived/bug-fix/2026-09-07-win32-picker-foreground-alt-key.md index cd1bae5684..52c2dacc1e 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-07-win32-picker-foreground-alt-key.md +++ b/.agents/notes/archived/bug-fix/2026-09-07-win32-picker-foreground-alt-key.md @@ -1,6 +1,7 @@ # Agent Note: Foreground activation for the Win32 picker via a synthesized Alt press Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-07-win32-picker-foreground-alt-key.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-07-win32-picker-foreground-alt-key.zh.md b/.agents/notes/archived/bug-fix/2026-09-07-win32-picker-foreground-alt-key.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-07-win32-picker-foreground-alt-key.zh.md rename to .agents/notes/archived/bug-fix/2026-09-07-win32-picker-foreground-alt-key.zh.md index 8cbacaee97..ba407c4112 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-07-win32-picker-foreground-alt-key.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-07-win32-picker-foreground-alt-key.zh.md @@ -1,6 +1,7 @@ # Agent Note: 通过合成的 Alt 按键让 Win32 选择器获得前台激活 Status: implemented +Archived: 2026-09-30 [English](2026-09-07-win32-picker-foreground-alt-key.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-10-built-bundle-css-exemption.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-10-built-bundle-css-exemption.i18n.yaml new file mode 100644 index 0000000000..f4fe7de090 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-10-built-bundle-css-exemption.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-10-built-bundle-css-exemption.md +2026-09-10-built-bundle-css-exemption.md: c090c9112abbcf4973dadc55eb23288beed3a697 +2026-09-10-built-bundle-css-exemption.zh.md: f6e6ec85a16e47366f72005074b04ec9e073caa2 diff --git a/.agents/notes/implemented/bug-fix/2026-09-10-built-bundle-css-exemption.md b/.agents/notes/archived/bug-fix/2026-09-10-built-bundle-css-exemption.md similarity index 90% rename from .agents/notes/implemented/bug-fix/2026-09-10-built-bundle-css-exemption.md rename to .agents/notes/archived/bug-fix/2026-09-10-built-bundle-css-exemption.md index e5a5568969..c090c9112a 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-10-built-bundle-css-exemption.md +++ b/.agents/notes/archived/bug-fix/2026-09-10-built-bundle-css-exemption.md @@ -1,6 +1,7 @@ # Agent Note: Built-bundle exemption for a failing stylesheet Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-10-built-bundle-css-exemption.zh.md) @@ -23,5 +24,3 @@ The Dockkit exemption admits Node's unknown-`.css`-extension refusal for any sty ## Consequences The sweep reports the Dockkit bundle when it stops importing for any reason other than Node's unknown-`.css`-extension refusal, and the entry no longer asserts which stylesheet fails. [Scoped resolve/load hooks](../../../../packages/experimental/webworker-runtime/tests/compile/transform-corpus.spec.ts) exercise an admitted Dockkit stylesheet, the dependency's source stylesheet, another extension, an arbitrary message, another error code, and a stale exemption without modifying shared build artifacts. - -The [CI observation decision](../testing/2026-09-08-ci-completion-observations.md) keeps the fixture completion and isolation decisions it owns; its built-client classification paragraph keeps the sweep summary and links here for the admitted evidence. diff --git a/.agents/notes/implemented/bug-fix/2026-09-10-built-bundle-css-exemption.zh.md b/.agents/notes/archived/bug-fix/2026-09-10-built-bundle-css-exemption.zh.md similarity index 90% rename from .agents/notes/implemented/bug-fix/2026-09-10-built-bundle-css-exemption.zh.md rename to .agents/notes/archived/bug-fix/2026-09-10-built-bundle-css-exemption.zh.md index 1c1aab35df..f6e6ec85a1 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-10-built-bundle-css-exemption.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-10-built-bundle-css-exemption.zh.md @@ -1,6 +1,7 @@ # Agent Note: 构建产物豁免以失败的样式表为准 Status: implemented +Archived: 2026-09-30 [English](2026-09-10-built-bundle-css-exemption.md) | 中文 @@ -23,5 +24,3 @@ Dockkit 豁免接受 Node 对任意样式表因未知 `.css` 扩展名而拒绝 ## 后果 只要 Dockkit bundle 因 Node 未知 `.css` 扩展名拒绝之外的任何原因停止导入,sweep 就会报告它,该条目也不再断言失败的是哪个样式表。[限定范围的 resolve/load hook](../../../../packages/experimental/webworker-runtime/tests/compile/transform-corpus.spec.ts)覆盖被接受的 Dockkit 样式表、依赖的源样式表、其他扩展名、任意消息、其他错误码和陈旧豁免,不修改共享构建产物。 - -[CI 观察决策](../testing/2026-09-08-ci-completion-observations.zh.md)保留其拥有的 fixture 完成与隔离决策;其已构建 Client 导入分类段落保留 sweep 摘要,并就被接受的证据链接到本文。 diff --git a/.agents/notes/archived/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.i18n.yaml new file mode 100644 index 0000000000..0a88a83d25 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.md +2026-09-10-deepseek-image-token-calculator-v41.md: 0b77ca48578b8d5c0b5a2b4003c6d8d145eb7a37 +2026-09-10-deepseek-image-token-calculator-v41.zh.md: 72324596990fa4a6e3eb4a44d9289b1d532294d5 diff --git a/.agents/notes/implemented/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.md b/.agents/notes/archived/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.md rename to .agents/notes/archived/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.md index 668738221e..0b77ca4857 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.md +++ b/.agents/notes/archived/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.md @@ -1,6 +1,7 @@ # Agent Note: DeepSeek image-token estimator on the v41 calculator Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-10-deepseek-image-token-calculator-v41.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.zh.md b/.agents/notes/archived/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.zh.md rename to .agents/notes/archived/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.zh.md index a483282c6d..7232459699 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-10-deepseek-image-token-calculator-v41.zh.md @@ -1,6 +1,7 @@ # Agent Note: DeepSeek 图片 token 估算器改用 v41 计算器 Status: implemented +Archived: 2026-09-30 [English](2026-09-10-deepseek-image-token-calculator-v41.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-10-deepseek-v41-request-image-projection.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-10-deepseek-v41-request-image-projection.i18n.yaml new file mode 100644 index 0000000000..6040791756 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-10-deepseek-v41-request-image-projection.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-10-deepseek-v41-request-image-projection.md +2026-09-10-deepseek-v41-request-image-projection.md: 053e4c10620e82e05279abf1adcb1567d9f87301 +2026-09-10-deepseek-v41-request-image-projection.zh.md: 8a45fc18543a0ca139f9c696649c8d92cc6e09a1 diff --git a/.agents/notes/implemented/bug-fix/2026-09-10-deepseek-v41-request-image-projection.md b/.agents/notes/archived/bug-fix/2026-09-10-deepseek-v41-request-image-projection.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-10-deepseek-v41-request-image-projection.md rename to .agents/notes/archived/bug-fix/2026-09-10-deepseek-v41-request-image-projection.md index 2bf7ac3f7f..053e4c1062 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-10-deepseek-v41-request-image-projection.md +++ b/.agents/notes/archived/bug-fix/2026-09-10-deepseek-v41-request-image-projection.md @@ -1,6 +1,7 @@ # Agent Note: DeepSeek request images on the published token grid Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-10-deepseek-v41-request-image-projection.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-10-deepseek-v41-request-image-projection.zh.md b/.agents/notes/archived/bug-fix/2026-09-10-deepseek-v41-request-image-projection.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-10-deepseek-v41-request-image-projection.zh.md rename to .agents/notes/archived/bug-fix/2026-09-10-deepseek-v41-request-image-projection.zh.md index 4f0a8cfd3a..8a45fc1854 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-10-deepseek-v41-request-image-projection.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-10-deepseek-v41-request-image-projection.zh.md @@ -1,6 +1,7 @@ # Agent Note: DeepSeek 请求图片按官方 token 网格投影 Status: implemented +Archived: 2026-09-30 [English](2026-09-10-deepseek-v41-request-image-projection.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-11-incremental-terminal-retention.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-11-incremental-terminal-retention.i18n.yaml new file mode 100644 index 0000000000..cd3100f2fa --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-11-incremental-terminal-retention.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-11-incremental-terminal-retention.md +2026-09-11-incremental-terminal-retention.md: a54f90094823b5df710b480086b89fb076af3af0 +2026-09-11-incremental-terminal-retention.zh.md: fb4655155bdd0d93b760a43d7952e7ca2ed9e303 diff --git a/.agents/notes/implemented/bug-fix/2026-09-11-incremental-terminal-retention.md b/.agents/notes/archived/bug-fix/2026-09-11-incremental-terminal-retention.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-11-incremental-terminal-retention.md rename to .agents/notes/archived/bug-fix/2026-09-11-incremental-terminal-retention.md index 7e2507775b..a54f900948 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-11-incremental-terminal-retention.md +++ b/.agents/notes/archived/bug-fix/2026-09-11-incremental-terminal-retention.md @@ -1,6 +1,7 @@ # Agent Note: incremental terminal retention Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-11-incremental-terminal-retention.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-11-incremental-terminal-retention.zh.md b/.agents/notes/archived/bug-fix/2026-09-11-incremental-terminal-retention.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-11-incremental-terminal-retention.zh.md rename to .agents/notes/archived/bug-fix/2026-09-11-incremental-terminal-retention.zh.md index 6c6fb95fa0..fb4655155b 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-11-incremental-terminal-retention.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-11-incremental-terminal-retention.zh.md @@ -1,6 +1,7 @@ # Agent Note: 增量终端保留策略 Status: implemented +Archived: 2026-09-30 [English](2026-09-11-incremental-terminal-retention.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.i18n.yaml new file mode 100644 index 0000000000..0ab009e644 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.md +2026-09-12-linux-scope-direct-kill-settlement.md: 7d69a7cba82addeb625c6e5c9e5180235d7b36e2 +2026-09-12-linux-scope-direct-kill-settlement.zh.md: 3ba81259bb806ac1847f500b590d1ce08f9f33b6 diff --git a/.agents/notes/implemented/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.md b/.agents/notes/archived/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.md rename to .agents/notes/archived/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.md index e89d8f801d..7d69a7cba8 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.md +++ b/.agents/notes/archived/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.md @@ -1,6 +1,7 @@ # Agent Note: Join direct termination before rejecting Linux scope cleanup Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-12-linux-scope-direct-kill-settlement.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.zh.md b/.agents/notes/archived/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.zh.md rename to .agents/notes/archived/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.zh.md index 7ab4310749..3ba81259bb 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-12-linux-scope-direct-kill-settlement.zh.md @@ -1,6 +1,7 @@ # Agent Note: 等待直接进程终止后再判定 Linux scope 清理失败 Status: implemented +Archived: 2026-09-30 [English](2026-09-12-linux-scope-direct-kill-settlement.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.i18n.yaml new file mode 100644 index 0000000000..fa0f41a794 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.md +2026-09-13-partitioned-coverage-location-canonicalization.md: a09ec18fdd1b79bc7b534f4e35ec0b702dfe4f3e +2026-09-13-partitioned-coverage-location-canonicalization.zh.md: 162cb422ab000ab46ca1ea6c0f7a9018bb8cb9f2 diff --git a/.agents/notes/implemented/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.md b/.agents/notes/archived/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.md rename to .agents/notes/archived/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.md index 54e5aaefe9..a09ec18fdd 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.md +++ b/.agents/notes/archived/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.md @@ -1,6 +1,7 @@ # Agent Note: Canonicalize partition coverage locations before the blob merge Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-13-partitioned-coverage-location-canonicalization.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.zh.md b/.agents/notes/archived/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.zh.md rename to .agents/notes/archived/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.zh.md index 1aa4b8de84..162cb422ab 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.zh.md @@ -1,6 +1,7 @@ # Agent Note: 在 blob 合并前规范化分区覆盖率位置 Status: implemented +Archived: 2026-09-30 [English](2026-09-13-partitioned-coverage-location-canonicalization.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-14-web-diff-context.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-14-web-diff-context.i18n.yaml new file mode 100644 index 0000000000..25c97f7d3d --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-14-web-diff-context.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-14-web-diff-context.md +2026-09-14-web-diff-context.md: 49773ac47a1ec84446cb27106f06aea393f4c5b9 +2026-09-14-web-diff-context.zh.md: f20789ee5d414ba3979d29666fa7276e227b80f2 diff --git a/.agents/notes/implemented/bug-fix/2026-09-14-web-diff-context.md b/.agents/notes/archived/bug-fix/2026-09-14-web-diff-context.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-14-web-diff-context.md rename to .agents/notes/archived/bug-fix/2026-09-14-web-diff-context.md index 072af09666..49773ac47a 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-14-web-diff-context.md +++ b/.agents/notes/archived/bug-fix/2026-09-14-web-diff-context.md @@ -1,6 +1,7 @@ # Agent Note: Web diff cards compare contextual content Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-14-web-diff-context.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-14-web-diff-context.zh.md b/.agents/notes/archived/bug-fix/2026-09-14-web-diff-context.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-14-web-diff-context.zh.md rename to .agents/notes/archived/bug-fix/2026-09-14-web-diff-context.zh.md index cd165a4434..f20789ee5d 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-14-web-diff-context.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-14-web-diff-context.zh.md @@ -1,6 +1,7 @@ # Agent Note: Web diff 卡片比较含上下文的内容 Status: implemented +Archived: 2026-09-30 [English](2026-09-14-web-diff-context.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-14-windows-lock-release-probe.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-14-windows-lock-release-probe.i18n.yaml new file mode 100644 index 0000000000..32ab33b992 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-14-windows-lock-release-probe.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-14-windows-lock-release-probe.md +2026-09-14-windows-lock-release-probe.md: 139807bef71311123b58a5db9b330f03d7f96036 +2026-09-14-windows-lock-release-probe.zh.md: 138b1b6c82a25bf02f4f02c89f671c64978cd155 diff --git a/.agents/notes/implemented/bug-fix/2026-09-14-windows-lock-release-probe.md b/.agents/notes/archived/bug-fix/2026-09-14-windows-lock-release-probe.md similarity index 98% rename from .agents/notes/implemented/bug-fix/2026-09-14-windows-lock-release-probe.md rename to .agents/notes/archived/bug-fix/2026-09-14-windows-lock-release-probe.md index 76a21f655f..139807bef7 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-14-windows-lock-release-probe.md +++ b/.agents/notes/archived/bug-fix/2026-09-14-windows-lock-release-probe.md @@ -1,6 +1,7 @@ # Agent Note: Windows lock release before contention probing Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-14-windows-lock-release-probe.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-14-windows-lock-release-probe.zh.md b/.agents/notes/archived/bug-fix/2026-09-14-windows-lock-release-probe.zh.md similarity index 98% rename from .agents/notes/implemented/bug-fix/2026-09-14-windows-lock-release-probe.zh.md rename to .agents/notes/archived/bug-fix/2026-09-14-windows-lock-release-probe.zh.md index 292203d393..138b1b6c82 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-14-windows-lock-release-probe.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-14-windows-lock-release-probe.zh.md @@ -1,6 +1,7 @@ # Agent Note: Windows 锁在竞争探测前释放 Status: implemented +Archived: 2026-09-30 [English](2026-09-14-windows-lock-release-probe.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-15-linear-session-list-cache.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-15-linear-session-list-cache.i18n.yaml new file mode 100644 index 0000000000..25c1a21649 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-15-linear-session-list-cache.i18n.yaml @@ -0,0 +1,2 @@ +2026-09-15-linear-session-list-cache.md: f2e35b926ccee591546fe0a338c6c38f785286ff +2026-09-15-linear-session-list-cache.zh.md: 17025750754f50770b3169fbfeecfe0115d0f1a1 diff --git a/.agents/notes/implemented/bug-fix/2026-09-15-linear-session-list-cache.md b/.agents/notes/archived/bug-fix/2026-09-15-linear-session-list-cache.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-15-linear-session-list-cache.md rename to .agents/notes/archived/bug-fix/2026-09-15-linear-session-list-cache.md index fb09950f77..f2e35b926c 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-15-linear-session-list-cache.md +++ b/.agents/notes/archived/bug-fix/2026-09-15-linear-session-list-cache.md @@ -1,6 +1,7 @@ # Agent Note: Linear Session list cache reconciliation Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-15-linear-session-list-cache.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-15-linear-session-list-cache.zh.md b/.agents/notes/archived/bug-fix/2026-09-15-linear-session-list-cache.zh.md similarity index 98% rename from .agents/notes/implemented/bug-fix/2026-09-15-linear-session-list-cache.zh.md rename to .agents/notes/archived/bug-fix/2026-09-15-linear-session-list-cache.zh.md index b877f0659f..1702575075 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-15-linear-session-list-cache.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-15-linear-session-list-cache.zh.md @@ -1,6 +1,7 @@ # Agent Note: Session 列表缓存的线性对账 Status: implemented +Archived: 2026-09-30 [English](2026-09-15-linear-session-list-cache.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-15-messages-v1-base-url.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-15-messages-v1-base-url.i18n.yaml new file mode 100644 index 0000000000..87d9606f68 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-15-messages-v1-base-url.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-15-messages-v1-base-url.md +2026-09-15-messages-v1-base-url.md: 61427924670a21ffadb2fc9a6b36f16a7f69b02c +2026-09-15-messages-v1-base-url.zh.md: d688751a270797d784c529c862dc09bdfd8c7084 diff --git a/.agents/notes/implemented/bug-fix/2026-09-15-messages-v1-base-url.md b/.agents/notes/archived/bug-fix/2026-09-15-messages-v1-base-url.md similarity index 98% rename from .agents/notes/implemented/bug-fix/2026-09-15-messages-v1-base-url.md rename to .agents/notes/archived/bug-fix/2026-09-15-messages-v1-base-url.md index d9014756ea..6142792467 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-15-messages-v1-base-url.md +++ b/.agents/notes/archived/bug-fix/2026-09-15-messages-v1-base-url.md @@ -1,6 +1,7 @@ # Agent Note: Exact v1 recognition for Messages base URLs Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-15-messages-v1-base-url.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-15-messages-v1-base-url.zh.md b/.agents/notes/archived/bug-fix/2026-09-15-messages-v1-base-url.zh.md similarity index 98% rename from .agents/notes/implemented/bug-fix/2026-09-15-messages-v1-base-url.zh.md rename to .agents/notes/archived/bug-fix/2026-09-15-messages-v1-base-url.zh.md index 8f5803e4bd..d688751a27 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-15-messages-v1-base-url.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-15-messages-v1-base-url.zh.md @@ -1,6 +1,7 @@ # Agent Note: Messages 基址严格识别 v1 Status: implemented +Archived: 2026-09-30 [English](2026-09-15-messages-v1-base-url.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-16-messages-historical-tool-input.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-16-messages-historical-tool-input.i18n.yaml new file mode 100644 index 0000000000..ecbe31b5d0 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-16-messages-historical-tool-input.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-16-messages-historical-tool-input.md +2026-09-16-messages-historical-tool-input.md: 9c4a3e7b6657636cefa0cf206279eff7ece7a9b4 +2026-09-16-messages-historical-tool-input.zh.md: 5367f0379627fd6f7f1d699adb7b550c7929d98e diff --git a/.agents/notes/implemented/bug-fix/2026-09-16-messages-historical-tool-input.md b/.agents/notes/archived/bug-fix/2026-09-16-messages-historical-tool-input.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-16-messages-historical-tool-input.md rename to .agents/notes/archived/bug-fix/2026-09-16-messages-historical-tool-input.md index 85e4047bb5..9c4a3e7b66 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-16-messages-historical-tool-input.md +++ b/.agents/notes/archived/bug-fix/2026-09-16-messages-historical-tool-input.md @@ -1,6 +1,7 @@ # Agent Note: Replay malformed historical tool input through Messages Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-16-messages-historical-tool-input.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-16-messages-historical-tool-input.zh.md b/.agents/notes/archived/bug-fix/2026-09-16-messages-historical-tool-input.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-16-messages-historical-tool-input.zh.md rename to .agents/notes/archived/bug-fix/2026-09-16-messages-historical-tool-input.zh.md index 5a8c31dbee..5367f03796 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-16-messages-historical-tool-input.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-16-messages-historical-tool-input.zh.md @@ -1,6 +1,7 @@ # Agent Note: 通过 Messages 回放非法历史工具输入 Status: implemented +Archived: 2026-09-30 [English](2026-09-16-messages-historical-tool-input.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-16-session-writer-held-feedback.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-16-session-writer-held-feedback.i18n.yaml new file mode 100644 index 0000000000..73eb6546a4 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-16-session-writer-held-feedback.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-16-session-writer-held-feedback.md +2026-09-16-session-writer-held-feedback.md: 2865201a843bf9eceebd514008cd6727ca8bd772 +2026-09-16-session-writer-held-feedback.zh.md: 4a34c8e0d7f02e683e1f57af0e3b042ff923433a diff --git a/.agents/notes/implemented/bug-fix/2026-09-16-session-writer-held-feedback.md b/.agents/notes/archived/bug-fix/2026-09-16-session-writer-held-feedback.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-16-session-writer-held-feedback.md rename to .agents/notes/archived/bug-fix/2026-09-16-session-writer-held-feedback.md index 922987996c..2865201a84 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-16-session-writer-held-feedback.md +++ b/.agents/notes/archived/bug-fix/2026-09-16-session-writer-held-feedback.md @@ -1,6 +1,7 @@ # Agent Note: Session writer contention feedback Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-16-session-writer-held-feedback.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-16-session-writer-held-feedback.zh.md b/.agents/notes/archived/bug-fix/2026-09-16-session-writer-held-feedback.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-16-session-writer-held-feedback.zh.md rename to .agents/notes/archived/bug-fix/2026-09-16-session-writer-held-feedback.zh.md index 6a1aa7993a..4a34c8e0d7 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-16-session-writer-held-feedback.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-16-session-writer-held-feedback.zh.md @@ -1,6 +1,7 @@ # Agent Note: 会话写句柄占用反馈 Status: implemented +Archived: 2026-09-30 [English](2026-09-16-session-writer-held-feedback.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-16-windows-subprocess-console-visibility.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-16-windows-subprocess-console-visibility.i18n.yaml new file mode 100644 index 0000000000..41fafe8e39 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-16-windows-subprocess-console-visibility.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-16-windows-subprocess-console-visibility.md +2026-09-16-windows-subprocess-console-visibility.md: 27bafcd6b8c95a3ccce6e0e181ad55a3c3bc8e42 +2026-09-16-windows-subprocess-console-visibility.zh.md: 7ebacaf773a9487cd5eb095f70def3beb6c18f77 diff --git a/.agents/notes/implemented/bug-fix/2026-09-16-windows-subprocess-console-visibility.md b/.agents/notes/archived/bug-fix/2026-09-16-windows-subprocess-console-visibility.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-16-windows-subprocess-console-visibility.md rename to .agents/notes/archived/bug-fix/2026-09-16-windows-subprocess-console-visibility.md index 281525e960..27bafcd6b8 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-16-windows-subprocess-console-visibility.md +++ b/.agents/notes/archived/bug-fix/2026-09-16-windows-subprocess-console-visibility.md @@ -1,6 +1,7 @@ # Agent Note: Hide Windows subprocess console windows at creation Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-16-windows-subprocess-console-visibility.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-16-windows-subprocess-console-visibility.zh.md b/.agents/notes/archived/bug-fix/2026-09-16-windows-subprocess-console-visibility.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-16-windows-subprocess-console-visibility.zh.md rename to .agents/notes/archived/bug-fix/2026-09-16-windows-subprocess-console-visibility.zh.md index 04abf7154b..7ebacaf773 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-16-windows-subprocess-console-visibility.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-16-windows-subprocess-console-visibility.zh.md @@ -1,6 +1,7 @@ # Agent Note: 在创建时隐藏 Windows 子进程控制台窗口 Status: implemented +Archived: 2026-09-30 [English](2026-09-16-windows-subprocess-console-visibility.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-18-messages-input-history-compatibility.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-18-messages-input-history-compatibility.i18n.yaml new file mode 100644 index 0000000000..c13b6b9e13 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-18-messages-input-history-compatibility.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-18-messages-input-history-compatibility.md +2026-09-18-messages-input-history-compatibility.md: 5813d315acf16c743a1e00d5c7772e22b719c298 +2026-09-18-messages-input-history-compatibility.zh.md: 0534b4a533e652c5f9366e98ed4c478e3d9f00b5 diff --git a/.agents/notes/implemented/bug-fix/2026-09-18-messages-input-history-compatibility.md b/.agents/notes/archived/bug-fix/2026-09-18-messages-input-history-compatibility.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-18-messages-input-history-compatibility.md rename to .agents/notes/archived/bug-fix/2026-09-18-messages-input-history-compatibility.md index dd974fb1ae..5813d315ac 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-18-messages-input-history-compatibility.md +++ b/.agents/notes/archived/bug-fix/2026-09-18-messages-input-history-compatibility.md @@ -1,6 +1,7 @@ # Agent Note: Replay assistant blocks in Messages user input Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-18-messages-input-history-compatibility.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-18-messages-input-history-compatibility.zh.md b/.agents/notes/archived/bug-fix/2026-09-18-messages-input-history-compatibility.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-18-messages-input-history-compatibility.zh.md rename to .agents/notes/archived/bug-fix/2026-09-18-messages-input-history-compatibility.zh.md index 6e850328db..0534b4a533 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-18-messages-input-history-compatibility.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-18-messages-input-history-compatibility.zh.md @@ -1,6 +1,7 @@ # Agent Note: 回放 Messages 用户输入中的助手块 Status: implemented +Archived: 2026-09-30 [English](2026-09-18-messages-input-history-compatibility.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-18-schedule-task-tab-restore.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-18-schedule-task-tab-restore.i18n.yaml new file mode 100644 index 0000000000..d6ac45dca0 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-18-schedule-task-tab-restore.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-18-schedule-task-tab-restore.md +2026-09-18-schedule-task-tab-restore.md: 591cd058b394db1d02399127a726f788f3571a71 +2026-09-18-schedule-task-tab-restore.zh.md: 140b25adc79b0adb99d37e1baacbec59afd1705e diff --git a/.agents/notes/implemented/bug-fix/2026-09-18-schedule-task-tab-restore.md b/.agents/notes/archived/bug-fix/2026-09-18-schedule-task-tab-restore.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-18-schedule-task-tab-restore.md rename to .agents/notes/archived/bug-fix/2026-09-18-schedule-task-tab-restore.md index 3809dfadce..591cd058b3 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-18-schedule-task-tab-restore.md +++ b/.agents/notes/archived/bug-fix/2026-09-18-schedule-task-tab-restore.md @@ -1,6 +1,7 @@ # Agent Note: Task tab recovery after a reload Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-18-schedule-task-tab-restore.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-18-schedule-task-tab-restore.zh.md b/.agents/notes/archived/bug-fix/2026-09-18-schedule-task-tab-restore.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-18-schedule-task-tab-restore.zh.md rename to .agents/notes/archived/bug-fix/2026-09-18-schedule-task-tab-restore.zh.md index 84a1a1247b..140b25adc7 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-18-schedule-task-tab-restore.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-18-schedule-task-tab-restore.zh.md @@ -1,6 +1,7 @@ # Agent Note: 刷新后任务标签页的恢复 Status: implemented +Archived: 2026-09-30 [English](2026-09-18-schedule-task-tab-restore.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-18-windows-directory-junction-listing.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-18-windows-directory-junction-listing.i18n.yaml new file mode 100644 index 0000000000..a54dc3f984 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-18-windows-directory-junction-listing.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-18-windows-directory-junction-listing.md +2026-09-18-windows-directory-junction-listing.md: ad8f410fb197f4348e7b4f9d7106acc48ce63472 +2026-09-18-windows-directory-junction-listing.zh.md: b1a70b44467c78fc9623d8a741427251fef9ab16 diff --git a/.agents/notes/archived/bug-fix/2026-09-18-windows-directory-junction-listing.md b/.agents/notes/archived/bug-fix/2026-09-18-windows-directory-junction-listing.md new file mode 100644 index 0000000000..ad8f410fb1 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-18-windows-directory-junction-listing.md @@ -0,0 +1,28 @@ +# Agent Note: List directory links in the workspace file tree + +Status: implemented +Archived: 2026-09-30 + +English | [中文](2026-09-18-windows-directory-junction-listing.zh.md) + +## Problem + +Windows profile directories such as `Documents\My Music` are directory junctions: reparse points that `lstat` reports as symlinks rather than directories. The `list` endpoint gated on `lstat` before resolving, so it refused every final link with `workspace-file/not-directory`, while its own listing reported those same children as `directory` because `listDir` resolves each child. The file tree therefore listed the junctions and refused to open them, and the Sidebar reported `My Music`, `My Pictures`, and `My Videos` as not a directory. + +## Decision + +`list` follows a final link and judges what it resolves to. The resolved target must pass workspace containment and must stat as a directory, so a directory link inside the workspace lists through its target, and the returned workspace path names that target. A link resolving outside the workspace is `workspace-file/outside-workspace`; a link to a non-directory, or one whose target is gone, is `workspace-file/not-directory` with kind `symlink`. + +`read`, `readBytes`, `readAll`, `readRelated`, and `stat` keep their `lstat` gate that refuses a final symlink, so no read path follows a link. The [Workspace Files service](../architecture/2026-09-05-workspace-files-service.md) keeps ownership of the service; its earlier rule that `list` rejects a final symlink is superseded here. + +## Alternatives considered + +**Drop the `lstat` gate for every method.** Rejected: reading through a link is a separate exposure decision, and the file methods' no-follow rule is a trust rule the report asked to keep. + +**Special-case Windows junctions.** Rejected: `fs-local` already reports a junction as a `symlink` path entry, and the resolve-then-contain rule is identical for a junction and a POSIX directory symlink. + +**Keep the gate and report a linked directory from the parent listing only.** Rejected: the listing already reports the resolved type, so the endpoint contradicted itself and a reader could not open what the parent presented as a directory. + +## Consequences + +A directory link inside the workspace now lists like its target, and the Windows profile junctions expand in the Sidebar. A link resolving outside the workspace reports `outside-workspace` instead of `not-directory`, which names the actual reason. Read access is unchanged. Tests cover a directory link inside the workspace, a link resolving outside it, and a link whose target is deleted; the spec creates a junction with `symlink(target, path, 'junction')` on Windows and a directory symlink elsewhere, so one spec runs on both. diff --git a/.agents/notes/archived/bug-fix/2026-09-18-windows-directory-junction-listing.zh.md b/.agents/notes/archived/bug-fix/2026-09-18-windows-directory-junction-listing.zh.md new file mode 100644 index 0000000000..b1a70b4446 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-18-windows-directory-junction-listing.zh.md @@ -0,0 +1,28 @@ +# Agent Note: 列举工作区文件树中的目录链接 + +Status: implemented +Archived: 2026-09-30 + +[English](2026-09-18-windows-directory-junction-listing.md) | 中文 + +## Problem + +Windows 的个人目录如 `Documents\My Music` 是目录联接:`lstat` 把这类重解析点报告为符号链接而不是目录。`list` 端点在解析之前先用 `lstat` 把关,于是把所有末端链接都以 `workspace-file/not-directory` 拒绝;而它自己的列举又把同样的子项报告为 `directory`,因为 `listDir` 会解析每个子项。文件树因此既列出这些联接、又拒绝打开它们,侧栏把 `My Music`、`My Pictures`、`My Videos` 报告为非目录。 + +## Decision + +`list` 跟随末端链接并判定其解析结果。解析后的目标必须通过工作区包含检查,且经 stat 必须为目录,因此工作区内的目录链接经其目标列举,返回的工作区路径也以该目标命名。解析到工作区外的链接为 `workspace-file/outside-workspace`;指向非目录的链接、或目标已消失的链接,为 kind 为 `symlink` 的 `workspace-file/not-directory`。 + +`read`、`readBytes`、`readAll`、`readRelated` 与 `stat` 保留拒绝末端符号链接的 `lstat` 把关,因此没有任何读取路径跟随链接。[工作区文件服务](../architecture/2026-09-05-workspace-files-service.zh.md)继续拥有该服务;它此前「`list` 拒绝末端符号链接」的规则由本记录取代。 + +## Alternatives considered + +**对所有方法去掉 `lstat` 把关。** 被否:经链接读取是另一项暴露决策,文件方法的「不跟随」规则是报告方要求保留的信任规则。 + +**单独处理 Windows 目录联接。** 被否:`fs-local` 已把目录联接报告为 `symlink` 路径项,且「先解析再判包含」的规则对目录联接与 POSIX 目录符号链接完全相同。 + +**保留把关,只靠父层列举报告被链接的目录。** 被否:列举本来就报告解析后的类型,端点因此自相矛盾,读取方无法打开父层呈现为目录的条目。 + +## Consequences + +工作区内的目录链接现在与其目标一样可列举,Windows 个人目录中的联接可在侧栏展开。解析到工作区外的链接报告 `outside-workspace` 而不是 `not-directory`,如实说明原因。读取权限不变。测试覆盖工作区内的目录链接、解析到工作区外的链接,以及目标被删除的链接;spec 在 Windows 上用 `symlink(target, path, 'junction')` 创建目录联接,在其他平台创建目录符号链接,因此同一 spec 两端都跑。 diff --git a/.agents/notes/archived/bug-fix/2026-09-19-declared-session-attachment-carriers.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-19-declared-session-attachment-carriers.i18n.yaml new file mode 100644 index 0000000000..3b1e487449 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-19-declared-session-attachment-carriers.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-19-declared-session-attachment-carriers.md +2026-09-19-declared-session-attachment-carriers.md: 6890221634c90e39181ed58ad3aa667e02993af0 +2026-09-19-declared-session-attachment-carriers.zh.md: d6ce675e7abc0bfdaa5bdc1ebb8aee62b9aecb81 diff --git a/.agents/notes/implemented/bug-fix/2026-09-19-declared-session-attachment-carriers.md b/.agents/notes/archived/bug-fix/2026-09-19-declared-session-attachment-carriers.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-19-declared-session-attachment-carriers.md rename to .agents/notes/archived/bug-fix/2026-09-19-declared-session-attachment-carriers.md index 1619624800..6890221634 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-19-declared-session-attachment-carriers.md +++ b/.agents/notes/archived/bug-fix/2026-09-19-declared-session-attachment-carriers.md @@ -1,6 +1,7 @@ # Agent Note: Declared Session attachment carriers Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-19-declared-session-attachment-carriers.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-19-declared-session-attachment-carriers.zh.md b/.agents/notes/archived/bug-fix/2026-09-19-declared-session-attachment-carriers.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-19-declared-session-attachment-carriers.zh.md rename to .agents/notes/archived/bug-fix/2026-09-19-declared-session-attachment-carriers.zh.md index bd66b1c804..d6ce675e7a 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-19-declared-session-attachment-carriers.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-19-declared-session-attachment-carriers.zh.md @@ -1,6 +1,7 @@ # Agent Note: Session 声明的附件载体 Status: implemented +Archived: 2026-09-30 [English](2026-09-19-declared-session-attachment-carriers.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-19-failed-step-tool-results.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-19-failed-step-tool-results.i18n.yaml new file mode 100644 index 0000000000..5c4d4068a7 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-19-failed-step-tool-results.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-19-failed-step-tool-results.md +2026-09-19-failed-step-tool-results.md: 3d0b8dacaa80934d37f9b69543fdf72eb232a272 +2026-09-19-failed-step-tool-results.zh.md: 9fa74aef7708a49f4e1e0a78d399763aecc3e3f0 diff --git a/.agents/notes/archived/bug-fix/2026-09-19-failed-step-tool-results.md b/.agents/notes/archived/bug-fix/2026-09-19-failed-step-tool-results.md new file mode 100644 index 0000000000..3d0b8dacaa --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-19-failed-step-tool-results.md @@ -0,0 +1,34 @@ +# Agent Note: Record unanswered tool results before closing a failed step + +Status: implemented +Archived: 2026-09-30 + +English | [中文](2026-09-19-failed-step-tool-results.zh.md) + +## Problem + +A committed assistant message can request tools whose scheduler fails before all results are recorded. Closing the step and turn with those calls unanswered makes later model requests invalid for providers that require paired tool calls and results. An error turn is already closed, so crash-tail repair cannot recover it on resume. + +## Decision + +The AgentLoop driver records recovery results for unanswered calls before it closes a failed step, then propagates the original failure. Live step recovery and `interruptedTurnClosers` share incremental pending-call tracking and result construction; the live driver still owns its step and turn events. A step-local observer retains pending identities from committed events without copying session history. The scheduler stops replenishment and drains started dispatches before rejecting, so result recovery cannot race a live dispatch. + +Recovery preserves committed results and follows the assistant's call order. A recorded `tool/call` without a result receives `TOOL_OUTCOME_UNKNOWN`; its text warns against blindly retrying an operation with possible side effects. An assistant request with no call record receives `TOOL_NOT_STARTED`. A call record precedes preparation and does not establish that the tool body ran, so unknown outcomes remain conservative. + +This decision supersedes only the missing-result policy in [parallel tool-call execution](../feature/2026-07-10-parallel-tool-call-execution.md). Its classification, concurrency limit, ordering, and quiescence rules remain applicable. + +## Alternatives considered + +**Leave calls unanswered to avoid inventing tool outcomes.** An unanswered call invalidates later provider requests. An explicit unknown-outcome error records the limit of the available evidence without claiming success, cancellation, or absence of side effects. + +**Repair only when resuming or forking.** The ordinary failure path already records `step/end` and `turn/end`; open-tail repair intentionally preserves closed history. Recovery belongs before those records, while the driver owns the failed step. + +**Repair inside the tool scheduler alone.** Failure can occur after the assistant message is recorded but before scheduling starts. The step driver covers that interval and reuses the existing session repair semantics rather than adding a second implementation of call/result matching. + +**Retry automatically.** A dispatch can have side effects even when its result is missing. The error result supplies retry guidance, while the turn retains the original failure and waits for later work. + +## Consequences + +Later requests, resume, and fork retain a usable call/result history after a live step failure. Recovery appends results; it does not remove assistant messages, replace completed results, execute tools, or convert the failed turn into success. The log uses existing event types and recovery codes, with no format change. + +Already-closed inconsistent historical turns remain unchanged. The live recovery path requires the session to accept the missing result records; it cannot promise recovery from a failed log append. diff --git a/.agents/notes/archived/bug-fix/2026-09-19-failed-step-tool-results.zh.md b/.agents/notes/archived/bug-fix/2026-09-19-failed-step-tool-results.zh.md new file mode 100644 index 0000000000..9fa74aef77 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-19-failed-step-tool-results.zh.md @@ -0,0 +1,34 @@ +# Agent Note: 在关闭失败步骤前补齐工具结果 + +Status: implemented +Archived: 2026-09-30 + +[English](2026-09-19-failed-step-tool-results.md) | 中文 + +## 问题 + +已提交的 assistant 消息可能请求多个工具,而调度器在全部结果记录完成之前失败。如果关闭步骤和轮次时仍有调用尚无结果,后续模型请求就不满足要求工具调用与结果配对的提供方。错误轮次已经关闭,因此恢复会话时的崩溃尾部修复无法恢复它。 + +## 决策 + +AgentLoop 驱动器在关闭失败步骤之前,为尚无结果的调用记录恢复结果,随后传播原始失败。实时步骤恢复和 `interruptedTurnClosers` 共享增量的待处理调用跟踪与结果构造;实时驱动器仍拥有自己的步骤和轮次事件。步骤本地观察器从已提交事件中保留待处理调用标识,不复制会话历史。调度器在拒绝之前停止补充池并排空已启动的派发,因此结果恢复不会与运行中的派发竞争。 + +恢复保留已提交的结果,并遵循 assistant 的调用顺序。已有 `tool/call` 记录但尚无结果的调用获得 `TOOL_OUTCOME_UNKNOWN`;其文本警告不要盲目重试可能存在副作用的操作。没有调用记录的 assistant 请求获得 `TOOL_NOT_STARTED`。调用记录先于准备阶段,不能证明工具主体已经运行,因此未知结果保持保守。 + +本决策仅取代[并行工具调用执行](../feature/2026-07-10-parallel-tool-call-execution.zh.md)中的缺失结果策略。其中的分类、并发上限、顺序和完全停稳规则继续适用。 + +## 备选方案 + +**让调用保持无结果,避免虚构工具执行结果。** 尚无结果的调用会使后续提供方请求无效。显式的未知结果错误记录可用证据的局限,而不声称成功、取消或没有副作用。 + +**仅在恢复或 fork 时修复。** 普通失败路径已经记录 `step/end` 和 `turn/end`;开放尾部修复有意保留已关闭历史。恢复应在这些记录之前执行,此时驱动器仍拥有失败步骤。 + +**仅在工具调度器内部修复。** 失败可能发生在 assistant 消息记录之后、调度开始之前。步骤驱动器覆盖这段区间,并复用已有的会话修复语义,避免另行实现调用/结果匹配。 + +**自动重试。** 即使结果缺失,派发也可能产生副作用。错误结果提供重试指引,而轮次保留原始失败并等待后续工作。 + +## 影响 + +实时步骤失败后,后续请求、恢复和 fork 会保留可用的调用/结果历史。恢复追加结果;它不移除 assistant 消息、不替换已完成结果、不执行工具,也不将失败轮次改为成功。日志使用已有事件类型和恢复代码,无需格式变更。 + +此前已关闭的不一致历史轮次保持不变。实时恢复路径要求会话能够接纳缺失结果记录;它不能保证从日志追加失败中恢复。 diff --git a/.agents/notes/archived/bug-fix/2026-09-19-session-local-subagent-migration.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-19-session-local-subagent-migration.i18n.yaml new file mode 100644 index 0000000000..4a37497bce --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-19-session-local-subagent-migration.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-19-session-local-subagent-migration.md +2026-09-19-session-local-subagent-migration.md: 5b426431874f62f67beaae7614a9a6f6dc367333 +2026-09-19-session-local-subagent-migration.zh.md: 01c650b50de2547057b414ad4890c4613a1368f7 diff --git a/.agents/notes/implemented/bug-fix/2026-09-19-session-local-subagent-migration.md b/.agents/notes/archived/bug-fix/2026-09-19-session-local-subagent-migration.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-19-session-local-subagent-migration.md rename to .agents/notes/archived/bug-fix/2026-09-19-session-local-subagent-migration.md index 26911ea6e2..5b42643187 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-19-session-local-subagent-migration.md +++ b/.agents/notes/archived/bug-fix/2026-09-19-session-local-subagent-migration.md @@ -1,6 +1,7 @@ # Agent Note: Complete parent catalogs without migrating child catalogs Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-19-session-local-subagent-migration.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-19-session-local-subagent-migration.zh.md b/.agents/notes/archived/bug-fix/2026-09-19-session-local-subagent-migration.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-19-session-local-subagent-migration.zh.md rename to .agents/notes/archived/bug-fix/2026-09-19-session-local-subagent-migration.zh.md index 673040a3dc..01c650b50d 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-19-session-local-subagent-migration.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-19-session-local-subagent-migration.zh.md @@ -1,6 +1,7 @@ # Agent Note:补齐父目录而不迁移子目录 Status: implemented +Archived: 2026-09-30 [English](2026-09-19-session-local-subagent-migration.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.i18n.yaml new file mode 100644 index 0000000000..b6303b7c32 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.md +2026-09-19-v3-incomplete-child-catalog-evidence.md: f20acd1e1f8fec1869eb338bcae45e59497d1d92 +2026-09-19-v3-incomplete-child-catalog-evidence.zh.md: 09a0131c1d610ae2c4e9253438ef45c9b7f5f561 diff --git a/.agents/notes/implemented/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.md b/.agents/notes/archived/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.md rename to .agents/notes/archived/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.md index 400a84f376..f20acd1e1f 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.md +++ b/.agents/notes/archived/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.md @@ -1,6 +1,7 @@ # Agent Note: Preserve V3 Sessions with incomplete child catalog evidence Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-19-v3-incomplete-child-catalog-evidence.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.zh.md b/.agents/notes/archived/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.zh.md rename to .agents/notes/archived/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.zh.md index 535951630b..09a0131c1d 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.zh.md @@ -1,6 +1,7 @@ # Agent Note: 保留子目录证据不完整的 V3 Session Status: implemented +Archived: 2026-09-30 [English](2026-09-19-v3-incomplete-child-catalog-evidence.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-20-windows-embedded-mandatory-update.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-20-windows-embedded-mandatory-update.i18n.yaml new file mode 100644 index 0000000000..088df94605 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-20-windows-embedded-mandatory-update.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-20-windows-embedded-mandatory-update.md +2026-09-20-windows-embedded-mandatory-update.md: c7e3081a80ff6caf76d4203e933030b5e656455a +2026-09-20-windows-embedded-mandatory-update.zh.md: 7630407003d6b9fb6b023b45ecd5ecad039bb73b diff --git a/.agents/notes/implemented/bug-fix/2026-09-20-windows-embedded-mandatory-update.md b/.agents/notes/archived/bug-fix/2026-09-20-windows-embedded-mandatory-update.md similarity index 98% rename from .agents/notes/implemented/bug-fix/2026-09-20-windows-embedded-mandatory-update.md rename to .agents/notes/archived/bug-fix/2026-09-20-windows-embedded-mandatory-update.md index 99577a4d85..c7e3081a80 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-20-windows-embedded-mandatory-update.md +++ b/.agents/notes/archived/bug-fix/2026-09-20-windows-embedded-mandatory-update.md @@ -1,6 +1,7 @@ # Agent Note: Windows embedded mandatory update Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-20-windows-embedded-mandatory-update.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-20-windows-embedded-mandatory-update.zh.md b/.agents/notes/archived/bug-fix/2026-09-20-windows-embedded-mandatory-update.zh.md similarity index 98% rename from .agents/notes/implemented/bug-fix/2026-09-20-windows-embedded-mandatory-update.zh.md rename to .agents/notes/archived/bug-fix/2026-09-20-windows-embedded-mandatory-update.zh.md index abe4a9577d..7630407003 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-20-windows-embedded-mandatory-update.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-20-windows-embedded-mandatory-update.zh.md @@ -1,6 +1,7 @@ # Agent Note: Windows 内嵌强更弹窗 Status: implemented +Archived: 2026-09-30 [English](2026-09-20-windows-embedded-mandatory-update.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-21-multimodal-tool-result-retention.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-21-multimodal-tool-result-retention.i18n.yaml new file mode 100644 index 0000000000..609bdaa113 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-21-multimodal-tool-result-retention.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-21-multimodal-tool-result-retention.md +2026-09-21-multimodal-tool-result-retention.md: 9c5fd071b105969d97b8db606e8e3e0e91a008f4 +2026-09-21-multimodal-tool-result-retention.zh.md: 22adc6cd952a13267028931099f9a0c34a6747eb diff --git a/.agents/notes/implemented/bug-fix/2026-09-21-multimodal-tool-result-retention.md b/.agents/notes/archived/bug-fix/2026-09-21-multimodal-tool-result-retention.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-21-multimodal-tool-result-retention.md rename to .agents/notes/archived/bug-fix/2026-09-21-multimodal-tool-result-retention.md index 4147072491..9c5fd071b1 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-21-multimodal-tool-result-retention.md +++ b/.agents/notes/archived/bug-fix/2026-09-21-multimodal-tool-result-retention.md @@ -1,6 +1,7 @@ # Agent Note: Multimodal tool-result retention Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-21-multimodal-tool-result-retention.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-21-multimodal-tool-result-retention.zh.md b/.agents/notes/archived/bug-fix/2026-09-21-multimodal-tool-result-retention.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-21-multimodal-tool-result-retention.zh.md rename to .agents/notes/archived/bug-fix/2026-09-21-multimodal-tool-result-retention.zh.md index 8e6d4953f7..22adc6cd95 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-21-multimodal-tool-result-retention.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-21-multimodal-tool-result-retention.zh.md @@ -1,6 +1,7 @@ # Agent Note: 工具结果的图文保留 Status: implemented +Archived: 2026-09-30 [English](2026-09-21-multimodal-tool-result-retention.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.i18n.yaml new file mode 100644 index 0000000000..fd27e67164 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md +2026-09-21-persistent-pwsh-keeps-controlled-prompt.md: 163ad258a9cbf55a61d2a69ad7f03b8f0bb8f97a +2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md: 4ba383718926e0b1e4a2d092631f3122883e0f46 diff --git a/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md b/.agents/notes/archived/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md rename to .agents/notes/archived/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md index 3fd42b77d4..163ad258a9 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md +++ b/.agents/notes/archived/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md @@ -1,6 +1,7 @@ # Agent Note: Persistent pwsh keeps the backend's controlled prompt Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md b/.agents/notes/archived/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md rename to .agents/notes/archived/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md index 88d4e2deef..4ba3837189 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md @@ -1,6 +1,7 @@ # Agent Note: 持久 pwsh 保留后端的受控提示符 Status: implemented +Archived: 2026-09-30 [English](2026-09-21-persistent-pwsh-keeps-controlled-prompt.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.i18n.yaml new file mode 100644 index 0000000000..a6ea3dacfc --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.md +2026-09-22-chat-scroll-follow-and-footer-geometry.md: c54140e53266ca49d9aaab3b5c9b1e8bf1e9ef20 +2026-09-22-chat-scroll-follow-and-footer-geometry.zh.md: 2bcda3f673ba3d654c24931d91610a7198455565 diff --git a/.agents/notes/implemented/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.md b/.agents/notes/archived/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.md rename to .agents/notes/archived/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.md index 56cd1681ee..c54140e532 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.md +++ b/.agents/notes/archived/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.md @@ -1,6 +1,7 @@ # Agent Note: Separate Chat clipping and independent follow intent Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-22-chat-scroll-follow-and-footer-geometry.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.zh.md b/.agents/notes/archived/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.zh.md rename to .agents/notes/archived/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.zh.md index 9979688d52..2bcda3f673 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.zh.md @@ -1,6 +1,7 @@ # Agent Note: 分离 Chat 裁剪与独立滚动跟随意图 Status: implemented +Archived: 2026-09-30 [English](2026-09-22-chat-scroll-follow-and-footer-geometry.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-22-input-echo-admission-ownership.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-22-input-echo-admission-ownership.i18n.yaml new file mode 100644 index 0000000000..4f2568e824 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-22-input-echo-admission-ownership.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-22-input-echo-admission-ownership.md +2026-09-22-input-echo-admission-ownership.md: 5336dd9a034841809d2f87b0510ad4893d1521f8 +2026-09-22-input-echo-admission-ownership.zh.md: 2edd7185d6f055cc31ebc5f0fe80e6edb319675c diff --git a/.agents/notes/implemented/bug-fix/2026-09-22-input-echo-admission-ownership.md b/.agents/notes/archived/bug-fix/2026-09-22-input-echo-admission-ownership.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-22-input-echo-admission-ownership.md rename to .agents/notes/archived/bug-fix/2026-09-22-input-echo-admission-ownership.md index 227857bd81..5336dd9a03 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-22-input-echo-admission-ownership.md +++ b/.agents/notes/archived/bug-fix/2026-09-22-input-echo-admission-ownership.md @@ -1,6 +1,7 @@ # Agent Note: Input echoes retain display ownership through admission Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-22-input-echo-admission-ownership.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-22-input-echo-admission-ownership.zh.md b/.agents/notes/archived/bug-fix/2026-09-22-input-echo-admission-ownership.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-22-input-echo-admission-ownership.zh.md rename to .agents/notes/archived/bug-fix/2026-09-22-input-echo-admission-ownership.zh.md index 1d64de220a..2edd7185d6 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-22-input-echo-admission-ownership.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-22-input-echo-admission-ownership.zh.md @@ -1,6 +1,7 @@ # Agent Note: 输入回显在入档期间保持展示归属 Status: implemented +Archived: 2026-09-30 [English](2026-09-22-input-echo-admission-ownership.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-22-windows-open-through-shell-resolution.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-22-windows-open-through-shell-resolution.i18n.yaml new file mode 100644 index 0000000000..ba79cd7539 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-22-windows-open-through-shell-resolution.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-22-windows-open-through-shell-resolution.md +2026-09-22-windows-open-through-shell-resolution.md: 6373c8731ad23ff42c8cef23aed5952cfd1b8305 +2026-09-22-windows-open-through-shell-resolution.zh.md: a053b74178ae48f97e87e16c4acf1eb174b2e671 diff --git a/.agents/notes/implemented/bug-fix/2026-09-22-windows-open-through-shell-resolution.md b/.agents/notes/archived/bug-fix/2026-09-22-windows-open-through-shell-resolution.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-22-windows-open-through-shell-resolution.md rename to .agents/notes/archived/bug-fix/2026-09-22-windows-open-through-shell-resolution.md index 7bfe559e7f..6373c8731a 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-22-windows-open-through-shell-resolution.md +++ b/.agents/notes/archived/bug-fix/2026-09-22-windows-open-through-shell-resolution.md @@ -1,6 +1,7 @@ # Agent Note: Windows opens go through explorer.exe Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-22-windows-open-through-shell-resolution.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-22-windows-open-through-shell-resolution.zh.md b/.agents/notes/archived/bug-fix/2026-09-22-windows-open-through-shell-resolution.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-22-windows-open-through-shell-resolution.zh.md rename to .agents/notes/archived/bug-fix/2026-09-22-windows-open-through-shell-resolution.zh.md index ff33455da1..a053b74178 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-22-windows-open-through-shell-resolution.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-22-windows-open-through-shell-resolution.zh.md @@ -1,6 +1,7 @@ # Agent Note: Windows 打开经 explorer.exe 完成 Status: implemented +Archived: 2026-09-30 [English](2026-09-22-windows-open-through-shell-resolution.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-23-bounded-pnpm-runs.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-23-bounded-pnpm-runs.i18n.yaml new file mode 100644 index 0000000000..110e48aacd --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-23-bounded-pnpm-runs.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-23-bounded-pnpm-runs.md +2026-09-23-bounded-pnpm-runs.md: 9fa68d67f6d7725c70687f907f2d38a427c50599 +2026-09-23-bounded-pnpm-runs.zh.md: 7526f7ed9e22a5094ecb007e479e111fe37bffcb diff --git a/.agents/notes/implemented/bug-fix/2026-09-23-bounded-pnpm-runs.md b/.agents/notes/archived/bug-fix/2026-09-23-bounded-pnpm-runs.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-23-bounded-pnpm-runs.md rename to .agents/notes/archived/bug-fix/2026-09-23-bounded-pnpm-runs.md index 7ce6b1776e..9fa68d67f6 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-23-bounded-pnpm-runs.md +++ b/.agents/notes/archived/bug-fix/2026-09-23-bounded-pnpm-runs.md @@ -1,6 +1,7 @@ # Agent Note: Bounding a pnpm run that stops progressing Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-23-bounded-pnpm-runs.zh.md) diff --git a/.agents/notes/implemented/bug-fix/2026-09-23-bounded-pnpm-runs.zh.md b/.agents/notes/archived/bug-fix/2026-09-23-bounded-pnpm-runs.zh.md similarity index 99% rename from .agents/notes/implemented/bug-fix/2026-09-23-bounded-pnpm-runs.zh.md rename to .agents/notes/archived/bug-fix/2026-09-23-bounded-pnpm-runs.zh.md index 1cb91132cc..7526f7ed9e 100644 --- a/.agents/notes/implemented/bug-fix/2026-09-23-bounded-pnpm-runs.zh.md +++ b/.agents/notes/archived/bug-fix/2026-09-23-bounded-pnpm-runs.zh.md @@ -1,6 +1,7 @@ # Agent Note: 为停止推进的 pnpm 运行设界 Status: implemented +Archived: 2026-09-30 [English](2026-09-23-bounded-pnpm-runs.md) | 中文 diff --git a/.agents/notes/archived/bug-fix/2026-09-24-exited-holder-lock-takeover.i18n.yaml b/.agents/notes/archived/bug-fix/2026-09-24-exited-holder-lock-takeover.i18n.yaml new file mode 100644 index 0000000000..6983c7da48 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-24-exited-holder-lock-takeover.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/bug-fix/2026-09-24-exited-holder-lock-takeover.md +2026-09-24-exited-holder-lock-takeover.md: 61712db971e238de9d820cdac5b5ce3c4ca0827e +2026-09-24-exited-holder-lock-takeover.zh.md: 651dc2df66b0d200631f613966de1a464be422b2 diff --git a/.agents/notes/archived/bug-fix/2026-09-24-exited-holder-lock-takeover.md b/.agents/notes/archived/bug-fix/2026-09-24-exited-holder-lock-takeover.md new file mode 100644 index 0000000000..61712db971 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-24-exited-holder-lock-takeover.md @@ -0,0 +1,52 @@ +# Agent Note: Taking over a writer lock whose holder exited + +Status: implemented +Archived: 2026-09-30 + +English | [中文](2026-09-24-exited-holder-lock-takeover.zh.md) + +## Problem + +`withFileLock` in [dsh-atomic-write](../../../../packages/util/atomic-write/README.md) creates `.lock` with exclusive create and removes it in a `finally`. A process that ends without running that `finally` leaves the lock behind, and every later writer of the file times out until someone deletes it by hand. The [original decision](../../archived/architecture/2026-07-30-settings-write-path-integrity.md) accepted this because file age cannot distinguish a crashed holder from a paused one. + +The profile package lock (`/package.json.lock`) made the cost visible. `dsh plugin` installs no signal handler, so Ctrl-C, SIGTERM, or closing its terminal ends the process while pnpm runs, and the lock stays. `dsh` and `dsh web` exit right after application disposal resolves, while a cancelled installation is still restoring files and has not released the lock. A crash, SIGKILL, or out-of-memory kill has the same effect. After any of these, every plugin operation on that profile fails after `lockWaitMs` (two minutes by default) without saying that the holder is gone. + +## Decision + +- The lock keeps the `\n` record earlier releases wrote, so locks left before this change are taken over and processes of both releases interoperate. +- A contender that finds a lock reads its record. When a signal probe of the PID fails with `ESRCH`, the holder is proven gone and the lock is taken over. `EPERM` means the process exists under another user and the lock is kept. A record naming the contender's own process is kept too: that process is running, and the browser Worker's process shim reports its own PID as absent. +- Contenders that read the same record serialize on a claim file, `.lock.takeover-`, created with `wx`. The claimant re-reads the lock and probes its PID again, removes it only if it still holds that record and the PID is still absent, removes the claim, and retries acquisition at once. The record's holder cannot release it once its PID is absent, another takeover needs the same claim, and a new holder that reused the PID fails the second probe, so a claimant never removes a lock that another contender acquired after the exited holder's. +- A record that is empty, incomplete, not a decimal PID, or names PID 0 or a PID beyond the int32 range the probe accepts is waited for. None of these proves that the holder stopped. +- Takeover proves only that the recorded process exited, not that the processes it started stopped writing. The [Plugin Manager](../../../../packages/boot/plugin-manager/README.md) records each pnpm run in `.plugin-manager/run.json` while the run lasts; an operation that finds that record waits up to five seconds for the recorded run to stop and otherwise refuses to run, naming the process and the record. +- The probe runs on the contender's host. Writers on several hosts sharing one `DSH_HOME` over a network filesystem are unsupported; the `flock` that guards Session files does not reliably exclude them either. + +## Alternatives considered + +**Remove a lock older than a fixed age.** Age cannot separate a crashed holder from one running a ten-minute pnpm installation, and the plugin manager legitimately holds the lock that long. + +**Kernel-released locks.** The kernel releases them when the holder dies, which removes the problem instead of detecting it. The [Session write lease](../../../../packages/session/session-persistence-jsonl/src/lease.ts) already holds one on both platforms: `flock` through `@deepseek-ai/node-addon-system` on POSIX and a named semaphore through `koffi` on Windows. Moving `withFileLock` onto it would give the zero-dependency `dsh-atomic-write` both dependencies, and processes of earlier releases still exclude each other only through `.lock`, so a transition would have to hold both locks. This stays the stronger fix if PID reuse or shared-filesystem deployments turn out to matter. + +**Rename the stale lock aside and restore it when the renamed record differs.** Restoring can race a third contender that acquires the empty path in between, which leaves two holders. The claim file prevents that race without restoring anything. + +**Record the hostname and a nonce.** A hostname would keep a writer on another host from probing a PID that is not its own, but no supported deployment shares these files across hosts, and macOS changes its hostname when networks change, which would leave locks from before the change in place. A nonce would make each record unique, but the second probe under the claim already rejects a holder that reused the PID. + +**Terminate the recorded pnpm run instead of refusing.** Its PID can have been reused by an unrelated process, which a signal would then kill. Refusing leaves that case to the operator, whom the diagnostic names the process and the record. + +**Signal handlers in `dsh plugin` only.** This covers one of the paths that leave a lock and leaves crashes, forced exits, and the other lock files behind. + +## Testing + +| Evidence | Behaviour | +|---|---| +| [atomic-write.spec.ts](../../../../packages/util/atomic-write/tests/atomic-write.spec.ts) | Takeover of an exited holder's record, through an injected probe everywhere and a really exited process on POSIX; eight contenders over one exited holder never overlap; live, own-process, other-user, empty, incomplete, non-PID, process-group, and out-of-range records are waited for; a holder that reused the PID after the claim, an unreadable lock, a claim held by another contender, and a record replaced after the claim are left in place; a lock that cannot be removed is waited for; an `EPERM` claim refusal is retried, another claim failure surfaces, and a claim that cannot be removed does not fail the operation. | +| [operations.spec.ts](../../../../packages/boot/plugin-manager/tests/operations.spec.ts) | CLI, service, and repair runs are recorded while they run and the record is removed afterwards; an active recorded run refuses the operation before pnpm starts; a stopped one's record is removed; a record that names no run refuses the operation. | +| [operations-process.spec.ts](../../../../packages/boot/plugin-manager/tests/operations-process.spec.ts) | A real recorded run that is still writing finishes before the next operation's pnpm starts. | + +## Consequences + +- Locks left by an exited process, including those written before this change, no longer need an operator; the next writer proceeds without waiting for its deadline. +- A PID that a live process reused after a reboot keeps the lock in place until an operator removes it, as before. +- Processes that share the lock file but not a PID namespace, such as containers over one volume or hosts over a network filesystem, can see a live holder as exited. Such deployments are not supported. +- A contender that crashes while it holds a claim leaves that claim, and the named lock is then not taken over automatically. +- A pnpm run left by an exited operation blocks later operations until it stops or an operator removes its record. +- A holder that is still alive keeps its lock, so this does not bound how long a live operation holds it. diff --git a/.agents/notes/archived/bug-fix/2026-09-24-exited-holder-lock-takeover.zh.md b/.agents/notes/archived/bug-fix/2026-09-24-exited-holder-lock-takeover.zh.md new file mode 100644 index 0000000000..651dc2df66 --- /dev/null +++ b/.agents/notes/archived/bug-fix/2026-09-24-exited-holder-lock-takeover.zh.md @@ -0,0 +1,52 @@ +# Agent Note: 接管持有者已退出的写锁 + +Status: implemented +Archived: 2026-09-30 + +[English](2026-09-24-exited-holder-lock-takeover.md) | 中文 + +## 问题 + +[dsh-atomic-write](../../../../packages/util/atomic-write/README.zh.md) 的 `withFileLock` 以独占创建方式创建 `.lock`,并在 `finally` 中移除它。进程若未执行该 `finally` 就结束,锁会留在原地,该文件后续的每个写入方都会超时,直到有人手动删除它。[原始决策](../../archived/architecture/2026-07-30-settings-write-path-integrity.md)接受了这一点,因为文件存续时间无法区分已崩溃的持有者与暂停的持有者。 + +profile 包锁(`/package.json.lock`)让这个代价显现出来。`dsh plugin` 不安装信号处理器,因此在 pnpm 运行期间按 Ctrl-C、发送 SIGTERM 或关闭其终端都会结束进程,锁随之留下。`dsh` 与 `dsh web` 在应用销毁完成后立即退出,而此时被取消的安装仍在恢复文件,尚未释放锁。崩溃、SIGKILL 或内存不足被杀也有同样效果。发生上述任一情况后,该 profile 上的每个插件操作都会在 `lockWaitMs`(默认两分钟)后失败,且不说明持有者已不存在。 + +## 决策 + +- 锁沿用早期版本写入的 `\n` 记录,因此本变更之前遗留的锁也会被接管,新旧版本的进程可以互操作。 +- 竞争者发现锁时读取其记录。若对该 PID 的信号探测以 `ESRCH` 失败,则证明持有者已不存在,锁会被接管。`EPERM` 表示该进程以其他用户身份存在,锁保留。指向竞争者自身进程的记录同样保留:该进程正在运行,而浏览器 Worker 的进程模拟层会把自身 PID 报告为不存在。 +- 读到同一条记录的竞争者通过一个以 `wx` 创建的认领文件 `.lock.takeover-<记录 SHA-256 的前 16 位十六进制>` 串行化。认领者重新读取锁并再次探测其 PID,仅当锁仍是该记录且该 PID 仍不存在时才移除它,随后移除认领文件并立即重试获取。PID 不存在时记录的持有者无法再释放它,另一次接管需要同一个认领文件,复用了该 PID 的新持有者无法通过第二次探测,因此认领者绝不会移除另一个竞争者在已退出持有者之后获得的锁。 +- 记录为空、不完整、不是十进制 PID,或指向 PID 0 或超出探测所接受的 int32 范围的 PID 时,竞争者继续等待。这些情况都无法证明持有者已经停止。 +- 接管只能证明记录中的进程已退出,不能证明它启动的进程已停止写入。[Plugin Manager](../../../../packages/boot/plugin-manager/README.zh.md) 在每次 pnpm 运行期间把它记录在 `.plugin-manager/run.json` 中;发现该记录的操作最多等待五秒让记录中的运行停止,否则拒绝运行,并指明该进程与记录文件。 +- 探测在竞争者所在主机上进行。不支持多台主机通过网络文件系统共享同一个 `DSH_HOME` 写入;保护 Session 文件的 `flock` 同样无法可靠地排除它们。 + +## 考虑过的替代方案 + +**移除超过固定时长的锁。** 时长无法区分已崩溃的持有者与正在运行十分钟 pnpm 安装的持有者,而插件管理器会合理地持锁这么久。 + +**由内核释放的锁。** 持有者死亡时内核会释放它们,从根源上消除问题而不是检测它。[Session 写租约](../../../../packages/session/session-persistence-jsonl/src/lease.ts)已在两个平台上持有这种锁:POSIX 上通过 `@deepseek-ai/node-addon-system` 使用 `flock`,Windows 上通过 `koffi` 使用命名信号量。把 `withFileLock` 迁移到它上面,会让零依赖的 `dsh-atomic-write` 引入这两个依赖;而早期版本的进程之间只通过 `.lock` 互斥,因此过渡期必须同时持有两种锁。若 PID 复用或共享文件系统部署变得重要,这仍是更强的修复。 + +**把陈旧锁重命名到别处,若重命名后的记录不同再恢复。** 恢复可能与在此间隙获取空路径的第三个竞争者竞态,导致出现两个持有者。认领文件无需任何恢复即可防止这一竞态。 + +**记录主机名和随机数。** 主机名能让其他主机上的写入方不去探测不属于自己的 PID,但没有受支持的部署会跨主机共享这些文件,而且 macOS 切换网络时会改变主机名,导致变更前留下的锁无法接管。随机数能让每条记录唯一,但认领后的第二次探测已经能排除复用了该 PID 的持有者。 + +**终止记录中的 pnpm 运行而不是拒绝。** 其 PID 可能已被无关进程复用,发送信号会杀死该进程。拒绝则把这种情况交给操作者,诊断会指明该进程与记录文件。 + +**只在 `dsh plugin` 中安装信号处理器。** 这只覆盖留下锁的其中一条路径,崩溃、强制退出和其他锁文件仍会遗留。 + +## 验证 + +| 证据 | 行为 | +|---|---| +| [atomic-write.spec.ts](../../../../packages/util/atomic-write/tests/atomic-write.spec.ts) | 接管已退出持有者的记录,各平台通过注入的探测验证,POSIX 上另用真实已退出的进程验证;八个竞争者同时接管一个已退出持有者时从不重叠;存活、自身进程、其他用户、空、不完整、非 PID、进程组和超出范围的记录均继续等待;认领后复用了该 PID 的持有者、无法读取的锁、被另一竞争者持有的认领、认领后被替换的记录都保留原样;无法移除的锁会继续等待;以 `EPERM` 拒绝的认领会重试,其他认领失败会抛出,认领无法移除时操作不失败。 | +| [operations.spec.ts](../../../../packages/boot/plugin-manager/tests/operations.spec.ts) | CLI、service 与修复运行在运行期间被记录,结束后删除记录;仍活动的记录中运行会在 pnpm 启动前拒绝操作;已停止运行的记录被删除;不指向任何运行的记录会拒绝操作。 | +| [operations-process.spec.ts](../../../../packages/boot/plugin-manager/tests/operations-process.spec.ts) | 仍在写入的真实记录中运行会在下一个操作的 pnpm 启动前结束。 | + +## 后果 + +- 已退出进程留下的锁(包括本变更之前留下的)不再需要操作者处理;下一个写入方无需等到期限即可继续。 +- 重启后被存活进程复用的 PID 会让锁保持原样,直到操作者移除,与之前相同。 +- 共享锁文件但不共享 PID 命名空间的进程,例如共享同一卷的容器或通过网络文件系统共享的多台主机,可能把存活持有者视为已退出。不支持此类部署。 +- 竞争者在持有认领文件时崩溃会留下该认领文件,对应的锁随后不会被自动接管。 +- 已退出操作留下的 pnpm 运行会阻止后续操作,直到它停止或操作者删除其记录。 +- 仍存活的持有者会保留其锁,因此本变更不限制存活操作的持锁时长。 diff --git a/.agents/notes/archived/feature/2026-06-18-compaction-capability-seam.i18n.yaml b/.agents/notes/archived/feature/2026-06-18-compaction-capability-seam.i18n.yaml new file mode 100644 index 0000000000..41e8fa81fd --- /dev/null +++ b/.agents/notes/archived/feature/2026-06-18-compaction-capability-seam.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-06-18-compaction-capability-seam.md +2026-06-18-compaction-capability-seam.md: 6e59c7e4110d3813600872bac94e37901c41d0b1 +2026-06-18-compaction-capability-seam.zh.md: 2988655d8298d9e809ebd03cdfb2f0214fdd55fa diff --git a/.agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.md b/.agents/notes/archived/feature/2026-06-18-compaction-capability-seam.md similarity index 99% rename from .agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.md rename to .agents/notes/archived/feature/2026-06-18-compaction-capability-seam.md index 7d8b4f5011..6e59c7e411 100644 --- a/.agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.md +++ b/.agents/notes/archived/feature/2026-06-18-compaction-capability-seam.md @@ -1,6 +1,7 @@ # Agent Note: Compaction as a capability seam (abstract contract + basic backend) Status: implemented +Archived: 2026-09-30 English | [中文](2026-06-18-compaction-capability-seam.zh.md) diff --git a/.agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.zh.md b/.agents/notes/archived/feature/2026-06-18-compaction-capability-seam.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.zh.md rename to .agents/notes/archived/feature/2026-06-18-compaction-capability-seam.zh.md index 6a255bb05e..2988655d82 100644 --- a/.agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.zh.md +++ b/.agents/notes/archived/feature/2026-06-18-compaction-capability-seam.zh.md @@ -1,6 +1,7 @@ # Agent Note: 压缩作为能力 seam(抽象约定 + 基础后端) Status: implemented +Archived: 2026-09-30 [English](2026-06-18-compaction-capability-seam.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-06-21-subagent-capability-seam.i18n.yaml b/.agents/notes/archived/feature/2026-06-21-subagent-capability-seam.i18n.yaml new file mode 100644 index 0000000000..6310983634 --- /dev/null +++ b/.agents/notes/archived/feature/2026-06-21-subagent-capability-seam.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-06-21-subagent-capability-seam.md +2026-06-21-subagent-capability-seam.md: a36870d320a968f1d221caff14b542d40fc2bb10 +2026-06-21-subagent-capability-seam.zh.md: 4b95c69f52e50b2b4adfff0c89d05a25fe569bad diff --git a/.agents/notes/implemented/feature/2026-06-21-subagent-capability-seam.md b/.agents/notes/archived/feature/2026-06-21-subagent-capability-seam.md similarity index 99% rename from .agents/notes/implemented/feature/2026-06-21-subagent-capability-seam.md rename to .agents/notes/archived/feature/2026-06-21-subagent-capability-seam.md index 6eedb3a4b0..a36870d320 100644 --- a/.agents/notes/implemented/feature/2026-06-21-subagent-capability-seam.md +++ b/.agents/notes/archived/feature/2026-06-21-subagent-capability-seam.md @@ -1,6 +1,7 @@ # Agent Note: Subagent capability seam Status: implemented +Archived: 2026-09-30 English | [中文](2026-06-21-subagent-capability-seam.zh.md) diff --git a/.agents/notes/implemented/feature/2026-06-21-subagent-capability-seam.zh.md b/.agents/notes/archived/feature/2026-06-21-subagent-capability-seam.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-06-21-subagent-capability-seam.zh.md rename to .agents/notes/archived/feature/2026-06-21-subagent-capability-seam.zh.md index 7e73fdc58f..4b95c69f52 100644 --- a/.agents/notes/implemented/feature/2026-06-21-subagent-capability-seam.zh.md +++ b/.agents/notes/archived/feature/2026-06-21-subagent-capability-seam.zh.md @@ -1,6 +1,7 @@ # Agent Note: subagent 能力 seam Status: implemented +Archived: 2026-09-30 [English](2026-06-21-subagent-capability-seam.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-06-30-interception-extension-points.i18n.yaml b/.agents/notes/archived/feature/2026-06-30-interception-extension-points.i18n.yaml new file mode 100644 index 0000000000..ffb00d0d6f --- /dev/null +++ b/.agents/notes/archived/feature/2026-06-30-interception-extension-points.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-06-30-interception-extension-points.md +2026-06-30-interception-extension-points.md: d8a2d75333bea36b33c07e50a993d881d668aa15 +2026-06-30-interception-extension-points.zh.md: fa9745d02035c9390cda4f9ffe1c08e5bc6e1e64 diff --git a/.agents/notes/implemented/feature/2026-06-30-interception-extension-points.md b/.agents/notes/archived/feature/2026-06-30-interception-extension-points.md similarity index 99% rename from .agents/notes/implemented/feature/2026-06-30-interception-extension-points.md rename to .agents/notes/archived/feature/2026-06-30-interception-extension-points.md index 5adffd1679..d8a2d75333 100644 --- a/.agents/notes/implemented/feature/2026-06-30-interception-extension-points.md +++ b/.agents/notes/archived/feature/2026-06-30-interception-extension-points.md @@ -1,6 +1,7 @@ # Agent Note: Interception extension points — the typed-Decision surface a hook programs against Status: implemented +Archived: 2026-09-30 English | [中文](2026-06-30-interception-extension-points.zh.md) diff --git a/.agents/notes/implemented/feature/2026-06-30-interception-extension-points.zh.md b/.agents/notes/archived/feature/2026-06-30-interception-extension-points.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-06-30-interception-extension-points.zh.md rename to .agents/notes/archived/feature/2026-06-30-interception-extension-points.zh.md index c3aa374a22..fa9745d020 100644 --- a/.agents/notes/implemented/feature/2026-06-30-interception-extension-points.zh.md +++ b/.agents/notes/archived/feature/2026-06-30-interception-extension-points.zh.md @@ -1,6 +1,7 @@ # Agent Note: 拦截扩展点——钩子编程所面对的类型化 Decision 接口 Status: implemented +Archived: 2026-09-30 [English](2026-06-30-interception-extension-points.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-07-05-dynamic-workflows.i18n.yaml b/.agents/notes/archived/feature/2026-07-05-dynamic-workflows.i18n.yaml new file mode 100644 index 0000000000..7272e49850 --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-05-dynamic-workflows.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-05-dynamic-workflows.md +2026-07-05-dynamic-workflows.md: ca87e27496bab0cba00bb6a6c9d7e562b6bb2e7c +2026-07-05-dynamic-workflows.zh.md: 498fcd17cec631d2afaa740646c93819b5a865d0 diff --git a/.agents/notes/implemented/feature/2026-07-05-dynamic-workflows.md b/.agents/notes/archived/feature/2026-07-05-dynamic-workflows.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-05-dynamic-workflows.md rename to .agents/notes/archived/feature/2026-07-05-dynamic-workflows.md index c7245704b0..ca87e27496 100644 --- a/.agents/notes/implemented/feature/2026-07-05-dynamic-workflows.md +++ b/.agents/notes/archived/feature/2026-07-05-dynamic-workflows.md @@ -1,6 +1,7 @@ # Agent Note: Dynamic workflows — a script-driven multi-agent orchestration seam Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-05-dynamic-workflows.zh.md) diff --git a/.agents/notes/implemented/feature/2026-07-05-dynamic-workflows.zh.md b/.agents/notes/archived/feature/2026-07-05-dynamic-workflows.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-05-dynamic-workflows.zh.md rename to .agents/notes/archived/feature/2026-07-05-dynamic-workflows.zh.md index a4502d7d6b..498fcd17ce 100644 --- a/.agents/notes/implemented/feature/2026-07-05-dynamic-workflows.zh.md +++ b/.agents/notes/archived/feature/2026-07-05-dynamic-workflows.zh.md @@ -1,6 +1,7 @@ # Agent Note: 动态工作流——脚本驱动的多 agent 编排 seam Status: implemented +Archived: 2026-09-30 [English](2026-07-05-dynamic-workflows.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-07-06-sandbox.i18n.yaml b/.agents/notes/archived/feature/2026-07-06-sandbox.i18n.yaml new file mode 100644 index 0000000000..83f44dc077 --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-06-sandbox.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-06-sandbox.md +2026-07-06-sandbox.md: 973f76d81bf78e2f1dd01b8fde20025f51c6d0d0 +2026-07-06-sandbox.zh.md: 986f469da4903304f711a0fc1ebfe63bb62557b0 diff --git a/.agents/notes/implemented/feature/2026-07-06-sandbox.md b/.agents/notes/archived/feature/2026-07-06-sandbox.md similarity index 98% rename from .agents/notes/implemented/feature/2026-07-06-sandbox.md rename to .agents/notes/archived/feature/2026-07-06-sandbox.md index f2c703ba67..973f76d81b 100644 --- a/.agents/notes/implemented/feature/2026-07-06-sandbox.md +++ b/.agents/notes/archived/feature/2026-07-06-sandbox.md @@ -1,6 +1,7 @@ # Agent Note: The subprocess sandbox — confinement seam, native runners, escalation, and per-session modes Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-06-sandbox.zh.md) @@ -78,7 +79,7 @@ Provider-owned I/O requires asynchronous confinement. `confine(argv, policy, sig `dsh-bash-sandbox` extends `LocalBashExecutor`, awaits `ctx.sandbox` for the exact `['bash', '-c', command]` argv with the execution signal, rechecks cancellation, and directly spawns the provider result. This leaves shell semantics and `BASH_ENV` on the inner Bash after the shipped native runner establishes confinement. A provider error propagates unchanged. An asynchronous rejection counts as a runner failure only when the caller-owned workdir is independently usable and Node reports `ENOENT` or `EACCES` with either an `error.path` equal to provider argv[0] or, when `error.path` is absent, an exact `syscall: 'spawn '`; a present path also requires `syscall: 'spawn'` or the exact `spawn `. Other codes, invalid workdirs, resource failures, unrelated syscalls, and unstructured rejections retain stage-neutral provider-failure semantics. Foreground execution converts attributable runner failures to `SANDBOX_UNAVAILABLE` with the original detail; an attributable asynchronous background rejection stamps `runnerFailed: true`, `denied: false`. A `SubprocessRuntime` that synchronously throws the same runner-identifying shape makes background start reject with `SANDBOX_UNAVAILABLE` before handle publication, while other synchronous errors propagate unchanged. After a direct outcome exists, foreground and background use one runner-failure classifier that requires the rule's exit-code check and a remaining fatal line after informational exclusions. A match takes priority over denial: foreground execution throws `SANDBOX_UNAVAILABLE` with that fatal line as detail; a settled `ShellProcess` stamps `sandbox.runnerFailed`, and the bash producer renders it through generic `job_output`. -The model sees the current effective file policy in the owner-derived `sandbox:policy` context, while the static tool description explains the denial marker (`[sandbox: file access denied under mode]`), encourages attempting commands that may be denied, and forbids retrying around a denial; when the escalation fields are advertised, a denied result additionally carries the escalation hint itself, so the sanctioned same-turn retry is prompted at the decision point rather than depending on the model recalling the description (§ Escalation). [The current-policy decision](../../archived/feature/2026-07-30-current-sandbox-policy-context.md) owns the context's rationale and boundaries. +The model sees the current effective file policy in the owner-derived `sandbox:policy` context, while the static tool description explains the denial marker (`[sandbox: file access denied under mode]`) and forbids retrying around a denial, and the `sandbox:policy` context tells the model to try an available tool normally; a rejected escalation's error text says the action stays denied; when the escalation fields are advertised, a denied result additionally carries the escalation hint itself, so the sanctioned same-turn retry is prompted at the decision point rather than depending on the model recalling the description (§ Escalation). [The current-policy decision](../../archived/feature/2026-07-30-current-sandbox-policy-context.md) owns the context's rationale and boundaries. #### Escalation: one approved wider retry after a denial diff --git a/.agents/notes/implemented/feature/2026-07-06-sandbox.zh.md b/.agents/notes/archived/feature/2026-07-06-sandbox.zh.md similarity index 98% rename from .agents/notes/implemented/feature/2026-07-06-sandbox.zh.md rename to .agents/notes/archived/feature/2026-07-06-sandbox.zh.md index ff4d4ed592..986f469da4 100644 --- a/.agents/notes/implemented/feature/2026-07-06-sandbox.zh.md +++ b/.agents/notes/archived/feature/2026-07-06-sandbox.zh.md @@ -1,6 +1,7 @@ # Agent Note: 子进程沙箱——约束 seam、原生 runner、升级机制与按会话模式 Status: implemented +Archived: 2026-09-30 [English](2026-07-06-sandbox.md) | 中文 @@ -78,7 +79,7 @@ Landlock launcher 源码和包家族位于 `native/system`,与 harness 消费 `dsh-bash-sandbox` 扩展 `LocalBashExecutor`,携带执行信号等待 `ctx.sandbox` 为精确的 `['bash', '-c', command]` argv 完成限制准备,重新检查取消后直接 spawn 提供方返回的 argv。这样,随附的原生 runner 建立约束后,shell 语义与 `BASH_ENV` 仍由内层 Bash 处理。提供方错误原样传播。异步 rejection 只有在调用方拥有的 workdir 经独立验证可用,Node 报告 `ENOENT` 或 `EACCES`,并且错误符合以下一种形态时,才判定为 runner 失败:`error.path` 等于提供方返回的 `argv[0]`,同时 `syscall` 为 `'spawn'` 或精确的 `'spawn '`;或者 `error.path` 不存在,同时 `syscall` 为精确的 `'spawn '`。其他错误码、无效 workdir、资源失败、无关 syscall 与无结构 rejection 保留不声明阶段的 provider-failure 语义。前台执行会将可归因的 runner failure 转为 `SANDBOX_UNAVAILABLE` 并附上原始详情;可归因的异步后台 rejection 则盖章 `runnerFailed: true`、`denied: false`。如果 `SubprocessRuntime` 同步抛出同样能指明 runner 的形态,后台启动会在发布句柄前以 `SANDBOX_UNAVAILABLE` 拒绝;其他同步错误原样传播。direct outcome 已存在后,前台与后台共用一个 runner failure 分类器:先排除信息性行,再要求规则的退出码检查与余下的一行致命诊断同时匹配。匹配结果优先于拒绝:前台执行抛出 `SANDBOX_UNAVAILABLE`,并以该致命行作为详情;结算后的 `ShellProcess` 会盖章 `sandbox.runnerFailed`,bash 生产者再通过通用 `job_output` 渲染它。 -模型会在归属方派生的 `sandbox:policy` 上下文中看到当前有效的文件策略;静态工具描述则解释拒绝标记(`[sandbox: file access denied under mode]`),鼓励尝试可能被拒绝的命令,并禁止绕过拒绝重试。当升级字段被公布时,被拒绝的结果还会携带升级提示本身,使被认可的同轮次重试在决策点获得提示,而非依赖模型回忆描述(§ 升级机制)。[当前策略决策](../../archived/feature/2026-07-30-current-sandbox-policy-context.md)负责该上下文的理由与边界。 +模型会在归属方派生的 `sandbox:policy` 上下文中看到当前有效的文件策略;静态工具描述则解释拒绝标记(`[sandbox: file access denied under mode]`)并禁止绕过拒绝重试,`sandbox:policy` 上下文要求模型正常尝试可用工具;被拒绝的升级请求的错误文本说明该操作仍被拒绝。当升级字段被公布时,被拒绝的结果还会携带升级提示本身,使被认可的同轮次重试在决策点获得提示,而非依赖模型回忆描述(§ 升级机制)。[当前策略决策](../../archived/feature/2026-07-30-current-sandbox-policy-context.md)负责该上下文的理由与边界。 #### 升级机制:拒绝后一次经批准的更宽重试 diff --git a/.agents/notes/archived/feature/2026-07-07-mcp-client-plugin.i18n.yaml b/.agents/notes/archived/feature/2026-07-07-mcp-client-plugin.i18n.yaml new file mode 100644 index 0000000000..fec28efef7 --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-07-mcp-client-plugin.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-07-mcp-client-plugin.md +2026-07-07-mcp-client-plugin.md: 9df85257e9e90f0e7266356ec0cdd0d5da37ec9f +2026-07-07-mcp-client-plugin.zh.md: 2fcbabdd9d0514a4d27a385e64fe1c2fcfa4510d diff --git a/.agents/notes/implemented/feature/2026-07-07-mcp-client-plugin.md b/.agents/notes/archived/feature/2026-07-07-mcp-client-plugin.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-07-mcp-client-plugin.md rename to .agents/notes/archived/feature/2026-07-07-mcp-client-plugin.md index dd793b67bf..9df85257e9 100644 --- a/.agents/notes/implemented/feature/2026-07-07-mcp-client-plugin.md +++ b/.agents/notes/archived/feature/2026-07-07-mcp-client-plugin.md @@ -1,6 +1,7 @@ # Agent Note: MCP client plugin — connect to external MCP servers and bridge their tools Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-07-mcp-client-plugin.zh.md) diff --git a/.agents/notes/implemented/feature/2026-07-07-mcp-client-plugin.zh.md b/.agents/notes/archived/feature/2026-07-07-mcp-client-plugin.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-07-mcp-client-plugin.zh.md rename to .agents/notes/archived/feature/2026-07-07-mcp-client-plugin.zh.md index 5056118df0..2fcbabdd9d 100644 --- a/.agents/notes/implemented/feature/2026-07-07-mcp-client-plugin.zh.md +++ b/.agents/notes/archived/feature/2026-07-07-mcp-client-plugin.zh.md @@ -1,6 +1,7 @@ # Agent Note: MCP 客户端插件——连接外部 MCP 服务器并桥接其工具 Status: implemented +Archived: 2026-09-30 [English](2026-07-07-mcp-client-plugin.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-07-08-self-referential-cordis-toolset.i18n.yaml b/.agents/notes/archived/feature/2026-07-08-self-referential-cordis-toolset.i18n.yaml new file mode 100644 index 0000000000..134e9b5d9c --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-08-self-referential-cordis-toolset.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-08-self-referential-cordis-toolset.md +2026-07-08-self-referential-cordis-toolset.md: a47cc3e5be467accc924b757e30fef23350e23e4 +2026-07-08-self-referential-cordis-toolset.zh.md: 30b0bfe8614c5be40d64e54015927d879ee3fbc9 diff --git a/.agents/notes/implemented/feature/2026-07-08-self-referential-cordis-toolset.md b/.agents/notes/archived/feature/2026-07-08-self-referential-cordis-toolset.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-08-self-referential-cordis-toolset.md rename to .agents/notes/archived/feature/2026-07-08-self-referential-cordis-toolset.md index 278c71051d..a47cc3e5be 100644 --- a/.agents/notes/implemented/feature/2026-07-08-self-referential-cordis-toolset.md +++ b/.agents/notes/archived/feature/2026-07-08-self-referential-cordis-toolset.md @@ -1,6 +1,7 @@ # Agent Note: Cordis runtime inspection and runner isolation Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-08-self-referential-cordis-toolset.zh.md) diff --git a/.agents/notes/implemented/feature/2026-07-08-self-referential-cordis-toolset.zh.md b/.agents/notes/archived/feature/2026-07-08-self-referential-cordis-toolset.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-08-self-referential-cordis-toolset.zh.md rename to .agents/notes/archived/feature/2026-07-08-self-referential-cordis-toolset.zh.md index 8a8e197e19..30b0bfe861 100644 --- a/.agents/notes/implemented/feature/2026-07-08-self-referential-cordis-toolset.zh.md +++ b/.agents/notes/archived/feature/2026-07-08-self-referential-cordis-toolset.zh.md @@ -1,6 +1,7 @@ # Agent Note:Cordis 运行时检查与 runner 隔离 Status: implemented +Archived: 2026-09-30 [English](2026-07-08-self-referential-cordis-toolset.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-07-14-cross-family-fs-sandbox.i18n.yaml b/.agents/notes/archived/feature/2026-07-14-cross-family-fs-sandbox.i18n.yaml new file mode 100644 index 0000000000..2a5bbfd67c --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-14-cross-family-fs-sandbox.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-14-cross-family-fs-sandbox.md +2026-07-14-cross-family-fs-sandbox.md: 049cb7358f1c5f1474744b0e2b60bcf06659f455 +2026-07-14-cross-family-fs-sandbox.zh.md: e3bb5a4ccbc2cb208ab72453ff9bc493530f9036 diff --git a/.agents/notes/implemented/feature/2026-07-14-cross-family-fs-sandbox.md b/.agents/notes/archived/feature/2026-07-14-cross-family-fs-sandbox.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-14-cross-family-fs-sandbox.md rename to .agents/notes/archived/feature/2026-07-14-cross-family-fs-sandbox.md index 0fe1d40787..049cb7358f 100644 --- a/.agents/notes/implemented/feature/2026-07-14-cross-family-fs-sandbox.md +++ b/.agents/notes/archived/feature/2026-07-14-cross-family-fs-sandbox.md @@ -1,6 +1,7 @@ # Agent Note: Cross-family file sandbox — one policy home, a sandboxed fs provider, and fs escalation parity Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-14-cross-family-fs-sandbox.zh.md) diff --git a/.agents/notes/implemented/feature/2026-07-14-cross-family-fs-sandbox.zh.md b/.agents/notes/archived/feature/2026-07-14-cross-family-fs-sandbox.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-14-cross-family-fs-sandbox.zh.md rename to .agents/notes/archived/feature/2026-07-14-cross-family-fs-sandbox.zh.md index 021923c7e3..e3bb5a4ccb 100644 --- a/.agents/notes/implemented/feature/2026-07-14-cross-family-fs-sandbox.zh.md +++ b/.agents/notes/archived/feature/2026-07-14-cross-family-fs-sandbox.zh.md @@ -1,6 +1,7 @@ # Agent Note: 跨家族文件沙箱——统一策略归属、沙箱化 fs 提供方、fs 升级对等 Status: implemented +Archived: 2026-09-30 [English](2026-07-14-cross-family-fs-sandbox.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-07-16-harness-level-loop.i18n.yaml b/.agents/notes/archived/feature/2026-07-16-harness-level-loop.i18n.yaml new file mode 100644 index 0000000000..a29e048b0a --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-16-harness-level-loop.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-16-harness-level-loop.md +2026-07-16-harness-level-loop.md: 9f208f871905bcde365d072494cf30ceba1957f4 +2026-07-16-harness-level-loop.zh.md: 3c6c57e1631367358a0bd418ac6834f86f866ba5 diff --git a/.agents/notes/implemented/feature/2026-07-16-harness-level-loop.md b/.agents/notes/archived/feature/2026-07-16-harness-level-loop.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-16-harness-level-loop.md rename to .agents/notes/archived/feature/2026-07-16-harness-level-loop.md index 54adc1aad6..9f208f8719 100644 --- a/.agents/notes/implemented/feature/2026-07-16-harness-level-loop.md +++ b/.agents/notes/archived/feature/2026-07-16-harness-level-loop.md @@ -1,6 +1,7 @@ # Agent Note: Harness-level goal-based execution Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-16-harness-level-loop.zh.md) diff --git a/.agents/notes/implemented/feature/2026-07-16-harness-level-loop.zh.md b/.agents/notes/archived/feature/2026-07-16-harness-level-loop.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-16-harness-level-loop.zh.md rename to .agents/notes/archived/feature/2026-07-16-harness-level-loop.zh.md index 9e1a7e73fb..3c6c57e163 100644 --- a/.agents/notes/implemented/feature/2026-07-16-harness-level-loop.zh.md +++ b/.agents/notes/archived/feature/2026-07-16-harness-level-loop.zh.md @@ -1,6 +1,7 @@ # Agent Note: Harness 层目标式执行 Status: implemented +Archived: 2026-09-30 [English](2026-07-16-harness-level-loop.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-07-19-persisted-same-session-goal-domain.i18n.yaml b/.agents/notes/archived/feature/2026-07-19-persisted-same-session-goal-domain.i18n.yaml new file mode 100644 index 0000000000..75eb18986d --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-19-persisted-same-session-goal-domain.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-19-persisted-same-session-goal-domain.md +2026-07-19-persisted-same-session-goal-domain.md: 5304af8375b5367c3d75e4ba4a7c5ac0034d696d +2026-07-19-persisted-same-session-goal-domain.zh.md: 06442ca888c9274b8295ecd1f9301aaf73a8c680 diff --git a/.agents/notes/implemented/feature/2026-07-19-persisted-same-session-goal-domain.md b/.agents/notes/archived/feature/2026-07-19-persisted-same-session-goal-domain.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-19-persisted-same-session-goal-domain.md rename to .agents/notes/archived/feature/2026-07-19-persisted-same-session-goal-domain.md index 4ddc02c3bd..5304af8375 100644 --- a/.agents/notes/implemented/feature/2026-07-19-persisted-same-session-goal-domain.md +++ b/.agents/notes/archived/feature/2026-07-19-persisted-same-session-goal-domain.md @@ -1,6 +1,7 @@ # Agent Note: Persisted same-session goal domain Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-19-persisted-same-session-goal-domain.zh.md) diff --git a/.agents/notes/implemented/feature/2026-07-19-persisted-same-session-goal-domain.zh.md b/.agents/notes/archived/feature/2026-07-19-persisted-same-session-goal-domain.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-19-persisted-same-session-goal-domain.zh.md rename to .agents/notes/archived/feature/2026-07-19-persisted-same-session-goal-domain.zh.md index 2bb937b0f6..06442ca888 100644 --- a/.agents/notes/implemented/feature/2026-07-19-persisted-same-session-goal-domain.zh.md +++ b/.agents/notes/archived/feature/2026-07-19-persisted-same-session-goal-domain.zh.md @@ -1,6 +1,7 @@ # Agent Note: 持久化的同会话目标领域 Status: implemented +Archived: 2026-09-30 [English](2026-07-19-persisted-same-session-goal-domain.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-07-19-plugin-command-registration.i18n.yaml b/.agents/notes/archived/feature/2026-07-19-plugin-command-registration.i18n.yaml new file mode 100644 index 0000000000..0082dfbc36 --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-19-plugin-command-registration.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-19-plugin-command-registration.md +2026-07-19-plugin-command-registration.md: 505495036501bc6c3ea32662aa9c88ec5beb1072 +2026-07-19-plugin-command-registration.zh.md: 10a47da8a7d3785818d8a45d852b4a3586f8d098 diff --git a/.agents/notes/implemented/feature/2026-07-19-plugin-command-registration.md b/.agents/notes/archived/feature/2026-07-19-plugin-command-registration.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-19-plugin-command-registration.md rename to .agents/notes/archived/feature/2026-07-19-plugin-command-registration.md index f5033c6ac5..5054950365 100644 --- a/.agents/notes/implemented/feature/2026-07-19-plugin-command-registration.md +++ b/.agents/notes/archived/feature/2026-07-19-plugin-command-registration.md @@ -1,6 +1,7 @@ # Agent Note: Plugin-owned human command registration Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-19-plugin-command-registration.zh.md) diff --git a/.agents/notes/implemented/feature/2026-07-19-plugin-command-registration.zh.md b/.agents/notes/archived/feature/2026-07-19-plugin-command-registration.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-19-plugin-command-registration.zh.md rename to .agents/notes/archived/feature/2026-07-19-plugin-command-registration.zh.md index 55f3a58f0e..10a47da8a7 100644 --- a/.agents/notes/implemented/feature/2026-07-19-plugin-command-registration.zh.md +++ b/.agents/notes/archived/feature/2026-07-19-plugin-command-registration.zh.md @@ -1,6 +1,7 @@ # Agent Note: 插件自有的人类命令注册 Status: implemented +Archived: 2026-09-30 [English](2026-07-19-plugin-command-registration.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-07-21-follow-instruction-symlinks.i18n.yaml b/.agents/notes/archived/feature/2026-07-21-follow-instruction-symlinks.i18n.yaml new file mode 100644 index 0000000000..4c3c6912bd --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-21-follow-instruction-symlinks.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-21-follow-instruction-symlinks.md +2026-07-21-follow-instruction-symlinks.md: ffc80d4e55fcdb1dd27325e816614f00ad08bd54 +2026-07-21-follow-instruction-symlinks.zh.md: 2d4b5711ca2f022daedacd5c1fbdf375bea66adb diff --git a/.agents/notes/implemented/feature/2026-07-21-follow-instruction-symlinks.md b/.agents/notes/archived/feature/2026-07-21-follow-instruction-symlinks.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-21-follow-instruction-symlinks.md rename to .agents/notes/archived/feature/2026-07-21-follow-instruction-symlinks.md index a6b4cb5d46..ffc80d4e55 100644 --- a/.agents/notes/implemented/feature/2026-07-21-follow-instruction-symlinks.md +++ b/.agents/notes/archived/feature/2026-07-21-follow-instruction-symlinks.md @@ -1,6 +1,7 @@ # Agent Note: Follow symlinked instruction files Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-21-follow-instruction-symlinks.zh.md) diff --git a/.agents/notes/implemented/feature/2026-07-21-follow-instruction-symlinks.zh.md b/.agents/notes/archived/feature/2026-07-21-follow-instruction-symlinks.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-21-follow-instruction-symlinks.zh.md rename to .agents/notes/archived/feature/2026-07-21-follow-instruction-symlinks.zh.md index a44f89d8ec..2d4b5711ca 100644 --- a/.agents/notes/implemented/feature/2026-07-21-follow-instruction-symlinks.zh.md +++ b/.agents/notes/archived/feature/2026-07-21-follow-instruction-symlinks.zh.md @@ -1,6 +1,7 @@ # Agent Note: 跟随符号链接指向的指令文件 Status: implemented +Archived: 2026-09-30 [English](2026-07-21-follow-instruction-symlinks.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-07-23-session-telemetry-otel-revival.i18n.yaml b/.agents/notes/archived/feature/2026-07-23-session-telemetry-otel-revival.i18n.yaml new file mode 100644 index 0000000000..b67f87e9fd --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-23-session-telemetry-otel-revival.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-23-session-telemetry-otel-revival.md +2026-07-23-session-telemetry-otel-revival.md: fd61878316c59911a550d6cccf06e51dfca6d772 +2026-07-23-session-telemetry-otel-revival.zh.md: fe581972b208eb1f0e67edb76b1232cbe9995da4 diff --git a/.agents/notes/implemented/feature/2026-07-23-session-telemetry-otel-revival.md b/.agents/notes/archived/feature/2026-07-23-session-telemetry-otel-revival.md similarity index 96% rename from .agents/notes/implemented/feature/2026-07-23-session-telemetry-otel-revival.md rename to .agents/notes/archived/feature/2026-07-23-session-telemetry-otel-revival.md index dc52ee87ef..fd61878316 100644 --- a/.agents/notes/implemented/feature/2026-07-23-session-telemetry-otel-revival.md +++ b/.agents/notes/archived/feature/2026-07-23-session-telemetry-otel-revival.md @@ -1,6 +1,7 @@ # Agent Note: Session telemetry seam with mandatory redaction and the OTel backend Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-23-session-telemetry-otel-revival.zh.md) @@ -16,6 +17,8 @@ Every deployment that wants harness sessions in an observability stack must hand - **The `session-telemetry/record` waterfall** — the delta over the branch version and the seam's redaction extension point. Every record passes it before reaching any backend; the seam ships NO rules of its own — the innermost `next()` is a pass-through, deployments mount their rules as listeners (stacking by transforming `next()`'s return value), and a throwing rule withholds the record fail-closed. Redaction applies to the exported copy only; the canonical log is never rewritten. - **`@deepseek-ai/dsh-session-telemetry-otel`** — the reference backend: OTel JS SDK log pipeline (`LoggerProvider` → `BatchLogRecordProcessor` → OTLP/HTTP exporter), configured verbatim through `exporter`/`processor` passthroughs. `DISABLED` is the plugin default and constructs no transport. `FEEDBACK_ONLY` requires `exporter.url`; the [explicit-feedback policy](../architecture/2026-09-05-nonofficial-feedback-otel.md) requires a new submission for every bounded capture, for all providers. [Buffer-free feedback replay](../../archived/simplification/2026-08-06-buffer-free-feedback-telemetry.md) avoids a second in-memory copy of the session prefix. +The [Session-log request limits](../architecture/2026-09-25-session-log-otel-byte-limits.md) supersede the SDK-only batching rule below for the OTel Session sender; capture, redaction, and handoff rationale remain applicable. + The boundary axiom holds: the harness's aspect ends at `emit()`. Batching, retry, queueing, and loss policy are the reporting SDK's, configured through passthroughs. Delivery is best-effort: a crash can lose queued records. Backend retry or losing the same live object's module-scope cursor can duplicate lifecycle-local rows, so receivers deduplicate on `(session.id, session.format_version, event.seq)`. ## Alternatives considered diff --git a/.agents/notes/implemented/feature/2026-07-23-session-telemetry-otel-revival.zh.md b/.agents/notes/archived/feature/2026-07-23-session-telemetry-otel-revival.zh.md similarity index 96% rename from .agents/notes/implemented/feature/2026-07-23-session-telemetry-otel-revival.zh.md rename to .agents/notes/archived/feature/2026-07-23-session-telemetry-otel-revival.zh.md index f647ea2896..fe581972b2 100644 --- a/.agents/notes/implemented/feature/2026-07-23-session-telemetry-otel-revival.zh.md +++ b/.agents/notes/archived/feature/2026-07-23-session-telemetry-otel-revival.zh.md @@ -1,6 +1,7 @@ # Agent Note: 设有强制脱敏点和 OTel 后端的会话遥测 seam Status: implemented +Archived: 2026-09-30 [English](2026-07-23-session-telemetry-otel-revival.md) | 中文 @@ -16,6 +17,8 @@ Status: implemented - **`session-telemetry/record` waterfall(瀑布式事件)** —— 相对分支版本的增量,也是该 seam 的脱敏扩展点。每条记录抵达任何后端前必经此处;seam 自身不带任何规则——最内层 `next()` 原样透传,部署方以监听器挂载自己的规则(通过变换 `next()` 的返回值堆叠),抛异常的规则将该记录 fail-closed 扣下。脱敏只作用于导出副本;canonical log 永不改写。 - **`@deepseek-ai/dsh-session-telemetry-otel`** —— 参考后端:OTel JS SDK 日志流水线(`LoggerProvider` → `BatchLogRecordProcessor` → OTLP/HTTP exporter),经 `exporter`/`processor` passthrough 原样配置。`DISABLED` 是插件默认值,且不构造任何传输。`FEEDBACK_ONLY` 要求 `exporter.url`;[显式反馈策略](../architecture/2026-09-05-nonofficial-feedback-otel.zh.md)要求每次有界捕获都由新提交触发,适用于所有提供方。[无缓冲反馈回放](../../archived/simplification/2026-08-06-buffer-free-feedback-telemetry.md)避免在内存中创建会话前缀的第二份副本。 +[Session 日志请求上限](../architecture/2026-09-25-session-log-otel-byte-limits.zh.md) 在 OTel Session 发送器中替代下述仅由 SDK 分批的规则;采集、脱敏和交接的理由仍然适用。 + 边界公理保持不变:harness 的职责止于 `emit()`。批处理、重试、排队与丢失策略属于 reporting SDK,并经 passthrough 配置。投递是尽力而为:崩溃可能丢失已排队记录。后端重试或丢失同一 live 对象的模块作用域游标可能重复生命周期本地 row,因此接收端基于 `(session.id, session.format_version, event.seq)` 去重。 ## 考虑过的替代方案 diff --git a/.agents/notes/archived/feature/2026-07-25-subagent-policy-inheritance.i18n.yaml b/.agents/notes/archived/feature/2026-07-25-subagent-policy-inheritance.i18n.yaml new file mode 100644 index 0000000000..55cee84f53 --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-25-subagent-policy-inheritance.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-25-subagent-policy-inheritance.md +2026-07-25-subagent-policy-inheritance.md: 969321a3c1ef12e7d0088c891e67c65f27f3b97d +2026-07-25-subagent-policy-inheritance.zh.md: 1d2579ece286b20d468a6dae7508017daa9dae26 diff --git a/.agents/notes/implemented/feature/2026-07-25-subagent-policy-inheritance.md b/.agents/notes/archived/feature/2026-07-25-subagent-policy-inheritance.md similarity index 95% rename from .agents/notes/implemented/feature/2026-07-25-subagent-policy-inheritance.md rename to .agents/notes/archived/feature/2026-07-25-subagent-policy-inheritance.md index 8ca63bd511..969321a3c1 100644 --- a/.agents/notes/implemented/feature/2026-07-25-subagent-policy-inheritance.md +++ b/.agents/notes/archived/feature/2026-07-25-subagent-policy-inheritance.md @@ -1,6 +1,7 @@ # Agent Note: In-process subagent policy inheritance — the child starts under the parent's sandbox override Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-25-subagent-policy-inheritance.zh.md) @@ -10,7 +11,7 @@ The Auto or Full access preset identity plus sandbox and approval overrides are ## Decision -The delegation boundary calls the shared child-agent helpers (`captureDelegatedPolicyOverrides`/`appendDelegatedPolicyOverrides` in `dsh-subagent`) before its first await; the one-shot driver and the [continuable start](../../../../packages/subagent/subagent/README.md) both use them. The capture copies the current `permission/preset` identity when `permissionPresets.current(parent.session)` is `auto` or `danger-full-access`, snapshots `sandboxPolicy.overrideOf(parent.session)`, and pins the child approval policy to `'never'`. A later parent switch belongs to the parent's future; cancel-and-redelegate takes a new snapshot. The permission-preset and sandbox-policy services are optional: only the Auto/Full-access shared-bundle identity and the explicit sandbox session override are copied, never deployment defaults or one-shot grants. The approval policy is not inherited — the [approvals-pinned decision](2026-08-10-subagent-approval-pinned-never.md) supersedes this note's original approval-override inheritance. +The delegation boundary calls the shared child-agent helpers (`captureDelegatedPolicyOverrides`/`appendDelegatedPolicyOverrides` in `dsh-subagent`) before its first await; the one-shot driver and the [continuable start](../../../../packages/subagent/subagent/README.md) both use them. The capture copies the current `permission/preset` identity when `permissionPresets.current(parent.session)` is `auto` or `danger-full-access`, snapshots `sandboxPolicy.overrideOf(parent.session)`, and pins the child approval policy to `'never'`. A later parent switch belongs to the parent's future; cancel-and-redelegate takes a new snapshot. The permission-preset and sandbox-policy services are optional: only the Auto or Full access identity and the explicit sandbox session override are copied, never deployment defaults or one-shot grants. The approval policy is not inherited — the [approvals-pinned decision](2026-08-10-subagent-approval-pinned-never.md) supersedes this note's original approval-override inheritance. An inherited Auto or Full access identity becomes a `permission/preset` event, while captured sandbox and pinned approval values become source-tagged `sandbox/mode` and `approval/policy` events during the child factory's unpublished setup. The session constructor has already fixed `Session.firstLiveSeq` after the constructor seed, while `Session.inheritedEventCount` keeps the exact fork-prefix length, so the inherited facts follow fork history without changing its lineage cut. Lifecycle-local telemetry starts at `firstLiveSeq`, so it excludes the constructor seed and includes these unpublished-setup events. Existing last-event-wins folds therefore make the delegation snapshot beat stale fork history and let a later child switch beat the snapshot. A grandchild folds its parent's logged state, so the rule composes without another inheritance mechanism. diff --git a/.agents/notes/implemented/feature/2026-07-25-subagent-policy-inheritance.zh.md b/.agents/notes/archived/feature/2026-07-25-subagent-policy-inheritance.zh.md similarity index 95% rename from .agents/notes/implemented/feature/2026-07-25-subagent-policy-inheritance.zh.md rename to .agents/notes/archived/feature/2026-07-25-subagent-policy-inheritance.zh.md index 630c69274e..1d2579ece2 100644 --- a/.agents/notes/implemented/feature/2026-07-25-subagent-policy-inheritance.zh.md +++ b/.agents/notes/archived/feature/2026-07-25-subagent-policy-inheritance.zh.md @@ -1,6 +1,7 @@ # Agent Note: 进程内 subagent 策略继承——子 agent 在父级的沙箱覆盖项下启动 Status: implemented +Archived: 2026-09-30 [English](2026-07-25-subagent-policy-inheritance.md) | 中文 @@ -10,7 +11,7 @@ Auto 或 Full access 预设身份以及沙箱与审批覆盖项都是按会话 ## 决策 -委派边界会在第一次 await 之前调用共享的子 agent 辅助函数(`dsh-subagent` 中的 `captureDelegatedPolicyOverrides`/`appendDelegatedPolicyOverrides`);一次性驱动器与[可继续启动](../../../../packages/subagent/subagent/README.zh.md)都会使用它们。当 `permissionPresets.current(parent.session)` 为 `auto` 或 `danger-full-access` 时,捕获会复制当前 `permission/preset` 身份,同时对 `sandboxPolicy.overrideOf(parent.session)` 获取快照,并把子 agent 的审批策略钉定为 `'never'`。父级后续的切换属于父级的未来;取消后重新委派会取得新快照。权限预设与沙箱策略服务都是可选的:只复制 Auto/Full access 共用旋钮组合的身份与显式沙箱会话覆盖项,绝不复制部署默认值或一次性授权。审批策略不继承——[审批钉定决策](2026-08-10-subagent-approval-pinned-never.zh.md)取代了本 note 原先的审批覆盖项继承。 +委派边界会在第一次 await 之前调用共享的子 agent 辅助函数(`dsh-subagent` 中的 `captureDelegatedPolicyOverrides`/`appendDelegatedPolicyOverrides`);一次性驱动器与[可继续启动](../../../../packages/subagent/subagent/README.zh.md)都会使用它们。当 `permissionPresets.current(parent.session)` 为 `auto` 或 `danger-full-access` 时,捕获会复制当前 `permission/preset` 身份,同时对 `sandboxPolicy.overrideOf(parent.session)` 获取快照,并把子 agent 的审批策略钉定为 `'never'`。父级后续的切换属于父级的未来;取消后重新委派会取得新快照。权限预设与沙箱策略服务都是可选的:只复制 Auto 或 Full access 身份与显式沙箱会话覆盖项,绝不复制部署默认值或一次性授权。审批策略不继承——[审批钉定决策](2026-08-10-subagent-approval-pinned-never.zh.md)取代了本 note 原先的审批覆盖项继承。 继承的 Auto 或 Full access 身份会成为一条 `permission/preset` 事件,捕获的沙箱值与钉定的审批值则会在子 agent 工厂的未发布设置阶段成为带来源标记的 `sandbox/mode` 与 `approval/policy` 事件。会话构造函数已把 `Session.firstLiveSeq` 固定在 constructor seed 之后,而 `Session.inheritedEventCount` 保留精确的 fork 前缀长度,因此继承事实会排在 fork 历史之后,却不改变其谱系 cut。生命周期本地遥测从 `firstLiveSeq` 开始,因此排除 constructor seed,并包含这些未发布设置事件。因此,既有的末事件胜出折叠会让委派快照压过陈旧的 fork 历史,并让子 agent 后续的切换压过该快照。孙代 agent 会折叠其父级已记录的状态,因此无需另一套继承机制即可组合此规则。 diff --git a/.agents/notes/archived/feature/2026-07-26-ptc-live-parallel-dispatch.i18n.yaml b/.agents/notes/archived/feature/2026-07-26-ptc-live-parallel-dispatch.i18n.yaml new file mode 100644 index 0000000000..5fa5959945 --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-26-ptc-live-parallel-dispatch.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-26-ptc-live-parallel-dispatch.md +2026-07-26-ptc-live-parallel-dispatch.md: 699d8aeb3c876dce7d194e6e9a6f7dd9d4adadea +2026-07-26-ptc-live-parallel-dispatch.zh.md: dd8e1d5741836117762f1adc4030890c3ecc2cd3 diff --git a/.agents/notes/implemented/feature/2026-07-26-ptc-live-parallel-dispatch.md b/.agents/notes/archived/feature/2026-07-26-ptc-live-parallel-dispatch.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-26-ptc-live-parallel-dispatch.md rename to .agents/notes/archived/feature/2026-07-26-ptc-live-parallel-dispatch.md index f064314098..699d8aeb3c 100644 --- a/.agents/notes/implemented/feature/2026-07-26-ptc-live-parallel-dispatch.md +++ b/.agents/notes/archived/feature/2026-07-26-ptc-live-parallel-dispatch.md @@ -1,6 +1,7 @@ # Agent Note: PTC mode live dispatch lifecycle and native-contract parallelism Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-26-ptc-live-parallel-dispatch.zh.md) diff --git a/.agents/notes/implemented/feature/2026-07-26-ptc-live-parallel-dispatch.zh.md b/.agents/notes/archived/feature/2026-07-26-ptc-live-parallel-dispatch.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-26-ptc-live-parallel-dispatch.zh.md rename to .agents/notes/archived/feature/2026-07-26-ptc-live-parallel-dispatch.zh.md index 70cbebcdc3..dd8e1d5741 100644 --- a/.agents/notes/implemented/feature/2026-07-26-ptc-live-parallel-dispatch.zh.md +++ b/.agents/notes/archived/feature/2026-07-26-ptc-live-parallel-dispatch.zh.md @@ -1,6 +1,7 @@ # Agent Note: PTC mode 的实时分发生命周期,以及复用原生约定的并行执行 Status: implemented +Archived: 2026-09-30 [English](2026-07-26-ptc-live-parallel-dispatch.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-07-27-web-subagent-conversations.i18n.yaml b/.agents/notes/archived/feature/2026-07-27-web-subagent-conversations.i18n.yaml new file mode 100644 index 0000000000..49fbe169cd --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-27-web-subagent-conversations.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-27-web-subagent-conversations.md +2026-07-27-web-subagent-conversations.md: 1c67900b2dd8c63e7e25a81eda76151703687b2e +2026-07-27-web-subagent-conversations.zh.md: 4d95ae19f675358a50f3e50b004ea92fa8c8e9bb diff --git a/.agents/notes/implemented/feature/2026-07-27-web-subagent-conversations.md b/.agents/notes/archived/feature/2026-07-27-web-subagent-conversations.md similarity index 98% rename from .agents/notes/implemented/feature/2026-07-27-web-subagent-conversations.md rename to .agents/notes/archived/feature/2026-07-27-web-subagent-conversations.md index 3798a5a2e5..1c67900b2d 100644 --- a/.agents/notes/implemented/feature/2026-07-27-web-subagent-conversations.md +++ b/.agents/notes/archived/feature/2026-07-27-web-subagent-conversations.md @@ -1,6 +1,7 @@ # Agent Note: Web subagent catalog and human continuation Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-27-web-subagent-conversations.zh.md) @@ -28,7 +29,7 @@ This decision covers Web discovery, transcript viewing, and parent-authorized hu ## Design context -The Figma [subagent list](https://www.figma.com/design/jRBBK7zBgcszdVWQ0Fh5J8/Harness?node-id=383-14602&p=f), [hierarchical expansion](https://www.figma.com/design/jRBBK7zBgcszdVWQ0Fh5J8/Harness?node-id=383-15917&p=f), and [child conversation](https://www.figma.com/design/jRBBK7zBgcszdVWQ0Fh5J8/Harness?node-id=388-18584&p=f) frames are non-normative interaction and visual references. This note owns lifecycle, wire, and failure semantics. +The Figma subagent list, hierarchical expansion, and child conversation frames are non-normative interaction and visual references. This note owns lifecycle, wire, and failure semantics. | Design intent | Shipped contract | | --- | --- | diff --git a/.agents/notes/implemented/feature/2026-07-27-web-subagent-conversations.zh.md b/.agents/notes/archived/feature/2026-07-27-web-subagent-conversations.zh.md similarity index 98% rename from .agents/notes/implemented/feature/2026-07-27-web-subagent-conversations.zh.md rename to .agents/notes/archived/feature/2026-07-27-web-subagent-conversations.zh.md index 4531528dd2..4d95ae19f6 100644 --- a/.agents/notes/implemented/feature/2026-07-27-web-subagent-conversations.zh.md +++ b/.agents/notes/archived/feature/2026-07-27-web-subagent-conversations.zh.md @@ -1,6 +1,7 @@ # Agent Note: Web subagent 目录与用户继续交互 Status: implemented +Archived: 2026-09-30 [English](2026-07-27-web-subagent-conversations.md) | 中文 @@ -28,7 +29,7 @@ Web 产品通过页头的当前 title 谱系区域公开选中会话中由会话 ## 设计上下文 -Figma 中的 [subagent 列表](https://www.figma.com/design/jRBBK7zBgcszdVWQ0Fh5J8/Harness?node-id=383-14602&p=f)、[层级展开](https://www.figma.com/design/jRBBK7zBgcszdVWQ0Fh5J8/Harness?node-id=383-15917&p=f)与 [child 对话](https://www.figma.com/design/jRBBK7zBgcszdVWQ0Fh5J8/Harness?node-id=388-18584&p=f)画框是非规范性的交互与视觉参考。本记录负责生命周期、协议与失败语义。 +Figma 中的 subagent 列表、层级展开与 child 对话画框是非规范性的交互与视觉参考。本记录负责生命周期、协议与失败语义。 | 设计意图 | 已交付约定 | | --- | --- | diff --git a/.agents/notes/archived/feature/2026-07-27-workspace-registration-deletion.i18n.yaml b/.agents/notes/archived/feature/2026-07-27-workspace-registration-deletion.i18n.yaml new file mode 100644 index 0000000000..0cfbe0720e --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-27-workspace-registration-deletion.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-27-workspace-registration-deletion.md +2026-07-27-workspace-registration-deletion.md: 78aee4649c9959582088c42432263c0b9ee835e9 +2026-07-27-workspace-registration-deletion.zh.md: e58977e01e55b633a4f3fdcf185d2b2ce5956c37 diff --git a/.agents/notes/implemented/feature/2026-07-27-workspace-registration-deletion.md b/.agents/notes/archived/feature/2026-07-27-workspace-registration-deletion.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-27-workspace-registration-deletion.md rename to .agents/notes/archived/feature/2026-07-27-workspace-registration-deletion.md index 1d9804cfc4..78aee4649c 100644 --- a/.agents/notes/implemented/feature/2026-07-27-workspace-registration-deletion.md +++ b/.agents/notes/archived/feature/2026-07-27-workspace-registration-deletion.md @@ -1,6 +1,7 @@ # Agent Note: Workspace Registration Deletion Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-27-workspace-registration-deletion.zh.md) diff --git a/.agents/notes/implemented/feature/2026-07-27-workspace-registration-deletion.zh.md b/.agents/notes/archived/feature/2026-07-27-workspace-registration-deletion.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-27-workspace-registration-deletion.zh.md rename to .agents/notes/archived/feature/2026-07-27-workspace-registration-deletion.zh.md index 54e10b67a7..e58977e01e 100644 --- a/.agents/notes/implemented/feature/2026-07-27-workspace-registration-deletion.zh.md +++ b/.agents/notes/archived/feature/2026-07-27-workspace-registration-deletion.zh.md @@ -1,6 +1,7 @@ # Agent Note: 删除 Workspace 注册记录 Status: implemented +Archived: 2026-09-30 [English](2026-07-27-workspace-registration-deletion.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-07-28-skill-invocation-policy.i18n.yaml b/.agents/notes/archived/feature/2026-07-28-skill-invocation-policy.i18n.yaml new file mode 100644 index 0000000000..bab32952bb --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-28-skill-invocation-policy.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-28-skill-invocation-policy.md +2026-07-28-skill-invocation-policy.md: a0ae057cc5fd8d837afe998389476b3ed1f295ad +2026-07-28-skill-invocation-policy.zh.md: a7e5965507c9dc5afaa946db4eb4e9b3693d7fa7 diff --git a/.agents/notes/implemented/feature/2026-07-28-skill-invocation-policy.md b/.agents/notes/archived/feature/2026-07-28-skill-invocation-policy.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-28-skill-invocation-policy.md rename to .agents/notes/archived/feature/2026-07-28-skill-invocation-policy.md index 614a0058e3..a0ae057cc5 100644 --- a/.agents/notes/implemented/feature/2026-07-28-skill-invocation-policy.md +++ b/.agents/notes/archived/feature/2026-07-28-skill-invocation-policy.md @@ -1,6 +1,7 @@ # Agent Note: Independent model and user skill invocation policy Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-28-skill-invocation-policy.zh.md) diff --git a/.agents/notes/implemented/feature/2026-07-28-skill-invocation-policy.zh.md b/.agents/notes/archived/feature/2026-07-28-skill-invocation-policy.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-28-skill-invocation-policy.zh.md rename to .agents/notes/archived/feature/2026-07-28-skill-invocation-policy.zh.md index a49cb96ea6..a7e5965507 100644 --- a/.agents/notes/implemented/feature/2026-07-28-skill-invocation-policy.zh.md +++ b/.agents/notes/archived/feature/2026-07-28-skill-invocation-policy.zh.md @@ -1,6 +1,7 @@ # Agent Note: 模型与用户彼此独立的 skill(技能)调用策略 Status: implemented +Archived: 2026-09-30 [English](2026-07-28-skill-invocation-policy.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-07-30-queued-manual-compaction.i18n.yaml b/.agents/notes/archived/feature/2026-07-30-queued-manual-compaction.i18n.yaml new file mode 100644 index 0000000000..1da21928e6 --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-30-queued-manual-compaction.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-30-queued-manual-compaction.md +2026-07-30-queued-manual-compaction.md: 09388ba8403e93a887e0fad6beac626770fceb44 +2026-07-30-queued-manual-compaction.zh.md: 6ff1996dfab67a4783a0aadcda1c86c4f2a75011 diff --git a/.agents/notes/implemented/feature/2026-07-30-queued-manual-compaction.md b/.agents/notes/archived/feature/2026-07-30-queued-manual-compaction.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-30-queued-manual-compaction.md rename to .agents/notes/archived/feature/2026-07-30-queued-manual-compaction.md index 3efd1a4901..09388ba840 100644 --- a/.agents/notes/implemented/feature/2026-07-30-queued-manual-compaction.md +++ b/.agents/notes/archived/feature/2026-07-30-queued-manual-compaction.md @@ -1,6 +1,7 @@ # Agent Note: Queued manual compaction with one durable lock Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-30-queued-manual-compaction.zh.md) diff --git a/.agents/notes/implemented/feature/2026-07-30-queued-manual-compaction.zh.md b/.agents/notes/archived/feature/2026-07-30-queued-manual-compaction.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-30-queued-manual-compaction.zh.md rename to .agents/notes/archived/feature/2026-07-30-queued-manual-compaction.zh.md index 2da3f494af..6ff1996dfa 100644 --- a/.agents/notes/implemented/feature/2026-07-30-queued-manual-compaction.zh.md +++ b/.agents/notes/archived/feature/2026-07-30-queued-manual-compaction.zh.md @@ -1,6 +1,7 @@ # Agent Note: 使用单一持久锁实现排队手动压缩 Status: implemented +Archived: 2026-09-30 [English](2026-07-30-queued-manual-compaction.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-07-30-web-remote-markdown-images.i18n.yaml b/.agents/notes/archived/feature/2026-07-30-web-remote-markdown-images.i18n.yaml new file mode 100644 index 0000000000..b2aa307da1 --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-30-web-remote-markdown-images.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-30-web-remote-markdown-images.md +2026-07-30-web-remote-markdown-images.md: 9de12f02c1cf9c4836b9b8cbcd58ae379d06ac2d +2026-07-30-web-remote-markdown-images.zh.md: a1a8d1b8deb9b05dca4a45bfc2d4e060d89e1ee3 diff --git a/.agents/notes/implemented/feature/2026-07-30-web-remote-markdown-images.md b/.agents/notes/archived/feature/2026-07-30-web-remote-markdown-images.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-30-web-remote-markdown-images.md rename to .agents/notes/archived/feature/2026-07-30-web-remote-markdown-images.md index 23dc699aab..9de12f02c1 100644 --- a/.agents/notes/implemented/feature/2026-07-30-web-remote-markdown-images.md +++ b/.agents/notes/archived/feature/2026-07-30-web-remote-markdown-images.md @@ -1,6 +1,7 @@ # Agent Note: Remote Web Markdown images Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-30-web-remote-markdown-images.zh.md) diff --git a/.agents/notes/implemented/feature/2026-07-30-web-remote-markdown-images.zh.md b/.agents/notes/archived/feature/2026-07-30-web-remote-markdown-images.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-30-web-remote-markdown-images.zh.md rename to .agents/notes/archived/feature/2026-07-30-web-remote-markdown-images.zh.md index 54db9b25e9..a1a8d1b8de 100644 --- a/.agents/notes/implemented/feature/2026-07-30-web-remote-markdown-images.zh.md +++ b/.agents/notes/archived/feature/2026-07-30-web-remote-markdown-images.zh.md @@ -1,6 +1,7 @@ # Agent Note: Web 中的远程 Markdown 图片 Status: implemented +Archived: 2026-09-30 [English](2026-07-30-web-remote-markdown-images.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-07-31-even-out-shipped-tool-rosters.i18n.yaml b/.agents/notes/archived/feature/2026-07-31-even-out-shipped-tool-rosters.i18n.yaml new file mode 100644 index 0000000000..e0ccf3eb17 --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-31-even-out-shipped-tool-rosters.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-31-even-out-shipped-tool-rosters.md +2026-07-31-even-out-shipped-tool-rosters.md: 2c82e8d880ef9f2c3bdec8ceff747b98adc2ebb5 +2026-07-31-even-out-shipped-tool-rosters.zh.md: 956077009b6aebdd57b53f087345e75dad564706 diff --git a/.agents/notes/implemented/feature/2026-07-31-even-out-shipped-tool-rosters.md b/.agents/notes/archived/feature/2026-07-31-even-out-shipped-tool-rosters.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-31-even-out-shipped-tool-rosters.md rename to .agents/notes/archived/feature/2026-07-31-even-out-shipped-tool-rosters.md index 90efaeb473..2c82e8d880 100644 --- a/.agents/notes/implemented/feature/2026-07-31-even-out-shipped-tool-rosters.md +++ b/.agents/notes/archived/feature/2026-07-31-even-out-shipped-tool-rosters.md @@ -1,6 +1,7 @@ # Agent Note: Even out the shipped tool rosters Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-31-even-out-shipped-tool-rosters.zh.md) diff --git a/.agents/notes/implemented/feature/2026-07-31-even-out-shipped-tool-rosters.zh.md b/.agents/notes/archived/feature/2026-07-31-even-out-shipped-tool-rosters.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-31-even-out-shipped-tool-rosters.zh.md rename to .agents/notes/archived/feature/2026-07-31-even-out-shipped-tool-rosters.zh.md index 4379ffbcd2..956077009b 100644 --- a/.agents/notes/implemented/feature/2026-07-31-even-out-shipped-tool-rosters.zh.md +++ b/.agents/notes/archived/feature/2026-07-31-even-out-shipped-tool-rosters.zh.md @@ -1,6 +1,7 @@ # Agent Note: 拉平交付的工具清单 Status: implemented +Archived: 2026-09-30 [English](2026-07-31-even-out-shipped-tool-rosters.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-07-31-web-default-search.i18n.yaml b/.agents/notes/archived/feature/2026-07-31-web-default-search.i18n.yaml new file mode 100644 index 0000000000..545b96357c --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-31-web-default-search.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-31-web-default-search.md +2026-07-31-web-default-search.md: 793fedbbe1e4095e4c58978fd5907336caf5f8c1 +2026-07-31-web-default-search.zh.md: 3e524e98697aa45cb927396b8706bdf3afb09667 diff --git a/.agents/notes/implemented/feature/2026-07-31-web-default-search.md b/.agents/notes/archived/feature/2026-07-31-web-default-search.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-31-web-default-search.md rename to .agents/notes/archived/feature/2026-07-31-web-default-search.md index fed162cf25..793fedbbe1 100644 --- a/.agents/notes/implemented/feature/2026-07-31-web-default-search.md +++ b/.agents/notes/archived/feature/2026-07-31-web-default-search.md @@ -1,6 +1,7 @@ # Agent Note: Default Web search in shipped compositions Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-31-web-default-search.zh.md) diff --git a/.agents/notes/implemented/feature/2026-07-31-web-default-search.zh.md b/.agents/notes/archived/feature/2026-07-31-web-default-search.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-31-web-default-search.zh.md rename to .agents/notes/archived/feature/2026-07-31-web-default-search.zh.md index 3f39ef7d9f..3e524e9869 100644 --- a/.agents/notes/implemented/feature/2026-07-31-web-default-search.zh.md +++ b/.agents/notes/archived/feature/2026-07-31-web-default-search.zh.md @@ -1,6 +1,7 @@ # Agent Note: 已交付组合中的默认 Web 搜索 Status: implemented +Archived: 2026-09-30 [English](2026-07-31-web-default-search.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-07-31-web-workspace-file-links.i18n.yaml b/.agents/notes/archived/feature/2026-07-31-web-workspace-file-links.i18n.yaml new file mode 100644 index 0000000000..539bcb9c5c --- /dev/null +++ b/.agents/notes/archived/feature/2026-07-31-web-workspace-file-links.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-07-31-web-workspace-file-links.md +2026-07-31-web-workspace-file-links.md: c486d50505d4ec55f29a9ee702b1664cd3f71f47 +2026-07-31-web-workspace-file-links.zh.md: 3afde6f09f10a654f095dc2dc79be8d1f609d52e diff --git a/.agents/notes/implemented/feature/2026-07-31-web-workspace-file-links.md b/.agents/notes/archived/feature/2026-07-31-web-workspace-file-links.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-31-web-workspace-file-links.md rename to .agents/notes/archived/feature/2026-07-31-web-workspace-file-links.md index 1fd58deafa..c486d50505 100644 --- a/.agents/notes/implemented/feature/2026-07-31-web-workspace-file-links.md +++ b/.agents/notes/archived/feature/2026-07-31-web-workspace-file-links.md @@ -1,6 +1,7 @@ # Agent Note: opening a produced file from the web UI Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-31-web-workspace-file-links.zh.md) diff --git a/.agents/notes/implemented/feature/2026-07-31-web-workspace-file-links.zh.md b/.agents/notes/archived/feature/2026-07-31-web-workspace-file-links.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-07-31-web-workspace-file-links.zh.md rename to .agents/notes/archived/feature/2026-07-31-web-workspace-file-links.zh.md index 8cb1d06562..3afde6f09f 100644 --- a/.agents/notes/implemented/feature/2026-07-31-web-workspace-file-links.zh.md +++ b/.agents/notes/archived/feature/2026-07-31-web-workspace-file-links.zh.md @@ -1,6 +1,7 @@ # Agent Note: 从 web UI 打开产出的文件 Status: implemented +Archived: 2026-09-30 [English](2026-07-31-web-workspace-file-links.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-08-02-pwsh-tool-bash-parity.i18n.yaml b/.agents/notes/archived/feature/2026-08-02-pwsh-tool-bash-parity.i18n.yaml new file mode 100644 index 0000000000..f9df2357bd --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-02-pwsh-tool-bash-parity.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-02-pwsh-tool-bash-parity.md +2026-08-02-pwsh-tool-bash-parity.md: 768c606a8901229642d729d568a3dcf90b707f15 +2026-08-02-pwsh-tool-bash-parity.zh.md: b8861e8760be5a9194be91529602fb6078258160 diff --git a/.agents/notes/implemented/feature/2026-08-02-pwsh-tool-bash-parity.md b/.agents/notes/archived/feature/2026-08-02-pwsh-tool-bash-parity.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-02-pwsh-tool-bash-parity.md rename to .agents/notes/archived/feature/2026-08-02-pwsh-tool-bash-parity.md index cc2e7797c0..768c606a89 100644 --- a/.agents/notes/implemented/feature/2026-08-02-pwsh-tool-bash-parity.md +++ b/.agents/notes/archived/feature/2026-08-02-pwsh-tool-bash-parity.md @@ -1,6 +1,7 @@ # Agent Note: pwsh tool bash parity Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-02-pwsh-tool-bash-parity.zh.md) diff --git a/.agents/notes/implemented/feature/2026-08-02-pwsh-tool-bash-parity.zh.md b/.agents/notes/archived/feature/2026-08-02-pwsh-tool-bash-parity.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-02-pwsh-tool-bash-parity.zh.md rename to .agents/notes/archived/feature/2026-08-02-pwsh-tool-bash-parity.zh.md index b7949f1a51..b8861e8760 100644 --- a/.agents/notes/implemented/feature/2026-08-02-pwsh-tool-bash-parity.zh.md +++ b/.agents/notes/archived/feature/2026-08-02-pwsh-tool-bash-parity.zh.md @@ -1,6 +1,7 @@ # Agent Note: pwsh 工具与 bash 对齐 Status: implemented +Archived: 2026-09-30 [English](2026-08-02-pwsh-tool-bash-parity.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-08-04-claude-code-and-codex-subagent-backends.i18n.yaml b/.agents/notes/archived/feature/2026-08-04-claude-code-and-codex-subagent-backends.i18n.yaml new file mode 100644 index 0000000000..a0ac1d9970 --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-04-claude-code-and-codex-subagent-backends.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-04-claude-code-and-codex-subagent-backends.md +2026-08-04-claude-code-and-codex-subagent-backends.md: a806a3347da94773920c61573a45e5c9f9babfbe +2026-08-04-claude-code-and-codex-subagent-backends.zh.md: 72b3ebc877f16dee05e8ac63083c0725b28bd16b diff --git a/.agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.md b/.agents/notes/archived/feature/2026-08-04-claude-code-and-codex-subagent-backends.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.md rename to .agents/notes/archived/feature/2026-08-04-claude-code-and-codex-subagent-backends.md index d11b200e95..a806a3347d 100644 --- a/.agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.md +++ b/.agents/notes/archived/feature/2026-08-04-claude-code-and-codex-subagent-backends.md @@ -1,6 +1,7 @@ # Agent Note: Claude Code and Codex subagent backends Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-04-claude-code-and-codex-subagent-backends.zh.md) diff --git a/.agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.zh.md b/.agents/notes/archived/feature/2026-08-04-claude-code-and-codex-subagent-backends.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.zh.md rename to .agents/notes/archived/feature/2026-08-04-claude-code-and-codex-subagent-backends.zh.md index 5899a27bb8..72b3ebc877 100644 --- a/.agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.zh.md +++ b/.agents/notes/archived/feature/2026-08-04-claude-code-and-codex-subagent-backends.zh.md @@ -1,6 +1,7 @@ # Agent Note: Claude Code 与 Codex subagent 后端 Status: implemented +Archived: 2026-09-30 [English](2026-08-04-claude-code-and-codex-subagent-backends.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-08-05-durable-web-schedule.i18n.yaml b/.agents/notes/archived/feature/2026-08-05-durable-web-schedule.i18n.yaml new file mode 100644 index 0000000000..278702c01c --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-05-durable-web-schedule.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-05-durable-web-schedule.md +2026-08-05-durable-web-schedule.md: 42b0c079b47cbeb616937f7e8c19426cfd436d7c +2026-08-05-durable-web-schedule.zh.md: 1f3935a054912f1a3427ad774dd06263b002f3aa diff --git a/.agents/notes/implemented/feature/2026-08-05-durable-web-schedule.md b/.agents/notes/archived/feature/2026-08-05-durable-web-schedule.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-05-durable-web-schedule.md rename to .agents/notes/archived/feature/2026-08-05-durable-web-schedule.md index f918a6f44f..42b0c079b4 100644 --- a/.agents/notes/implemented/feature/2026-08-05-durable-web-schedule.md +++ b/.agents/notes/archived/feature/2026-08-05-durable-web-schedule.md @@ -1,6 +1,7 @@ # Agent Note: Durable scheduled reminders Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-05-durable-web-schedule.zh.md) diff --git a/.agents/notes/implemented/feature/2026-08-05-durable-web-schedule.zh.md b/.agents/notes/archived/feature/2026-08-05-durable-web-schedule.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-05-durable-web-schedule.zh.md rename to .agents/notes/archived/feature/2026-08-05-durable-web-schedule.zh.md index dec8916db7..1f3935a054 100644 --- a/.agents/notes/implemented/feature/2026-08-05-durable-web-schedule.zh.md +++ b/.agents/notes/archived/feature/2026-08-05-durable-web-schedule.zh.md @@ -1,6 +1,7 @@ # Agent Note: 持久定时提醒 Status: implemented +Archived: 2026-09-30 [English](2026-08-05-durable-web-schedule.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-08-06-continuable-subagent-interrupt.i18n.yaml b/.agents/notes/archived/feature/2026-08-06-continuable-subagent-interrupt.i18n.yaml new file mode 100644 index 0000000000..948316a7ef --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-06-continuable-subagent-interrupt.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-06-continuable-subagent-interrupt.md +2026-08-06-continuable-subagent-interrupt.md: fcd06310d6440770aa33ea60a8964403887b5036 +2026-08-06-continuable-subagent-interrupt.zh.md: 873c35b976a659791a05708a8969414a30ab8e7c diff --git a/.agents/notes/implemented/feature/2026-08-06-continuable-subagent-interrupt.md b/.agents/notes/archived/feature/2026-08-06-continuable-subagent-interrupt.md similarity index 92% rename from .agents/notes/implemented/feature/2026-08-06-continuable-subagent-interrupt.md rename to .agents/notes/archived/feature/2026-08-06-continuable-subagent-interrupt.md index e865415bbb..fcd06310d6 100644 --- a/.agents/notes/implemented/feature/2026-08-06-continuable-subagent-interrupt.md +++ b/.agents/notes/archived/feature/2026-08-06-continuable-subagent-interrupt.md @@ -1,6 +1,7 @@ # Agent Note: Continuable subagent current-turn interrupt Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-06-continuable-subagent-interrupt.zh.md) @@ -39,9 +40,9 @@ A human or ancestor can stop a runaway continuable turn without losing the child The address-only RPC exposes one bit of live residency: an absent target is accepted while a live target under a mismatched parent returns `subagent-unauthorized`. The single-user local Host trust model accepts that observability; a future multi-principal Host must revisit both authority and response indistinguishability. -The Web surface keeps Send and Stop as independent actions for a running continuable child: the client `Session.cancel()` routes Stop through `subagent.interrupt` (one-shot addresses stay uncancellable, ordinary sessions keep their existing primary Send/Stop toggle through `session.cancel`), while Send delivers follow-ups through the busy-Enter setting's mode — Queue by default, Steer when selected — exactly as plain Enter does ([busy Send button](../bug-fix/2026-09-04-busy-send-button-follows-enter-setting.md)). A running parent-offline continuable child keeps the default composer with input and Send disabled but Stop reachable, returning to the read-only takeover once it stops ([Web subagent conversations](2026-07-27-web-subagent-conversations.md) owns the surrounding catalog and composer contract). +The Web surface keeps Send and Stop as independent actions for a running continuable child: the client `Session.cancel()` routes Stop through `subagent.interrupt` (one-shot addresses stay uncancellable, ordinary sessions keep their existing primary Send/Stop toggle through `session.cancel`), while Send delivers follow-ups through the busy-Enter setting's mode — Queue by default, Steer when selected — exactly as plain Enter does ([busy Send button](../../../../packages/client/ui-conversation/README.md)). A running parent-offline continuable child keeps the default composer with input and Send disabled but Stop reachable, returning to the read-only takeover once it stops ([Web subagent conversations](2026-07-27-web-subagent-conversations.md) owns the surrounding catalog and composer contract). -The model-facing `interrupt_agent(agent_id)` tool in `dsh-tool-subagent-control` passes `exec.agent` as the `ancestor` authority and adds none of its own: the core primitive verifies live registry identity and recorded lineage, so the tool can name a direct child or a deeper descendant with the same generic `agent_id` parameter — deliberately not `subagent_id`, which would imply direct children only. Discovery rides `list_agents({ scope: 'descendants' })` over the new `SubagentRuntime.listDescendants()` one-trace pre-order walk with verified `parentId`/`depth` per entry ([durable catalog note](../../archived/feature/2026-07-22-durable-subagent-catalog-and-list-agents.md) owns the listing contract); discovery is a hint, never authority. `send_message` keeps its exact-direct-parent authority — only interrupt is ancestor-wide. +The model-facing `interrupt_agent(agent_id)` tool in `dsh-tool-subagent-control` passes `exec.agent` as the `ancestor` authority and adds none of its own: the core primitive verifies live registry identity and recorded lineage, so the tool can name a direct child or a deeper descendant with the same generic `agent_id` parameter — deliberately not `subagent_id`, which would imply direct children only. Discovery rides `list_agents({ scope: 'descendants' })` over the `SubagentRuntime.listDescendants()` recursive catalog walk with `parentId`/`depth` per entry ([parent-catalog note](../architecture/2026-09-01-parent-owned-subagent-catalog.md) owns discovery); discovery is a hint, never authority. `send_message` keeps its exact-direct-parent authority — only interrupt is ancestor-wide. ## Testing diff --git a/.agents/notes/implemented/feature/2026-08-06-continuable-subagent-interrupt.zh.md b/.agents/notes/archived/feature/2026-08-06-continuable-subagent-interrupt.zh.md similarity index 91% rename from .agents/notes/implemented/feature/2026-08-06-continuable-subagent-interrupt.zh.md rename to .agents/notes/archived/feature/2026-08-06-continuable-subagent-interrupt.zh.md index ed4981bdac..873c35b976 100644 --- a/.agents/notes/implemented/feature/2026-08-06-continuable-subagent-interrupt.zh.md +++ b/.agents/notes/archived/feature/2026-08-06-continuable-subagent-interrupt.zh.md @@ -1,6 +1,7 @@ # Agent Note: Continuable subagent 当前轮次中断 Status: implemented +Archived: 2026-09-30 [English](2026-08-06-continuable-subagent-interrupt.md) | 中文 @@ -39,9 +40,9 @@ Host RPC `subagent.interrupt` 接收 continuable 的 `SubagentAddress` 并返回 仅凭地址的 RPC 会暴露一项关于在线驻留状态的二值信息:不存在的目标会被接受,而 parent 不匹配的在线目标会返回 `subagent-unauthorized`。单用户本地 Host 的信任模型接受这种可观察性;未来的多主体 Host 必须重新审视权限和响应不可区分性。 -在 Web 侧,正在运行的 continuable child 使用相互独立的 Send 与 Stop 操作:客户端 `Session.cancel()` 将 Stop 路由到 `subagent.interrupt`(one-shot 地址保持不可取消,普通会话仍通过 `session.cancel` 保留既有的 primary Send/Stop 切换),同时 Send 按繁忙态 Enter 设置的模式投递后续消息——默认 Queue,选择后为 Steer——与 plain Enter 完全一致([繁忙态 Send 按钮](../bug-fix/2026-09-04-busy-send-button-follows-enter-setting.zh.md))。parent 离线但仍在运行的 continuable child 保留默认 composer,禁用输入区与 Send,但 Stop 仍然可达;停止后恢复为只读接管界面(周边目录与 composer 约定由 [Web subagent 对话](2026-07-27-web-subagent-conversations.zh.md)拥有)。 +在 Web 侧,正在运行的 continuable child 使用相互独立的 Send 与 Stop 操作:客户端 `Session.cancel()` 将 Stop 路由到 `subagent.interrupt`(one-shot 地址保持不可取消,普通会话仍通过 `session.cancel` 保留既有的 primary Send/Stop 切换),同时 Send 按繁忙态 Enter 设置的模式投递后续消息——默认 Queue,选择后为 Steer——与 plain Enter 完全一致([繁忙态 Send 按钮](../../../../packages/client/ui-conversation/README.zh.md))。parent 离线但仍在运行的 continuable child 保留默认 composer,禁用输入区与 Send,但 Stop 仍然可达;停止后恢复为只读接管界面(周边目录与 composer 约定由 [Web subagent 对话](2026-07-27-web-subagent-conversations.zh.md)拥有)。 -`dsh-tool-subagent-control` 中面向模型的 `interrupt_agent(agent_id)` 工具把 `exec.agent` 作为 `ancestor` 授权传入,自身不增加任何权限:核心原语校验在线注册表身份与记录的 lineage,因此该工具可以用同一个通用 `agent_id` 参数指定直接 child 或更深的后代——刻意不用会暗示仅限直接 child 的 `subagent_id`。发现依赖 `list_agents({ scope: 'descendants' })`,其底层是新的 `SubagentRuntime.listDescendants()` 单次追踪 pre-order 遍历,每个条目带经校验的 `parentId`/`depth`(列表约定由[持久化目录 note](../../archived/feature/2026-07-22-durable-subagent-catalog-and-list-agents.md)拥有);发现只是提示,绝非权限。`send_message` 保持其确切直接 parent 权限——只有中断是 ancestor 级的。 +`dsh-tool-subagent-control` 中面向模型的 `interrupt_agent(agent_id)` 工具把 `exec.agent` 作为 `ancestor` 授权传入,自身不增加任何权限:核心原语校验在线注册表身份与记录的 lineage,因此该工具可以用同一个通用 `agent_id` 参数指定直接 child 或更深的后代——刻意不用会暗示仅限直接 child 的 `subagent_id`。发现依赖 `list_agents({ scope: 'descendants' })`,其底层是 `SubagentRuntime.listDescendants()` 递归目录遍历,每个条目带 `parentId`/`depth`(发现机制由[父目录 note](../architecture/2026-09-01-parent-owned-subagent-catalog.zh.md)拥有);发现只是提示,绝非权限。`send_message` 保持其确切直接 parent 权限——只有中断是 ancestor 级的。 ## 测试 diff --git a/.agents/notes/archived/feature/2026-08-06-manager-owned-subagent-settlement-delivery.i18n.yaml b/.agents/notes/archived/feature/2026-08-06-manager-owned-subagent-settlement-delivery.i18n.yaml new file mode 100644 index 0000000000..9bdc79c751 --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-06-manager-owned-subagent-settlement-delivery.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-06-manager-owned-subagent-settlement-delivery.md +2026-08-06-manager-owned-subagent-settlement-delivery.md: 30438dcc73ae63ed82a61938820f92482b159e08 +2026-08-06-manager-owned-subagent-settlement-delivery.zh.md: 22cd140cc200f3f754ff630243d3e8cfd679d74b diff --git a/.agents/notes/implemented/feature/2026-08-06-manager-owned-subagent-settlement-delivery.md b/.agents/notes/archived/feature/2026-08-06-manager-owned-subagent-settlement-delivery.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-06-manager-owned-subagent-settlement-delivery.md rename to .agents/notes/archived/feature/2026-08-06-manager-owned-subagent-settlement-delivery.md index 7f6cfc9086..30438dcc73 100644 --- a/.agents/notes/implemented/feature/2026-08-06-manager-owned-subagent-settlement-delivery.md +++ b/.agents/notes/archived/feature/2026-08-06-manager-owned-subagent-settlement-delivery.md @@ -1,6 +1,7 @@ # Agent Note: Settlement delivery belongs to the continuation manager Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-06-manager-owned-subagent-settlement-delivery.zh.md) diff --git a/.agents/notes/implemented/feature/2026-08-06-manager-owned-subagent-settlement-delivery.zh.md b/.agents/notes/archived/feature/2026-08-06-manager-owned-subagent-settlement-delivery.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-06-manager-owned-subagent-settlement-delivery.zh.md rename to .agents/notes/archived/feature/2026-08-06-manager-owned-subagent-settlement-delivery.zh.md index 23c5506f79..22cd140cc2 100644 --- a/.agents/notes/implemented/feature/2026-08-06-manager-owned-subagent-settlement-delivery.zh.md +++ b/.agents/notes/archived/feature/2026-08-06-manager-owned-subagent-settlement-delivery.zh.md @@ -1,6 +1,7 @@ # Agent Note: Settlement delivery belongs to the continuation manager Status: implemented +Archived: 2026-09-30 [English](2026-08-06-manager-owned-subagent-settlement-delivery.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-08-08-web-background-job-display.i18n.yaml b/.agents/notes/archived/feature/2026-08-08-web-background-job-display.i18n.yaml new file mode 100644 index 0000000000..e7a460d0fa --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-08-web-background-job-display.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-08-web-background-job-display.md +2026-08-08-web-background-job-display.md: 48bc73d9e2d41fc83e277f83d66c49da496b911a +2026-08-08-web-background-job-display.zh.md: 7222711dfa2628fb0a000d9f60ad7b8fd2ad1581 diff --git a/.agents/notes/implemented/feature/2026-08-08-web-background-job-display.md b/.agents/notes/archived/feature/2026-08-08-web-background-job-display.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-08-web-background-job-display.md rename to .agents/notes/archived/feature/2026-08-08-web-background-job-display.md index 1ebd600e4d..48bc73d9e2 100644 --- a/.agents/notes/implemented/feature/2026-08-08-web-background-job-display.md +++ b/.agents/notes/archived/feature/2026-08-08-web-background-job-display.md @@ -1,6 +1,7 @@ # Agent Note: Web background-job display Status: implemented +Archived: 2026-09-30 Superseded: the roster this note put on the session control stream (`jobsBySession`, `onJobsChanged`) now streams from the job controller's `job.list` into `ctx.jobs` — see [the jobs seam consolidation](../architecture/2026-09-03-jobs-seam-consolidation.md). The display decisions below (one roster, sections, durations, no kill control) still hold. diff --git a/.agents/notes/implemented/feature/2026-08-08-web-background-job-display.zh.md b/.agents/notes/archived/feature/2026-08-08-web-background-job-display.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-08-web-background-job-display.zh.md rename to .agents/notes/archived/feature/2026-08-08-web-background-job-display.zh.md index 56d062b507..7222711dfa 100644 --- a/.agents/notes/implemented/feature/2026-08-08-web-background-job-display.zh.md +++ b/.agents/notes/archived/feature/2026-08-08-web-background-job-display.zh.md @@ -1,6 +1,7 @@ # Agent Note: Web 后台任务展示 Status: implemented +Archived: 2026-09-30 Superseded:本文放在会话控制流上的名册(`jobsBySession`、`onJobsChanged`)现在从 job 控制器的 `job.list` 流入 `ctx.jobs`——见 [jobs seam 收敛](../architecture/2026-09-03-jobs-seam-consolidation.zh.md)。下文的展示决策(单一名册、分组、时长、没有 kill 控件)仍然成立。 diff --git a/.agents/notes/archived/feature/2026-08-10-durable-workflow-runs-in-chat.i18n.yaml b/.agents/notes/archived/feature/2026-08-10-durable-workflow-runs-in-chat.i18n.yaml index 284f43658a..871a8eefb8 100644 --- a/.agents/notes/archived/feature/2026-08-10-durable-workflow-runs-in-chat.i18n.yaml +++ b/.agents/notes/archived/feature/2026-08-10-durable-workflow-runs-in-chat.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-10-durable-workflow-runs-in-chat.md -2026-08-10-durable-workflow-runs-in-chat.md: 01c59ef25996d6349ab2904f148bf4e72fdd5f09 -2026-08-10-durable-workflow-runs-in-chat.zh.md: 5f6b39b59beca5e2363261605ec58fbdcf71ea6f +2026-08-10-durable-workflow-runs-in-chat.md: a49cb75e44bd65ef694679eeb295cfef564c7545 +2026-08-10-durable-workflow-runs-in-chat.zh.md: 753e02238cd8c00d0494cb673ba9896d61ff4cd8 diff --git a/.agents/notes/archived/feature/2026-08-10-durable-workflow-runs-in-chat.md b/.agents/notes/archived/feature/2026-08-10-durable-workflow-runs-in-chat.md index 01c59ef259..a49cb75e44 100644 --- a/.agents/notes/archived/feature/2026-08-10-durable-workflow-runs-in-chat.md +++ b/.agents/notes/archived/feature/2026-08-10-durable-workflow-runs-in-chat.md @@ -25,7 +25,7 @@ The renderer gives each level a distinct visual responsibility. The run uses a 3 Navigation is derived from two current authorities rather than persisted. A member row is interactive only while its durable member state is running and the current ordinary Session list contains the same id with `origin: 'subagent'`, `parentId` equal to the displayed parent, and `running: true`. Underlined member text is the only visible affordance; keyboard focus draws a two-pixel business-primary ring around the name area, and the fixed status label remains the lifecycle word rather than an action instruction. The renderer invokes only the injected ordinary `sessions.open(id)` callback. Addressed-only, remote, wrong-parent, and terminal members remain visible but static. -The [seven-state Figma reference](https://www.figma.com/design/tguwzZRmHCjbq58mfsqT0M?node-id=5-2) fixes the information hierarchy for running expanded/collapsed, completed history/expanded, failed plus cancelled, interrupted recovery, and dark narrow presentation. Repository `DisclosureRow`, `StateDot`, icons, semantic tokens, and keyed-node behavior remain the implementation authority; the reference introduces no runtime field or state owner. +The seven-state Figma reference fixes the information hierarchy for running expanded/collapsed, completed history/expanded, failed plus cancelled, interrupted recovery, and dark narrow presentation. Repository `DisclosureRow`, `StateDot`, icons, semantic tokens, and keyed-node behavior remain the implementation authority; the reference introduces no runtime field or state owner. ## Verification diff --git a/.agents/notes/archived/feature/2026-08-10-durable-workflow-runs-in-chat.zh.md b/.agents/notes/archived/feature/2026-08-10-durable-workflow-runs-in-chat.zh.md index 5f6b39b59b..753e02238c 100644 --- a/.agents/notes/archived/feature/2026-08-10-durable-workflow-runs-in-chat.zh.md +++ b/.agents/notes/archived/feature/2026-08-10-durable-workflow-runs-in-chat.zh.md @@ -25,7 +25,7 @@ renderer 为每一层分配不同视觉职责。运行使用 32 像素 module-pl 导航从两个当前权威派生,不写入持久记录。只有持久成员状态仍为运行中,且当前普通 Session 列表包含同一 id、`origin: 'subagent'`、`parentId` 等于当前父 Session、`running: true` 时,成员行才可交互。带下划线的成员文字是唯一可见提示;键盘聚焦时,名称区显示 2 像素 business-primary 焦点环,固定状态列继续只表达生命周期,而不写动作说明。renderer 只调用注入的普通 `sessions.open(id)` 回调。仅地址化、远程、父级不符或终态成员继续可见,但保持静态。 -[七状态 Figma 参考](https://www.figma.com/design/tguwzZRmHCjbq58mfsqT0M?node-id=5-2)固定运行展开/收起、完成历史/展开、失败与取消、恢复后中断以及暗色窄列的信息层级。仓库的 `DisclosureRow`、`StateDot`、图标、语义 token 和 keyed-node 行为仍是实现权威;参考稿不引入运行时字段或状态 owner。 +七状态 Figma 参考固定运行展开/收起、完成历史/展开、失败与取消、恢复后中断以及暗色窄列的信息层级。仓库的 `DisclosureRow`、`StateDot`、图标、语义 token 和 keyed-node 行为仍是实现权威;参考稿不引入运行时字段或状态 owner。 ## 验证 diff --git a/.agents/notes/archived/feature/2026-08-10-subagent-approval-pinned-never.i18n.yaml b/.agents/notes/archived/feature/2026-08-10-subagent-approval-pinned-never.i18n.yaml new file mode 100644 index 0000000000..9fd8522fdd --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-10-subagent-approval-pinned-never.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-10-subagent-approval-pinned-never.md +2026-08-10-subagent-approval-pinned-never.md: 7c91b65cf9a3777008a9de29dfc5e4135f03e099 +2026-08-10-subagent-approval-pinned-never.zh.md: ba280ed8899000a78a4e7253ff71c6510bf31b20 diff --git a/.agents/notes/implemented/feature/2026-08-10-subagent-approval-pinned-never.md b/.agents/notes/archived/feature/2026-08-10-subagent-approval-pinned-never.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-10-subagent-approval-pinned-never.md rename to .agents/notes/archived/feature/2026-08-10-subagent-approval-pinned-never.md index a21c6b966b..7c91b65cf9 100644 --- a/.agents/notes/implemented/feature/2026-08-10-subagent-approval-pinned-never.md +++ b/.agents/notes/archived/feature/2026-08-10-subagent-approval-pinned-never.md @@ -1,6 +1,7 @@ # Agent Note: Delegated subagents run with approvals pinned to `'never'` Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-10-subagent-approval-pinned-never.zh.md) diff --git a/.agents/notes/implemented/feature/2026-08-10-subagent-approval-pinned-never.zh.md b/.agents/notes/archived/feature/2026-08-10-subagent-approval-pinned-never.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-10-subagent-approval-pinned-never.zh.md rename to .agents/notes/archived/feature/2026-08-10-subagent-approval-pinned-never.zh.md index 32f3673035..ba280ed889 100644 --- a/.agents/notes/implemented/feature/2026-08-10-subagent-approval-pinned-never.zh.md +++ b/.agents/notes/archived/feature/2026-08-10-subagent-approval-pinned-never.zh.md @@ -1,6 +1,7 @@ # Agent Note: 被委派的 subagent 以钉定为 `'never'` 的审批策略运行 Status: implemented +Archived: 2026-09-30 [English](2026-08-10-subagent-approval-pinned-never.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.i18n.yaml b/.agents/notes/archived/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.i18n.yaml new file mode 100644 index 0000000000..25bcc2dc3f --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.md +2026-08-11-background-job-completion-wakes-an-idle-owner.md: 566ffdd6d22036e3aa7f61efd8ed92df3ca35c93 +2026-08-11-background-job-completion-wakes-an-idle-owner.zh.md: f8acd560be99f090ba982f84389886d7ed8ddef2 diff --git a/.agents/notes/implemented/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.md b/.agents/notes/archived/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.md rename to .agents/notes/archived/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.md index f13f09d326..566ffdd6d2 100644 --- a/.agents/notes/implemented/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.md +++ b/.agents/notes/archived/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.md @@ -1,6 +1,7 @@ # Agent Note: Background job completion wakes an idle owner Status: implemented +Archived: 2026-09-30 Update: the `reported` bit and `onJobDone` this note relies on left the registry with the [jobs seam consolidation](../architecture/2026-09-03-jobs-seam-consolidation.md): `dsh-tool-jobs` now keeps the delivery ledger (a wait or an accepted `job_kill` claims the task) and skips teardown settlements by their `settled` cause, so the wake-or-inject decision below stands while the mechanism it names is the tool's ledger, not a registry flag. diff --git a/.agents/notes/implemented/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.zh.md b/.agents/notes/archived/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.zh.md rename to .agents/notes/archived/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.zh.md index f9b563ebbf..f8acd560be 100644 --- a/.agents/notes/implemented/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.zh.md +++ b/.agents/notes/archived/feature/2026-08-11-background-job-completion-wakes-an-idle-owner.zh.md @@ -1,6 +1,7 @@ # Agent Note: Background job completion wakes an idle owner Status: implemented +Archived: 2026-09-30 Update:本文依赖的 `reported` 位与 `onJobDone` 已随 [jobs seam 收敛](../architecture/2026-09-03-jobs-seam-consolidation.zh.md)离开注册表:`dsh-tool-jobs` 现在持有投递台账(等待或被接受的 `job_kill` 认领任务),并按 `settled` 事件的 cause 跳过 teardown 结算,因此下文唤醒或注入的决策仍然成立,只是它提到的机制是工具的台账而非注册表标志。 diff --git a/.agents/notes/archived/feature/2026-08-11-deepseek-request-user-id-header.i18n.yaml b/.agents/notes/archived/feature/2026-08-11-deepseek-request-user-id-header.i18n.yaml new file mode 100644 index 0000000000..27568d7e7c --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-11-deepseek-request-user-id-header.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-11-deepseek-request-user-id-header.md +2026-08-11-deepseek-request-user-id-header.md: 8d77ee9b201bba2123d69d3033369aeddeeff3ac +2026-08-11-deepseek-request-user-id-header.zh.md: e0fcc74def0711eae8b767e78b87eb28d29f0ab0 diff --git a/.agents/notes/implemented/feature/2026-08-11-deepseek-request-user-id-header.md b/.agents/notes/archived/feature/2026-08-11-deepseek-request-user-id-header.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-11-deepseek-request-user-id-header.md rename to .agents/notes/archived/feature/2026-08-11-deepseek-request-user-id-header.md index 54f59a3f69..8d77ee9b20 100644 --- a/.agents/notes/implemented/feature/2026-08-11-deepseek-request-user-id-header.md +++ b/.agents/notes/archived/feature/2026-08-11-deepseek-request-user-id-header.md @@ -1,6 +1,7 @@ # Agent Note: DeepSeek request user and session identity headers Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-11-deepseek-request-user-id-header.zh.md) diff --git a/.agents/notes/implemented/feature/2026-08-11-deepseek-request-user-id-header.zh.md b/.agents/notes/archived/feature/2026-08-11-deepseek-request-user-id-header.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-11-deepseek-request-user-id-header.zh.md rename to .agents/notes/archived/feature/2026-08-11-deepseek-request-user-id-header.zh.md index 4904a08fcf..e0fcc74def 100644 --- a/.agents/notes/implemented/feature/2026-08-11-deepseek-request-user-id-header.zh.md +++ b/.agents/notes/archived/feature/2026-08-11-deepseek-request-user-id-header.zh.md @@ -1,6 +1,7 @@ # Agent Note: DeepSeek 请求用户与会话身份头部 Status: implemented +Archived: 2026-09-30 [English](2026-08-11-deepseek-request-user-id-header.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.i18n.yaml b/.agents/notes/archived/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.i18n.yaml new file mode 100644 index 0000000000..b19efe9cb2 --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.md +2026-08-11-minimal-profiles-bare-two-tool-runtime.md: ec391dc741b05b9c4be46a1bdf58f7b46b7bb406 +2026-08-11-minimal-profiles-bare-two-tool-runtime.zh.md: 060e38e2b192939a2dbc94aed25974e4f6c6e013 diff --git a/.agents/notes/implemented/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.md b/.agents/notes/archived/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.md rename to .agents/notes/archived/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.md index 8cfa4aa71e..ec391dc741 100644 --- a/.agents/notes/implemented/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.md +++ b/.agents/notes/archived/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.md @@ -1,6 +1,7 @@ # Agent Note: Minimal profiles use a bare runtime Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-11-minimal-profiles-bare-two-tool-runtime.zh.md) diff --git a/.agents/notes/implemented/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.zh.md b/.agents/notes/archived/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.zh.md rename to .agents/notes/archived/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.zh.md index f1f916bdde..060e38e2b1 100644 --- a/.agents/notes/implemented/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.zh.md +++ b/.agents/notes/archived/feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.zh.md @@ -1,6 +1,7 @@ # Agent Note: minimal profile 使用裸运行时 Status: implemented +Archived: 2026-09-30 [English](2026-08-11-minimal-profiles-bare-two-tool-runtime.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-08-18-arbitrary-seq-session-fork.i18n.yaml b/.agents/notes/archived/feature/2026-08-18-arbitrary-seq-session-fork.i18n.yaml new file mode 100644 index 0000000000..e42131cef6 --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-18-arbitrary-seq-session-fork.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-18-arbitrary-seq-session-fork.md +2026-08-18-arbitrary-seq-session-fork.md: d2963caf57436cc231f4bc11d0bbb593752f1cde +2026-08-18-arbitrary-seq-session-fork.zh.md: bd7b33bff075811de8fd099465c4bed701f02d51 diff --git a/.agents/notes/implemented/feature/2026-08-18-arbitrary-seq-session-fork.md b/.agents/notes/archived/feature/2026-08-18-arbitrary-seq-session-fork.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-18-arbitrary-seq-session-fork.md rename to .agents/notes/archived/feature/2026-08-18-arbitrary-seq-session-fork.md index c02ba6c1f2..d2963caf57 100644 --- a/.agents/notes/implemented/feature/2026-08-18-arbitrary-seq-session-fork.md +++ b/.agents/notes/archived/feature/2026-08-18-arbitrary-seq-session-fork.md @@ -1,6 +1,7 @@ # Agent Note: Exact-event session forks with shared crash repair Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-18-arbitrary-seq-session-fork.zh.md) diff --git a/.agents/notes/implemented/feature/2026-08-18-arbitrary-seq-session-fork.zh.md b/.agents/notes/archived/feature/2026-08-18-arbitrary-seq-session-fork.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-18-arbitrary-seq-session-fork.zh.md rename to .agents/notes/archived/feature/2026-08-18-arbitrary-seq-session-fork.zh.md index fe78e50531..bd7b33bff0 100644 --- a/.agents/notes/implemented/feature/2026-08-18-arbitrary-seq-session-fork.zh.md +++ b/.agents/notes/archived/feature/2026-08-18-arbitrary-seq-session-fork.zh.md @@ -1,6 +1,7 @@ # Agent Note:复用崩溃修复的精确事件会话分叉 Status: implemented +Archived: 2026-09-30 [English](2026-08-18-arbitrary-seq-session-fork.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-08-18-model-selected-subagent-routes.i18n.yaml b/.agents/notes/archived/feature/2026-08-18-model-selected-subagent-routes.i18n.yaml new file mode 100644 index 0000000000..7b77748ddb --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-18-model-selected-subagent-routes.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-18-model-selected-subagent-routes.md +2026-08-18-model-selected-subagent-routes.md: 9c9487b652e4540264ee5026b17a1bc3b3cfb70e +2026-08-18-model-selected-subagent-routes.zh.md: 4dcbe37ed765dcc0b911bde05afa9f25702e7c45 diff --git a/.agents/notes/implemented/feature/2026-08-18-model-selected-subagent-routes.md b/.agents/notes/archived/feature/2026-08-18-model-selected-subagent-routes.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-18-model-selected-subagent-routes.md rename to .agents/notes/archived/feature/2026-08-18-model-selected-subagent-routes.md index 9cdbdbec3b..9c9487b652 100644 --- a/.agents/notes/implemented/feature/2026-08-18-model-selected-subagent-routes.md +++ b/.agents/notes/archived/feature/2026-08-18-model-selected-subagent-routes.md @@ -1,6 +1,7 @@ # Agent Note: Model-selected subagent routes Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-18-model-selected-subagent-routes.zh.md) diff --git a/.agents/notes/implemented/feature/2026-08-18-model-selected-subagent-routes.zh.md b/.agents/notes/archived/feature/2026-08-18-model-selected-subagent-routes.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-18-model-selected-subagent-routes.zh.md rename to .agents/notes/archived/feature/2026-08-18-model-selected-subagent-routes.zh.md index 3b81f54173..4dcbe37ed7 100644 --- a/.agents/notes/implemented/feature/2026-08-18-model-selected-subagent-routes.zh.md +++ b/.agents/notes/archived/feature/2026-08-18-model-selected-subagent-routes.zh.md @@ -1,6 +1,7 @@ # Agent Note: 模型选择的 subagent 路由 Status: implemented +Archived: 2026-09-30 [English](2026-08-18-model-selected-subagent-routes.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-08-20-unified-image-request-pipeline.i18n.yaml b/.agents/notes/archived/feature/2026-08-20-unified-image-request-pipeline.i18n.yaml new file mode 100644 index 0000000000..e38d0860a3 --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-20-unified-image-request-pipeline.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-20-unified-image-request-pipeline.md +2026-08-20-unified-image-request-pipeline.md: 75b5fdcd47d23b58a0e1727f9298bc5696cf8268 +2026-08-20-unified-image-request-pipeline.zh.md: 7e40c7c6c5ccd6178817e42610ac49a9b567bd02 diff --git a/.agents/notes/implemented/feature/2026-08-20-unified-image-request-pipeline.md b/.agents/notes/archived/feature/2026-08-20-unified-image-request-pipeline.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-20-unified-image-request-pipeline.md rename to .agents/notes/archived/feature/2026-08-20-unified-image-request-pipeline.md index b79eeb7d90..75b5fdcd47 100644 --- a/.agents/notes/implemented/feature/2026-08-20-unified-image-request-pipeline.md +++ b/.agents/notes/archived/feature/2026-08-20-unified-image-request-pipeline.md @@ -1,6 +1,7 @@ # Agent Note: Unified normalized attachments, request versions, and provider files Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-20-unified-image-request-pipeline.zh.md) diff --git a/.agents/notes/implemented/feature/2026-08-20-unified-image-request-pipeline.zh.md b/.agents/notes/archived/feature/2026-08-20-unified-image-request-pipeline.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-20-unified-image-request-pipeline.zh.md rename to .agents/notes/archived/feature/2026-08-20-unified-image-request-pipeline.zh.md index 4442347152..7e40c7c6c5 100644 --- a/.agents/notes/implemented/feature/2026-08-20-unified-image-request-pipeline.zh.md +++ b/.agents/notes/archived/feature/2026-08-20-unified-image-request-pipeline.zh.md @@ -1,6 +1,7 @@ # Agent Note: 统一规范化附件、请求版本与提供方文件 Status: implemented +Archived: 2026-09-30 [English](2026-08-20-unified-image-request-pipeline.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-08-22-fire-and-forget-webhook-sessions.i18n.yaml b/.agents/notes/archived/feature/2026-08-22-fire-and-forget-webhook-sessions.i18n.yaml new file mode 100644 index 0000000000..447c34820b --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-22-fire-and-forget-webhook-sessions.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-22-fire-and-forget-webhook-sessions.md +2026-08-22-fire-and-forget-webhook-sessions.md: 8b13fcf5c29c803c58500ce6b1e196743e623023 +2026-08-22-fire-and-forget-webhook-sessions.zh.md: 1ce583abe9975317fc6de772a99dbe22e28a25e2 diff --git a/.agents/notes/implemented/feature/2026-08-22-fire-and-forget-webhook-sessions.md b/.agents/notes/archived/feature/2026-08-22-fire-and-forget-webhook-sessions.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-22-fire-and-forget-webhook-sessions.md rename to .agents/notes/archived/feature/2026-08-22-fire-and-forget-webhook-sessions.md index 08f718b806..8b13fcf5c2 100644 --- a/.agents/notes/implemented/feature/2026-08-22-fire-and-forget-webhook-sessions.md +++ b/.agents/notes/archived/feature/2026-08-22-fire-and-forget-webhook-sessions.md @@ -1,6 +1,7 @@ # Agent Note: Fire-and-forget webhook Sessions Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-22-fire-and-forget-webhook-sessions.zh.md) diff --git a/.agents/notes/implemented/feature/2026-08-22-fire-and-forget-webhook-sessions.zh.md b/.agents/notes/archived/feature/2026-08-22-fire-and-forget-webhook-sessions.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-22-fire-and-forget-webhook-sessions.zh.md rename to .agents/notes/archived/feature/2026-08-22-fire-and-forget-webhook-sessions.zh.md index f015d993e6..1ce583abe9 100644 --- a/.agents/notes/implemented/feature/2026-08-22-fire-and-forget-webhook-sessions.zh.md +++ b/.agents/notes/archived/feature/2026-08-22-fire-and-forget-webhook-sessions.zh.md @@ -1,6 +1,7 @@ # Agent Note: Fire-and-forget webhook Session Status: implemented +Archived: 2026-09-30 [English](2026-08-22-fire-and-forget-webhook-sessions.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-08-22-standard-acp-automation-controls.i18n.yaml b/.agents/notes/archived/feature/2026-08-22-standard-acp-automation-controls.i18n.yaml new file mode 100644 index 0000000000..cc3df2fcaf --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-22-standard-acp-automation-controls.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-22-standard-acp-automation-controls.md +2026-08-22-standard-acp-automation-controls.md: 3973cfce341349aeebaa6c2858bb58bcb2a56c17 +2026-08-22-standard-acp-automation-controls.zh.md: a6ad21631d1247e0a716221ab943c0f4077933cf diff --git a/.agents/notes/implemented/feature/2026-08-22-standard-acp-automation-controls.md b/.agents/notes/archived/feature/2026-08-22-standard-acp-automation-controls.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-22-standard-acp-automation-controls.md rename to .agents/notes/archived/feature/2026-08-22-standard-acp-automation-controls.md index dd1e39b84f..3973cfce34 100644 --- a/.agents/notes/implemented/feature/2026-08-22-standard-acp-automation-controls.md +++ b/.agents/notes/archived/feature/2026-08-22-standard-acp-automation-controls.md @@ -1,6 +1,7 @@ # Agent Note: Standard ACP v1 automation controls Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-22-standard-acp-automation-controls.zh.md) diff --git a/.agents/notes/implemented/feature/2026-08-22-standard-acp-automation-controls.zh.md b/.agents/notes/archived/feature/2026-08-22-standard-acp-automation-controls.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-22-standard-acp-automation-controls.zh.md rename to .agents/notes/archived/feature/2026-08-22-standard-acp-automation-controls.zh.md index 2d7160bda1..a6ad21631d 100644 --- a/.agents/notes/implemented/feature/2026-08-22-standard-acp-automation-controls.zh.md +++ b/.agents/notes/archived/feature/2026-08-22-standard-acp-automation-controls.zh.md @@ -1,6 +1,7 @@ # Agent Note: 标准 ACP v1 自动化控制 Status: implemented +Archived: 2026-09-30 [English](2026-08-22-standard-acp-automation-controls.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-08-24-activity-observation-seam.i18n.yaml b/.agents/notes/archived/feature/2026-08-24-activity-observation-seam.i18n.yaml new file mode 100644 index 0000000000..b1ea7650b2 --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-24-activity-observation-seam.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-24-activity-observation-seam.md +2026-08-24-activity-observation-seam.md: 069d8d709790a407d19948463a7a182abdbd919e +2026-08-24-activity-observation-seam.zh.md: 5ef1edf132e242a92a68f1193f700ef5da0694ca diff --git a/.agents/notes/implemented/feature/2026-08-24-activity-observation-seam.md b/.agents/notes/archived/feature/2026-08-24-activity-observation-seam.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-24-activity-observation-seam.md rename to .agents/notes/archived/feature/2026-08-24-activity-observation-seam.md index 21fe08fd21..069d8d7097 100644 --- a/.agents/notes/implemented/feature/2026-08-24-activity-observation-seam.md +++ b/.agents/notes/archived/feature/2026-08-24-activity-observation-seam.md @@ -1,6 +1,7 @@ # Agent Note: The activity observation seam (`ctx.activities`) and live output streaming to the Web client Status: implemented +Archived: 2026-09-30 Superseded: the standalone seam described here was folded into `ctx.jobs` as the per-job observation record — see [jobs absorb the record](../architecture/2026-09-01-jobs-absorb-activity-record.md); the durable-vs-live analysis below still holds. diff --git a/.agents/notes/implemented/feature/2026-08-24-activity-observation-seam.zh.md b/.agents/notes/archived/feature/2026-08-24-activity-observation-seam.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-24-activity-observation-seam.zh.md rename to .agents/notes/archived/feature/2026-08-24-activity-observation-seam.zh.md index ffb6766b3e..5ef1edf132 100644 --- a/.agents/notes/implemented/feature/2026-08-24-activity-observation-seam.zh.md +++ b/.agents/notes/archived/feature/2026-08-24-activity-observation-seam.zh.md @@ -1,6 +1,7 @@ # Agent Note:activity 观察 seam(`ctx.activities`)与 Web 客户端实时输出流 -状态:implemented +Status: implemented +Archived: 2026-09-30 Superseded:本文描述的独立 seam 已折入 `ctx.jobs`,成为逐 job 的观测 record——见 [jobs 吸收 record](../architecture/2026-09-01-jobs-absorb-activity-record.zh.md);下文关于持久化与实时通道的分析仍然成立。 diff --git a/.agents/notes/archived/feature/2026-08-25-feedback-gated-telemetry-default.i18n.yaml b/.agents/notes/archived/feature/2026-08-25-feedback-gated-telemetry-default.i18n.yaml new file mode 100644 index 0000000000..6480a178d0 --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-25-feedback-gated-telemetry-default.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-25-feedback-gated-telemetry-default.md +2026-08-25-feedback-gated-telemetry-default.md: 3b2075477d7a9a5fd9d175a768ca8bae78b72a75 +2026-08-25-feedback-gated-telemetry-default.zh.md: 6c8267ef3087a942e3e7ccfe6aea600c7ebd0ef8 diff --git a/.agents/notes/implemented/feature/2026-08-25-feedback-gated-telemetry-default.md b/.agents/notes/archived/feature/2026-08-25-feedback-gated-telemetry-default.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-25-feedback-gated-telemetry-default.md rename to .agents/notes/archived/feature/2026-08-25-feedback-gated-telemetry-default.md index 1a5ecd6b34..3b2075477d 100644 --- a/.agents/notes/implemented/feature/2026-08-25-feedback-gated-telemetry-default.md +++ b/.agents/notes/archived/feature/2026-08-25-feedback-gated-telemetry-default.md @@ -1,6 +1,7 @@ # Agent Note: Feedback-gated session-telemetry default Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-25-feedback-gated-telemetry-default.zh.md) diff --git a/.agents/notes/implemented/feature/2026-08-25-feedback-gated-telemetry-default.zh.md b/.agents/notes/archived/feature/2026-08-25-feedback-gated-telemetry-default.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-25-feedback-gated-telemetry-default.zh.md rename to .agents/notes/archived/feature/2026-08-25-feedback-gated-telemetry-default.zh.md index 55936aa404..6c8267ef30 100644 --- a/.agents/notes/implemented/feature/2026-08-25-feedback-gated-telemetry-default.zh.md +++ b/.agents/notes/archived/feature/2026-08-25-feedback-gated-telemetry-default.zh.md @@ -1,6 +1,7 @@ # Agent Note: 反馈门控的会话遥测默认值 Status: implemented +Archived: 2026-09-30 [English](2026-08-25-feedback-gated-telemetry-default.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-08-25-promote-open-anywhere-plugin.i18n.yaml b/.agents/notes/archived/feature/2026-08-25-promote-open-anywhere-plugin.i18n.yaml new file mode 100644 index 0000000000..6331bdd027 --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-25-promote-open-anywhere-plugin.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-25-promote-open-anywhere-plugin.md +2026-08-25-promote-open-anywhere-plugin.md: e333341ea4d9f3c100c0558628c6b8a81766ae09 +2026-08-25-promote-open-anywhere-plugin.zh.md: 57a51eec59a0a977d8cb7b0a53f9f25c60c6be63 diff --git a/.agents/notes/implemented/feature/2026-08-25-promote-open-anywhere-plugin.md b/.agents/notes/archived/feature/2026-08-25-promote-open-anywhere-plugin.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-25-promote-open-anywhere-plugin.md rename to .agents/notes/archived/feature/2026-08-25-promote-open-anywhere-plugin.md index e5a435d24c..e333341ea4 100644 --- a/.agents/notes/implemented/feature/2026-08-25-promote-open-anywhere-plugin.md +++ b/.agents/notes/archived/feature/2026-08-25-promote-open-anywhere-plugin.md @@ -1,6 +1,7 @@ # Agent Note: Promote open-anywhere from community plugin to first-party package Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-25-promote-open-anywhere-plugin.zh.md) diff --git a/.agents/notes/implemented/feature/2026-08-25-promote-open-anywhere-plugin.zh.md b/.agents/notes/archived/feature/2026-08-25-promote-open-anywhere-plugin.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-25-promote-open-anywhere-plugin.zh.md rename to .agents/notes/archived/feature/2026-08-25-promote-open-anywhere-plugin.zh.md index 108091f3e7..57a51eec59 100644 --- a/.agents/notes/implemented/feature/2026-08-25-promote-open-anywhere-plugin.zh.md +++ b/.agents/notes/archived/feature/2026-08-25-promote-open-anywhere-plugin.zh.md @@ -1,6 +1,7 @@ # Agent Note: 将 open-anywhere 从社区插件转正为第一方包 Status: implemented +Archived: 2026-09-30 [English](2026-08-25-promote-open-anywhere-plugin.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-08-26-human-job-kill.i18n.yaml b/.agents/notes/archived/feature/2026-08-26-human-job-kill.i18n.yaml new file mode 100644 index 0000000000..cbaada2a48 --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-26-human-job-kill.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-26-human-job-kill.md +2026-08-26-human-job-kill.md: 22885aac4ef185103492dd2a99cf40e71139760a +2026-08-26-human-job-kill.zh.md: 2d9736f41d810436ec467e1661e51ad88a0caa7e diff --git a/.agents/notes/implemented/feature/2026-08-26-human-job-kill.md b/.agents/notes/archived/feature/2026-08-26-human-job-kill.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-26-human-job-kill.md rename to .agents/notes/archived/feature/2026-08-26-human-job-kill.md index efffdbd85b..22885aac4e 100644 --- a/.agents/notes/implemented/feature/2026-08-26-human-job-kill.md +++ b/.agents/notes/archived/feature/2026-08-26-human-job-kill.md @@ -1,6 +1,7 @@ # Agent Note: Human job kill — an unclaimed terminal report instead of a second cancellation path Status: implemented +Archived: 2026-09-30 Update: the `reported` option this note introduced is gone with the [jobs seam consolidation](../architecture/2026-09-03-jobs-seam-consolidation.md). The registry keeps no report bit; `dsh-tool-jobs` claims only its own `job_kill` and waits in a ledger, so a human `job.kill` leaves the notice due by construction. The reason merge, the `job.kill` Remote, and the two-press control are unchanged. diff --git a/.agents/notes/implemented/feature/2026-08-26-human-job-kill.zh.md b/.agents/notes/archived/feature/2026-08-26-human-job-kill.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-26-human-job-kill.zh.md rename to .agents/notes/archived/feature/2026-08-26-human-job-kill.zh.md index 206acca008..2d9736f41d 100644 --- a/.agents/notes/implemented/feature/2026-08-26-human-job-kill.zh.md +++ b/.agents/notes/archived/feature/2026-08-26-human-job-kill.zh.md @@ -1,6 +1,7 @@ # Agent Note:人工任务终止——用「未认领的终态报告」而非第二条取消路径 -状态:已实现 +Status: implemented +Archived: 2026-09-30 Update:本文引入的 `reported` 选项已随 [jobs seam 收敛](../architecture/2026-09-03-jobs-seam-consolidation.zh.md) 消失。注册表不再保留播报位;`dsh-tool-jobs` 只在台账里认领自己的 `job_kill` 与等待,因此人类的 `job.kill` 天然让通知保持待送达。原因合并、`job.kill` Remote 与两击式控件保持不变。 diff --git a/.agents/notes/archived/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.i18n.yaml b/.agents/notes/archived/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.i18n.yaml new file mode 100644 index 0000000000..f9973e47f0 --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.md +2026-08-26-shell-execute-projection-and-jobs-at-start.md: 8786d7b727d6c3bf219cd0a1fed4b9e565bd10bc +2026-08-26-shell-execute-projection-and-jobs-at-start.zh.md: 9dd7753c295aed973fa0891aca1cf8ab24b3e602 diff --git a/.agents/notes/implemented/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.md b/.agents/notes/archived/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.md rename to .agents/notes/archived/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.md index 2a03cd9f99..8786d7b727 100644 --- a/.agents/notes/implemented/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.md +++ b/.agents/notes/archived/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.md @@ -1,6 +1,7 @@ # Agent Note: One shell execute() — foreground as a projection, timeout as a bounded wait on the job Status: implemented +Archived: 2026-09-30 Update: the [jobs seam consolidation](../architecture/2026-09-03-jobs-seam-consolidation.md) owns the output ring, the cursors, and the pull sources every registered command feeds. diff --git a/.agents/notes/implemented/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.zh.md b/.agents/notes/archived/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.zh.md rename to .agents/notes/archived/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.zh.md index bdc6cc432d..9dd7753c29 100644 --- a/.agents/notes/implemented/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.zh.md +++ b/.agents/notes/archived/feature/2026-08-26-shell-execute-projection-and-jobs-at-start.zh.md @@ -1,6 +1,7 @@ # Agent Note:唯一的 shell execute()——前台是投影,超时是对 job 的有界等待 -状态:已实现 +Status: implemented +Archived: 2026-09-30 Update:[jobs seam 收敛](../architecture/2026-09-03-jobs-seam-consolidation.zh.md)拥有每条已登记命令现在填充的输出环、游标与拉取源。 diff --git a/.agents/notes/archived/feature/2026-08-27-continuable-subagent-human-inbox-control.i18n.yaml b/.agents/notes/archived/feature/2026-08-27-continuable-subagent-human-inbox-control.i18n.yaml new file mode 100644 index 0000000000..4120d95a38 --- /dev/null +++ b/.agents/notes/archived/feature/2026-08-27-continuable-subagent-human-inbox-control.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-08-27-continuable-subagent-human-inbox-control.md +2026-08-27-continuable-subagent-human-inbox-control.md: e2b9738a19a8d6ecfa5601000a55468ad422d1f1 +2026-08-27-continuable-subagent-human-inbox-control.zh.md: 9d9d9ff4f8949f45a3e93e03bdf138fee7995bc9 diff --git a/.agents/notes/implemented/feature/2026-08-27-continuable-subagent-human-inbox-control.md b/.agents/notes/archived/feature/2026-08-27-continuable-subagent-human-inbox-control.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-27-continuable-subagent-human-inbox-control.md rename to .agents/notes/archived/feature/2026-08-27-continuable-subagent-human-inbox-control.md index 6bf8ceb2b8..e2b9738a19 100644 --- a/.agents/notes/implemented/feature/2026-08-27-continuable-subagent-human-inbox-control.md +++ b/.agents/notes/archived/feature/2026-08-27-continuable-subagent-human-inbox-control.md @@ -1,6 +1,7 @@ # Agent Note: Human inbox controls for continuable subagents Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-27-continuable-subagent-human-inbox-control.zh.md) diff --git a/.agents/notes/implemented/feature/2026-08-27-continuable-subagent-human-inbox-control.zh.md b/.agents/notes/archived/feature/2026-08-27-continuable-subagent-human-inbox-control.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-08-27-continuable-subagent-human-inbox-control.zh.md rename to .agents/notes/archived/feature/2026-08-27-continuable-subagent-human-inbox-control.zh.md index 081fb84f75..9d9d9ff4f8 100644 --- a/.agents/notes/implemented/feature/2026-08-27-continuable-subagent-human-inbox-control.zh.md +++ b/.agents/notes/archived/feature/2026-08-27-continuable-subagent-human-inbox-control.zh.md @@ -1,6 +1,7 @@ # Agent Note: 可继续 subagent 的人类 inbox 控制 Status: implemented +Archived: 2026-09-30 [English](2026-08-27-continuable-subagent-human-inbox-control.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-01-workflow-run-in-background.i18n.yaml b/.agents/notes/archived/feature/2026-09-01-workflow-run-in-background.i18n.yaml new file mode 100644 index 0000000000..d16790f227 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-01-workflow-run-in-background.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-01-workflow-run-in-background.md +2026-09-01-workflow-run-in-background.md: 548d6b8c35f585f6e0c2d057674494c8985adb92 +2026-09-01-workflow-run-in-background.zh.md: 1ab9acf95af72b7476892fd9be77da179e61c791 diff --git a/.agents/notes/implemented/feature/2026-09-01-workflow-run-in-background.md b/.agents/notes/archived/feature/2026-09-01-workflow-run-in-background.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-01-workflow-run-in-background.md rename to .agents/notes/archived/feature/2026-09-01-workflow-run-in-background.md index 5a141b3841..548d6b8c35 100644 --- a/.agents/notes/implemented/feature/2026-09-01-workflow-run-in-background.md +++ b/.agents/notes/archived/feature/2026-09-01-workflow-run-in-background.md @@ -1,6 +1,7 @@ # Agent Note: Workflow runs gain `run_in_background` over the job registry Status: implemented +Archived: 2026-09-30 Update: with the [jobs seam consolidation](../architecture/2026-09-03-jobs-seam-consolidation.md) the run registers a `JobSpec` (no `record` flag), narrates through `JobHandle.append` and `updateProgress`, and returns its rendered value as `JobOutcome.result`, which the model's first read after settlement carries once. diff --git a/.agents/notes/implemented/feature/2026-09-01-workflow-run-in-background.zh.md b/.agents/notes/archived/feature/2026-09-01-workflow-run-in-background.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-01-workflow-run-in-background.zh.md rename to .agents/notes/archived/feature/2026-09-01-workflow-run-in-background.zh.md index 102a398d95..1ab9acf95a 100644 --- a/.agents/notes/implemented/feature/2026-09-01-workflow-run-in-background.zh.md +++ b/.agents/notes/archived/feature/2026-09-01-workflow-run-in-background.zh.md @@ -1,6 +1,7 @@ # Agent Note:workflow 运行经任务注册表获得 `run_in_background` -状态:已实现 +Status: implemented +Archived: 2026-09-30 Update:随 [jobs seam 收敛](../architecture/2026-09-03-jobs-seam-consolidation.zh.md),该运行注册的是 `JobSpec`(没有 `record` 标志),通过 `JobHandle.append` 与 `updateProgress` 叙述进度,并把渲染后的值作为 `JobOutcome.result` 返回,模型在结算后的第一次读取携带它一次。 diff --git a/.agents/notes/archived/feature/2026-09-05-sidebar-text-preview-and-file-tree.i18n.yaml b/.agents/notes/archived/feature/2026-09-05-sidebar-text-preview-and-file-tree.i18n.yaml new file mode 100644 index 0000000000..62be6a8d51 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-05-sidebar-text-preview-and-file-tree.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-05-sidebar-text-preview-and-file-tree.md +2026-09-05-sidebar-text-preview-and-file-tree.md: 61b697481b5b70eda74f762486860f3f788f62f0 +2026-09-05-sidebar-text-preview-and-file-tree.zh.md: 3f63031fd1fe9425203d5f2eb6e1cfe66ed53b78 diff --git a/.agents/notes/implemented/feature/2026-09-05-sidebar-text-preview-and-file-tree.md b/.agents/notes/archived/feature/2026-09-05-sidebar-text-preview-and-file-tree.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-05-sidebar-text-preview-and-file-tree.md rename to .agents/notes/archived/feature/2026-09-05-sidebar-text-preview-and-file-tree.md index e978043545..61b697481b 100644 --- a/.agents/notes/implemented/feature/2026-09-05-sidebar-text-preview-and-file-tree.md +++ b/.agents/notes/archived/feature/2026-09-05-sidebar-text-preview-and-file-tree.md @@ -1,6 +1,7 @@ # Agent Note: Sidebar text preview and file tree Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-05-sidebar-text-preview-and-file-tree.zh.md) @@ -16,7 +17,7 @@ Three tab types ship with the Sidebar: the **guide** (`ui-sidebar-right`), the * ### The guide -[Default pages and close protection](2026-09-08-sidebar-default-pages.md) supersedes this section's default-guide selection; guide registration, replacement and uniqueness remain unchanged. +[Sidebar guide rules](../../../../packages/client/ui-sidebar-right/README.md#the-guide) define default-page selection and close protection; guide registration, replacement and uniqueness remain unchanged. The guide is what a pane shows before it holds content. Its registration is `{ id: '@deepseek-ai/dsh-client-ui-sidebar-right/guide', kind: 'guide', priority: 'builtin', title }` with no `patterns`: a guide views nothing, so it is opened by kind through `openTab` and recorded under the page address `sidebar://guide`, which is the registry's bookkeeping and never composed by a caller. The tab's title is `开始` / `Start`, captured into the layout record when the pane is seeded, so a later language change relabels the type and not tabs already open. diff --git a/.agents/notes/implemented/feature/2026-09-05-sidebar-text-preview-and-file-tree.zh.md b/.agents/notes/archived/feature/2026-09-05-sidebar-text-preview-and-file-tree.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-05-sidebar-text-preview-and-file-tree.zh.md rename to .agents/notes/archived/feature/2026-09-05-sidebar-text-preview-and-file-tree.zh.md index 088d4a58c9..3f63031fd1 100644 --- a/.agents/notes/implemented/feature/2026-09-05-sidebar-text-preview-and-file-tree.zh.md +++ b/.agents/notes/archived/feature/2026-09-05-sidebar-text-preview-and-file-tree.zh.md @@ -1,6 +1,7 @@ # Agent Note: Sidebar 文本预览与文件树 Status: implemented +Archived: 2026-09-30 [English](2026-09-05-sidebar-text-preview-and-file-tree.md) | 中文 @@ -16,7 +17,7 @@ Sidebar 随包交付三个 tab 类型:**引导页**(`ui-sidebar-right`)、 ### 引导页 -[默认页与关闭保护](2026-09-08-sidebar-default-pages.zh.md)取代本节的默认引导选择;引导页注册、替换和唯一性保持不变。 +[Sidebar 引导页规则](../../../../packages/client/ui-sidebar-right/README.zh.md#the-guide)定义默认页选择与关闭保护;引导页注册、替换和唯一性保持不变。 引导页是 pane 承载内容之前显示的东西。它的注册定义是 `{ id: '@deepseek-ai/dsh-client-ui-sidebar-right/guide', kind: 'guide', priority: 'builtin', title }`,没有 `patterns`:引导页不查看任何东西,所以经 `openTab` 按 kind 打开,并记在页地址 `sidebar://guide` 之下——那是注册表自己的记账,调用方从不拼它。tab 标题是 `开始` / `Start`,在 pane 播种时捕获进布局记录,于是之后切换语言只重标类型,不改已开着的 tab。 diff --git a/.agents/notes/archived/feature/2026-09-07-model-switch-notice.i18n.yaml b/.agents/notes/archived/feature/2026-09-07-model-switch-notice.i18n.yaml new file mode 100644 index 0000000000..e1692973e4 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-07-model-switch-notice.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-07-model-switch-notice.md +2026-09-07-model-switch-notice.md: c6fefe71f949ce6d07e4ab4f2b7b2334e47914fa +2026-09-07-model-switch-notice.zh.md: fc4bffb6c8dba1c33fc71d488efded0a342f7cac diff --git a/.agents/notes/implemented/feature/2026-09-07-model-switch-notice.md b/.agents/notes/archived/feature/2026-09-07-model-switch-notice.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-07-model-switch-notice.md rename to .agents/notes/archived/feature/2026-09-07-model-switch-notice.md index cb2f915f13..c6fefe71f9 100644 --- a/.agents/notes/implemented/feature/2026-09-07-model-switch-notice.md +++ b/.agents/notes/archived/feature/2026-09-07-model-switch-notice.md @@ -1,6 +1,7 @@ # Agent Note: Model-visible route-change notices Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-07-model-switch-notice.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-07-model-switch-notice.zh.md b/.agents/notes/archived/feature/2026-09-07-model-switch-notice.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-07-model-switch-notice.zh.md rename to .agents/notes/archived/feature/2026-09-07-model-switch-notice.zh.md index b6dd8da027..fc4bffb6c8 100644 --- a/.agents/notes/implemented/feature/2026-09-07-model-switch-notice.zh.md +++ b/.agents/notes/archived/feature/2026-09-07-model-switch-notice.zh.md @@ -1,6 +1,7 @@ # Agent Note: 模型可见的路由切换提示 Status: implemented +Archived: 2026-09-30 [English](2026-09-07-model-switch-notice.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-07-public-web-deployments.i18n.yaml b/.agents/notes/archived/feature/2026-09-07-public-web-deployments.i18n.yaml new file mode 100644 index 0000000000..2460b49113 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-07-public-web-deployments.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-07-public-web-deployments.md +2026-09-07-public-web-deployments.md: e7cf809bce4186c173df783b0fb383ff8abb4140 +2026-09-07-public-web-deployments.zh.md: b218ba9e7d759aba961f42c76bc742e59469bafd diff --git a/.agents/notes/archived/feature/2026-09-07-public-web-deployments.md b/.agents/notes/archived/feature/2026-09-07-public-web-deployments.md new file mode 100644 index 0000000000..e7cf809bce --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-07-public-web-deployments.md @@ -0,0 +1,38 @@ +# Agent Note: Advertised public HTTP(S) Web roots + +Status: implemented +Archived: 2026-09-30 + +English | [中文](2026-09-07-public-web-deployments.zh.md) + +## Problem + +A forwarding gateway can expose the Web GUI beneath a shared HTTP(S) origin and strip its path prefix before forwarding, so one process answers loopback `/` and an external mount at once — a mount the listener cannot know and an origin only the operator knows. A proxied request carries that external authority in `Host`, which the browser-trust fence refuses until the deployment declares it. + +## Decision + +`--public-url` is an optional advertised HTTP(S) application root — `http(s)://`, an optional forwarding prefix, and no credentials, query, or fragment — reaching the Web bundle's `publicUrl` config through `src/public-url.ts`. It supplies the printed and opened URL, `DSH_WEB_URL`, and the web-surface orientation, and configures no routing, client transport, or cookie scope. The config field and the CLI flag are both advertisement only: the browser-visible authority must be named with repeatable `--trusted-host`, and the fence still validates `Host` and `Origin` per request, so advertisement grants neither identity nor authentication. + +The advertised root is the first production input that can carry a mount prefix, so the launch flow adds the launch token without collapsing that mount. Network listening stays explicit and independent — the shipped CLI refuses a wildcard `--host` — and the proxy owns the external leg, whose required operations the [public deployments guide](../../../../docs/user/guide/public-deployments.md) publishes. + +## Alternatives considered + +**Let the advertised root select routing and cookies.** One root would supply every browser URL and cookie path, but the advertisement would then decide request routing, so one process could no longer serve loopback and a prefixed mount at once. + +**Fold the advertised host into trustedHosts.** Rejected: advertisement must not change the fence, and #4181 keeps trust explicit. + +**Have the backend emit mount-aware URLs.** A configured `` or prefixed asset paths would require the webserver to know the external mount and duplicate knowledge the proxy already holds. + +**Infer the external leg from requests or forwarded headers.** Request-derived authority is spoofable, and accepting stripped and preserved paths alike leaves the deployment ambiguous. + +**Infer network exposure from the advertised root or a trusted host.** A display or authority choice cannot authorize opening every interface, so listener selection stays explicit and a wildcard host stays rejected. + +## Consequences + +The advertised URL carries no credential until the process adds its launch token, and a misconfigured address can still disclose it. An HTTP root carries that tokenized URL and the session cookie without TLS, and an HTTPS root encrypts only the browser-to-proxy leg. + +Advertising an authority admits nothing on its own: a browser reaching the deployment under any non-loopback authority stays outside the fence until `--trusted-host` names it. + +## Testing + +`tests/public-url.spec.ts` covers URL validation and normalization; `tests/startup.spec.ts` covers the flag over a real Loader tree, including that the advertised host leaves the accepted authorities untouched; `tests/web-app.spec.ts` covers the printed URL, handoff, web-surface prompt, `DSH_WEB_URL`, and a `null` field advertising loopback; `apps/cli/tests/profiles/web/tests/public-url.expected.e2e.ts` boots the built profile with `--public-url` behind the reference prefix-stripping proxy and authenticates through both the advertised mount and loopback, so the bundle patch's `publicUrl` expression is exercised as shipped. diff --git a/.agents/notes/archived/feature/2026-09-07-public-web-deployments.zh.md b/.agents/notes/archived/feature/2026-09-07-public-web-deployments.zh.md new file mode 100644 index 0000000000..b218ba9e7d --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-07-public-web-deployments.zh.md @@ -0,0 +1,38 @@ +# Agent Note: 对外公告的公开 HTTP(S) Web 根 + +Status: implemented +Archived: 2026-09-30 + +[English](2026-09-07-public-web-deployments.md) | 中文 + +## Problem + +转发网关可以把 Web GUI 暴露在共享的 HTTP(S) origin 之下,并在转发前剥离其路径前缀,因此同一个进程要同时应答 loopback `/` 与外部挂载——该挂载监听器无从得知,而该 origin 只有运维方知道。经代理转发的请求会在 `Host` 中携带这个外部 authority,浏览器信任栅栏在部署声明它之前会予以拒绝。 + +## Decision + +`--public-url` 是可选的对外公告 HTTP(S) 应用根——`http(s)://`,可带转发前缀,不允许凭据、query 或 fragment——经由 `src/public-url.ts` 抵达 Web bundle 的 `publicUrl` 配置。它提供打印与打开的 URL、`DSH_WEB_URL` 与 web 表层定位,且不配置任何路由、客户端传输或 cookie 作用域。配置字段与 CLI flag 都只是公告:浏览器可见的 authority 必须用可重复的 `--trusted-host` 点名,栅栏才会接受它;栅栏仍逐请求校验 `Host` 与 `Origin`,因此公告既不授予身份,也不代表已认证。 + +公告根是首个可能携带挂载前缀的生产输入,因此启动流程加上启动 token 时不会压平该挂载。网络监听始终显式且独立——随附 CLI 拒绝通配的 `--host`——外部链路归代理所有,部署必须提供的操作发布在[公开部署指南](../../../../docs/user/guide/public-deployments.zh.md)。 + +## Alternatives considered + +**让公告根同时决定路由与 cookie。** 单一根会提供全部浏览器 URL 与 cookie 路径,但公告随即成为请求路由决策,一个进程再也无法同时服务 loopback 与带前缀的挂载。 + +**把公告主机并入 trustedHosts。** 否决:公告不得改变栅栏,且 #4181 让信任始终显式。 + +**让后端产出感知挂载的 URL。** 配置 `` 或带前缀的资源路径会要求 webserver 了解外部挂载,并重复代理已经掌握的信息。 + +**从请求或转发头推断外部链路。** 请求派生的 authority 可被伪造,而同时接受被剥离与未被剥离的路径会让部署变得含糊。 + +**从公告根或可信主机推断网络暴露。** 展示或 authority 选择不能授权打开所有网卡,因此监听选择始终显式,通配主机也始终被拒绝。 + +## Consequences + +公告 URL 在进程附带启动 token 之前不含凭据,而配置错误的地址仍可能泄露它。HTTP 根会在无 TLS 的情况下携带带 token 的 URL 与会话 cookie,HTTPS 根则只加密浏览器到代理这一段。 + +公告本身不接纳任何 authority:浏览器以任何非 loopback authority 访问部署,都会一直处于栅栏之外,直到 `--trusted-host` 点名它。 + +## Testing + +`tests/public-url.spec.ts` 覆盖 URL 校验与归一化;`tests/startup.spec.ts` 在真实 Loader 树上覆盖该 flag,包括公告主机不会改动被接受的 authority;`tests/web-app.spec.ts` 覆盖打印 URL、交接、web 表层提示词、`DSH_WEB_URL`,以及字段为 `null` 时公告 loopback;`apps/cli/tests/profiles/web/tests/public-url.expected.e2e.ts` 以 `--public-url` 在参考剥前缀代理之后启动已构建的 profile,并同时经公告挂载与 loopback 完成认证,因此 bundle patch 中的 `publicUrl` 表达式按出厂形态得到执行。 diff --git a/.agents/notes/archived/feature/2026-09-07-session-prose-local-media-display.i18n.yaml b/.agents/notes/archived/feature/2026-09-07-session-prose-local-media-display.i18n.yaml new file mode 100644 index 0000000000..b5292d274d --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-07-session-prose-local-media-display.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-07-session-prose-local-media-display.md +2026-09-07-session-prose-local-media-display.md: c5dcfa0fca7da7057b81704cf222471fba623c14 +2026-09-07-session-prose-local-media-display.zh.md: 754c1021997bc3caa9b110eb4f2794f54a94558f diff --git a/.agents/notes/implemented/feature/2026-09-07-session-prose-local-media-display.md b/.agents/notes/archived/feature/2026-09-07-session-prose-local-media-display.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-07-session-prose-local-media-display.md rename to .agents/notes/archived/feature/2026-09-07-session-prose-local-media-display.md index fe769d1cbe..c5dcfa0fca 100644 --- a/.agents/notes/implemented/feature/2026-09-07-session-prose-local-media-display.md +++ b/.agents/notes/archived/feature/2026-09-07-session-prose-local-media-display.md @@ -1,6 +1,7 @@ # Agent Note: Session prose local media paths display through a same-origin file route Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-07-session-prose-local-media-display.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-07-session-prose-local-media-display.zh.md b/.agents/notes/archived/feature/2026-09-07-session-prose-local-media-display.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-07-session-prose-local-media-display.zh.md rename to .agents/notes/archived/feature/2026-09-07-session-prose-local-media-display.zh.md index 2cfff4016f..754c102199 100644 --- a/.agents/notes/implemented/feature/2026-09-07-session-prose-local-media-display.zh.md +++ b/.agents/notes/archived/feature/2026-09-07-session-prose-local-media-display.zh.md @@ -1,6 +1,7 @@ # Agent Note: 会话正文本地媒体路径通过同源文件路由显示 Status: implemented +Archived: 2026-09-30 [English](2026-09-07-session-prose-local-media-display.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.i18n.yaml b/.agents/notes/archived/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.i18n.yaml new file mode 100644 index 0000000000..fc70e47b50 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.md +2026-09-08-desktop-uninstall-preserve-dsh-home.md: f4c9b1b63a2f47840ae28ea8e91f4d277d0f8533 +2026-09-08-desktop-uninstall-preserve-dsh-home.zh.md: c195049b1cbd35d02ff9a7b7283d731f7702f593 diff --git a/.agents/notes/implemented/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.md b/.agents/notes/archived/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.md rename to .agents/notes/archived/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.md index 921d9681aa..f4c9b1b63a 100644 --- a/.agents/notes/implemented/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.md +++ b/.agents/notes/archived/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.md @@ -1,6 +1,7 @@ # Agent Note: Windows uninstall retains the Harness home Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-08-desktop-uninstall-preserve-dsh-home.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.zh.md b/.agents/notes/archived/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.zh.md rename to .agents/notes/archived/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.zh.md index cb9187bb6d..c195049b1c 100644 --- a/.agents/notes/implemented/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.zh.md +++ b/.agents/notes/archived/feature/2026-09-08-desktop-uninstall-preserve-dsh-home.zh.md @@ -1,6 +1,7 @@ # Agent Note: Windows 卸载保留 Harness 主目录 Status: implemented +Archived: 2026-09-30 [English](2026-09-08-desktop-uninstall-preserve-dsh-home.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-08-feedback-dialog-and-categories.i18n.yaml b/.agents/notes/archived/feature/2026-09-08-feedback-dialog-and-categories.i18n.yaml new file mode 100644 index 0000000000..7c70d4e579 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-08-feedback-dialog-and-categories.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-08-feedback-dialog-and-categories.md +2026-09-08-feedback-dialog-and-categories.md: d3a630a4bbb7304807a4a322e553fe75a6455efa +2026-09-08-feedback-dialog-and-categories.zh.md: de19580d3200f141858fe335d3976ed272a4d5a2 diff --git a/.agents/notes/implemented/feature/2026-09-08-feedback-dialog-and-categories.md b/.agents/notes/archived/feature/2026-09-08-feedback-dialog-and-categories.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-08-feedback-dialog-and-categories.md rename to .agents/notes/archived/feature/2026-09-08-feedback-dialog-and-categories.md index 1d544e6ef9..d3a630a4bb 100644 --- a/.agents/notes/implemented/feature/2026-09-08-feedback-dialog-and-categories.md +++ b/.agents/notes/archived/feature/2026-09-08-feedback-dialog-and-categories.md @@ -1,6 +1,7 @@ # Agent Note: Feedback dialog, categories, and the acknowledgement toast Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-08-feedback-dialog-and-categories.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-08-feedback-dialog-and-categories.zh.md b/.agents/notes/archived/feature/2026-09-08-feedback-dialog-and-categories.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-08-feedback-dialog-and-categories.zh.md rename to .agents/notes/archived/feature/2026-09-08-feedback-dialog-and-categories.zh.md index 6e58820bf3..de19580d32 100644 --- a/.agents/notes/implemented/feature/2026-09-08-feedback-dialog-and-categories.zh.md +++ b/.agents/notes/archived/feature/2026-09-08-feedback-dialog-and-categories.zh.md @@ -1,6 +1,7 @@ # Agent Note: 反馈弹窗、分类与确认 toast Status: implemented +Archived: 2026-09-30 [English](2026-09-08-feedback-dialog-and-categories.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-08-file-display-through-filesystem.i18n.yaml b/.agents/notes/archived/feature/2026-09-08-file-display-through-filesystem.i18n.yaml new file mode 100644 index 0000000000..d710c56b6d --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-08-file-display-through-filesystem.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-08-file-display-through-filesystem.md +2026-09-08-file-display-through-filesystem.md: 26af6ce3babb4400caf4d056fa358af5197a6725 +2026-09-08-file-display-through-filesystem.zh.md: 4627685508b37cb96014164c9390e24219282051 diff --git a/.agents/notes/implemented/feature/2026-09-08-file-display-through-filesystem.md b/.agents/notes/archived/feature/2026-09-08-file-display-through-filesystem.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-08-file-display-through-filesystem.md rename to .agents/notes/archived/feature/2026-09-08-file-display-through-filesystem.md index b1f93f8c9f..26af6ce3ba 100644 --- a/.agents/notes/implemented/feature/2026-09-08-file-display-through-filesystem.md +++ b/.agents/notes/archived/feature/2026-09-08-file-display-through-filesystem.md @@ -1,6 +1,7 @@ # Agent Note: Authenticated file display reuses filesystem byte reads Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-08-file-display-through-filesystem.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-08-file-display-through-filesystem.zh.md b/.agents/notes/archived/feature/2026-09-08-file-display-through-filesystem.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-08-file-display-through-filesystem.zh.md rename to .agents/notes/archived/feature/2026-09-08-file-display-through-filesystem.zh.md index faa3fdb757..4627685508 100644 --- a/.agents/notes/implemented/feature/2026-09-08-file-display-through-filesystem.zh.md +++ b/.agents/notes/archived/feature/2026-09-08-file-display-through-filesystem.zh.md @@ -1,6 +1,7 @@ # Agent Note: 鉴权文件展示复用文件系统字节读取 Status: implemented +Archived: 2026-09-30 [English](2026-09-08-file-display-through-filesystem.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-09-headless-machine-readable-run-surface.i18n.yaml b/.agents/notes/archived/feature/2026-09-09-headless-machine-readable-run-surface.i18n.yaml new file mode 100644 index 0000000000..104b0fc326 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-09-headless-machine-readable-run-surface.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-09-headless-machine-readable-run-surface.md +2026-09-09-headless-machine-readable-run-surface.md: 5e0e4f9b0b41a6a988cf4b5a361e438c87ff513f +2026-09-09-headless-machine-readable-run-surface.zh.md: 4c3bfa3c85a3f5c75c3a87bd39b1cd82bec39108 diff --git a/.agents/notes/implemented/feature/2026-09-09-headless-machine-readable-run-surface.md b/.agents/notes/archived/feature/2026-09-09-headless-machine-readable-run-surface.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-09-headless-machine-readable-run-surface.md rename to .agents/notes/archived/feature/2026-09-09-headless-machine-readable-run-surface.md index 317f213095..5e0e4f9b0b 100644 --- a/.agents/notes/implemented/feature/2026-09-09-headless-machine-readable-run-surface.md +++ b/.agents/notes/archived/feature/2026-09-09-headless-machine-readable-run-surface.md @@ -1,6 +1,7 @@ # Agent Note: Headless machine-readable run surface Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-09-headless-machine-readable-run-surface.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-09-headless-machine-readable-run-surface.zh.md b/.agents/notes/archived/feature/2026-09-09-headless-machine-readable-run-surface.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-09-headless-machine-readable-run-surface.zh.md rename to .agents/notes/archived/feature/2026-09-09-headless-machine-readable-run-surface.zh.md index 0114f87aef..4c3bfa3c85 100644 --- a/.agents/notes/implemented/feature/2026-09-09-headless-machine-readable-run-surface.zh.md +++ b/.agents/notes/archived/feature/2026-09-09-headless-machine-readable-run-surface.zh.md @@ -1,6 +1,7 @@ # Agent Note: Headless 的机器可读运行接口 Status: implemented +Archived: 2026-09-30 [English](2026-09-09-headless-machine-readable-run-surface.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-09-present-filesystem-access.i18n.yaml b/.agents/notes/archived/feature/2026-09-09-present-filesystem-access.i18n.yaml new file mode 100644 index 0000000000..835c249c01 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-09-present-filesystem-access.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-09-present-filesystem-access.md +2026-09-09-present-filesystem-access.md: bc4be249d5d28141333101e69a09b0ae2c9fbd3b +2026-09-09-present-filesystem-access.zh.md: 0828d42946a925efdd18130b8592a287e8e3faf3 diff --git a/.agents/notes/implemented/feature/2026-09-09-present-filesystem-access.md b/.agents/notes/archived/feature/2026-09-09-present-filesystem-access.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-09-present-filesystem-access.md rename to .agents/notes/archived/feature/2026-09-09-present-filesystem-access.md index 5c9d5bec47..bc4be249d5 100644 --- a/.agents/notes/implemented/feature/2026-09-09-present-filesystem-access.md +++ b/.agents/notes/archived/feature/2026-09-09-present-filesystem-access.md @@ -1,6 +1,7 @@ # Agent Note: Present follows Session filesystem access Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-09-present-filesystem-access.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-09-present-filesystem-access.zh.md b/.agents/notes/archived/feature/2026-09-09-present-filesystem-access.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-09-present-filesystem-access.zh.md rename to .agents/notes/archived/feature/2026-09-09-present-filesystem-access.zh.md index 6387f07b17..0828d42946 100644 --- a/.agents/notes/implemented/feature/2026-09-09-present-filesystem-access.zh.md +++ b/.agents/notes/archived/feature/2026-09-09-present-filesystem-access.zh.md @@ -1,6 +1,7 @@ # Agent Note:Present 遵循 Session 文件系统访问规则 Status: implemented +Archived: 2026-09-30 [English](2026-09-09-present-filesystem-access.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-09-ptc-trajectory-code-inspection.i18n.yaml b/.agents/notes/archived/feature/2026-09-09-ptc-trajectory-code-inspection.i18n.yaml new file mode 100644 index 0000000000..c8b432a440 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-09-ptc-trajectory-code-inspection.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-09-ptc-trajectory-code-inspection.md +2026-09-09-ptc-trajectory-code-inspection.md: 7e196a370c73bafe166d2bc8af2116e04d6883c5 +2026-09-09-ptc-trajectory-code-inspection.zh.md: d46d875ea19c36595499e336f26b281f885f18ad diff --git a/.agents/notes/implemented/feature/2026-09-09-ptc-trajectory-code-inspection.md b/.agents/notes/archived/feature/2026-09-09-ptc-trajectory-code-inspection.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-09-ptc-trajectory-code-inspection.md rename to .agents/notes/archived/feature/2026-09-09-ptc-trajectory-code-inspection.md index 19779d20e8..7e196a370c 100644 --- a/.agents/notes/implemented/feature/2026-09-09-ptc-trajectory-code-inspection.md +++ b/.agents/notes/archived/feature/2026-09-09-ptc-trajectory-code-inspection.md @@ -1,6 +1,7 @@ # Agent Note: Inspect recorded PTC source in Trajectory Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-09-ptc-trajectory-code-inspection.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-09-ptc-trajectory-code-inspection.zh.md b/.agents/notes/archived/feature/2026-09-09-ptc-trajectory-code-inspection.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-09-ptc-trajectory-code-inspection.zh.md rename to .agents/notes/archived/feature/2026-09-09-ptc-trajectory-code-inspection.zh.md index 7cdb2321d6..d46d875ea1 100644 --- a/.agents/notes/implemented/feature/2026-09-09-ptc-trajectory-code-inspection.zh.md +++ b/.agents/notes/archived/feature/2026-09-09-ptc-trajectory-code-inspection.zh.md @@ -1,6 +1,7 @@ # Agent Note: 在 Trajectory 中检查已记录的 PTC 源码 Status: implemented +Archived: 2026-09-30 [English](2026-09-09-ptc-trajectory-code-inspection.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-10-composer-reference-previews.i18n.yaml b/.agents/notes/archived/feature/2026-09-10-composer-reference-previews.i18n.yaml new file mode 100644 index 0000000000..50fc47af45 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-10-composer-reference-previews.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-10-composer-reference-previews.md +2026-09-10-composer-reference-previews.md: b6603570ff3ce9ae8d5a4628d92ff81226403219 +2026-09-10-composer-reference-previews.zh.md: 18df7582e01187b491a55a1930ff4074d0ff9ffd diff --git a/.agents/notes/implemented/feature/2026-09-10-composer-reference-previews.md b/.agents/notes/archived/feature/2026-09-10-composer-reference-previews.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-10-composer-reference-previews.md rename to .agents/notes/archived/feature/2026-09-10-composer-reference-previews.md index e9425851c1..b6603570ff 100644 --- a/.agents/notes/implemented/feature/2026-09-10-composer-reference-previews.md +++ b/.agents/notes/archived/feature/2026-09-10-composer-reference-previews.md @@ -1,6 +1,7 @@ # Agent Note: Composer reference previews Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-10-composer-reference-previews.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-10-composer-reference-previews.zh.md b/.agents/notes/archived/feature/2026-09-10-composer-reference-previews.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-10-composer-reference-previews.zh.md rename to .agents/notes/archived/feature/2026-09-10-composer-reference-previews.zh.md index c47718468b..18df7582e0 100644 --- a/.agents/notes/implemented/feature/2026-09-10-composer-reference-previews.zh.md +++ b/.agents/notes/archived/feature/2026-09-10-composer-reference-previews.zh.md @@ -1,6 +1,7 @@ # Agent Note: 输入框引用预览 Status: implemented +Archived: 2026-09-30 [English](2026-09-10-composer-reference-previews.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-10-symmetric-message-feedback-submission.i18n.yaml b/.agents/notes/archived/feature/2026-09-10-symmetric-message-feedback-submission.i18n.yaml new file mode 100644 index 0000000000..b691470d2b --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-10-symmetric-message-feedback-submission.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-10-symmetric-message-feedback-submission.md +2026-09-10-symmetric-message-feedback-submission.md: 9fb9e1b0f508bf926e4cf4ae9eb1c2dda6e29757 +2026-09-10-symmetric-message-feedback-submission.zh.md: 58cf25b23adcf6135b070d262b2e9b226fb80f95 diff --git a/.agents/notes/implemented/feature/2026-09-10-symmetric-message-feedback-submission.md b/.agents/notes/archived/feature/2026-09-10-symmetric-message-feedback-submission.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-10-symmetric-message-feedback-submission.md rename to .agents/notes/archived/feature/2026-09-10-symmetric-message-feedback-submission.md index 51c754dbd3..9fb9e1b0f5 100644 --- a/.agents/notes/implemented/feature/2026-09-10-symmetric-message-feedback-submission.md +++ b/.agents/notes/archived/feature/2026-09-10-symmetric-message-feedback-submission.md @@ -1,6 +1,7 @@ # Agent Note: Symmetric message feedback submission Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-10-symmetric-message-feedback-submission.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-10-symmetric-message-feedback-submission.zh.md b/.agents/notes/archived/feature/2026-09-10-symmetric-message-feedback-submission.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-10-symmetric-message-feedback-submission.zh.md rename to .agents/notes/archived/feature/2026-09-10-symmetric-message-feedback-submission.zh.md index 0ba5d1a1c5..58cf25b23a 100644 --- a/.agents/notes/implemented/feature/2026-09-10-symmetric-message-feedback-submission.zh.md +++ b/.agents/notes/archived/feature/2026-09-10-symmetric-message-feedback-submission.zh.md @@ -1,6 +1,7 @@ # Agent Note: 对称消息反馈提交 Status: implemented +Archived: 2026-09-30 [English](2026-09-10-symmetric-message-feedback-submission.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-11-desktop-mandatory-update-client.i18n.yaml b/.agents/notes/archived/feature/2026-09-11-desktop-mandatory-update-client.i18n.yaml new file mode 100644 index 0000000000..d2540328f3 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-11-desktop-mandatory-update-client.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-11-desktop-mandatory-update-client.md +2026-09-11-desktop-mandatory-update-client.md: 86d1861469cde2b01722d9fdd899d1bed078f135 +2026-09-11-desktop-mandatory-update-client.zh.md: c8b2a3f0f1e5e043258b041078af986a741c72be diff --git a/.agents/notes/implemented/feature/2026-09-11-desktop-mandatory-update-client.md b/.agents/notes/archived/feature/2026-09-11-desktop-mandatory-update-client.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-11-desktop-mandatory-update-client.md rename to .agents/notes/archived/feature/2026-09-11-desktop-mandatory-update-client.md index 838403a2b1..86d1861469 100644 --- a/.agents/notes/implemented/feature/2026-09-11-desktop-mandatory-update-client.md +++ b/.agents/notes/archived/feature/2026-09-11-desktop-mandatory-update-client.md @@ -1,6 +1,7 @@ # Agent Note: Desktop mandatory-update client and blocking window Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-11-desktop-mandatory-update-client.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-11-desktop-mandatory-update-client.zh.md b/.agents/notes/archived/feature/2026-09-11-desktop-mandatory-update-client.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-11-desktop-mandatory-update-client.zh.md rename to .agents/notes/archived/feature/2026-09-11-desktop-mandatory-update-client.zh.md index f3c862fdcc..c8b2a3f0f1 100644 --- a/.agents/notes/implemented/feature/2026-09-11-desktop-mandatory-update-client.zh.md +++ b/.agents/notes/archived/feature/2026-09-11-desktop-mandatory-update-client.zh.md @@ -1,6 +1,7 @@ # Agent Note: Desktop 强更客户端与阻塞窗口 Status: implemented +Archived: 2026-09-30 [English](2026-09-11-desktop-mandatory-update-client.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-11-sidebar-document-preview-polish.i18n.yaml b/.agents/notes/archived/feature/2026-09-11-sidebar-document-preview-polish.i18n.yaml new file mode 100644 index 0000000000..712021e78e --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-11-sidebar-document-preview-polish.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-11-sidebar-document-preview-polish.md +2026-09-11-sidebar-document-preview-polish.md: 2629646f803a45223421d371d7e92a35908e37d9 +2026-09-11-sidebar-document-preview-polish.zh.md: 2cc93195b1bddba6233c55b56018ac20db58c63a diff --git a/.agents/notes/implemented/feature/2026-09-11-sidebar-document-preview-polish.md b/.agents/notes/archived/feature/2026-09-11-sidebar-document-preview-polish.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-11-sidebar-document-preview-polish.md rename to .agents/notes/archived/feature/2026-09-11-sidebar-document-preview-polish.md index b781418815..2629646f80 100644 --- a/.agents/notes/implemented/feature/2026-09-11-sidebar-document-preview-polish.md +++ b/.agents/notes/archived/feature/2026-09-11-sidebar-document-preview-polish.md @@ -1,6 +1,7 @@ # Agent Note: Sidebar document preview polish Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-11-sidebar-document-preview-polish.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-11-sidebar-document-preview-polish.zh.md b/.agents/notes/archived/feature/2026-09-11-sidebar-document-preview-polish.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-11-sidebar-document-preview-polish.zh.md rename to .agents/notes/archived/feature/2026-09-11-sidebar-document-preview-polish.zh.md index 43016af0df..2cc93195b1 100644 --- a/.agents/notes/implemented/feature/2026-09-11-sidebar-document-preview-polish.zh.md +++ b/.agents/notes/archived/feature/2026-09-11-sidebar-document-preview-polish.zh.md @@ -1,6 +1,7 @@ # Agent Note:侧边栏文档预览打磨 Status: implemented +Archived: 2026-09-30 [English](2026-09-11-sidebar-document-preview-polish.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-11-turn-changed-files-card.i18n.yaml b/.agents/notes/archived/feature/2026-09-11-turn-changed-files-card.i18n.yaml new file mode 100644 index 0000000000..9b1a412a55 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-11-turn-changed-files-card.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-11-turn-changed-files-card.md +2026-09-11-turn-changed-files-card.md: 9a34d773cb0a0cc1e7d25d8d54c075093ac54f48 +2026-09-11-turn-changed-files-card.zh.md: ad97d0273243ca4eea079e2a8ebe3f849e528550 diff --git a/.agents/notes/implemented/feature/2026-09-11-turn-changed-files-card.md b/.agents/notes/archived/feature/2026-09-11-turn-changed-files-card.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-11-turn-changed-files-card.md rename to .agents/notes/archived/feature/2026-09-11-turn-changed-files-card.md index 0c41783c6d..9a34d773cb 100644 --- a/.agents/notes/implemented/feature/2026-09-11-turn-changed-files-card.md +++ b/.agents/notes/archived/feature/2026-09-11-turn-changed-files-card.md @@ -1,6 +1,7 @@ # Agent Note: Turn changed-files card Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-11-turn-changed-files-card.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-11-turn-changed-files-card.zh.md b/.agents/notes/archived/feature/2026-09-11-turn-changed-files-card.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-11-turn-changed-files-card.zh.md rename to .agents/notes/archived/feature/2026-09-11-turn-changed-files-card.zh.md index f417b31b89..ad97d02732 100644 --- a/.agents/notes/implemented/feature/2026-09-11-turn-changed-files-card.zh.md +++ b/.agents/notes/archived/feature/2026-09-11-turn-changed-files-card.zh.md @@ -1,6 +1,7 @@ # Agent Note: 本轮改动文件卡片 Status: implemented +Archived: 2026-09-30 [English](2026-09-11-turn-changed-files-card.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-12-mcp-resources-and-instructions.i18n.yaml b/.agents/notes/archived/feature/2026-09-12-mcp-resources-and-instructions.i18n.yaml new file mode 100644 index 0000000000..639b005e5a --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-12-mcp-resources-and-instructions.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-12-mcp-resources-and-instructions.md +2026-09-12-mcp-resources-and-instructions.md: 35d67988e73dc6bffef6bf6f01054405bcccc038 +2026-09-12-mcp-resources-and-instructions.zh.md: d9f0f2bd3f0728865638d18d0528bd82629df70b diff --git a/.agents/notes/implemented/feature/2026-09-12-mcp-resources-and-instructions.md b/.agents/notes/archived/feature/2026-09-12-mcp-resources-and-instructions.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-12-mcp-resources-and-instructions.md rename to .agents/notes/archived/feature/2026-09-12-mcp-resources-and-instructions.md index a5eabd6170..35d67988e7 100644 --- a/.agents/notes/implemented/feature/2026-09-12-mcp-resources-and-instructions.md +++ b/.agents/notes/archived/feature/2026-09-12-mcp-resources-and-instructions.md @@ -1,6 +1,7 @@ # Agent Note: On-demand MCP resources and scoped server instructions Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-12-mcp-resources-and-instructions.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-12-mcp-resources-and-instructions.zh.md b/.agents/notes/archived/feature/2026-09-12-mcp-resources-and-instructions.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-12-mcp-resources-and-instructions.zh.md rename to .agents/notes/archived/feature/2026-09-12-mcp-resources-and-instructions.zh.md index 44890b2394..d9f0f2bd3f 100644 --- a/.agents/notes/implemented/feature/2026-09-12-mcp-resources-and-instructions.zh.md +++ b/.agents/notes/archived/feature/2026-09-12-mcp-resources-and-instructions.zh.md @@ -1,6 +1,7 @@ # Agent Note: 按需 MCP 资源与作用域服务器指令 Status: implemented +Archived: 2026-09-30 [English](2026-09-12-mcp-resources-and-instructions.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-12-mcp-sdk-protocol-negotiation.i18n.yaml b/.agents/notes/archived/feature/2026-09-12-mcp-sdk-protocol-negotiation.i18n.yaml new file mode 100644 index 0000000000..d1ca22630e --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-12-mcp-sdk-protocol-negotiation.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-12-mcp-sdk-protocol-negotiation.md +2026-09-12-mcp-sdk-protocol-negotiation.md: 5fadb93c14ea492cf8d614a434f6e68b384541fe +2026-09-12-mcp-sdk-protocol-negotiation.zh.md: 7e076ff66a272fa29de129ba08269feab107b9b3 diff --git a/.agents/notes/implemented/feature/2026-09-12-mcp-sdk-protocol-negotiation.md b/.agents/notes/archived/feature/2026-09-12-mcp-sdk-protocol-negotiation.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-12-mcp-sdk-protocol-negotiation.md rename to .agents/notes/archived/feature/2026-09-12-mcp-sdk-protocol-negotiation.md index 74f027cead..5fadb93c14 100644 --- a/.agents/notes/implemented/feature/2026-09-12-mcp-sdk-protocol-negotiation.md +++ b/.agents/notes/archived/feature/2026-09-12-mcp-sdk-protocol-negotiation.md @@ -1,6 +1,7 @@ # Agent Note: MCP SDK protocol negotiation Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-12-mcp-sdk-protocol-negotiation.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-12-mcp-sdk-protocol-negotiation.zh.md b/.agents/notes/archived/feature/2026-09-12-mcp-sdk-protocol-negotiation.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-12-mcp-sdk-protocol-negotiation.zh.md rename to .agents/notes/archived/feature/2026-09-12-mcp-sdk-protocol-negotiation.zh.md index bc8a9a41b8..7e076ff66a 100644 --- a/.agents/notes/implemented/feature/2026-09-12-mcp-sdk-protocol-negotiation.zh.md +++ b/.agents/notes/archived/feature/2026-09-12-mcp-sdk-protocol-negotiation.zh.md @@ -1,6 +1,7 @@ # Agent Note: MCP SDK 协议协商 Status: implemented +Archived: 2026-09-30 [English](2026-09-12-mcp-sdk-protocol-negotiation.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-13-macos-hidden-titlebar-vibrancy.i18n.yaml b/.agents/notes/archived/feature/2026-09-13-macos-hidden-titlebar-vibrancy.i18n.yaml new file mode 100644 index 0000000000..6dfd6b7356 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-13-macos-hidden-titlebar-vibrancy.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-13-macos-hidden-titlebar-vibrancy.md +2026-09-13-macos-hidden-titlebar-vibrancy.md: acc3c5c410a7ebc2c7ebf7bc5fd20778ccddd0fc +2026-09-13-macos-hidden-titlebar-vibrancy.zh.md: b19070ee9741a5b3aa73a5a5fc62887104e471ad diff --git a/.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.md b/.agents/notes/archived/feature/2026-09-13-macos-hidden-titlebar-vibrancy.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.md rename to .agents/notes/archived/feature/2026-09-13-macos-hidden-titlebar-vibrancy.md index 7e69fea3a4..acc3c5c410 100644 --- a/.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.md +++ b/.agents/notes/archived/feature/2026-09-13-macos-hidden-titlebar-vibrancy.md @@ -1,6 +1,7 @@ # Agent Note: macOS hidden titlebar with vibrancy sidebar Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-13-macos-hidden-titlebar-vibrancy.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.zh.md b/.agents/notes/archived/feature/2026-09-13-macos-hidden-titlebar-vibrancy.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.zh.md rename to .agents/notes/archived/feature/2026-09-13-macos-hidden-titlebar-vibrancy.zh.md index fbba185740..b19070ee97 100644 --- a/.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.zh.md +++ b/.agents/notes/archived/feature/2026-09-13-macos-hidden-titlebar-vibrancy.zh.md @@ -1,6 +1,7 @@ # Agent Note: macOS hidden titlebar with vibrancy sidebar Status: implemented +Archived: 2026-09-30 [English](2026-09-13-macos-hidden-titlebar-vibrancy.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-13-mcp-resources-in-profiles.i18n.yaml b/.agents/notes/archived/feature/2026-09-13-mcp-resources-in-profiles.i18n.yaml new file mode 100644 index 0000000000..d5e3b7d693 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-13-mcp-resources-in-profiles.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-13-mcp-resources-in-profiles.md +2026-09-13-mcp-resources-in-profiles.md: 90cdda6bda977160170f924d9e341b4b975f3a02 +2026-09-13-mcp-resources-in-profiles.zh.md: f54a68c5cc2171e6ec1764df45958754cd797c6f diff --git a/.agents/notes/implemented/feature/2026-09-13-mcp-resources-in-profiles.md b/.agents/notes/archived/feature/2026-09-13-mcp-resources-in-profiles.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-13-mcp-resources-in-profiles.md rename to .agents/notes/archived/feature/2026-09-13-mcp-resources-in-profiles.md index 236cd28493..90cdda6bda 100644 --- a/.agents/notes/implemented/feature/2026-09-13-mcp-resources-in-profiles.md +++ b/.agents/notes/archived/feature/2026-09-13-mcp-resources-in-profiles.md @@ -1,6 +1,7 @@ # Agent Note: MCP resource availability follows configured servers Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-13-mcp-resources-in-profiles.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-13-mcp-resources-in-profiles.zh.md b/.agents/notes/archived/feature/2026-09-13-mcp-resources-in-profiles.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-13-mcp-resources-in-profiles.zh.md rename to .agents/notes/archived/feature/2026-09-13-mcp-resources-in-profiles.zh.md index d2e0fbc45c..f54a68c5cc 100644 --- a/.agents/notes/implemented/feature/2026-09-13-mcp-resources-in-profiles.zh.md +++ b/.agents/notes/archived/feature/2026-09-13-mcp-resources-in-profiles.zh.md @@ -1,6 +1,7 @@ # Agent Note: MCP 资源可用性取决于已配置服务器 Status: implemented +Archived: 2026-09-30 [English](2026-09-13-mcp-resources-in-profiles.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-14-composer-selection-keyboard.i18n.yaml b/.agents/notes/archived/feature/2026-09-14-composer-selection-keyboard.i18n.yaml new file mode 100644 index 0000000000..e8380e714d --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-14-composer-selection-keyboard.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-14-composer-selection-keyboard.md +2026-09-14-composer-selection-keyboard.md: f8be46c1054989f02e76d4a6c0be8eb79d50607a +2026-09-14-composer-selection-keyboard.zh.md: 41cac14718e441f9d568624671eaadeeb72f9608 diff --git a/.agents/notes/implemented/feature/2026-09-14-composer-selection-keyboard.md b/.agents/notes/archived/feature/2026-09-14-composer-selection-keyboard.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-14-composer-selection-keyboard.md rename to .agents/notes/archived/feature/2026-09-14-composer-selection-keyboard.md index 675e723910..f8be46c105 100644 --- a/.agents/notes/implemented/feature/2026-09-14-composer-selection-keyboard.md +++ b/.agents/notes/archived/feature/2026-09-14-composer-selection-keyboard.md @@ -1,6 +1,7 @@ # Agent Note: Composer selection surfaces mirror the composer's Enter and Escape keys Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-14-composer-selection-keyboard.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-14-composer-selection-keyboard.zh.md b/.agents/notes/archived/feature/2026-09-14-composer-selection-keyboard.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-14-composer-selection-keyboard.zh.md rename to .agents/notes/archived/feature/2026-09-14-composer-selection-keyboard.zh.md index 2b296a609c..41cac14718 100644 --- a/.agents/notes/implemented/feature/2026-09-14-composer-selection-keyboard.zh.md +++ b/.agents/notes/archived/feature/2026-09-14-composer-selection-keyboard.zh.md @@ -1,6 +1,7 @@ # Agent Note: composer 的选择界面沿用 composer 的 Enter 与 Escape Status: implemented +Archived: 2026-09-30 [English](2026-09-14-composer-selection-keyboard.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-14-docs-mermaid-viewer.i18n.yaml b/.agents/notes/archived/feature/2026-09-14-docs-mermaid-viewer.i18n.yaml new file mode 100644 index 0000000000..a9927dde9f --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-14-docs-mermaid-viewer.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-14-docs-mermaid-viewer.md +2026-09-14-docs-mermaid-viewer.md: 4ddeebfa7ec5cc54ae68461d4ba8d14546135fea +2026-09-14-docs-mermaid-viewer.zh.md: ddebf672aae29e0281249ace16e98e22504d6a2f diff --git a/.agents/notes/implemented/feature/2026-09-14-docs-mermaid-viewer.md b/.agents/notes/archived/feature/2026-09-14-docs-mermaid-viewer.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-14-docs-mermaid-viewer.md rename to .agents/notes/archived/feature/2026-09-14-docs-mermaid-viewer.md index 5cb4bae84f..4ddeebfa7e 100644 --- a/.agents/notes/implemented/feature/2026-09-14-docs-mermaid-viewer.md +++ b/.agents/notes/archived/feature/2026-09-14-docs-mermaid-viewer.md @@ -1,6 +1,7 @@ # Agent Note: Documentation diagram and image viewer Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-14-docs-mermaid-viewer.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-14-docs-mermaid-viewer.zh.md b/.agents/notes/archived/feature/2026-09-14-docs-mermaid-viewer.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-14-docs-mermaid-viewer.zh.md rename to .agents/notes/archived/feature/2026-09-14-docs-mermaid-viewer.zh.md index 665ab65e48..ddebf672aa 100644 --- a/.agents/notes/implemented/feature/2026-09-14-docs-mermaid-viewer.zh.md +++ b/.agents/notes/archived/feature/2026-09-14-docs-mermaid-viewer.zh.md @@ -1,6 +1,7 @@ # Agent Note: 文档站图表与图片查看器 Status: implemented +Archived: 2026-09-30 [English](2026-09-14-docs-mermaid-viewer.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-15-bundled-office-skills.i18n.yaml b/.agents/notes/archived/feature/2026-09-15-bundled-office-skills.i18n.yaml new file mode 100644 index 0000000000..173ab7adac --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-15-bundled-office-skills.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-15-bundled-office-skills.md +2026-09-15-bundled-office-skills.md: 6cddeeee8065898eae0609f091335dbca8499b95 +2026-09-15-bundled-office-skills.zh.md: 7e81113bc913f58278c684500c3e3e1d719c88fc diff --git a/.agents/notes/implemented/feature/2026-09-15-bundled-office-skills.md b/.agents/notes/archived/feature/2026-09-15-bundled-office-skills.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-15-bundled-office-skills.md rename to .agents/notes/archived/feature/2026-09-15-bundled-office-skills.md index 089ca0326a..6cddeeee80 100644 --- a/.agents/notes/implemented/feature/2026-09-15-bundled-office-skills.md +++ b/.agents/notes/archived/feature/2026-09-15-bundled-office-skills.md @@ -1,6 +1,7 @@ # Agent Note: Bundled Office skills with structural verification Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-15-bundled-office-skills.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-15-bundled-office-skills.zh.md b/.agents/notes/archived/feature/2026-09-15-bundled-office-skills.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-15-bundled-office-skills.zh.md rename to .agents/notes/archived/feature/2026-09-15-bundled-office-skills.zh.md index cd10aa863b..7e81113bc9 100644 --- a/.agents/notes/implemented/feature/2026-09-15-bundled-office-skills.zh.md +++ b/.agents/notes/archived/feature/2026-09-15-bundled-office-skills.zh.md @@ -1,6 +1,7 @@ # Agent Note: Bundled Office skills with structural verification Status: implemented +Archived: 2026-09-30 [English](2026-09-15-bundled-office-skills.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-15-changed-file-diff-preview.i18n.yaml b/.agents/notes/archived/feature/2026-09-15-changed-file-diff-preview.i18n.yaml new file mode 100644 index 0000000000..710d75ac59 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-15-changed-file-diff-preview.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-15-changed-file-diff-preview.md +2026-09-15-changed-file-diff-preview.md: ba8614829185dc258d2e422b2961c0ffdb380c0c +2026-09-15-changed-file-diff-preview.zh.md: eb81190754808cebda0455323e1304f816b7acb2 diff --git a/.agents/notes/implemented/feature/2026-09-15-changed-file-diff-preview.md b/.agents/notes/archived/feature/2026-09-15-changed-file-diff-preview.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-15-changed-file-diff-preview.md rename to .agents/notes/archived/feature/2026-09-15-changed-file-diff-preview.md index e265c1f452..ba86148291 100644 --- a/.agents/notes/implemented/feature/2026-09-15-changed-file-diff-preview.md +++ b/.agents/notes/archived/feature/2026-09-15-changed-file-diff-preview.md @@ -1,6 +1,7 @@ # Agent Note: Turn review tab Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-15-changed-file-diff-preview.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-15-changed-file-diff-preview.zh.md b/.agents/notes/archived/feature/2026-09-15-changed-file-diff-preview.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-15-changed-file-diff-preview.zh.md rename to .agents/notes/archived/feature/2026-09-15-changed-file-diff-preview.zh.md index 48571cd986..eb81190754 100644 --- a/.agents/notes/implemented/feature/2026-09-15-changed-file-diff-preview.zh.md +++ b/.agents/notes/archived/feature/2026-09-15-changed-file-diff-preview.zh.md @@ -1,6 +1,7 @@ # Agent Note: 轮次 review tab Status: implemented +Archived: 2026-09-30 [English](2026-09-15-changed-file-diff-preview.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-15-continuable-activation-capacity.i18n.yaml b/.agents/notes/archived/feature/2026-09-15-continuable-activation-capacity.i18n.yaml new file mode 100644 index 0000000000..1892b9e83d --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-15-continuable-activation-capacity.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-15-continuable-activation-capacity.md +2026-09-15-continuable-activation-capacity.md: fe53d659f1378e593822a34570422ac1f3d1c6a5 +2026-09-15-continuable-activation-capacity.zh.md: 61f1208a406e5f2fc142174b1fc713696ae7885d diff --git a/.agents/notes/implemented/feature/2026-09-15-continuable-activation-capacity.md b/.agents/notes/archived/feature/2026-09-15-continuable-activation-capacity.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-15-continuable-activation-capacity.md rename to .agents/notes/archived/feature/2026-09-15-continuable-activation-capacity.md index a6403d10fd..fe53d659f1 100644 --- a/.agents/notes/implemented/feature/2026-09-15-continuable-activation-capacity.md +++ b/.agents/notes/archived/feature/2026-09-15-continuable-activation-capacity.md @@ -1,6 +1,7 @@ # Agent Note: Shared continuable Activation capacity Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-15-continuable-activation-capacity.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-15-continuable-activation-capacity.zh.md b/.agents/notes/archived/feature/2026-09-15-continuable-activation-capacity.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-15-continuable-activation-capacity.zh.md rename to .agents/notes/archived/feature/2026-09-15-continuable-activation-capacity.zh.md index 75cf6ca7a3..61f1208a40 100644 --- a/.agents/notes/implemented/feature/2026-09-15-continuable-activation-capacity.zh.md +++ b/.agents/notes/archived/feature/2026-09-15-continuable-activation-capacity.zh.md @@ -1,6 +1,7 @@ # Agent Note: 共享的可续接 Activation 容量 Status: implemented +Archived: 2026-09-30 [English](2026-09-15-continuable-activation-capacity.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-15-docs-page-markdown-actions.i18n.yaml b/.agents/notes/archived/feature/2026-09-15-docs-page-markdown-actions.i18n.yaml new file mode 100644 index 0000000000..505768c8f8 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-15-docs-page-markdown-actions.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-15-docs-page-markdown-actions.md +2026-09-15-docs-page-markdown-actions.md: 8db5989de8860de07a9012f315deae4bbf069738 +2026-09-15-docs-page-markdown-actions.zh.md: 8cfe44aa2de5d044d999d453bd69ffe169a13c63 diff --git a/.agents/notes/implemented/feature/2026-09-15-docs-page-markdown-actions.md b/.agents/notes/archived/feature/2026-09-15-docs-page-markdown-actions.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-15-docs-page-markdown-actions.md rename to .agents/notes/archived/feature/2026-09-15-docs-page-markdown-actions.md index ff4002fd69..8db5989de8 100644 --- a/.agents/notes/implemented/feature/2026-09-15-docs-page-markdown-actions.md +++ b/.agents/notes/archived/feature/2026-09-15-docs-page-markdown-actions.md @@ -1,6 +1,7 @@ # Agent Note: Page Markdown actions in the documentation site Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-15-docs-page-markdown-actions.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-15-docs-page-markdown-actions.zh.md b/.agents/notes/archived/feature/2026-09-15-docs-page-markdown-actions.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-15-docs-page-markdown-actions.zh.md rename to .agents/notes/archived/feature/2026-09-15-docs-page-markdown-actions.zh.md index 4e2db5e55f..8cfe44aa2d 100644 --- a/.agents/notes/implemented/feature/2026-09-15-docs-page-markdown-actions.zh.md +++ b/.agents/notes/archived/feature/2026-09-15-docs-page-markdown-actions.zh.md @@ -1,6 +1,7 @@ # Agent Note: 文档站页面 Markdown 操作 Status: implemented +Archived: 2026-09-30 [English](2026-09-15-docs-page-markdown-actions.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-15-markdown-file-preview-links.i18n.yaml b/.agents/notes/archived/feature/2026-09-15-markdown-file-preview-links.i18n.yaml new file mode 100644 index 0000000000..1cba5fecff --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-15-markdown-file-preview-links.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-15-markdown-file-preview-links.md +2026-09-15-markdown-file-preview-links.md: fadd0cb8a38cfbd32bf0542293063894a7f289ab +2026-09-15-markdown-file-preview-links.zh.md: 5c028a6f14a51dfea9d4fc95d802f2863ce014e0 diff --git a/.agents/notes/implemented/feature/2026-09-15-markdown-file-preview-links.md b/.agents/notes/archived/feature/2026-09-15-markdown-file-preview-links.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-15-markdown-file-preview-links.md rename to .agents/notes/archived/feature/2026-09-15-markdown-file-preview-links.md index d9d535afc5..fadd0cb8a3 100644 --- a/.agents/notes/implemented/feature/2026-09-15-markdown-file-preview-links.md +++ b/.agents/notes/archived/feature/2026-09-15-markdown-file-preview-links.md @@ -1,6 +1,7 @@ # Agent Note: Markdown file preview links Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-15-markdown-file-preview-links.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-15-markdown-file-preview-links.zh.md b/.agents/notes/archived/feature/2026-09-15-markdown-file-preview-links.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-15-markdown-file-preview-links.zh.md rename to .agents/notes/archived/feature/2026-09-15-markdown-file-preview-links.zh.md index 63c18e284b..5c028a6f14 100644 --- a/.agents/notes/implemented/feature/2026-09-15-markdown-file-preview-links.zh.md +++ b/.agents/notes/archived/feature/2026-09-15-markdown-file-preview-links.zh.md @@ -1,6 +1,7 @@ # Agent Note: Markdown 文件预览链接 Status: implemented +Archived: 2026-09-30 [English](2026-09-15-markdown-file-preview-links.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-15-profile-command-shorthand.i18n.yaml b/.agents/notes/archived/feature/2026-09-15-profile-command-shorthand.i18n.yaml new file mode 100644 index 0000000000..84daa67e0f --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-15-profile-command-shorthand.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-15-profile-command-shorthand.md +2026-09-15-profile-command-shorthand.md: 9fe20dee4331f647d01a68e10c99af41fc5b39e0 +2026-09-15-profile-command-shorthand.zh.md: e3c26d76f06520287694113070a933eaef9a6acc diff --git a/.agents/notes/implemented/feature/2026-09-15-profile-command-shorthand.md b/.agents/notes/archived/feature/2026-09-15-profile-command-shorthand.md similarity index 98% rename from .agents/notes/implemented/feature/2026-09-15-profile-command-shorthand.md rename to .agents/notes/archived/feature/2026-09-15-profile-command-shorthand.md index 15bdf30b98..9fe20dee43 100644 --- a/.agents/notes/implemented/feature/2026-09-15-profile-command-shorthand.md +++ b/.agents/notes/archived/feature/2026-09-15-profile-command-shorthand.md @@ -1,6 +1,7 @@ # Agent Note: Profile command shorthand Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-15-profile-command-shorthand.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-15-profile-command-shorthand.zh.md b/.agents/notes/archived/feature/2026-09-15-profile-command-shorthand.zh.md similarity index 98% rename from .agents/notes/implemented/feature/2026-09-15-profile-command-shorthand.zh.md rename to .agents/notes/archived/feature/2026-09-15-profile-command-shorthand.zh.md index 77ffd2324f..e3c26d76f0 100644 --- a/.agents/notes/implemented/feature/2026-09-15-profile-command-shorthand.zh.md +++ b/.agents/notes/archived/feature/2026-09-15-profile-command-shorthand.zh.md @@ -1,6 +1,7 @@ # Agent Note: Profile 命令简写 Status: implemented +Archived: 2026-09-30 [English](2026-09-15-profile-command-shorthand.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-16-desktop-onboarding.i18n.yaml b/.agents/notes/archived/feature/2026-09-16-desktop-onboarding.i18n.yaml new file mode 100644 index 0000000000..cd00d5b7b9 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-16-desktop-onboarding.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-16-desktop-onboarding.md +2026-09-16-desktop-onboarding.md: 86b36d1da9a7d290ba8cc3c42d217dbdff524122 +2026-09-16-desktop-onboarding.zh.md: 28d02b5ded239b918791d5ca7d9ac25aa7821bfc diff --git a/.agents/notes/implemented/feature/2026-09-16-desktop-onboarding.md b/.agents/notes/archived/feature/2026-09-16-desktop-onboarding.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-16-desktop-onboarding.md rename to .agents/notes/archived/feature/2026-09-16-desktop-onboarding.md index e8b1b99279..86b36d1da9 100644 --- a/.agents/notes/implemented/feature/2026-09-16-desktop-onboarding.md +++ b/.agents/notes/archived/feature/2026-09-16-desktop-onboarding.md @@ -1,6 +1,7 @@ # Agent Note: Device-local Desktop onboarding Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-16-desktop-onboarding.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-16-desktop-onboarding.zh.md b/.agents/notes/archived/feature/2026-09-16-desktop-onboarding.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-16-desktop-onboarding.zh.md rename to .agents/notes/archived/feature/2026-09-16-desktop-onboarding.zh.md index 8a23ff191a..28d02b5ded 100644 --- a/.agents/notes/implemented/feature/2026-09-16-desktop-onboarding.zh.md +++ b/.agents/notes/archived/feature/2026-09-16-desktop-onboarding.zh.md @@ -1,6 +1,7 @@ # Agent Note: 设备本地 Desktop 引导 Status: implemented +Archived: 2026-09-30 [English](2026-09-16-desktop-onboarding.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-16-open-in-default-app-for-sidebar-files.i18n.yaml b/.agents/notes/archived/feature/2026-09-16-open-in-default-app-for-sidebar-files.i18n.yaml new file mode 100644 index 0000000000..5c05d2c8a1 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-16-open-in-default-app-for-sidebar-files.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-16-open-in-default-app-for-sidebar-files.md +2026-09-16-open-in-default-app-for-sidebar-files.md: 4b8aaeb59c4a1186139ebc1a1150fd90e30c17dd +2026-09-16-open-in-default-app-for-sidebar-files.zh.md: 37f943a823a288309d75553b5a8a95fa727f6804 diff --git a/.agents/notes/implemented/feature/2026-09-16-open-in-default-app-for-sidebar-files.md b/.agents/notes/archived/feature/2026-09-16-open-in-default-app-for-sidebar-files.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-16-open-in-default-app-for-sidebar-files.md rename to .agents/notes/archived/feature/2026-09-16-open-in-default-app-for-sidebar-files.md index fa7506be77..4b8aaeb59c 100644 --- a/.agents/notes/implemented/feature/2026-09-16-open-in-default-app-for-sidebar-files.md +++ b/.agents/notes/archived/feature/2026-09-16-open-in-default-app-for-sidebar-files.md @@ -1,6 +1,7 @@ # Agent Note: Open Sidebar-previewed files in the default application Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-16-open-in-default-app-for-sidebar-files.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-16-open-in-default-app-for-sidebar-files.zh.md b/.agents/notes/archived/feature/2026-09-16-open-in-default-app-for-sidebar-files.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-16-open-in-default-app-for-sidebar-files.zh.md rename to .agents/notes/archived/feature/2026-09-16-open-in-default-app-for-sidebar-files.zh.md index af124182dc..37f943a823 100644 --- a/.agents/notes/implemented/feature/2026-09-16-open-in-default-app-for-sidebar-files.zh.md +++ b/.agents/notes/archived/feature/2026-09-16-open-in-default-app-for-sidebar-files.zh.md @@ -1,6 +1,7 @@ # Agent Note:用默认应用打开 Sidebar 预览的文件 Status: implemented +Archived: 2026-09-30 [English](2026-09-16-open-in-default-app-for-sidebar-files.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-16-sandbox-same-mode.i18n.yaml b/.agents/notes/archived/feature/2026-09-16-sandbox-same-mode.i18n.yaml new file mode 100644 index 0000000000..c72685cbcc --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-16-sandbox-same-mode.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-16-sandbox-same-mode.md +2026-09-16-sandbox-same-mode.md: b7f817029dee32851df222c147ea09083043ee7d +2026-09-16-sandbox-same-mode.zh.md: b0a67d8c04f091deaa992602b59d2fba26b1c2ae diff --git a/.agents/notes/implemented/feature/2026-09-16-sandbox-same-mode.md b/.agents/notes/archived/feature/2026-09-16-sandbox-same-mode.md similarity index 98% rename from .agents/notes/implemented/feature/2026-09-16-sandbox-same-mode.md rename to .agents/notes/archived/feature/2026-09-16-sandbox-same-mode.md index f1b7c3ae05..b7f817029d 100644 --- a/.agents/notes/implemented/feature/2026-09-16-sandbox-same-mode.md +++ b/.agents/notes/archived/feature/2026-09-16-sandbox-same-mode.md @@ -1,6 +1,7 @@ # Agent Note: Repeated sandbox modes need no approval Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-16-sandbox-same-mode.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-16-sandbox-same-mode.zh.md b/.agents/notes/archived/feature/2026-09-16-sandbox-same-mode.zh.md similarity index 98% rename from .agents/notes/implemented/feature/2026-09-16-sandbox-same-mode.zh.md rename to .agents/notes/archived/feature/2026-09-16-sandbox-same-mode.zh.md index 0bb0441523..b0a67d8c04 100644 --- a/.agents/notes/implemented/feature/2026-09-16-sandbox-same-mode.zh.md +++ b/.agents/notes/archived/feature/2026-09-16-sandbox-same-mode.zh.md @@ -1,6 +1,7 @@ # Agent Note: 重复沙箱模式无需审批 Status: implemented +Archived: 2026-09-30 [English](2026-09-16-sandbox-same-mode.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-16-unified-model-input-controls.i18n.yaml b/.agents/notes/archived/feature/2026-09-16-unified-model-input-controls.i18n.yaml new file mode 100644 index 0000000000..ef2406ca3b --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-16-unified-model-input-controls.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-16-unified-model-input-controls.md +2026-09-16-unified-model-input-controls.md: 4c188de6ab649eb6db627cf6811a7fa70e010b0e +2026-09-16-unified-model-input-controls.zh.md: 1e15c3fa62d53d5fff9c6a8b041078fd65c4e013 diff --git a/.agents/notes/implemented/feature/2026-09-16-unified-model-input-controls.md b/.agents/notes/archived/feature/2026-09-16-unified-model-input-controls.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-16-unified-model-input-controls.md rename to .agents/notes/archived/feature/2026-09-16-unified-model-input-controls.md index 7391388092..4c188de6ab 100644 --- a/.agents/notes/implemented/feature/2026-09-16-unified-model-input-controls.md +++ b/.agents/notes/archived/feature/2026-09-16-unified-model-input-controls.md @@ -1,6 +1,7 @@ # Agent Note: Unified model input controls Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-16-unified-model-input-controls.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-16-unified-model-input-controls.zh.md b/.agents/notes/archived/feature/2026-09-16-unified-model-input-controls.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-16-unified-model-input-controls.zh.md rename to .agents/notes/archived/feature/2026-09-16-unified-model-input-controls.zh.md index 691ca5229c..1e15c3fa62 100644 --- a/.agents/notes/implemented/feature/2026-09-16-unified-model-input-controls.zh.md +++ b/.agents/notes/archived/feature/2026-09-16-unified-model-input-controls.zh.md @@ -1,6 +1,7 @@ # Agent Note:统一模型输入控件 Status: implemented +Archived: 2026-09-30 [English](2026-09-16-unified-model-input-controls.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-16-windows-desktop-titlebar.i18n.yaml b/.agents/notes/archived/feature/2026-09-16-windows-desktop-titlebar.i18n.yaml new file mode 100644 index 0000000000..2a96bced1d --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-16-windows-desktop-titlebar.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-16-windows-desktop-titlebar.md +2026-09-16-windows-desktop-titlebar.md: 999deffe96440c2f3136004e576960a4bc46f430 +2026-09-16-windows-desktop-titlebar.zh.md: 8bc310bf4cd7bf6655904a73b798dd343e794930 diff --git a/.agents/notes/implemented/feature/2026-09-16-windows-desktop-titlebar.md b/.agents/notes/archived/feature/2026-09-16-windows-desktop-titlebar.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-16-windows-desktop-titlebar.md rename to .agents/notes/archived/feature/2026-09-16-windows-desktop-titlebar.md index 17fd2aac30..999deffe96 100644 --- a/.agents/notes/implemented/feature/2026-09-16-windows-desktop-titlebar.md +++ b/.agents/notes/archived/feature/2026-09-16-windows-desktop-titlebar.md @@ -1,6 +1,7 @@ # Agent Note: Windows desktop caption and application menus Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-16-windows-desktop-titlebar.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-16-windows-desktop-titlebar.zh.md b/.agents/notes/archived/feature/2026-09-16-windows-desktop-titlebar.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-16-windows-desktop-titlebar.zh.md rename to .agents/notes/archived/feature/2026-09-16-windows-desktop-titlebar.zh.md index 05903d8696..8bc310bf4c 100644 --- a/.agents/notes/implemented/feature/2026-09-16-windows-desktop-titlebar.zh.md +++ b/.agents/notes/archived/feature/2026-09-16-windows-desktop-titlebar.zh.md @@ -1,6 +1,7 @@ # Agent Note: Windows 桌面顶栏与应用菜单 Status: implemented +Archived: 2026-09-30 [English](2026-09-16-windows-desktop-titlebar.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-17-developer-tools-settings.i18n.yaml b/.agents/notes/archived/feature/2026-09-17-developer-tools-settings.i18n.yaml new file mode 100644 index 0000000000..68dfce0f07 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-17-developer-tools-settings.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-17-developer-tools-settings.md +2026-09-17-developer-tools-settings.md: b17a79594e44b8fa749fc16f41eae2295f5502ce +2026-09-17-developer-tools-settings.zh.md: 20ea9c73f948e1738af29a3d422eb04d9e56028e diff --git a/.agents/notes/implemented/feature/2026-09-17-developer-tools-settings.md b/.agents/notes/archived/feature/2026-09-17-developer-tools-settings.md similarity index 51% rename from .agents/notes/implemented/feature/2026-09-17-developer-tools-settings.md rename to .agents/notes/archived/feature/2026-09-17-developer-tools-settings.md index 5ae8861efa..b17a79594e 100644 --- a/.agents/notes/implemented/feature/2026-09-17-developer-tools-settings.md +++ b/.agents/notes/archived/feature/2026-09-17-developer-tools-settings.md @@ -1,6 +1,7 @@ # Agent Note: Shared developer-tool settings Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-17-developer-tools-settings.zh.md) @@ -12,9 +13,9 @@ Diagnostic views, preset selection and changed-file summaries add complexity to The settings-owned `ctx.configForms.developerTools` preference uses a shared entry form and exposes one accepted `ui-settings.enabled` preference. The initial default-off choice reduces routine-task complexity; [Developer tools default on after preference resolution](2026-09-20-developer-tools-default-on.md) supersedes that default and owns startup enablement. General Settings offers the same switch on Web and desktop. The existing settings transport owns validation, ordered writes, persistence and recovery; loopback Web and desktop follow Host acceptance. Remote Web owns one browser-local observable shared by all consumers until reload, with no Host writes. -Off hides the Trajectory View, hides tool Inspect actions when no visible View declares tool-call inspection, hides the conversation View tab bar while fewer than two Views are available, hides the new-session preset chip and the settings row that allows switching Agent modes, and omits the changed-files card and its summary read. Views registered by other plugins stay available. Turning it off while Trajectory is active activates Chat. The preset composition, saved default, Session events and explicit delivery cards remain unchanged. This preference is presentation policy, not Host authorization. +Off hides the Trajectory View, hides tool Inspect actions when no visible View declares tool-call inspection, hides the conversation View tab bar while fewer than two Views are available, hides built-in PTC and Minimal choices, and omits the changed-files card and its summary read. Views registered by other plugins stay available. Turning it off while Trajectory is active activates Chat. Existing Session presets, Session events and explicit delivery cards remain unchanged. Preset choices, default correction and unapplied selections follow [the preset UI policy](../../../../packages/client/ui-agent-preset/README.md). This preference is presentation policy, not Host authorization. -Plugin assembly translates the shared preference into component-specific capabilities (`showCodeDiff`, `showPresetPicker`, and `interactivePreview`). Conversation supplies the inspection callback using the visible target's `toolCallFocus`; Chat does not name the target. The builtin HTML renderer uses DOMPurify for complete-document sanitization and parser-mutation defenses. Off preserves root styling, removes active documents, resource hints, SVG animation and all `href` attributes, and mounts an iframe with no sandbox permissions and a CSP denying scripts and external resources. It reads no related files. On retains the opaque scripted Blob renderer and its bounded related-file reads. Switching modes replaces the browsing context and disposes pending reads. The [document-preview decision](../architecture/2026-09-08-document-preview-operations.md) and [filesystem-read authority](../architecture/2026-09-09-workspace-file-read-authority.md) remain authoritative for advanced rendering and Host read access. +Plugin assembly translates the shared preference into component-specific capabilities (`showCodeDiff`, the new-session preset chip's `developerTools`, and `interactivePreview`). Conversation supplies the inspection callback using the visible target's `toolCallFocus`; Chat does not name the target. The builtin HTML renderer uses DOMPurify for complete-document sanitization and parser-mutation defenses. Off preserves root styling, removes active documents, resource hints, SVG animation and all `href` attributes, and mounts an iframe with no sandbox permissions and a CSP denying scripts and external resources. It reads no related files. On retains the opaque scripted Blob renderer and its bounded related-file reads. Switching modes replaces the browsing context and disposes pending reads. The [document-preview decision](../architecture/2026-09-08-document-preview-operations.md) and [filesystem-read authority](../architecture/2026-09-09-workspace-file-read-authority.md) remain authoritative for advanced rendering and Host read access. ## Alternatives considered @@ -26,4 +27,4 @@ Plugin assembly translates the shared preference into component-specific capabil Basic HTML sacrifices JavaScript, external and related resources, and link navigation; inline styles and data images remain available. Advanced mode retains normal browser networking and does not gain parent-origin, popup, form or top-navigation privileges. The setting does not constrain third-party preview implementations or revoke Host filesystem authority. -Component and settings tests cover defaulting, schema rejection, accepted-state updates, chip disclosure, changed-file visibility and iframe disposal. The recorded-session [document preview](../../../../apps/web/tests/document-preview.e2e.ts) and [changed-files](../../../../apps/web/tests/changed-files-turn.e2e.ts) scenarios exercise the real settings control and the shared renderer. The browser scaffold uses the shipped default unless a scenario specifies a preference. Settings chrome, document preview and changed-files scenarios explicitly disable developer tools; together they cover hidden diagnostic controls, static previews, and switching back to Chat. Refused Host writes recover accepted state and show the localized retry message. Native Electron execution remains unverified. +Component and settings tests cover defaulting, schema rejection, accepted-state updates, preset choice visibility, changed-file visibility and iframe disposal. The recorded-session [document preview](../../../../apps/web/tests/document-preview.e2e.ts) and [changed-files](../../../../apps/web/tests/changed-files-turn.e2e.ts) scenarios exercise the real settings control and the shared renderer. The browser scaffold uses the shipped default unless a scenario specifies a preference. Settings chrome, document preview and changed-files scenarios explicitly disable developer tools; together they cover hidden diagnostic controls, static previews, and switching back to Chat. Refused Host writes recover accepted state and show the localized retry message. Native Electron execution remains unverified. diff --git a/.agents/notes/implemented/feature/2026-09-17-developer-tools-settings.zh.md b/.agents/notes/archived/feature/2026-09-17-developer-tools-settings.zh.md similarity index 51% rename from .agents/notes/implemented/feature/2026-09-17-developer-tools-settings.zh.md rename to .agents/notes/archived/feature/2026-09-17-developer-tools-settings.zh.md index d6e8e138a3..20ea9c73f9 100644 --- a/.agents/notes/implemented/feature/2026-09-17-developer-tools-settings.zh.md +++ b/.agents/notes/archived/feature/2026-09-17-developer-tools-settings.zh.md @@ -1,6 +1,7 @@ # Agent Note: 共享开发者工具设置 Status: implemented +Archived: 2026-09-30 [English](2026-09-17-developer-tools-settings.md) | 中文 @@ -12,9 +13,9 @@ Status: implemented 设置域内的 `ctx.configForms.developerTools` 偏好对象使用共享条目表单,提供一个已接受的 `ui-settings.enabled` 偏好。最初默认关闭的选择用于降低日常任务的复杂度;[偏好解析后默认开启开发者工具](2026-09-20-developer-tools-default-on.zh.md)取代该默认值并负责启动时的启用策略。Web 和桌面端的通用设置提供同一个开关。现有设置传输负责验证、有序写入、持久化和恢复;回环 Web 和桌面端跟随 Host 接受的状态。远程 Web 持有一个所有消费者共享的浏览器本地可观察值,刷新后重置,不发送 Host 写入。 -关闭时隐藏 Trajectory View,在没有可见 View 声明工具调用检查能力时隐藏 Inspect 操作,可见 View 少于两个时隐藏会话 View 标签栏,隐藏新会话预设入口和「允许切换 agent 模式」设置行,并省略改动文件卡片及其摘要读取。其他插件注册的 View 保持可用。在 Trajectory 中关闭开关会激活 Chat。预设组合、保存的默认值、Session 事件和显式交付卡片保持不变。此偏好是展示策略,不是 Host 授权。 +关闭时隐藏 Trajectory View,在没有可见 View 声明工具调用检查能力时隐藏 Inspect 操作,可见 View 少于两个时隐藏会话 View 标签栏,隐藏内置 PTC 和极简选项,并省略改动文件卡片及其摘要读取。其他插件注册的 View 保持可用。在 Trajectory 中关闭开关会激活 Chat。已有 Session 的预设、Session 事件和显式交付卡片保持不变。预设选项、默认值修正和尚未应用的选择遵循[预设 UI 策略](../../../../packages/client/ui-agent-preset/README.zh.md)。此偏好是展示策略,不是 Host 授权。 -插件组装层将共享偏好转换为组件自身的能力(`showCodeDiff`、`showPresetPicker` 和 `interactivePreview`)。Conversation 根据可见目标的 `toolCallFocus` 提供检查回调;Chat 不再指定目标名称。内置 HTML 渲染器使用 DOMPurify 清理完整文档并防护解析变异。关闭时保留根节点样式,移除主动文档、资源提示、SVG 动画及所有 `href` 属性,再放入不授予沙箱权限的 iframe,并通过 CSP 禁止脚本和外部资源。不读取关联文件。开启时保留不透明源的脚本 Blob 渲染器及其有界关联文件读取。切换模式会替换浏览上下文并清理待处理读取。[文档预览决策](../architecture/2026-09-08-document-preview-operations.zh.md)和[文件系统读取权限](../architecture/2026-09-09-workspace-file-read-authority.zh.md)继续定义高级渲染与 Host 读取访问。 +插件组装层将共享偏好转换为组件自身的能力(`showCodeDiff`、新会话预设入口读取的 `developerTools`,以及 `interactivePreview`)。Conversation 根据可见目标的 `toolCallFocus` 提供检查回调;Chat 不再指定目标名称。内置 HTML 渲染器使用 DOMPurify 清理完整文档并防护解析变异。关闭时保留根节点样式,移除主动文档、资源提示、SVG 动画及所有 `href` 属性,再放入不授予沙箱权限的 iframe,并通过 CSP 禁止脚本和外部资源。不读取关联文件。开启时保留不透明源的脚本 Blob 渲染器及其有界关联文件读取。切换模式会替换浏览上下文并清理待处理读取。[文档预览决策](../architecture/2026-09-08-document-preview-operations.zh.md)和[文件系统读取权限](../architecture/2026-09-09-workspace-file-read-authority.zh.md)继续定义高级渲染与 Host 读取访问。 ## Alternatives considered @@ -26,4 +27,4 @@ Status: implemented 基础 HTML 放弃 JavaScript、外部与关联资源和链接导航;行内样式与 data 图片仍可用。高级模式保留正常浏览器网络能力,不增加父源、弹窗、表单或顶层导航权限。此设置不约束第三方预览实现,也不撤销 Host 文件系统读取权限。 -组件和设置测试覆盖默认值、schema 拒绝、已接受状态更新、入口折叠、改动文件展示和 iframe 清理。基于已记录 Session 的[文档预览](../../../../apps/web/tests/document-preview.e2e.ts)与[改动文件](../../../../apps/web/tests/changed-files-turn.e2e.ts)场景验证真实设置控件及共用渲染器。浏览器脚手架使用产品默认值,除非场景指定偏好。设置外壳、文档预览和改动文件场景显式关闭开发者工具;这些场景共同覆盖诊断控件隐藏、静态预览和切回 Chat。Host 拒绝写入后会恢复已接受状态,并显示本地化重试提示。原生 Electron 执行尚未验证。 +组件和设置测试覆盖默认值、schema 拒绝、已接受状态更新、预设选项展示、改动文件展示和 iframe 清理。基于已记录 Session 的[文档预览](../../../../apps/web/tests/document-preview.e2e.ts)与[改动文件](../../../../apps/web/tests/changed-files-turn.e2e.ts)场景验证真实设置控件及共用渲染器。浏览器脚手架使用产品默认值,除非场景指定偏好。设置外壳、文档预览和改动文件场景显式关闭开发者工具;这些场景共同覆盖诊断控件隐藏、静态预览和切回 Chat。Host 拒绝写入后会恢复已接受状态,并显示本地化重试提示。原生 Electron 执行尚未验证。 diff --git a/.agents/notes/archived/feature/2026-09-17-persistent-plan-cards.i18n.yaml b/.agents/notes/archived/feature/2026-09-17-persistent-plan-cards.i18n.yaml new file mode 100644 index 0000000000..1f54f03ac4 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-17-persistent-plan-cards.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-17-persistent-plan-cards.md +2026-09-17-persistent-plan-cards.md: 82067b34ff564c1aae624ae6093fe466d31924d6 +2026-09-17-persistent-plan-cards.zh.md: 669c7c86067e893dac79e25f45bb3dd120603049 diff --git a/.agents/notes/implemented/feature/2026-09-17-persistent-plan-cards.md b/.agents/notes/archived/feature/2026-09-17-persistent-plan-cards.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-17-persistent-plan-cards.md rename to .agents/notes/archived/feature/2026-09-17-persistent-plan-cards.md index 096c89c7ed..82067b34ff 100644 --- a/.agents/notes/implemented/feature/2026-09-17-persistent-plan-cards.md +++ b/.agents/notes/archived/feature/2026-09-17-persistent-plan-cards.md @@ -1,6 +1,7 @@ # Agent Note: Persistent plan cards and sidebar reading Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-17-persistent-plan-cards.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-17-persistent-plan-cards.zh.md b/.agents/notes/archived/feature/2026-09-17-persistent-plan-cards.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-17-persistent-plan-cards.zh.md rename to .agents/notes/archived/feature/2026-09-17-persistent-plan-cards.zh.md index 95cce3fed8..669c7c8606 100644 --- a/.agents/notes/implemented/feature/2026-09-17-persistent-plan-cards.zh.md +++ b/.agents/notes/archived/feature/2026-09-17-persistent-plan-cards.zh.md @@ -1,6 +1,7 @@ # Agent Note: 常驻计划卡片与侧边栏阅读 Status: implemented +Archived: 2026-09-30 [English](2026-09-17-persistent-plan-cards.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-18-account-quota-top-up.i18n.yaml b/.agents/notes/archived/feature/2026-09-18-account-quota-top-up.i18n.yaml new file mode 100644 index 0000000000..a7014d383c --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-18-account-quota-top-up.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-18-account-quota-top-up.md +2026-09-18-account-quota-top-up.md: cdd1d5053d9acfde8d8b97260a4359a6e84ecec4 +2026-09-18-account-quota-top-up.zh.md: 4b8f04bed97446b0d3ecbaa72dfc43bb2d48864c diff --git a/.agents/notes/archived/feature/2026-09-18-account-quota-top-up.md b/.agents/notes/archived/feature/2026-09-18-account-quota-top-up.md new file mode 100644 index 0000000000..cdd1d5053d --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-18-account-quota-top-up.md @@ -0,0 +1,36 @@ +# Agent Note: Account quota top-up action + +Status: implemented +Archived: 2026-09-30 + +English | [中文](2026-09-18-account-quota-top-up.zh.md) + +## Problem + +A provider quota failure can mean an exhausted first-party account balance, an API-key account problem, or a custom gateway response. All require a useful explanation, but only the first case can be repaired by opening the signed-in user's embedded DeepSeek recharge page. Inferring that case from provider prose or current UI configuration would make historical failures unstable and could expose an irrelevant billing action. + +## Decision + +The `llm-deepseek-account` plugin classifies quota failures for its own route. The credential callback it hands the shared Messages transport releases the account token only for the configured inference origin, and the plugin rewrites the provider-neutral `QUOTA` failure to `ACCOUNT_QUOTA` for both HTTP 402 responses and in-band SSE errors. The API-key plugin registers `deepseek-official` independently and keeps `QUOTA`; neither route borrows the other's credentials, and a separately configured API key does not affect account-route quota actions. + +A quota failure reaches the transcript and the frame-wide notice as two separate facts. The durable terminal-error record keeps the request-time code and always renders the same provider-neutral quota copy, so the Chat transcript, history paging, and the Session log do not depend on current credentials. A newly appended `QUOTA` or `ACCOUNT_QUOTA` failure in a Session this Client has bound and materialized also publishes one frame-wide notice; the newest notice replaces the previous one, and history replacement, pagination, and Sessions the Client never opened publish none. + +Chat owns the notice host and registers it into the frame-wide `shell.overlay` slot, so a notice outlives the Chat panel that reported it. The host offers the one live notice, with `code`, `message`, `dismiss`, and `keepOpen`, to its `shell.quota-notice` chain child, and renders a generic warning Toast when no entry claims the code. The account package claims `ACCOUNT_QUOTA` only, showing a Cancel/Top up Modal; without the shared host entry, or with a snapshot that reports no stored credential or a failed account stream, the entry renders the neutral Toast itself, and with that host entry it waits for the first account snapshot instead of rendering a Toast that its own timer could discard. The plugin keeps one shared `PlatformPages` request channel and one `shell.overlay` host entry for the Desktop host's single native view: the Account settings page, the quota notice, and the Desktop onboarding recharge page request a page there instead of mounting their own container, the latest request retires the previous owner before the newer page shows, the shared host only closes the page it is given, and each owner decides what its own return re-reads: returning from a top-up page on the Account settings page or the quota notice re-reads profile, balance, and unnotified bonus, while the onboarding recharge return re-reads profile and balance only. Superseding a page, releasing a request, plugin unload, and leaving usage read nothing, and a release arriving after a newer request or a dismissal clears nothing. Back restores focus before any deferred Modal takes it. While a page requested through that shared channel is showing, the native view covers the document, so the entry renders neither Modal nor Toast. A quota failure that arrives while a Settings-opened page is already showing is not retained: it stays subject to newest-notice replacement, and the Modal appears after the viewer returns while that notice is still current. That Modal reports the failure of the original request rather than the account's current balance: the top-up re-read is a separate read, and returning neither proves a successful payment nor dismisses the notice by itself. The notice's own Top up is the retained case: it retains the notice with `keepOpen` and requests the `top-up` page; `keepOpen` returns an identity-safe release, and the entry releases both the hold and its page request when it unmounts, so a claim cannot outlive the entry that took it. Opening the top-up page therefore keeps the notice and the page mounted through later quota failures, which are dropped rather than queued while their persistent failure rows still render. Dismissal or sign-out releases the hold and the page request, so the next live quota event publishes again. Chat's subscription to a Session binding's live events ends with that binding or with the plugin, whichever goes first. + +Credentials and billing URLs never enter Chat props or the Session log. Dismissing the notice does not retry the request; signing out closes an open account Modal or embedded page. + +## Alternatives considered + +**Derive eligibility entirely in the renderer.** Current endpoint, key, and login state may differ from the facts of a historical failed request. It would also couple Chat to credentials and provider configuration rather than keeping only a stable code at the presentation boundary. + +**Parse the provider error message in the UI.** Provider prose is not a stable contract, cannot distinguish API-key and account-token billing, and would duplicate adapter error classification. + +**Offer recharge for every quota failure.** This would send API-key and custom-gateway users to unrelated first-party billing. The generic notice remains useful without claiming a repair path. + +**Infer billing from global credentials.** A configured API key may belong to another account and may be unused by the failed request. The explicit provider route owns credential selection and quota classification. + +## Consequences + +The Session log distinguishes account balance failure from generic quota exhaustion while the transcript renders both with the same neutral copy. One notice serves the whole app, so it stays visible after the reporting Chat panel closes, and a newer notice supersedes an older one instead of stacking. Because the account package claims the notice through a chain child, Web and signed-out users see the neutral Toast and no billing affordance, and the account package never imports Chat. A notice retained by Top up keeps that entry's page mounted through later quota failures at the cost of dropping those notices; the persistent failure rows remain their record. One shared request channel serves both the Account settings page and the notice, so a newer request replaces the visible page while identity-checked releases keep a superseded owner from closing it. + +Provider tests cover routing with simultaneous credentials, HTTP 402 classification, and in-band SSE errors; presentation tests cover append-only publication, replacement, dismissal, Toast fallback, and embedded top-up navigation. diff --git a/.agents/notes/archived/feature/2026-09-18-account-quota-top-up.zh.md b/.agents/notes/archived/feature/2026-09-18-account-quota-top-up.zh.md new file mode 100644 index 0000000000..4b8f04bed9 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-18-account-quota-top-up.zh.md @@ -0,0 +1,36 @@ +# Agent Note: 账号欠费充值操作 + +Status: implemented +Archived: 2026-09-30 + +[English](2026-09-18-account-quota-top-up.md) | 中文 + +## Problem + +提供方的额度错误可能表示第一方账号余额耗尽、API Key 账号问题,或自定义网关响应。所有情况都需要清晰提示,但只有第一种情况适合打开已登录用户的内嵌 DeepSeek 充值页。若根据提供方文案或当前 UI 配置推断,会导致历史错误随当前状态变化,并可能展示无关的充值操作。 + +## Decision + +`llm-deepseek-account` 插件为本路由分类额度错误:它交给共享 Messages 传输的凭据回调只在配置的推理 origin 上释放账号 token,并把提供方中立的 `QUOTA` 错误改写为 `ACCOUNT_QUOTA`,同时覆盖 HTTP 402 响应与流内 SSE 错误。API Key 插件独立注册 `deepseek-official` 并保留 `QUOTA`;两条路由不会借用对方的凭据,单独配置的 API Key 也不影响账号路由的欠费操作。 + +额度错误分别到达消息记录和全应用提示这两条路径。持久化的终止错误记录保留请求时的错误码,并始终渲染同一段提供方中立的欠费文案,因此 Chat 消息记录、历史分页和 Session 日志都不依赖当前凭据。本 Client 已绑定并已物化的 Session 中新追加的 `QUOTA` 或 `ACCOUNT_QUOTA` 错误还会发布一条全应用提示;最新提示替换上一条,历史替换、分页以及从未打开的 Session 都不发布提示。 + +Chat 拥有提示宿主,并将其注册到全应用的 `shell.overlay` slot,因此提示的生命周期长于报告它的 Chat 面板。宿主把这条实时提示连同 `code`、`message`、`dismiss`、`keepOpen` 交给 `shell.quota-notice` chain 子 slot,没有 entry 认领该错误码时渲染通用警告 Toast。账号包只认领 `ACCOUNT_QUOTA`,显示带取消和去充值按钮的 Modal;缺少共享宿主条目,或快照报告未存储凭证、账号流失败且无快照时,由该条目自行渲染中立文案 Toast,而存在该宿主条目时它会等待首个账号快照,而不是渲染一个可能被自身计时器丢弃的 Toast。插件为 Desktop 宿主唯一的原生视图保留一个共享 `PlatformPages` 请求通道和一个 `shell.overlay` 宿主条目:Account 设置页、欠费提示与 Desktop 引导充值页都通过它申请页面,而不再各自挂载容器;最新请求会在新页面显示前退掉上一个持有者,而在更新请求或关闭之后到达的释放不会清除任何内容。共享宿主只关闭它接到的页面,每个持有者自行决定其返回时重读什么:Account 设置页或欠费提示的充值返回会重读资料、余额与未通知赠金,而引导充值返回只重读资料与余额。替换页面、释放请求、插件卸载与从用量页返回均不读取。返回时先恢复焦点,再由任何被延后的 Modal 接管。只要通过该共享请求通道请求的页面正在显示,该原生视图就会盖住本页,因此该条目既不渲染 Modal 也不渲染 Toast。在 Account 设置页已打开页面的情况下新到达的欠费不会被保持:它仍受最新提示替换规则约束,返回后若该提示仍是最新一条就显示 Modal。该 Modal 报告的是原始请求的失败而非账号当前余额:返回时的重读是一次独立读取,返回本身既不证明支付成功,也不会自动撤下该提示。提示自身的去充值属于被保持的情形:它用 `keepOpen` 保持住提示,并申请 `top-up` 页面;`keepOpen` 返回身份安全的释放函数,且该条目在卸载时同时释放保持与页面请求,因此声明不会比取得它的条目活得更久。打开充值页因此会让该提示与其页面在后续欠费期间保持挂载,这些欠费被丢弃而不排队,其持久化失败行仍然渲染。关闭或退出登录会释放保持与页面请求,使下一条实时欠费重新发布。Chat 对某个 Session binding 实时事件的订阅在 binding 或插件先结束的一侧终止。 + +凭据和计费 URL 不会进入 Chat props 或 Session 日志。关闭提示不会重试请求;退出登录会关闭已打开的账号 Modal 或内嵌页面。 + +## Alternatives considered + +**完全在 renderer 中推导资格。** 当前端点、密钥和登录状态可能已经不同于历史失败请求的事实;这也会让 Chat 依赖凭据和提供方配置,而不是在展示边界只接收稳定错误码。 + +**在 UI 中解析提供方错误文案。** 提供方文案不是稳定契约,无法区分 API Key 和账号 token 的计费,同时会重复 adapter 的错误分类。 + +**为所有额度错误提供充值。** 这会把 API Key 和自定义网关用户带到无关的第一方计费页面。普通提示已经足够,不应虚构修复路径。 + +**根据全局凭据推断计费。** 已配置的 API Key 可能属于其他账号,也可能未被失败请求使用。明确的 provider 路由负责凭据选择和欠费分类。 + +## Consequences + +Session 日志区分账号余额失败与普通额度耗尽,消息记录对两者渲染同一段中立文案。一条提示服务整个应用,因此在报告它的 Chat 面板关闭后仍然可见,且新提示取代旧提示而不是叠加。由于账号包通过 chain 子 slot 认领提示,Web 与未登录用户只看到中立 Toast,没有计费入口,账号包也无须导入 Chat。被去充值保持住的提示会让该条目的页面在后续欠费期间继续挂载,代价是丢弃这些提示;持久化失败行仍是它们唯一的记录。一个共享请求通道同时服务 Account 设置页与提示,因此更新的请求会替换可见页面,而身份校验过的释放使被取代的持有者无法关闭它。 + +提供方测试覆盖双凭据并存时的路由、HTTP 402 分类和流内 SSE 错误;展示测试覆盖仅追加发布、替换、关闭、Toast 回退和内嵌充值页跳转。 diff --git a/.agents/notes/archived/feature/2026-09-18-session-pin-and-sidebar-archive.i18n.yaml b/.agents/notes/archived/feature/2026-09-18-session-pin-and-sidebar-archive.i18n.yaml new file mode 100644 index 0000000000..f8b112547c --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-18-session-pin-and-sidebar-archive.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-18-session-pin-and-sidebar-archive.md +2026-09-18-session-pin-and-sidebar-archive.md: eb23e970c08b516a59950a2407f91462fa4ed554 +2026-09-18-session-pin-and-sidebar-archive.zh.md: 5f76fa767528909744b780bebf9b80027694f7f0 diff --git a/.agents/notes/implemented/feature/2026-09-18-session-pin-and-sidebar-archive.md b/.agents/notes/archived/feature/2026-09-18-session-pin-and-sidebar-archive.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-18-session-pin-and-sidebar-archive.md rename to .agents/notes/archived/feature/2026-09-18-session-pin-and-sidebar-archive.md index ac580979b9..eb23e970c0 100644 --- a/.agents/notes/implemented/feature/2026-09-18-session-pin-and-sidebar-archive.md +++ b/.agents/notes/archived/feature/2026-09-18-session-pin-and-sidebar-archive.md @@ -1,6 +1,7 @@ # Agent Note: Session pinning and the sidebar archived filter Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-18-session-pin-and-sidebar-archive.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-18-session-pin-and-sidebar-archive.zh.md b/.agents/notes/archived/feature/2026-09-18-session-pin-and-sidebar-archive.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-18-session-pin-and-sidebar-archive.zh.md rename to .agents/notes/archived/feature/2026-09-18-session-pin-and-sidebar-archive.zh.md index d4719fe75b..5f76fa7675 100644 --- a/.agents/notes/implemented/feature/2026-09-18-session-pin-and-sidebar-archive.zh.md +++ b/.agents/notes/archived/feature/2026-09-18-session-pin-and-sidebar-archive.zh.md @@ -1,6 +1,7 @@ # Agent Note: Session pinning and the sidebar archived filter Status: implemented +Archived: 2026-09-30 [English](2026-09-18-session-pin-and-sidebar-archive.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-20-default-workspace.i18n.yaml b/.agents/notes/archived/feature/2026-09-20-default-workspace.i18n.yaml new file mode 100644 index 0000000000..18d8ec9071 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-20-default-workspace.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-20-default-workspace.md +2026-09-20-default-workspace.md: f070167012a12ac7bf9bc496bff7977a48efe802 +2026-09-20-default-workspace.zh.md: 8b24874f14594cfe1318ece03ad41c40bd43daa9 diff --git a/.agents/notes/implemented/feature/2026-09-20-default-workspace.md b/.agents/notes/archived/feature/2026-09-20-default-workspace.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-20-default-workspace.md rename to .agents/notes/archived/feature/2026-09-20-default-workspace.md index b358cba3ad..f070167012 100644 --- a/.agents/notes/implemented/feature/2026-09-20-default-workspace.md +++ b/.agents/notes/archived/feature/2026-09-20-default-workspace.md @@ -1,6 +1,7 @@ # Agent Note: First-use default Workspace Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-20-default-workspace.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-20-default-workspace.zh.md b/.agents/notes/archived/feature/2026-09-20-default-workspace.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-20-default-workspace.zh.md rename to .agents/notes/archived/feature/2026-09-20-default-workspace.zh.md index e9a8bd6d57..8b24874f14 100644 --- a/.agents/notes/implemented/feature/2026-09-20-default-workspace.zh.md +++ b/.agents/notes/archived/feature/2026-09-20-default-workspace.zh.md @@ -1,6 +1,7 @@ # Agent Note: 首次使用默认 Workspace Status: implemented +Archived: 2026-09-30 [English](2026-09-20-default-workspace.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-20-developer-tools-default-on.i18n.yaml b/.agents/notes/archived/feature/2026-09-20-developer-tools-default-on.i18n.yaml new file mode 100644 index 0000000000..a6000451b7 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-20-developer-tools-default-on.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-20-developer-tools-default-on.md +2026-09-20-developer-tools-default-on.md: 7f5e31b037f11e7ae27a1ab4cc32da4b2caa9318 +2026-09-20-developer-tools-default-on.zh.md: 2c6ada115d8028ed6f7e73e849a2e894b2da13d4 diff --git a/.agents/notes/implemented/feature/2026-09-20-developer-tools-default-on.md b/.agents/notes/archived/feature/2026-09-20-developer-tools-default-on.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-20-developer-tools-default-on.md rename to .agents/notes/archived/feature/2026-09-20-developer-tools-default-on.md index 42c89faed1..7f5e31b037 100644 --- a/.agents/notes/implemented/feature/2026-09-20-developer-tools-default-on.md +++ b/.agents/notes/archived/feature/2026-09-20-developer-tools-default-on.md @@ -1,6 +1,7 @@ # Agent Note: Developer tools default on after preference resolution Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-20-developer-tools-default-on.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-20-developer-tools-default-on.zh.md b/.agents/notes/archived/feature/2026-09-20-developer-tools-default-on.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-20-developer-tools-default-on.zh.md rename to .agents/notes/archived/feature/2026-09-20-developer-tools-default-on.zh.md index a684844f5b..2c6ada115d 100644 --- a/.agents/notes/implemented/feature/2026-09-20-developer-tools-default-on.zh.md +++ b/.agents/notes/archived/feature/2026-09-20-developer-tools-default-on.zh.md @@ -1,6 +1,7 @@ # Agent Note: 偏好解析后默认开启开发者工具 Status: implemented +Archived: 2026-09-30 [English](2026-09-20-developer-tools-default-on.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-20-focus-ring-brand-primary.i18n.yaml b/.agents/notes/archived/feature/2026-09-20-focus-ring-brand-primary.i18n.yaml new file mode 100644 index 0000000000..72de74ca30 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-20-focus-ring-brand-primary.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-20-focus-ring-brand-primary.md +2026-09-20-focus-ring-brand-primary.md: 1e549b15eaa49822ee2161453d0c8f3218294bb6 +2026-09-20-focus-ring-brand-primary.zh.md: 2721962afcf73673b9758047d3b3d22f66ac010e diff --git a/.agents/notes/archived/feature/2026-09-20-focus-ring-brand-primary.md b/.agents/notes/archived/feature/2026-09-20-focus-ring-brand-primary.md new file mode 100644 index 0000000000..1e549b15ea --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-20-focus-ring-brand-primary.md @@ -0,0 +1,44 @@ +# Agent Note: One keyboard-focus colour for every control + +Status: implemented +Archived: 2026-09-30 + +English | [中文](2026-09-20-focus-ring-brand-primary.zh.md) + +## Problem + +Different explicit focus colours and browser-default outlines do not provide a consistent keyboard-focus cue. Browser defaults can also depend on the operating-system accent. + +Focus feedback has separate interaction and geometry constraints. A browser's `:focus-visible` heuristic can reveal a pointer-focused button after a key that does not move focus, while editable text controls need focus feedback on click. Containers that clip their contents can hide an outer ring. + +## Decision + +[The theme's focus stylesheet](../../../../packages/client/ui-theme/src/styles/focus.css) owns the shared ring colour and standard width. [Input modality](../../../../packages/client/ui-primitives/README.md#input-modality) distinguishes tooltip input from keyboard focus navigation. + +**One colour.** Global and component `:focus-visible` outlines and focus-ring shadows read `--dsw-focus-ring-color`, falling back to `--dsw-alias-state-business-primary`. The global fallback names the colour and the standard width but never the style, so it cannot create an outline where the component disables one. Naming the width is what keeps a control with no ring of its own at the standard geometry instead of Chromium's `auto 1px`. + +**Context-owned geometry.** `--dsw-focus-ring-width` carries the standard 2px width. Dense tables and toolbars may keep 1px so the ring does not dominate compact content. Components own their offsets and use an inset ring where an outer ring would be clipped. + +**Pointer focus does not imply keyboard navigation.** In pointer modality, `:focus-visible:not(:read-write)` controls use a transparent ring colour. Descendant and pseudo-element rings inherit it. Only focus-ring paint is suppressed: selected-state borders and elevation shadows remain, and editable text controls keep their own focus feedback on click. DOM focus stays on the control. + +Tooltips follow the last input and treat any key as keyboard input. Rings instead resume keyboard styling on non-composing navigation keys, or on focus reaching a different control after a non-composing key. Refocusing the same control is not navigation; pointer input, composition keys, and window blur clear the pending key. + +## Alternatives considered + +**Rewrite only the component declarations.** Explicit rings would agree, but controls using a browser-default outline would retain its colour. Requiring every control to declare its own ring would also leave new controls inconsistent until their authors add that rule. + +**Unify width and offset globally.** Positive offsets can be clipped by a scrolling ancestor, while a uniform thick ring can overwhelm dense content. Neither colour consistency nor input modality requires identical geometry. + +**Suppress by moving focus instead of by style.** Calling `blur()` on a pointer-focused button would hide its ring but also remove the target for subsequent Enter or Space activation. + +**Clear all shadows on pointer focus.** A `box-shadow` can contain elevation or selected-state paint as well as a focus ring. Suppressing its ring colour preserves those independent cues; exempting `:read-write` preserves text-entry feedback. + +**Replace every `outline: none` with a shared ring.** Some controls use an inset shadow or container-level focus treatment instead; some containers deliberately show no ring. Replacing those declarations would change their focus treatment, not merely its colour. + +**Give tooltips and rings the same modality rule.** A key can justify a tooltip on subsequent programmatic focus without justifying a ring on the same pointer-focused button. Keeping separate answers preserves both behaviours. + +## Consequences + +Focus rings share a theme colour while components retain their geometry and non-focus state cues. Ring visibility changes without changing the keyboard's active target. These rules do not guarantee identical browser rendering or eliminate component-specific clipping. + +[Stylesheet-order checks](../../../../packages/client/ui-theme/tests/client-styles.client.spec.ts), [focus-style checks](../../../../packages/client/ui-theme/tests/focus-ring-styles.client.spec.ts), and [input-modality tests](../../../../packages/client/ui-primitives/tests/input-modality.client.spec.ts) cover stylesheet declarations and modality transitions. Static declarations and synthetic events do not establish rendered ring visibility or cross-platform behaviour. diff --git a/.agents/notes/archived/feature/2026-09-20-focus-ring-brand-primary.zh.md b/.agents/notes/archived/feature/2026-09-20-focus-ring-brand-primary.zh.md new file mode 100644 index 0000000000..2721962afc --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-20-focus-ring-brand-primary.zh.md @@ -0,0 +1,44 @@ +# Agent Note:所有控件共用一个键盘焦点颜色 + +Status: implemented +Archived: 2026-09-30 + +[English](2026-09-20-focus-ring-brand-primary.md) | 中文 + +## 问题 + +不同的显式焦点颜色与浏览器默认轮廓无法提供一致的键盘焦点提示。浏览器默认值还可能取决于操作系统强调色。 + +焦点反馈另有交互与几何约束。浏览器的 `:focus-visible` 启发式可能在不移动焦点的按键之后显出指针聚焦按钮的环,而可编辑文本控件在点击时需要焦点反馈。裁切内容的容器可能隐藏外扩环。 + +## 决策 + +[主题焦点样式表](../../../../packages/client/ui-theme/src/styles/focus.css) 拥有共享焦点环颜色与标准宽度。[输入模态](../../../../packages/client/ui-primitives/README.zh.md#input-modality) 区分 tooltip 输入与键盘焦点导航。 + +**一个颜色。** 全局与组件的 `:focus-visible` 轮廓和焦点环阴影读取 `--dsw-focus-ring-color`,回退到 `--dsw-alias-state-business-primary`。全局兜底声明颜色与标准宽度、但不声明样式,因此组件禁用轮廓时它不会创建轮廓。声明宽度可让没有自有焦点环的控件保持标准几何,而不是落到 Chromium 的 `auto 1px`。 + +**场景决定几何。** `--dsw-focus-ring-width` 提供标准的 2px 宽度。密集表格与工具栏可以保留 1px,避免焦点环压过紧凑内容。组件拥有自己的 offset,并在外扩环会被裁切时使用内嵌环。 + +**指针焦点不等于键盘导航。** 指针模态下,`:focus-visible:not(:read-write)` 控件使用透明的焦点环颜色。后代与伪元素上的环继承该值。只抑制焦点环绘制:选中态边框与 elevation 阴影保留,可编辑文本控件在点击时保留自身焦点反馈。DOM 焦点仍留在控件上。 + +Tooltip 跟随最近一次输入,将任意按键视为键盘输入。焦点环则在非组合输入的导航键到达时,或非组合输入按键之后焦点到达不同控件时,恢复键盘样式。重新聚焦同一控件不算导航;指针输入、组合输入按键和 window blur 会清除待处理按键。 + +## 考虑过的其他做法 + +**只重写组件声明。** 显式焦点环会一致,但使用浏览器默认轮廓的控件仍会保留其颜色。要求每个控件自行声明焦点环,也会让新控件在作者补上规则之前保持不一致。 + +**全局统一宽度与 offset。** 正 offset 可能被滚动祖先裁切,统一的粗环则可能压过密集内容。颜色一致性和输入模态都不要求相同的几何。 + +**用移动焦点取代样式抑制。** 对指针聚焦的按钮调用 `blur()` 可以隐藏焦点环,但也会移除后续 Enter 或 Space 激活的目标。 + +**指针聚焦时清除所有阴影。** 一个 `box-shadow` 除了焦点环,还可能包含 elevation 或选中态绘制。抑制其焦点环颜色可保留这些独立提示;豁免 `:read-write` 可保留文本输入反馈。 + +**把所有 `outline: none` 改为共享焦点环。** 一些控件改用内嵌阴影或容器级焦点处理;一些容器则刻意不显示焦点环。替换这些声明会改变焦点处理方式,而不只是颜色。 + +**让 tooltip 与焦点环共用同一条模态规则。** 按键可以让后续程序化聚焦显示 tooltip,却不一定需要在同一个指针聚焦按钮上显示焦点环。分别记录两个答案可保留两种行为。 + +## 影响 + +焦点环共享主题颜色,组件保留自己的几何与非焦点状态提示。焦点环可见性的变化不改变键盘的活动目标。这些规则不保证浏览器渲染完全相同,也不会消除组件特有的裁切。 + +[样式表顺序检查](../../../../packages/client/ui-theme/tests/client-styles.client.spec.ts)、[焦点样式检查](../../../../packages/client/ui-theme/tests/focus-ring-styles.client.spec.ts)与[输入模态测试](../../../../packages/client/ui-primitives/tests/input-modality.client.spec.ts)覆盖样式声明和模态转换。静态声明与合成事件不能确认焦点环的实际渲染可见性或跨平台行为。 diff --git a/.agents/notes/archived/feature/2026-09-22-unbounded-completion-wakes-by-default.i18n.yaml b/.agents/notes/archived/feature/2026-09-22-unbounded-completion-wakes-by-default.i18n.yaml new file mode 100644 index 0000000000..91c3b3788a --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-22-unbounded-completion-wakes-by-default.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-22-unbounded-completion-wakes-by-default.md +2026-09-22-unbounded-completion-wakes-by-default.md: 31397aecd7b38b4b8bdfc82e23c957547adfa813 +2026-09-22-unbounded-completion-wakes-by-default.zh.md: 813c84d4dc03f64741d98eab6549bbba9468415b diff --git a/.agents/notes/implemented/feature/2026-09-22-unbounded-completion-wakes-by-default.md b/.agents/notes/archived/feature/2026-09-22-unbounded-completion-wakes-by-default.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-22-unbounded-completion-wakes-by-default.md rename to .agents/notes/archived/feature/2026-09-22-unbounded-completion-wakes-by-default.md index 8760154054..31397aecd7 100644 --- a/.agents/notes/implemented/feature/2026-09-22-unbounded-completion-wakes-by-default.md +++ b/.agents/notes/archived/feature/2026-09-22-unbounded-completion-wakes-by-default.md @@ -1,6 +1,7 @@ # Agent Note: Background job completion wakes are unbounded by default Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-22-unbounded-completion-wakes-by-default.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-22-unbounded-completion-wakes-by-default.zh.md b/.agents/notes/archived/feature/2026-09-22-unbounded-completion-wakes-by-default.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-22-unbounded-completion-wakes-by-default.zh.md rename to .agents/notes/archived/feature/2026-09-22-unbounded-completion-wakes-by-default.zh.md index e5560bc7ce..813c84d4dc 100644 --- a/.agents/notes/implemented/feature/2026-09-22-unbounded-completion-wakes-by-default.zh.md +++ b/.agents/notes/archived/feature/2026-09-22-unbounded-completion-wakes-by-default.zh.md @@ -1,6 +1,7 @@ # Agent Note: Background job completion wakes are unbounded by default Status: implemented +Archived: 2026-09-30 [English](2026-09-22-unbounded-completion-wakes-by-default.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-23-language-neutral-default-workspace-naming.i18n.yaml b/.agents/notes/archived/feature/2026-09-23-language-neutral-default-workspace-naming.i18n.yaml new file mode 100644 index 0000000000..f6ce0fc9fe --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-23-language-neutral-default-workspace-naming.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-23-language-neutral-default-workspace-naming.md +2026-09-23-language-neutral-default-workspace-naming.md: 455567b6677ec529ad6a0520076cfe84fa98fc76 +2026-09-23-language-neutral-default-workspace-naming.zh.md: d4f0c2740a1ab8421755810079fccc1dba49f149 diff --git a/.agents/notes/implemented/feature/2026-09-23-language-neutral-default-workspace-naming.md b/.agents/notes/archived/feature/2026-09-23-language-neutral-default-workspace-naming.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-23-language-neutral-default-workspace-naming.md rename to .agents/notes/archived/feature/2026-09-23-language-neutral-default-workspace-naming.md index 7d96f91aef..455567b667 100644 --- a/.agents/notes/implemented/feature/2026-09-23-language-neutral-default-workspace-naming.md +++ b/.agents/notes/archived/feature/2026-09-23-language-neutral-default-workspace-naming.md @@ -1,6 +1,7 @@ # Agent Note: Language-neutral default Workspace naming Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-23-language-neutral-default-workspace-naming.zh.md) diff --git a/.agents/notes/implemented/feature/2026-09-23-language-neutral-default-workspace-naming.zh.md b/.agents/notes/archived/feature/2026-09-23-language-neutral-default-workspace-naming.zh.md similarity index 99% rename from .agents/notes/implemented/feature/2026-09-23-language-neutral-default-workspace-naming.zh.md rename to .agents/notes/archived/feature/2026-09-23-language-neutral-default-workspace-naming.zh.md index 4095ccf7ac..d4f0c2740a 100644 --- a/.agents/notes/implemented/feature/2026-09-23-language-neutral-default-workspace-naming.zh.md +++ b/.agents/notes/archived/feature/2026-09-23-language-neutral-default-workspace-naming.zh.md @@ -1,6 +1,7 @@ # Agent Note: 语言中立的默认工作区命名 Status: implemented +Archived: 2026-09-30 [English](2026-09-23-language-neutral-default-workspace-naming.md) | 中文 diff --git a/.agents/notes/archived/feature/2026-09-24-fixed-rate-floor-one-minute.i18n.yaml b/.agents/notes/archived/feature/2026-09-24-fixed-rate-floor-one-minute.i18n.yaml new file mode 100644 index 0000000000..0a2a67ab65 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-24-fixed-rate-floor-one-minute.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-24-fixed-rate-floor-one-minute.md +2026-09-24-fixed-rate-floor-one-minute.md: 04784104d42e7b3d6653bfb9a038b117f648731b +2026-09-24-fixed-rate-floor-one-minute.zh.md: 6521e0f039e3095072952572d1eddf80902a3bb1 diff --git a/.agents/notes/archived/feature/2026-09-24-fixed-rate-floor-one-minute.md b/.agents/notes/archived/feature/2026-09-24-fixed-rate-floor-one-minute.md new file mode 100644 index 0000000000..04784104d4 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-24-fixed-rate-floor-one-minute.md @@ -0,0 +1,30 @@ +# Agent Note: One-minute fixed-rate floor + +Status: implemented +Archived: 2026-09-30 + +English | [中文](2026-09-24-fixed-rate-floor-one-minute.zh.md) + +## Problem + +`every_seconds` refused every interval below 300 seconds, and the Web client restated that bound as its own per-unit floors of 1 hour, 5 minutes, or 300 seconds. The same product already offered a `cron` selector whose finest granularity is one minute, so two selectors that both describe a repeating cadence disagreed about the shortest one a person could ask for: a reminder that repeats every minute was expressible as `cron` and rejected as `every_seconds`. The floor also made a shipped default Web surface awkward to try, because the first repeating reminder anyone creates cannot come back in under five minutes. + +## Decision + +`MIN_EVERY_INTERVAL_SECONDS` in `packages/schedule/schedule/src/domain.ts` is 60. The Host decoder, the create and update validation, the `every_seconds` tool parameter description, and its refusal message all read that constant, so one change moves the bound everywhere the Host states it. + +The client keeps its own `MIN_INTERVAL_SECONDS = 60`, which the Run time card uses for the seconds row and to derive the per-unit floors: 1 hour, 1 minute, or 60 seconds. The localized hint and refusal copy states 1 minute and 60 seconds for those rows. + +One minute is the shortest cadence that does not need a new protocol decision: it matches the cron selector's granularity, and every accepted value remains a whole-second interval the durable record already stores. A stored record keeps whatever the Host accepted when it was created; a record written under the old bound (300 seconds or more) stays valid and replayable, and no migration runs because the previous bound rejected anything below it. + +## Alternatives considered + +**Keep the 300-second floor.** The two selectors would keep disagreeing about the shortest repeating cadence, and a person could still reach a one-minute cadence only through `cron`. + +**Lower the bound to one second.** Sub-minute intervals multiply durable follow-up messages and timer re-anchoring per reminder without a request behind them; the minute granularity already covers the shortest cadence the product names elsewhere. + +## Consequences + +- A fixed-rate reminder may now repeat every minute; the smallest accepted value is model-visible in the `every_seconds` description and in the client's hint copy. +- Delivery behavior, batching, catch-up, and the interval arithmetic are unchanged: an accepted interval still anchors to creation or to the accepted save, and each overdue record still contributes only its latest occurrence. +- A deployment cannot raise the floor through configuration; the bound is a protocol constant, so a deployment that needs a longer minimum enforces it in the interface that creates tasks. diff --git a/.agents/notes/archived/feature/2026-09-24-fixed-rate-floor-one-minute.zh.md b/.agents/notes/archived/feature/2026-09-24-fixed-rate-floor-one-minute.zh.md new file mode 100644 index 0000000000..6521e0f039 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-24-fixed-rate-floor-one-minute.zh.md @@ -0,0 +1,30 @@ +# Agent Note: 固定速率下限改为 1 分钟 + +Status: implemented +Archived: 2026-09-30 + +[English](2026-09-24-fixed-rate-floor-one-minute.md) | 中文 + +## Problem + +`every_seconds` 会拒绝所有低于 300 秒的间隔,Web 客户端也把该下限复述为自己按单位计算的下限:1 小时、5 分钟或 300 秒。同一产品已经提供粒度为 1 分钟的 `cron` 选择器,于是两个都在描述重复节奏的选择器对「最短能填多少」给出了不同答案:每分钟重复一次的提醒用 `cron` 可以表达,用 `every_seconds` 会被拒绝。该下限也让默认发布 Schedule 的 Web 界面难以试用——任何人创建的第一条重复提醒都不可能在五分钟内回到。 + +## Decision + +`packages/schedule/schedule/src/domain.ts` 的 `MIN_EVERY_INTERVAL_SECONDS` 为 60。宿主解码器、创建与更新校验、`every_seconds` 工具参数描述及其拒绝消息都读取该常量,因此一处改动即可移动宿主陈述该下限的所有位置。 + +客户端保留自己的 `MIN_INTERVAL_SECONDS = 60`,「运行时间」卡片用它校验秒数行,并据此推导各单位的数量下限:1 小时、1 分钟或 60 秒。对应行的本地化提示与拒绝文案改为 1 分钟与 60 秒。 + +1 分钟是无需新增协议决策的最短节奏:它与 cron 选择器的粒度一致,且每个被接受的值仍是以整秒表示的间隔,持久记录本来就以整秒存储。已存储的记录保留宿主当初接受的值:按旧下限(300 秒及以上)写入的记录仍然有效、仍可回放;由于旧下限拒绝了低于它的值,因此不存在需要迁移的数据。 + +## Alternatives considered + +**保留下限 300 秒。** 两个选择器会继续对最短重复节奏给出不同答案,而每分钟一次的节奏仍只能通过 `cron` 达到。 + +**把下限降到 1 秒。** 低于分钟级的间隔会让每条提醒产生更多持久 follow-up 消息与 timer 重新对齐,而背后没有这样的需求;分钟粒度已经覆盖产品在别处命名的最短节奏。 + +## Consequences + +- 固定速率提醒现在可以每分钟重复一次;最小可接受值对模型可见,出现在 `every_seconds` 的描述与客户端的提示文案中。 +- 投递行为、批处理、补跑与间隔运算法则不变:被接受的间隔仍以创建时刻或接受保存的时刻为起算点,每条逾期记录仍只贡献最新一次发生时点。 +- 部署无法通过配置提高该下限;它是协议常量,需要更长最小间隔的部署应在创建任务的界面上自行约束。 diff --git a/.agents/notes/archived/feature/2026-09-27-desktop-cli-runtime.i18n.yaml b/.agents/notes/archived/feature/2026-09-27-desktop-cli-runtime.i18n.yaml new file mode 100644 index 0000000000..51ab84eb26 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-27-desktop-cli-runtime.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-27-desktop-cli-runtime.md +2026-09-27-desktop-cli-runtime.md: a11612c4b013ba123b6950ec0b3affd225c42c2b +2026-09-27-desktop-cli-runtime.zh.md: c56a1e32984f25ac12cda56751c24df917ba61bf diff --git a/.agents/notes/archived/feature/2026-09-27-desktop-cli-runtime.md b/.agents/notes/archived/feature/2026-09-27-desktop-cli-runtime.md new file mode 100644 index 0000000000..a11612c4b0 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-27-desktop-cli-runtime.md @@ -0,0 +1,42 @@ +# Agent Note: Desktop-installed CLI runtime + +Status: implemented +Archived: 2026-09-30 + +English | [中文](2026-09-27-desktop-cli-runtime.zh.md) + +## Problem + +Desktop contains dsh and its production dependencies. Users need terminal access to plugin management and other CLI functions without maintaining another installation. + +## Decision + +A shell script on macOS and a command script on Windows run the private Desktop CLI entry through the installed Electron executable in Node mode. The entry delegates to the ordinary CLI dispatcher and supplies bundled pnpm through its package-operation options. Desktop Host startup and ASAR packaging retain their existing behavior. + +The Desktop-installed command can manage the initialized `desktop` profile while the application is quit. It uses the same profile write lock, package compatibility checks and reconciliation as existing plugin operations. Desktop owns profile initialization; the CLI refuses to initialize a missing Desktop profile as an ordinary CLI profile. npm-installed dsh cannot manage that reserved profile, and neither CLI boots it. + +Windows registers a console callback through Koffi to deliver SIGINT and SIGBREAK to the CLI's JavaScript listeners for asynchronous shutdown. Electron's native default exits before those listeners run. The existing Office engine resolver supplies physical paths for Web attachment conversion; CLI profile startup does not inject Office authoring-skill configuration. + +## Consequences + +Users finish CLI commands before updating or uninstalling Desktop. Installers do not coordinate with CLI processes, and no runtime versions are retained for running commands. An overlapping update can interrupt commands or make their runtime files unavailable. + +The command's runtime version follows Desktop. The [Electron runtime decision](../architecture/2026-09-11-desktop-electron-node-runtime.md) owns Electron/OpenSSL and third-party native-addon limitations. Desktop's existing Office resources are unchanged; the CLI does not automatically supply their authoring paths to user-enabled plugins. + +## Command registration + +The permanent **Manage dsh Command…** menu displays status and installation, repair, and removal actions. macOS uses a fixed `/usr/local/bin/dsh` link, with administrator authentication when needed, instead of editing shell startup files. Windows registers a dedicated directory containing only the public launcher in the current user's PATH. Registration and removal are optional menu actions after application installation; the installer and uninstaller do not perform them. Private installation helpers are outside that PATH directory. + +Switching an existing command requires confirmation. The executor rechecks the displayed fingerprint and carries that exact command entry through withdrawal; a concurrent replacement is preserved. A receipt retains the previous macOS launcher. If another installation replaces the Desktop link before reinstallation, any older backup is preserved and reported; Remove restores only the current receipt’s backup. Windows inserts one owned PATH occurrence and records the count of identical pre-existing occurrences so removal preserves them. Other command locations are reported without being modified. Concurrent dialogs share one operation, and update preparation waits for it to finish. + +The macOS worker reports operation failures in a JSON response with a successful process exit so AppleScript retains its error code and message. Cancelling administrator authentication ends the operation without an error dialog. Windows treats invalid PATH entries as unavailable candidates and preserves their text; environment-change notifications do not change the result of a committed registry write. + +## Alternatives considered + +**Another npm installation.** It duplicates dependencies and can drift from Desktop's runtime. + +**Standalone Node for the CLI.** Ordinary Node cannot load the existing ASAR dependency tree. Moving or duplicating that tree expands the packaging change. + +**Forward commands to the running Desktop Host.** This requires the GUI to be running and adds live-plugin lifecycle integration. Direct package operations support the documented quit-and-reopen workflow. + +**Coordinate updates with every CLI process.** Native admission locks and installer handoff records add lifecycle behavior beyond the initial command integration. The CLI uses the existing application update policy. diff --git a/.agents/notes/archived/feature/2026-09-27-desktop-cli-runtime.zh.md b/.agents/notes/archived/feature/2026-09-27-desktop-cli-runtime.zh.md new file mode 100644 index 0000000000..c56a1e3298 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-27-desktop-cli-runtime.zh.md @@ -0,0 +1,42 @@ +# Agent Note: Desktop 安装的 CLI 运行时 + +Status: implemented +Archived: 2026-09-30 + +[English](2026-09-27-desktop-cli-runtime.md) | 中文 + +## 问题 + +Desktop 已包含 dsh 及其生产依赖。用户需要在终端中管理插件并使用其他 CLI(命令行界面)功能,无需维护另一份安装。 + +## 决策 + +macOS 的 shell 脚本与 Windows 的命令脚本使用已安装 Electron 的 Node 模式运行私有 Desktop CLI 入口。该入口委托给普通 CLI 分派器,通过包操作选项提供内置 pnpm。Desktop Host 启动与 ASAR 打包保留现有行为。 + +Desktop 内置命令可在应用退出时管理已初始化的 `desktop` profile。它与现有插件操作使用相同的 profile 写锁、包兼容性检查和协调逻辑。Desktop 拥有 profile 初始化流程;CLI 拒绝将缺失的 Desktop profile 初始化为普通 CLI profile。npm 安装的 dsh 不能管理此保留 profile,两种 CLI 都不会启动它。 + +Windows 通过 Koffi 注册控制台回调,将 SIGINT 和 SIGBREAK 送到 CLI 的 JavaScript 监听器以完成异步退出。Electron 原生默认行为会在这些监听器运行前退出。现有 Office 引擎解析器为 Web 附件转换提供物理路径;CLI profile 启动不注入 Office 创作 skill(技能)的配置。 + +## 影响 + +用户须在更新或卸载 Desktop 前结束 CLI 命令。安装程序不与 CLI 进程协调,也不为运行中的命令保留多个运行时版本。重叠的更新可能中断命令,或使其运行时文件不可用。 + +命令的运行时版本随 Desktop 变化。[Electron 运行时决策](../architecture/2026-09-11-desktop-electron-node-runtime.zh.md)说明 Electron/OpenSSL 与第三方原生 addon 的限制。Desktop 现有 Office 资源保持不变;CLI 不会自动向用户启用的插件提供创作资源路径。 + +## 命令注册 + +固定的**管理 dsh 命令…**菜单显示状态,并提供安装、修复和移除操作。macOS 使用固定的 `/usr/local/bin/dsh` 链接,必要时请求管理员认证,不修改 shell 启动文件。Windows 将专门存放公开启动器的目录注册到当前用户的 PATH。注册与移除是应用安装后的可选菜单操作,安装程序和卸载程序不执行这些操作。私有安装辅助程序不在这个 PATH 目录中。 + +切换已有命令需要确认。执行器重新核对展示过的指纹,并在移走命令时一直使用该次观察到的条目;并发替换的命令会被保留。所有权记录保存之前的 macOS 启动器。若其他安装在重新安装前替换了 Desktop 链接,旧备份会保留并报告;移除操作只恢复当前所有权记录中的备份。Windows 插入一个自有 PATH 条目,并记录此前完全相同条目的数量,移除时保留它们。其他命令位置只展示,不修改。并发对话框共享一个操作,更新准备会等待该操作完成。 + +macOS worker 以 JSON 响应报告操作失败,同时以成功状态退出进程,使 AppleScript 保留错误码和消息。取消管理员认证会结束操作,不显示错误对话框。Windows 将无效 PATH 条目视为不可用候选并保留其文本;环境变更通知不会改变已经提交的注册表写入结果。 + +## 考虑过的替代方案 + +**再次通过 npm 安装。** 这会重复依赖,并可能偏离 Desktop 的运行时。 + +**CLI 使用独立 Node。** 普通 Node 无法加载现有 ASAR 依赖树。移动或复制该树会扩大打包改动。 + +**将命令转发给运行中的 Desktop Host。** 这要求 GUI 保持运行,并增加运行中插件的生命周期集成。直接包操作支持文档约定的退出后重新打开流程。 + +**协调每个 CLI 进程与更新。** 原生启动锁和安装程序交接记录增加了初始命令集成以外的生命周期行为。CLI 使用应用现有的更新策略。 diff --git a/.agents/notes/archived/feature/2026-09-28-desktop-login-shell-environment.i18n.yaml b/.agents/notes/archived/feature/2026-09-28-desktop-login-shell-environment.i18n.yaml new file mode 100644 index 0000000000..8076d698fd --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-28-desktop-login-shell-environment.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/feature/2026-09-28-desktop-login-shell-environment.md +2026-09-28-desktop-login-shell-environment.md: 328194a254ccd0cd570d2cf832e31443c2cb2687 +2026-09-28-desktop-login-shell-environment.zh.md: d4007f2904c1ed358a0d76f5170d3f49c03dfd59 diff --git a/.agents/notes/archived/feature/2026-09-28-desktop-login-shell-environment.md b/.agents/notes/archived/feature/2026-09-28-desktop-login-shell-environment.md new file mode 100644 index 0000000000..328194a254 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-28-desktop-login-shell-environment.md @@ -0,0 +1,28 @@ +# Agent Note: Desktop reads the login-shell environment once + +Status: implemented +Archived: 2026-09-30 + +English | [中文](2026-09-28-desktop-login-shell-environment.zh.md) + +## Problem + +macOS Dock, Finder, and Linux desktop launches start Desktop with only the session manager's environment. Variables that users export from `~/.zprofile` or `~/.zshrc`, including PATH entries for Homebrew, version managers, and API keys, are absent from the Host, agent shells, terminals, and profile configuration. The same Host launched from a terminal sees them. + +## Decision + +Before creating the first Host, [Desktop](../../../../apps/desktop/README.md) runs one delimited `env -0` dump through ` -ilc`, where `` is the account record's login shell, followed by `/bin/zsh`, `/bin/bash`, and `/bin/sh`. Every Host in the application process uses the merged result. Shell values replace inherited values except probe-session variables and the `DSH_*` and `ELECTRON_*` namespaces. The read completes at the closing delimiter. A timeout or quit kills the probe's process group, and a failed read falls back to the inherited environment without blocking startup. Windows skips the read. + +## Alternatives considered + +**Read `$SHELL` instead of the account record.** A Dock launch inherits `$SHELL` from launchd, not from the user's current choice, and a terminal launch can carry a temporary shell. The account record names the shell the user selected with `chsh`. + +**Non-interactive `-lc` only.** Most users export PATH additions from `~/.zshrc`, which only interactive shells read. Interactive mode requires the probe variables that stop oh-my-zsh update prompts and tmux autostart from blocking. + +**Let shell values replace `DSH_*` variables.** Desktop resolves `DSH_HOME` and its profile paths before the read, so a `DSH_HOME` exported from `~/.zshrc` would give the Host a different home from the one Desktop prepared. + +**Wait for stdout to close.** Background processes that startup files start inherit stdout and can hold it open indefinitely, which turns every read into a timeout. + +## Consequences + +Dock and Finder launches give the Host the environment a terminal launch provides. Changes to startup files apply only after Desktop restarts. Startup waits for the read, up to `DSH_DESKTOP_LOGIN_SHELL_TIMEOUT_MS` per candidate. Account shells that cannot run the POSIX dump, such as csh, tcsh, and nushell, receive the first system shell's environment instead. `DSH_*` settings must come from the launcher's environment rather than startup files. Unit tests run stand-in shells for the early completion, timeout, abort, and fallback paths, and the Desktop startup test verifies that the Host waits for the read. diff --git a/.agents/notes/archived/feature/2026-09-28-desktop-login-shell-environment.zh.md b/.agents/notes/archived/feature/2026-09-28-desktop-login-shell-environment.zh.md new file mode 100644 index 0000000000..d4007f2904 --- /dev/null +++ b/.agents/notes/archived/feature/2026-09-28-desktop-login-shell-environment.zh.md @@ -0,0 +1,28 @@ +# Agent Note: Desktop 一次性读取登录 shell 环境 + +Status: implemented +Archived: 2026-09-30 + +[English](2026-09-28-desktop-login-shell-environment.md) | 中文 + +## 问题 + +从 macOS 的 Dock、Finder 或 Linux 桌面启动 Desktop 时,它只获得会话管理器提供的环境。用户在 `~/.zprofile` 或 `~/.zshrc` 中导出的变量,包括 Homebrew、版本管理器的 PATH 条目和 API key,在 Host、agent shell、终端和 profile 配置中都不存在。从终端启动同一个 Host 时这些变量都在。 + +## 决策 + +创建第一个 Host 之前,[Desktop](../../../../apps/desktop/README.zh.md) 通过 ` -ilc` 运行一次带定界符的 `env -0` 输出,`` 依次为账户记录中的登录 shell、`/bin/zsh`、`/bin/bash` 和 `/bin/sh`。同一应用进程中的所有 Host 使用合并后的结果。shell 的值覆盖继承的值,但读取进程自身的会话变量以及 `DSH_*` 和 `ELECTRON_*` 命名空间除外。读取在结束定界符出现时完成。超时或退出会结束读取进程组;读取失败时回退到继承的环境,不阻止启动。Windows 跳过读取。 + +## 考虑过的替代方案 + +**读取 `$SHELL` 而不是账户记录。** 从 Dock 启动时,`$SHELL` 继承自 launchd,而不是用户当前的选择;从终端启动时它可能是临时 shell。账户记录给出用户用 `chsh` 选择的 shell。 + +**只使用非交互的 `-lc`。** 多数用户在 `~/.zshrc` 中添加 PATH,而只有交互式 shell 会读取它。交互模式需要设置读取变量,避免 oh-my-zsh 更新提示和 tmux 自动启动阻塞。 + +**允许 shell 的值覆盖 `DSH_*` 变量。** Desktop 在读取之前已解析 `DSH_HOME` 及其 profile 路径,因此 `~/.zshrc` 导出的 `DSH_HOME` 会让 Host 使用与 Desktop 已准备的不同的 home。 + +**等待 stdout 关闭。** 启动文件启动的后台进程继承 stdout,可能无限期保持它打开,使每次读取都超时。 + +## 影响 + +从 Dock 和 Finder 启动时,Host 获得与从终端启动相同的环境。修改启动文件后需要重启 Desktop 才生效。启动需要等待读取,每个候选最多 `DSH_DESKTOP_LOGIN_SHELL_TIMEOUT_MS`。无法运行 POSIX 输出命令的账户 shell(如 csh、tcsh 和 nushell)改为获得第一个系统 shell 的环境。`DSH_*` 设置必须来自启动方的环境,而不是启动文件。单元测试用替身 shell 覆盖提前完成、超时、中止和回退路径,Desktop 启动测试验证 Host 等待读取完成。 diff --git a/.agents/notes/archived/manifest.json b/.agents/notes/archived/manifest.json index 5ed6850038..28ecf269b2 100644 --- a/.agents/notes/archived/manifest.json +++ b/.agents/notes/archived/manifest.json @@ -1,9 +1,15 @@ { "version": 1, "files": { + "architecture/2026-06-11-content-block-vocabulary.i18n.yaml": "sha256:825e605a80afd11cda526f5a54154b6bd6c65593ebce394664cc6fe26ac9d125", + "architecture/2026-06-11-content-block-vocabulary.md": "sha256:c0c64270bf31a7cae5db5aed79e754e3777c759b9daee7575353617108951b47", + "architecture/2026-06-11-content-block-vocabulary.zh.md": "sha256:0a20a3d61dfdfc597ccd56893eece8f16c2d8018ed58808427e712e9dd90ccf6", "architecture/2026-06-11-custom-schema-dsl.i18n.yaml": "sha256:f05d94c11762e506183044ddb1494a2b200ca16999ef3cef51c7b3a324eec945", "architecture/2026-06-11-custom-schema-dsl.md": "sha256:71286f2676f8b47d0bd56c6cc43cf8102946e6d195942860a5810b9c534d2b2b", "architecture/2026-06-11-custom-schema-dsl.zh.md": "sha256:999ff59565a4459184a644c4de6ef98c1bb1a174712e529f5c8417342abdd437", + "architecture/2026-06-11-microkernel-event-taxonomy.i18n.yaml": "sha256:158ce20babe0d42cfad4a558d098a401cd0169f4ec46458ff0542c6d75f720b1", + "architecture/2026-06-11-microkernel-event-taxonomy.md": "sha256:2931b1fa5eb21eaa3a73997fccd5c209b85df41666e215e7d01252c5d7248982", + "architecture/2026-06-11-microkernel-event-taxonomy.zh.md": "sha256:507817e05695a5ee68833ad41319f885d65bce231c3e2557fd4f891effa2cc9d", "architecture/2026-06-11-runtime-arg-validation.i18n.yaml": "sha256:2298b757376b5be2d15c9431f484344bbd9a2dbf5786ff27464ec079d6f1ff36", "architecture/2026-06-11-runtime-arg-validation.md": "sha256:19b8cc0fb42371aae27fb942a6d1ea31dacd59f46afb7eef1f2f2984487d5ec6", "architecture/2026-06-11-runtime-arg-validation.zh.md": "sha256:690b7a109a719bd416bf41ffe35029c8c9101df3c52f9896b9adf7d2f0b8d194", @@ -13,6 +19,9 @@ "architecture/2026-06-11-tool-schemas-in-prompt-assembly.i18n.yaml": "sha256:37230a2f5b9dbe160b4f36b6906065637846261cbef380c3e2b777cf0d8e9013", "architecture/2026-06-11-tool-schemas-in-prompt-assembly.md": "sha256:6f7b7f15f53f857ccb8477b3fdf65bf2de3a6f96acd93049c03ce4aff1629538", "architecture/2026-06-11-tool-schemas-in-prompt-assembly.zh.md": "sha256:fd5ddfc53f8a1c4afa86599c858c2ad27858166e676754ee6e2ce0881f55cef7", + "architecture/2026-06-14-session-persistence.i18n.yaml": "sha256:f3cdf40bd320d7f829e18cb4513208824cec0d1deb56f84bb955c4d3d56ac3da", + "architecture/2026-06-14-session-persistence.md": "sha256:325a5f797132ace0ccbd0ae9902346eed702ae794b11b3a248d6af8b92ccb9be", + "architecture/2026-06-14-session-persistence.zh.md": "sha256:32ddf8974828e89e5517646b7ee7f9d0ff5af60dea214885941e403662722a9f", "architecture/2026-06-15-turn-enclosure-invariant.i18n.yaml": "sha256:7eb471a53b7bef104c57e9343b80d672763f062ecb086b01b318b65b488d3c02", "architecture/2026-06-15-turn-enclosure-invariant.md": "sha256:afefa3a268c84f26cf5461e08933245352a9e63cff688d3c398c8064a4ac6e85", "architecture/2026-06-15-turn-enclosure-invariant.zh.md": "sha256:c54fdac980abc922cdc252a8fef59e4bdd7567316c7fbb6f7dbc035e470d95fa", @@ -31,9 +40,18 @@ "architecture/2026-06-20-extract-example-app-packages.i18n.yaml": "sha256:d99b612cc1051c86d883d74737c72e921735e7a28e0b5e6351d3870c664bdcc4", "architecture/2026-06-20-extract-example-app-packages.md": "sha256:9c7aca3a1e9a1ccc3729961663bc649b90076e671cae23e3db8203305983ccce", "architecture/2026-06-20-extract-example-app-packages.zh.md": "sha256:19bd50232d9f25d35aa3f9dc72d9af0df457dd0eaca8b982d5aa625e5b95bcff", + "architecture/2026-06-20-generic-long-running-tool-runtime.i18n.yaml": "sha256:42bd649f7c0f494edc59b8e51ea77be9e43a607a35bdda83a57a4852349ab2c6", + "architecture/2026-06-20-generic-long-running-tool-runtime.md": "sha256:9638a533c9ffcde6da6b36e9cc042ded07b46f1b12120130c797cb736e152fb7", + "architecture/2026-06-20-generic-long-running-tool-runtime.zh.md": "sha256:c14f72853aa447a454ba23e658f4e24d355f9b9e09ed5024f5783894969f6273", "architecture/2026-06-20-package-hierarchy.i18n.yaml": "sha256:02b9c383c0fc4e9d6cdd2d28b70b73d02ed913861834db8e2a3111ad82e05dee", "architecture/2026-06-20-package-hierarchy.md": "sha256:a0c6b3022e27f6106996b7aaf5d087b3e3f66f24f7b5fd7b7c12f172ab5dc2f4", "architecture/2026-06-20-package-hierarchy.zh.md": "sha256:40eec478cc5ff8ae76996e567d1f58309ed71b3bf0068ee06b088deae283512a", + "architecture/2026-06-21-mandatory-app-attribution-headers.i18n.yaml": "sha256:cadd048affca937aab200aacc09e2c61d4789e178811c4beaf999a5d9eb2f858", + "architecture/2026-06-21-mandatory-app-attribution-headers.md": "sha256:1fad4ae82c6c74a436319c2423d2b973c8895a6aa9e17f5113ea5e1f0fec052a", + "architecture/2026-06-21-mandatory-app-attribution-headers.zh.md": "sha256:d5e39dd4188054b4291cf35014a7c375f889af0fb3a7a82eb27f4505eb0b98e4", + "architecture/2026-06-26-file-context-as-event-gate.i18n.yaml": "sha256:3bf4f900b65487beaf0ca0a355484caae9ab9249d70f8db7a24dd024e034b641", + "architecture/2026-06-26-file-context-as-event-gate.md": "sha256:66e447d3066bb8fd06fff450ed168fff017dba666e929312de058747288c067b", + "architecture/2026-06-26-file-context-as-event-gate.zh.md": "sha256:253d172be02ce33c33e07de2ff8ea5b9a703c2759818c49f3502d3627d97e9f5", "architecture/2026-06-30-bash-stdin-env-trusted-plugin-api.i18n.yaml": "sha256:32605633787a782818314707569f45e9c90d2ca21b707c46567d845fb641bb11", "architecture/2026-06-30-bash-stdin-env-trusted-plugin-api.md": "sha256:7433ba1518acb9f2fd0645ddca46c376b8b1b1ba7828ff2f7af9555c576aac9a", "architecture/2026-06-30-bash-stdin-env-trusted-plugin-api.zh.md": "sha256:7f4090e5764f9545671ce86be5eac7cae30a86aaf95e089aea16b1427c87b6d8", @@ -52,9 +70,21 @@ "architecture/2026-07-05-windows-fs-permissions.i18n.yaml": "sha256:7e61ee9bbd9de4bf3285a6f250d9625bd062e5fb90279dbffd64c820f1f7fe6b", "architecture/2026-07-05-windows-fs-permissions.md": "sha256:03734da511eae3b0736f7cad73d9da76ae2f69f9d5ed09089b0121ccb135a861", "architecture/2026-07-05-windows-fs-permissions.zh.md": "sha256:454848057ea905fe76c88d17264e71e71fb685f08f82088de6976878372865c3", + "architecture/2026-07-05-windows-jsonl-durable-publish.i18n.yaml": "sha256:453f51c4e3bc387232b051281fc2b5f15b99f632bd780aa268c82cd5b514446a", + "architecture/2026-07-05-windows-jsonl-durable-publish.md": "sha256:f52c9e66a23eceec03fc943db77bb8fb086595edaf8779dedf40f203afc77673", + "architecture/2026-07-05-windows-jsonl-durable-publish.zh.md": "sha256:53ee9c2d6f40bc590188512d09157a469f0dd0b291efd21825097b4d955e07f7", "architecture/2026-07-06-tool-result-retention-library.i18n.yaml": "sha256:3d658500765ece3eb305fed4775e36a9846d922bcd0bc8e9c057e8746dde910e", "architecture/2026-07-06-tool-result-retention-library.md": "sha256:2d2877fd52d32f027a6974c3e887282cd5f8b2050bf2533adf12a2b9ad4e4cb5", "architecture/2026-07-06-tool-result-retention-library.zh.md": "sha256:b1c3f980ddf6a299902d5dd7f211cd384b89c2ea26afc0d642c167b07d965dc8", + "architecture/2026-07-08-agent-scope-contexts.i18n.yaml": "sha256:80e24129f8ef91cf0e104e21a920233ebb5d27294fce2c2d7617e581d06c822a", + "architecture/2026-07-08-agent-scope-contexts.md": "sha256:92afb2b68312b2ae455783e862fee81d9636a713d56e6006938545948eeafbb7", + "architecture/2026-07-08-agent-scope-contexts.zh.md": "sha256:c8e4e10d8f6e29a7c98b5fbb726ebc8181d361581437b4281ba5a253a3321902", + "architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.i18n.yaml": "sha256:315185feb1cd69b568e4ef82592d44bb41ea3a64efa74844905f706b7044b862", + "architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.md": "sha256:a93accd5f0de88ef8d2b3f37f900d20fe73cc3d6e822312f130cf0f7af4a0abf", + "architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.zh.md": "sha256:04547a382062ae78d32fc6ebdcca231d39af2c9fce232c5d2bc9fbf11e940d1d", + "architecture/2026-07-12-agent-scope-runtime-design.i18n.yaml": "sha256:32012e5705d6f44e054d7415a9265bcdcc279d6e260e2b04b0d8b2dd143f8bb7", + "architecture/2026-07-12-agent-scope-runtime-design.md": "sha256:ba835250a9ff8c3b258e937cbb5337d49fe4bcf55b8f63b6fb90b15d2ea25613", + "architecture/2026-07-12-agent-scope-runtime-design.zh.md": "sha256:4193323cfdbf30215f87a2d90826e44b8e4798ef956fe5c72947e5dac5ca558a", "architecture/2026-07-12-scoped-layers-store.i18n.yaml": "sha256:c2a1251102215d60bf06e2de7f3f497d162f52210485524df1f512462afc0f03", "architecture/2026-07-12-scoped-layers-store.md": "sha256:0db4c96247ccd15f37edd2d00fea1bd11df6aa9d505ec710e8a606797deedf11", "architecture/2026-07-12-scoped-layers-store.zh.md": "sha256:dd20c33a397898901931579b7a01339d1997327f64dc561e87f3bafcd3ec8e9b", @@ -67,18 +97,36 @@ "architecture/2026-07-15-replay-token-meter-service.i18n.yaml": "sha256:cb2356e0771b0c06da8c3cf494d1e36f09b4034d015cf213bd2413202c34a6fb", "architecture/2026-07-15-replay-token-meter-service.md": "sha256:dab85a043b5a71b49aed3b0cba810e95bedfb4f318033b50664337fe4bb69f25", "architecture/2026-07-15-replay-token-meter-service.zh.md": "sha256:725f5773e52b2f580aa217be43c26acfada21570d266d407a995ed9a9f7b99c0", + "architecture/2026-07-16-explicit-turn-cancellation.i18n.yaml": "sha256:f2149444168373309cca7bd808017509847b50e55724b31ae0a0ac24b2112d9e", + "architecture/2026-07-16-explicit-turn-cancellation.md": "sha256:f1df651db30ec4f21d1276db0e616223604c7c4c60de4686c19863252f18be41", + "architecture/2026-07-16-explicit-turn-cancellation.zh.md": "sha256:21ec502b7ec801bb30d5a5fa2bb0053c2dce2757e0ea3cd1400c12e130b2c686", "architecture/2026-07-17-local-spill-startup-cleanup.i18n.yaml": "sha256:8aac3691a971964dfb7df662c11930119832f8f4a207906b49c2dc7824fdf987", "architecture/2026-07-17-local-spill-startup-cleanup.md": "sha256:5abf50a2bec99734477a7c885c0c44d57ad12f3c59621ea1502927193364917d", "architecture/2026-07-17-local-spill-startup-cleanup.zh.md": "sha256:17f574516921abd0c84915822d08699fdbaadb00447c15e6b4c1410783b61478", "architecture/2026-07-19-gui-layering-and-rpc-protocol.i18n.yaml": "sha256:855477999c84236430dc9308e16797eb21658a67a72b8537315c6964ff0c0c0a", "architecture/2026-07-19-gui-layering-and-rpc-protocol.md": "sha256:3517f37e98e74865dced37d5e1559d443e8fa827031c8335e99a1e910586e9ac", "architecture/2026-07-19-gui-layering-and-rpc-protocol.zh.md": "sha256:8181386d957fa6d6b3eb9b05d29adb10804b5a926853425415d368cc7fceaefa", + "architecture/2026-07-19-gui-web-client-architecture.i18n.yaml": "sha256:b5fa3e83a617f695d3dc80898b58fc815fce13210937606d32cf0a2c644cb312", + "architecture/2026-07-19-gui-web-client-architecture.md": "sha256:82badb52e2c0a9ad38ab49f68411f48a732a63f1c8226460ceb78e9487cf4c0a", + "architecture/2026-07-19-gui-web-client-architecture.zh.md": "sha256:26897bdcbc1c2f9909c46faf9bfa973a19822848477b0dcaa846fa008835545e", + "architecture/2026-07-19-package-invariant-runtime-contracts.i18n.yaml": "sha256:a232db6670ea51521112ad54bcc0cc4ad43c5b11dfa0df2963a6f04e79434c7f", + "architecture/2026-07-19-package-invariant-runtime-contracts.md": "sha256:8f4a84b310d5ad8398cc272201c8c0ed259496050fad8cb4d3634ee5bbb1dc1e", + "architecture/2026-07-19-package-invariant-runtime-contracts.zh.md": "sha256:6b43c6437523e2715cdb8d75fd286a1eebd0d17f5a35f6c9afddb3f15cdfb945", "architecture/2026-07-19-package-owned-invariant-service.i18n.yaml": "sha256:9ea696b84c3af215eb3640e8acfe75a73b0f16109cbdffd4ce18cbf616221231", "architecture/2026-07-19-package-owned-invariant-service.md": "sha256:514f93f2261fecab9eb7efa8613340b1f01b729b411ac4adce903c50935fa95e", "architecture/2026-07-19-package-owned-invariant-service.zh.md": "sha256:cbcc5550b68bc6699ac7411c46c5da67db3fc4fe8330873f1d190ef8141f1280", + "architecture/2026-07-19-zstandard-jsonl-session-logs.i18n.yaml": "sha256:d2f52ec7fa1713d66912d4e5e478330a4c62f18f88feda1f4db908ef32ed0738", + "architecture/2026-07-19-zstandard-jsonl-session-logs.md": "sha256:a2546e7222fc1aca0f54bd7aedcecdd141cde931f3598f2133291f49f5c6bb08", + "architecture/2026-07-19-zstandard-jsonl-session-logs.zh.md": "sha256:1b4115638c3bfc23bc5079da4d48b6e5243fedc9e723b7538f835a06f2392aed", + "architecture/2026-07-20-canonical-tool-output-contract.i18n.yaml": "sha256:d5ec751780608ac698785f5ce4f4dbe60fbc899e00eda6983fbdc76571c5230a", + "architecture/2026-07-20-canonical-tool-output-contract.md": "sha256:4d2f2f72c6fed24474644fed1c05ff9cdd8ec52dad972704a11575d414c5e393", + "architecture/2026-07-20-canonical-tool-output-contract.zh.md": "sha256:ef64daa6f359680110a0eab22c0b5db9a13fb8a6b3396090f3cc46052812ce6d", "architecture/2026-07-20-todo-event-ownership.i18n.yaml": "sha256:d8c7537ec3110834eef3f5ec934842acc23315e6cd235ed92baea967244c78b4", "architecture/2026-07-20-todo-event-ownership.md": "sha256:4c92c6dd9a5879437224f57616d1e106bf5a6afc1dd6229b033a01a51a035470", "architecture/2026-07-20-todo-event-ownership.zh.md": "sha256:9218336958487145fbb7bdf2a47259f2d43646db3233800364c234fb061be2e4", + "architecture/2026-07-20-unified-json-value-schema-dsl.i18n.yaml": "sha256:e4b8a1816b6f4c04a4c711ede05bf92b7ba3221ddb9dbbc5095d4123daa16129", + "architecture/2026-07-20-unified-json-value-schema-dsl.md": "sha256:320fc081b5d01f91649e72292e314af6dd5f90ae2fee84b00eca2232c6957916", + "architecture/2026-07-20-unified-json-value-schema-dsl.zh.md": "sha256:f65c484aa3d25e680fd83bf095282a2686749f2b1d970d10b814e76ed7252f79", "architecture/2026-07-22-tui-interactive-extension-service.i18n.yaml": "sha256:1b4822af5c8d642b73e3a0b04fb0a1dea9f50d0147046fbef53f5e49c030fb91", "architecture/2026-07-22-tui-interactive-extension-service.md": "sha256:ca6b2774f4821e66f7c8397f20fcd34926728ded853fa48cbe451db7a8d2f883", "architecture/2026-07-22-tui-interactive-extension-service.zh.md": "sha256:5b060c7626ee796c27108be7467a5e4be0677d7525d383336e7ec31ddce5c303", @@ -97,6 +145,15 @@ "architecture/2026-07-24-dsh-commander-argument-adapter.i18n.yaml": "sha256:cf99eda0e58b49630d5f95792459d7095666fafbef61f614165d5cdd031b7118", "architecture/2026-07-24-dsh-commander-argument-adapter.md": "sha256:705654c8a43bcd199f72c21a77d24ca8bfa02447aff1c7f3e4e820be61dcd562", "architecture/2026-07-24-dsh-commander-argument-adapter.zh.md": "sha256:3844f02d7659d18caf5d39e1131ed775c789cbf92dc44b4a446c7d6468aa5d00", + "architecture/2026-07-24-project-session-directories.i18n.yaml": "sha256:06849b9065103b0cd1d1e33bdd83c1326825845d175a80c4f188c61545651890", + "architecture/2026-07-24-project-session-directories.md": "sha256:ee09140a83a8c3b1f1fb6c575c4df1af495e254fe28fec04a96d98c2c1032d1f", + "architecture/2026-07-24-project-session-directories.zh.md": "sha256:e5aea80277d74ba8b30126e1c92bb0b4365550dfb8a477dad94d0f90e9f9db6a", + "architecture/2026-07-24-web-config-tree-boot-and-transport-layering.i18n.yaml": "sha256:029d75a97d1a59f2bb114e49cf7c2151e48f6d7b32270883916815ac5fc68c51", + "architecture/2026-07-24-web-config-tree-boot-and-transport-layering.md": "sha256:e445cd8debebd85235d13b9b1a5c4b3b2514416562945066c2e47caed20bf9d2", + "architecture/2026-07-24-web-config-tree-boot-and-transport-layering.zh.md": "sha256:dab93a6feed2e863e4ce489b75fdc0f223eac0f8a82625f8f7488c22c6ae0592", + "architecture/2026-07-25-web-client-session-scope-and-provide-channel.i18n.yaml": "sha256:f215fa8dad60a322e0076120e880383b8f814ff57ae7c8eb256062e509bf1bea", + "architecture/2026-07-25-web-client-session-scope-and-provide-channel.md": "sha256:b79bb0a5d0cc800ae523b16539e84b75292417f38a892e9864c5a68eebd41bc9", + "architecture/2026-07-25-web-client-session-scope-and-provide-channel.zh.md": "sha256:cb2f0c57bcf68b6e21f39a1dee9551ba124d7d4ce12f53fbdbae3ff98c694e1c", "architecture/2026-07-25-web-command-surfaces-and-assembly.i18n.yaml": "sha256:726092004674738dfaf8a6cace26d9d39d567b9710a147fbc56b0bfa6bd780d0", "architecture/2026-07-25-web-command-surfaces-and-assembly.md": "sha256:8415f54cc7b2c1ed06d55863c8c2f9800c32caaf10f62e7ad0c9593c49e2f7ec", "architecture/2026-07-25-web-command-surfaces-and-assembly.zh.md": "sha256:acd5de934fcf43d87334feded440d4109f1fab6735e6480cabc847a27f8a75ad", @@ -148,12 +205,18 @@ "architecture/2026-07-30-config-plane-boundaries.i18n.yaml": "sha256:af908b31293de6da141ed4e7a61422174ededda06c99d01f900fe96509910f39", "architecture/2026-07-30-config-plane-boundaries.md": "sha256:7d628e144fd9d872f0f7bcf7c5e29e0a75069aba7aef4d3be8f9ac8091495701", "architecture/2026-07-30-config-plane-boundaries.zh.md": "sha256:8cc0c48a73aae63201e1225980c675c72b9277ea6056acf104e8073468b8bef9", + "architecture/2026-07-30-session-end-seed-log-boundary.i18n.yaml": "sha256:ff22f65940837b7577488d367976cdd5ebc60558449f01c0e85ae716f5b8a4b6", + "architecture/2026-07-30-session-end-seed-log-boundary.md": "sha256:6cda510a72167eb1f8f2df2320753cc5797c80cff2babb05c408344df152d15f", + "architecture/2026-07-30-session-end-seed-log-boundary.zh.md": "sha256:1a093e1cbe48591101896e59aafef62aaac61a441521435f396e90beb049aacb", "architecture/2026-07-30-settings-write-path-integrity.i18n.yaml": "sha256:729e669c522107d5029db8a61a239f225587130e769f0a806a60a045e834983f", "architecture/2026-07-30-settings-write-path-integrity.md": "sha256:648c2302ccd60835d94ee94a3516d534541a37bfd4d3a2902509995e3429c43f", "architecture/2026-07-30-settings-write-path-integrity.zh.md": "sha256:c2de9383504ea00ef940df5f6174606893b4665bd196bb7c5f1db19e515ee038", "architecture/2026-07-30-web-config-plane.i18n.yaml": "sha256:81f973a05eed7ed6845b37e5c3e28db6141abd7d133c27fef9bb0e0ac0eb4486", "architecture/2026-07-30-web-config-plane.md": "sha256:80ec41d4cc43c9f6096d0269700f6ea2d26f06aee3a4b12afeddce1e51916944", "architecture/2026-07-30-web-config-plane.zh.md": "sha256:b7821469eb9fe37fe1bc178be4ac803fdb19d55c9d36e7c69048a51b9bfe52f6", + "architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.i18n.yaml": "sha256:7c485a9979a13ad0bf8d45c60d3e5f5c80611ac8bc84c699a8a2bfdbd56d9236", + "architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.md": "sha256:9b94e0284e7a8cc6475d8bd2463afbd28814653110bb6c7dcc4f12c7844bda90", + "architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.zh.md": "sha256:91c645127dd7306d65358bb07f7824da52360dd3ad0c336e1d3fad5879a8f1bb", "architecture/2026-07-31-code-runtime-portable-identifier-seam.i18n.yaml": "sha256:e243a62d3b468b6a65c80b284fe934fad09099a42d33c1dca47f435427a851b7", "architecture/2026-07-31-code-runtime-portable-identifier-seam.md": "sha256:d7a050d3a654b7b0445b8dbe6e87331bbd91ce0bf6ad23c6d83ee32ada85fc2f", "architecture/2026-07-31-code-runtime-portable-identifier-seam.zh.md": "sha256:286c53e0000bd0a109b67bf3ce5f190197fa674f103075461168768d78ea6770", @@ -172,6 +235,9 @@ "architecture/2026-08-04-declaring-a-provider-from-the-models-page.i18n.yaml": "sha256:0d8bce49724dddba6fb8aa5d4beedadebce36f38838111c59a18ee418c9b61c9", "architecture/2026-08-04-declaring-a-provider-from-the-models-page.md": "sha256:99c4faf487b177a8231803ed68551c93f2f8f4902ad02ebdd6cd09d273c79603", "architecture/2026-08-04-declaring-a-provider-from-the-models-page.zh.md": "sha256:1443455cf5da2963612285b8852d8663def596f86e79066456a48e933c66825f", + "architecture/2026-08-04-draft-provider-endpoint-interrogation.i18n.yaml": "sha256:92c633b150fbd623c76fd3a7aac43cc9a565f69ce49945f39e0e246b4eb7f483", + "architecture/2026-08-04-draft-provider-endpoint-interrogation.md": "sha256:232e922d12306089b62966b6a428b0858fdde5bcab9fa3eced213e17266a0986", + "architecture/2026-08-04-draft-provider-endpoint-interrogation.zh.md": "sha256:c4132fddc1dd64fa507e1f453fe1e4dbf98dd9785b1743bf00f52dc7a974daaa", "architecture/2026-08-04-websocket-downlink-carrier.i18n.yaml": "sha256:b9d742d068a0e36df2f3030f6a04a3638f3461f7e10b50ed0cd6bd5e85de5019", "architecture/2026-08-04-websocket-downlink-carrier.md": "sha256:b9be27a4cda8abd410c6e8b728c571f96b4891eb003c5200e9a0ffbbc9145b42", "architecture/2026-08-04-websocket-downlink-carrier.zh.md": "sha256:118b71b33710a7a3d28375c48b42c1ec19993ca7e13f286dd6ea64f934456f46", @@ -226,6 +292,9 @@ "architecture/2026-08-10-product-subagent-providers-in-shared-host.i18n.yaml": "sha256:09fa68844f08eca349a49cb82a3b949a4a57856334679fb43cb95a12243669e3", "architecture/2026-08-10-product-subagent-providers-in-shared-host.md": "sha256:d7918f9ef4164035f29bb9f3f7851efdc42f6f7a5f12dc77af0c6f865c4580e0", "architecture/2026-08-10-product-subagent-providers-in-shared-host.zh.md": "sha256:f9ec3b3e6fb3173c4eed84b09956b923cf7a7a8a00fc495e36e306712795a97d", + "architecture/2026-08-10-remote-event-delivery.i18n.yaml": "sha256:ca96befabb8c38dfa81aa703f713fec0e3c965dc728aadcc28f9c2a49fb24c7f", + "architecture/2026-08-10-remote-event-delivery.md": "sha256:3f48c972e9a54baaa0eb35f58e1f2a0979986b5a063f839fe817aa975b9c2edf", + "architecture/2026-08-10-remote-event-delivery.zh.md": "sha256:287267edc264aefef7aec3696b0777940cb3e00e2f4f971fde9294c2bf160a8c", "architecture/2026-08-10-unary-apiproxy-remote-migration.i18n.yaml": "sha256:53a0193dca8f4164b59210df550a3c17436c28c7a78c75d9e3c2c9d3dd0ff8d2", "architecture/2026-08-10-unary-apiproxy-remote-migration.md": "sha256:a95a1a85baefecd74dec1641692a6990c0b935869210409f01c9c1757876dd0f", "architecture/2026-08-10-unary-apiproxy-remote-migration.zh.md": "sha256:8118a06af8672aa87ffb3733a36cbf7d142b2c6fcfedf5db3e545c0ca7ace52e", @@ -268,6 +337,9 @@ "architecture/2026-08-18-client-build-environment.i18n.yaml": "sha256:a5c953aa89b9084c76ff6fad64d93e5cb53814787c088875ef53b3c3730997e0", "architecture/2026-08-18-client-build-environment.md": "sha256:a962d301170e54d1f82b68868f9717c2aaaf110bf397ca64366cb67216292fa0", "architecture/2026-08-18-client-build-environment.zh.md": "sha256:08982b9ae233596e04bc485d5b67176ece0767f9671cd15aa928f8774c4d86dc", + "architecture/2026-08-18-experimental-agent-teams-packages.i18n.yaml": "sha256:17904bf8f4c8596ecf94aa2512e9a3c2d04e048d5fcf0eb64ca4712e6098ce97", + "architecture/2026-08-18-experimental-agent-teams-packages.md": "sha256:b627a894d44aa1ecff955e643d4cabce9e681a2915ee6a80dac1e1ee9edc3339", + "architecture/2026-08-18-experimental-agent-teams-packages.zh.md": "sha256:1c498e1e55e490562983cbef9389d679da70fdea3e0323e807ea5522fe505a0c", "architecture/2026-08-18-sqlite-physical-chunk-row-compression.i18n.yaml": "sha256:42bce930799cb511e9fb245dec5e26efd78bdab4c9b75f7393e37b40fbee4d10", "architecture/2026-08-18-sqlite-physical-chunk-row-compression.md": "sha256:4fe241f1b272278d9f3ca1a4431971220e1fa54411df043826ef6f59225bf949", "architecture/2026-08-18-sqlite-physical-chunk-row-compression.zh.md": "sha256:73178c9ec5abf571680d8facfb145cbadc1efbb2e67e3f039747c2f9cf4bb730", @@ -346,6 +418,9 @@ "architecture/2026-08-27-process-table-snapshots.i18n.yaml": "sha256:d43fc5cd1d2439a2a9d20b1ab85b78c2007e635770b99fa8e8f36ca2476075ef", "architecture/2026-08-27-process-table-snapshots.md": "sha256:583a5aa1ee3949ace886237b151e94092cd7abd1f6d0c775bd7a2d132f8fa1e5", "architecture/2026-08-27-process-table-snapshots.zh.md": "sha256:0dfe98b3220a790bf2d67b5b791d7fc288e9960f813afe55275215ea4f930c3d", + "architecture/2026-08-28-subprocess-native-containment.i18n.yaml": "sha256:b418169a40a2954ea0ec6af73b93e0b862f8a0824397f62487ff641df9ba49f5", + "architecture/2026-08-28-subprocess-native-containment.md": "sha256:97808213de8f4d675957beb5459c40ed2950afc05712de0022af7f237640c1ef", + "architecture/2026-08-28-subprocess-native-containment.zh.md": "sha256:b0b38785e954682b8b61d1c6eb9b02550a14512953eec633317542b78b6f2198", "architecture/2026-08-29-plugin-inventory-agent-preset-scopes.i18n.yaml": "sha256:0ead49a8471f0f2db56c114b89825d7c3a913db24d3c69e9b89aac717cf4338d", "architecture/2026-08-29-plugin-inventory-agent-preset-scopes.md": "sha256:cf111d4863a2b64a7ecfd1abd12768755e311c9a229fa6f7adc1885298c806af", "architecture/2026-08-29-plugin-inventory-agent-preset-scopes.zh.md": "sha256:6688736349c677c7698f4417e795167b84cc5e368e247424080b746fdaf9fcbf", @@ -358,24 +433,129 @@ "architecture/2026-08-31-viewport-activated-syntax-highlighting.i18n.yaml": "sha256:f45afe590c67c8874480b8a2e1739b918c69c709d53e5e1ab673797eb6619bd2", "architecture/2026-08-31-viewport-activated-syntax-highlighting.md": "sha256:df1c5883c13611104fd41e4df920513724a1daee3f5cf06db8d1da97627bdec5", "architecture/2026-08-31-viewport-activated-syntax-highlighting.zh.md": "sha256:da3fd4b4d22b20f204e4418b8249f719fd9d8860f5e148af8f960d8983b379b7", + "architecture/2026-09-01-jobs-absorb-activity-record.i18n.yaml": "sha256:0eb984fb9c4ac6923c5a62d38c7ec3c4d5764210209c4a059dedd86088d241f9", + "architecture/2026-09-01-jobs-absorb-activity-record.md": "sha256:c18d816a566c61c1f06cf6f050fa856ea84d62b7dac247b404e97ae90b7543bc", + "architecture/2026-09-01-jobs-absorb-activity-record.zh.md": "sha256:754e63f4be3df22679e88df4abf4b4202a983663e9bcfd0fd9534ba9eca2f700", "architecture/2026-09-01-streamed-tool-call-identity.i18n.yaml": "sha256:5193bf7429a0300f743ea7e6087c3175a7d28c2c468ca1cfd1f77702b68b6399", "architecture/2026-09-01-streamed-tool-call-identity.md": "sha256:303433b95c22571bf6a801da604b42a4c7231f5f6d07daeb518354f0d7019141", "architecture/2026-09-01-streamed-tool-call-identity.zh.md": "sha256:53728d3ee06b29d6023e28024fb3ab6fa4a7473ae5e55368cd19690719d120f3", "architecture/2026-09-02-durable-image-offload.i18n.yaml": "sha256:d06155597e7df4ca4c15a2902ab664d69cc2fde1e7963e61543d20a49930d2b9", "architecture/2026-09-02-durable-image-offload.md": "sha256:02b7becba3dd73a4e627b85705e8bd5dd55978cb041f4d3a0fd1420a76e4de92", "architecture/2026-09-02-durable-image-offload.zh.md": "sha256:a0464b8272086d663ee698efd0b2edd6224d40770d7a8fd88a6d8bfe030b2a1d", + "architecture/2026-09-02-projcache-cross-version-read-compat.i18n.yaml": "sha256:ef49c74369799cb814196c9228db389c49a4726941d4b15b87b491becb0370b2", + "architecture/2026-09-02-projcache-cross-version-read-compat.md": "sha256:bddc84e2ece19ee3c46f46548f8dad82adfdd9562e5c006f5a49e701bdd356d2", + "architecture/2026-09-02-projcache-cross-version-read-compat.zh.md": "sha256:e330bb34c498b5622c991dc0c7ad221e539d5d4a3b360252f65758b9f9f11975", "architecture/2026-09-02-protocol-specific-model-listing-discovery.i18n.yaml": "sha256:ba8a62a9fa3263de4162709cb1aaf81f6ad4feee5011d7a5d8b24eb92ad81d30", "architecture/2026-09-02-protocol-specific-model-listing-discovery.md": "sha256:9db9c47559c17f0e2931b9e646f1d2d17b590df4d5699d4e779ed6d7f65fc371", "architecture/2026-09-02-protocol-specific-model-listing-discovery.zh.md": "sha256:9a266590d49093a097bcdb5d09865757cdd07625cfaaddce1303046d580551f1", + "architecture/2026-09-05-package-manifest-types.i18n.yaml": "sha256:ba2b549ec3078cf5f76f312f43e84519036ba183901ac98b2acfc60e7ca76c30", + "architecture/2026-09-05-package-manifest-types.md": "sha256:9e04158267478a3d59ca135f68a58f267ed3336f485828253f504cb2952b5ee4", + "architecture/2026-09-05-package-manifest-types.zh.md": "sha256:ca6ae444dcb4f30a3f255d0a1f6eac3d214dd8c41c8e62a09bfe6a90b5c82800", + "architecture/2026-09-05-sidebar-tab-types-and-navigation.i18n.yaml": "sha256:b58fc8771ee412fa59eedcb1fa69790290a8357f62e84f750af6e76702958801", + "architecture/2026-09-05-sidebar-tab-types-and-navigation.md": "sha256:81f6d5c3608f253e831218e3ae189aa8a716b98d5f386108f596f42a0aca28bb", + "architecture/2026-09-05-sidebar-tab-types-and-navigation.zh.md": "sha256:55f321a2936592979814a703eab2c6d240e8466f6c14a71da5138190320a4549", + "architecture/2026-09-06-embedded-stream-record-readers.i18n.yaml": "sha256:a8b30138ffbf2727fc679f3b2e45882aad0caaca8bde317ccf97bca3efefbd96", + "architecture/2026-09-06-embedded-stream-record-readers.md": "sha256:a097578d3bff23df4f054224b1ab76472a20a31ade0c0034d630fc59c8295d87", + "architecture/2026-09-06-embedded-stream-record-readers.zh.md": "sha256:ce3bbbb0a987f4b014b9369c15c73b8087299d89d254439ac0e22e017701ff11", + "architecture/2026-09-07-sidebar-responsive-tab-info.i18n.yaml": "sha256:e49ccc6e8aa8bc3d5717674fe5da0446286d828ae7d351221aca0c4c46a2b194", + "architecture/2026-09-07-sidebar-responsive-tab-info.md": "sha256:ff96e8a1da552eee4a7ae4482bf6dca23e60b6a7d9453cd393920d600a1667e2", + "architecture/2026-09-07-sidebar-responsive-tab-info.zh.md": "sha256:9302d848bdb978804eb47e56687dff5b6507b2bd1175bead73a750deddecd914", + "architecture/2026-09-07-workspace-files-dual-face-package.i18n.yaml": "sha256:acdd98ead2beaf40b1a450e70304393b957861b399020bab2a87980b6a45ad64", + "architecture/2026-09-07-workspace-files-dual-face-package.md": "sha256:b1fe56b80b2fd7250df5545bd86aaac3ec5c54c5a56263d8ca0ada37eacdf5b5", + "architecture/2026-09-07-workspace-files-dual-face-package.zh.md": "sha256:b21c72f4203b770f22f4e9f8777b86391ae2a6a4191b0d43efeb5b02758391c3", + "architecture/2026-09-08-global-main-panels.i18n.yaml": "sha256:6e7644b9802afae7a3fb0ca1a888bb00b0b9ff59479362d7b31a0302935652d4", + "architecture/2026-09-08-global-main-panels.md": "sha256:6a2603ff00f14502a733f1fcbfe6904478edf4e969cddf7b51db476e913d3c53", + "architecture/2026-09-08-global-main-panels.zh.md": "sha256:2cd95305765e7f233f204640162bd5fbb5676fc13fbd78b26941e81bd9ed513c", + "architecture/2026-09-09-desktop-build-release-validation.i18n.yaml": "sha256:351e5a2d53633d3cb48fd2209d1e51cbcb9722e8143e1fdf951387e4cf8e4711", + "architecture/2026-09-09-desktop-build-release-validation.md": "sha256:70d0fd717ffa31234bf33ec64e5b894e49721160a98c5e443d3d4306832da19d", + "architecture/2026-09-09-desktop-build-release-validation.zh.md": "sha256:c752ae306dc0ce6fb5783adc876902a43e522c902f1e3fdb29404da769f59ab5", + "architecture/2026-09-09-desktop-immediate-window-and-direct-start.i18n.yaml": "sha256:9acec631d186cb60f70f12755caadb8c6d0833a7a69405887aad39cf86b4deda", + "architecture/2026-09-09-desktop-immediate-window-and-direct-start.md": "sha256:e0258ef3830a0c0a8f900e3dea749af06c1ce3e3fda87527916e64def85f75cc", + "architecture/2026-09-09-desktop-immediate-window-and-direct-start.zh.md": "sha256:a9c92eb3e5d52f7ec7ea61c22ec4ec54cb48776305a92fe23e2ec6b46e93a485", "architecture/2026-09-09-desktop-in-place-profile.i18n.yaml": "sha256:08543070a32503373d38ca98b7ce96ee60c972302534030c5ba380f19e04fa00", "architecture/2026-09-09-desktop-in-place-profile.md": "sha256:82bdcad48207c5aecbc9695717aaaa4c8cca90c82ca58884bfa653b60f192290", "architecture/2026-09-09-desktop-in-place-profile.zh.md": "sha256:f105636c9160c64b12bd1822c8ec81ee744ba27c0b0ab6eeed870561ccd81ce7", + "architecture/2026-09-09-plugin-management-in-the-web-sidebar.i18n.yaml": "sha256:cb1a4bbb7633fb928dc98cdeb4c981d73b7120339c9c5826f0bf85867d634ba5", + "architecture/2026-09-09-plugin-management-in-the-web-sidebar.md": "sha256:0967da54312b4906f4bc44a1345e85283f04cedacddba7451e4ae86562c5a9b6", + "architecture/2026-09-09-plugin-management-in-the-web-sidebar.zh.md": "sha256:51591d15716af4ae7d5bb08497f2a89cd7c0d77b0d545322be00dfeab4f0c9e7", + "architecture/2026-09-10-command-identities-and-composer-file-action.i18n.yaml": "sha256:bf6e5ab88c13788a750c0f290483f424d3c5ea975026792b7d255fc58d628754", + "architecture/2026-09-10-command-identities-and-composer-file-action.md": "sha256:f87b65f4099ebbe57731d5cbc631337ebb24ad1492858e3a111034287b1073df", + "architecture/2026-09-10-command-identities-and-composer-file-action.zh.md": "sha256:daa24d061b06392e0c8de69a4955f1e262461fc371f77c6a9451985c769e9628", "architecture/2026-09-10-local-office-preview.i18n.yaml": "sha256:a43a2370c7434293ef98d1901a29b7b4b03f400a108c119f3ec5f2f7ca8ca3f8", "architecture/2026-09-10-local-office-preview.md": "sha256:754cfb4dde9f1ee70e495095f12fc9e3c43af4a959250bb3a59ae44fd32fd763", "architecture/2026-09-10-local-office-preview.zh.md": "sha256:d8fb9a65f437b585f2dfa2b4aa091634eeabf571e98e881cf7344b7574704e53", + "architecture/2026-09-10-windows-native-installer-pages.i18n.yaml": "sha256:efb930d0a0e7288cfee1d6af0a24ddb8565acede343a3dd5f6be65d35f25d7ed", + "architecture/2026-09-10-windows-native-installer-pages.md": "sha256:8dbb36a9eab988e917b73ab63d974541177c432ebaeb9de901fa7261748c10c7", + "architecture/2026-09-10-windows-native-installer-pages.zh.md": "sha256:d24787380c44d52a511d05dcbcf7c8ef083d789b7effb9d484e5635b214fea24", + "architecture/2026-09-11-desktop-electron-node-runtime.i18n.yaml": "sha256:df4f00e58479e886bfb2f0db50e75d3b6d9c46990bba9bf838c3fa903e90d6ee", + "architecture/2026-09-11-desktop-electron-node-runtime.md": "sha256:c4097ff6dac6ce8e9295dfe9c268d924b6e7daf1d68031ae27d6f284205e2bb6", + "architecture/2026-09-11-desktop-electron-node-runtime.zh.md": "sha256:b8bf6b70a468b80e1952aa73c909a2e8c29ed16242bd583c7cb2707bac460988", + "architecture/2026-09-11-node-office-kit.i18n.yaml": "sha256:eaa46c9c097fd8ff307f51d7e108d58d46d4daa4e5152e7498893647ba18f1d8", + "architecture/2026-09-11-node-office-kit.md": "sha256:251575a2c550afc3f5d570249ada07902ca19cededbf59d3ffc5c96341b2d6ef", + "architecture/2026-09-11-node-office-kit.zh.md": "sha256:a62fcfe872ddd8952c0115c646d5114451316e4eb656bfb8e78c500e52b75174", "architecture/2026-09-11-wasm-preview-font-and-image-budgets.i18n.yaml": "sha256:af027c7dae53a181e4d73fd2309f69e9ae3c48df0d3b1dfc53cae274aa60d69e", "architecture/2026-09-11-wasm-preview-font-and-image-budgets.md": "sha256:44dd52839cdb67644c0dbcbc4beb6f36802628c4a8d17a0aad11db1f9be649ed", "architecture/2026-09-11-wasm-preview-font-and-image-budgets.zh.md": "sha256:8285432ee1676be8b79a05953c4b6ac4a7ca5d8e701173b3a2b533608b584d0a", + "architecture/2026-09-11-windows-directory-installation.i18n.yaml": "sha256:7c8b0b01e129b5c0bcabc0c9ea3d7e2b0927d7e39311aab30e7553395d03a2e7", + "architecture/2026-09-11-windows-directory-installation.md": "sha256:d09207a97c6a0161b46da8fa685f5acda3e9ed161279bf8cb6c211cec89b9a95", + "architecture/2026-09-11-windows-directory-installation.zh.md": "sha256:aee9c09908b5a435ae4708bdf718c90357db801f08efcaa274dcc6a087fa17a3", + "architecture/2026-09-12-ptc-runtime-vocabulary.i18n.yaml": "sha256:8f0d4573f49c72f3bf420f51d84eaa549b832c9122a04cfeb53c02330c1f322d", + "architecture/2026-09-12-ptc-runtime-vocabulary.md": "sha256:4723d115dc3e997701ae0b3707475c40f9ab8ee5a71d605f494f0aac40c90149", + "architecture/2026-09-12-ptc-runtime-vocabulary.zh.md": "sha256:8441c37449949f11daf11baf4d868f9a2d053fc877ba59ea84581b23869aab25", + "architecture/2026-09-14-sidebar-layout-provider-recovery.i18n.yaml": "sha256:1d237f9f04bee161319c9af336e720464c1084693e6d9a9b46ac68dd3108065e", + "architecture/2026-09-14-sidebar-layout-provider-recovery.md": "sha256:fb98065f958ed717e8d3fbd358a22b8875e2e703de0346fab25f4189b96e6585", + "architecture/2026-09-14-sidebar-layout-provider-recovery.zh.md": "sha256:22a9973412a25ffd040354657032d67ffa03d6111604c24951380408d5a19a1f", + "architecture/2026-09-15-narrow-pi-ai-runtime-imports.i18n.yaml": "sha256:fbd7cb2bcfc9bcb1b7b2037d779ebab5309e39eeb2b5b4ff2489cd3604ec7ebc", + "architecture/2026-09-15-narrow-pi-ai-runtime-imports.md": "sha256:faf98cde580ece829227d4b005faaef02a9fa157726814921ec51df9da6d6621", + "architecture/2026-09-15-narrow-pi-ai-runtime-imports.zh.md": "sha256:92707eb32cde044cc3b54278845c25d2fc5cf07835d90e33f86dbe954bc74ed8", + "architecture/2026-09-15-platform-office-engines.i18n.yaml": "sha256:c5dd1ea80f993b500113f2a8e8fa4ef99d68f7fb262e93ef7f8973fea12d8c77", + "architecture/2026-09-15-platform-office-engines.md": "sha256:2bb35c30d1eb6b6f6e71b6aeef02b2eb9a7e0fff33c1c4b187aa42f9470e9b04", + "architecture/2026-09-15-platform-office-engines.zh.md": "sha256:7ef82a66baf85ac87dd79c4d66f7ad829362377ada41c00fde9b05d607c57716", + "architecture/2026-09-16-desktop-cos-upload-transport.i18n.yaml": "sha256:d706d8e7d11b08cb2a518973a0e8f25aa654a750034ab5d584d52c4c62a8d9ea", + "architecture/2026-09-16-desktop-cos-upload-transport.md": "sha256:29770e4de3c1cefe8dfbd472e7b10b3ebe9e05ec394b014924f48a2ae7a52a89", + "architecture/2026-09-16-desktop-cos-upload-transport.zh.md": "sha256:11f1444578683a0c2f0335d3b82cb2272ad039049c89660584096b44534dfc41", + "architecture/2026-09-16-plugin-configuration-on-the-plugins-page.i18n.yaml": "sha256:8d5538e44ec1a88b2f05bbc2ec7fac74bc71c836a2bd1799ceaceafd2c655ab4", + "architecture/2026-09-16-plugin-configuration-on-the-plugins-page.md": "sha256:3c10f1e887338d7f12f1e101b61361d7da90f4955cc6e95db71882cc219deda1", + "architecture/2026-09-16-plugin-configuration-on-the-plugins-page.zh.md": "sha256:b1bcba5e4d8bc7af70d92c4d87f2388a5590eecd20e13c2e59af5f9974431426", + "architecture/2026-09-17-plugin-detail-page-extension-slots.i18n.yaml": "sha256:baf5fb499c2aa925d9049e3e3eef1ca990098b77b7c9237bd860deba38968175", + "architecture/2026-09-17-plugin-detail-page-extension-slots.md": "sha256:a27d98d16640f2337b4edbeea948e4c5ddc2c065f2c1a7a7f314bc8670b465ba", + "architecture/2026-09-17-plugin-detail-page-extension-slots.zh.md": "sha256:b7b39bbc1b3a3f9a4ac14020972182ab95802d22d7e1223680f867204106d05c", + "architecture/2026-09-17-session-row-menu-actions-slot.i18n.yaml": "sha256:3ed45fff7e2b518d0f192e27fa5553b1e7d18048afce9b922a1d8250f6fa51cb", + "architecture/2026-09-17-session-row-menu-actions-slot.md": "sha256:a250133ec9902f49f11dccf7c6c378fedacc38f0a4183406bd8f71569512dc76", + "architecture/2026-09-17-session-row-menu-actions-slot.zh.md": "sha256:2b18d5289c24f08c67a69d080097eacd25b15e5da89883a4a58c6963cfdba45d", + "architecture/2026-09-17-settings-pages-as-companion-packages.i18n.yaml": "sha256:14b51a7d4eaedbbbf8d2f09c6d714284ffb368263b21fc2307ddd3ab7c440dfb", + "architecture/2026-09-17-settings-pages-as-companion-packages.md": "sha256:b46d1a896e495b1fb4f1d218c046fb6c2590aa7d8b5bf56453f4f07bb6bf17da", + "architecture/2026-09-17-settings-pages-as-companion-packages.zh.md": "sha256:2a52a11b8b49478fb72e4bee84e5a62db1b4725f6eb56ec80e2f7b88e3464c56", + "architecture/2026-09-17-shared-office-runtime.i18n.yaml": "sha256:0cea3ec197d6fe5b24c86ca70136a57254f26a3e82b02557ae271c135fde576f", + "architecture/2026-09-17-shared-office-runtime.md": "sha256:7f89995d3238034377b5e706062feb6282ab45642466da9275443aadade19bf4", + "architecture/2026-09-17-shared-office-runtime.zh.md": "sha256:5ef380c6d58e3ad41b3c603d6088d77c4fbed2e3006b61d048349e17b31ad43b", + "architecture/2026-09-17-web-feature-routes-and-route-gate.i18n.yaml": "sha256:9c720962cc80a23d9db4077ec9e415df8158b4915a76fd79ede22454d349af91", + "architecture/2026-09-17-web-feature-routes-and-route-gate.md": "sha256:4b6bcbd93f73b119684659ea307bf75ab9b1e2d9a600ba307bde8012a142a23e", + "architecture/2026-09-17-web-feature-routes-and-route-gate.zh.md": "sha256:e5bab09bd408697b58770d844d43e7ddf641a4e7a2abda3bd48e3639ea9b1727", + "architecture/2026-09-18-agent-teams-single-bundle.i18n.yaml": "sha256:e4fddcb94e6332b307b6ab27195bafbf2d68ec066116c6e8c18b5842eafbb9f4", + "architecture/2026-09-18-agent-teams-single-bundle.md": "sha256:dcbc728cadfd5dcd6d477e001bac00042d560642b0d34f20da9dc7668108a004", + "architecture/2026-09-18-agent-teams-single-bundle.zh.md": "sha256:3c0d47cbe51e56e7b5d7443ea8c4bb202ff587e93ebe2f2e1edea1c91d18c5d3", + "architecture/2026-09-18-chat-navigation-performance.i18n.yaml": "sha256:58f7dc51a84d81911edf5beee432ee59b252371053ca94ddfa842198fcab00a9", + "architecture/2026-09-18-chat-navigation-performance.md": "sha256:ca2485d167fe400ef739dda0feeb28b60ff58e423fdd9c165c6fed52d7eb8dd0", + "architecture/2026-09-18-chat-navigation-performance.zh.md": "sha256:bd72c094e89b9f8841c1f2e9b781a83e2531271600795e015e261d6c0e2d7bc6", + "architecture/2026-09-18-localized-package-metadata.i18n.yaml": "sha256:0e38b93d1f2bbecf8878ef5335860358b8c588e652d50a40070ca3bc8ca73d8b", + "architecture/2026-09-18-localized-package-metadata.md": "sha256:b33d455682ce53528a7fd889ecde65e32a38f2e35f3f542dd3d0a2d7318bd4bf", + "architecture/2026-09-18-localized-package-metadata.zh.md": "sha256:76e348dc9a74dedff9a297be4399181399810505c45b50c76e8532092bd35ff1", + "architecture/2026-09-18-profile-plugin-host-runtime-instances.i18n.yaml": "sha256:40082f24ce4597a6baca242be7aa5ef18cdd89114c74f94bc8c1909d90b50aaa", + "architecture/2026-09-18-profile-plugin-host-runtime-instances.md": "sha256:98aa3cb2be43ce32e16b172cf68073e83eca0df3a17bae2ab41d2623e6db6c33", + "architecture/2026-09-18-profile-plugin-host-runtime-instances.zh.md": "sha256:6e21186397d71f4ae1a741ae7b439df03856c6f8a503527ebabf4ea034402510", + "architecture/2026-09-19-lossless-projection-checkpoint-json.i18n.yaml": "sha256:88644a4c0a9e6bab3587c7140158fc4b30f7fe569a61bc219d82d1bece2d332a", + "architecture/2026-09-19-lossless-projection-checkpoint-json.md": "sha256:110794f7699261bedeafbf427e23c03f497dcfb4796e6fd2f3f3b704fdcb87de", + "architecture/2026-09-19-lossless-projection-checkpoint-json.zh.md": "sha256:42d8f294c85a245bf5dd8080963e752505229490e21fc5ca37a47eb13c818928", + "architecture/2026-09-21-creator-skills-progressive-disclosure.i18n.yaml": "sha256:4fb6ae4ada814d3c24bd46bab4e7bc9b0a7ee9cf1eceba643cc7726c0bda8869", + "architecture/2026-09-21-creator-skills-progressive-disclosure.md": "sha256:541565316120da3e395b0a45efd47b191f6d2ca6e2ea395ecdc203e7bda6f57c", + "architecture/2026-09-21-creator-skills-progressive-disclosure.zh.md": "sha256:02d43a9c82b2c25b1b5f9bd14f522756366f87580cc25da02b8a61bbfbc31d66", + "architecture/2026-09-21-live-config-inspect-provider.i18n.yaml": "sha256:23c7264731b942d7a498cd0af29b0a9aeeeb4c8039c84534df54867a0b4bcc5a", + "architecture/2026-09-21-live-config-inspect-provider.md": "sha256:cbef83e1e5cec2b87f0e8e29add18d6c5987ec542e2c4de41c0ce3ee4aad30b0", + "architecture/2026-09-21-live-config-inspect-provider.zh.md": "sha256:4a7dc1a42e111a50fa0d683ec3d7649d28b150dc9c193714972d60d817890b6d", + "architecture/2026-09-24-web-default-schedule-composition.i18n.yaml": "sha256:8c3d5c614924d0e81f361a299427ac697aefc6189c41eb3f4151f5c42e371ca0", + "architecture/2026-09-24-web-default-schedule-composition.md": "sha256:3a139593ade13f95cbb67094c1eec66cb0a2c14bcc154512799803b2a7d22ab4", + "architecture/2026-09-24-web-default-schedule-composition.zh.md": "sha256:59908f7987058742d1226dc8a801d03c265c84d51172249ba51716b91f084f0c", "bug-fix/2026-07-19-windows-atomic-write-dacl-preservation.i18n.yaml": "sha256:8be5b0afd8820c593e2ec254d35fb8c384267814104f6234bb9af824c5f974ba", "bug-fix/2026-07-19-windows-atomic-write-dacl-preservation.md": "sha256:861e6130e893489271478def5f54f212a106a1580b744e6e40f56356f73c7e10", "bug-fix/2026-07-19-windows-atomic-write-dacl-preservation.zh.md": "sha256:3549257e06f074591de580ebfaa71284c7c384fb0ffb1963c30258d7a7c26db7", @@ -388,6 +568,9 @@ "bug-fix/2026-07-20-error-cause-chain-diagnostics.i18n.yaml": "sha256:5a7634080e9921149565827e1cc3f5bea39b04ea171b57ba45c259a201f204be", "bug-fix/2026-07-20-error-cause-chain-diagnostics.md": "sha256:82d231e5632d0e582e26b54a9f65d0ce05afb7d6bb9bfc3d324737fd43c45c1b", "bug-fix/2026-07-20-error-cause-chain-diagnostics.zh.md": "sha256:b8c0669a5d0475a5ddffa644a17bd1009f525cf69edb36b7fade90014b97daca", + "bug-fix/2026-07-20-jsonl-storage-identity.i18n.yaml": "sha256:4705374c528e7d97a302e8b7e77d4c8efa41608d1b44e34e84aea50ea0345029", + "bug-fix/2026-07-20-jsonl-storage-identity.md": "sha256:831f2a52b455ec0b1dd7b98306a597fcbf5eee7313a1974e8b4407e6cc3bebf7", + "bug-fix/2026-07-20-jsonl-storage-identity.zh.md": "sha256:444f89cac97beb8718b80d93ed6ea20e942f078e3c4adfb2cc35497836bdbe54", "bug-fix/2026-07-21-compaction-summary-prefix-cache-reuse.i18n.yaml": "sha256:3093deb3286c628da23f738a6169044da63e04def5167319db25db5346eb3d17", "bug-fix/2026-07-21-compaction-summary-prefix-cache-reuse.md": "sha256:eb981a14d178470e9861df0d9f14ed0575d452485e5dd11b80f56578375ee4ef", "bug-fix/2026-07-21-compaction-summary-prefix-cache-reuse.zh.md": "sha256:e3105954814e83a52ef483b4b24ac260dd5c13d79861ebd218f8b7aa0e54b2bb", @@ -502,6 +685,9 @@ "bug-fix/2026-07-31-english-compaction-checkpoints.i18n.yaml": "sha256:d2727c1a67a615afbc4b21ad2a26936a298302a9cef9e666c17dfed4d31391a6", "bug-fix/2026-07-31-english-compaction-checkpoints.md": "sha256:54922365cebb173ea5bb0691a162e4d9743a146ca1eab8355ae6379cc6f5aa5c", "bug-fix/2026-07-31-english-compaction-checkpoints.zh.md": "sha256:d0ec253b79e3d698df2bbc37967bb49d35b4e553ce8f427cb502eea3bbc0e997", + "bug-fix/2026-07-31-fail-loud-releases-the-terminal.i18n.yaml": "sha256:1284f19db30c19a29b571444df59ae4f964bdd905b9d69e4b0f22b58f5f7d553", + "bug-fix/2026-07-31-fail-loud-releases-the-terminal.md": "sha256:a9bf988f05eda6bbe78a5818405603889be86d1d2870c8678b185ab3ad8d9c6e", + "bug-fix/2026-07-31-fail-loud-releases-the-terminal.zh.md": "sha256:b986d5b30dcec8a141a44c438317fd5543b999beeb444b20e5619f01bd702648", "bug-fix/2026-07-31-fork-anchor-floors-to-event-seq.i18n.yaml": "sha256:8fc15495a7450ff24740919496764aec978aed0c3014c59d5ff8033a01f5bca6", "bug-fix/2026-07-31-fork-anchor-floors-to-event-seq.md": "sha256:e36d3c6af393d02e872ba9e0f99ab64dd64246bf6e91ad9e5ae8c9619b206840", "bug-fix/2026-07-31-fork-anchor-floors-to-event-seq.zh.md": "sha256:790b8bb755b9b5919eb200036e45fd133987399299b95d6a1bf20ace30a676da", @@ -532,6 +718,9 @@ "bug-fix/2026-08-02-todo-first-composer-context-order.i18n.yaml": "sha256:130fad68ea68a0d2dbef704288f4fd4b9ba6bae6ef7e376021631b62d249956a", "bug-fix/2026-08-02-todo-first-composer-context-order.md": "sha256:0d8c29d7e67990f85d07ebde9c44a3247188e9910c47376a772e8ae951fd7bbe", "bug-fix/2026-08-02-todo-first-composer-context-order.zh.md": "sha256:ac1d1b9bdd18aedd847d59624716e5ffd4aa0fc966ed93d69e8899ccdcedca88", + "bug-fix/2026-08-03-cli-signal-shutdown-escalation.i18n.yaml": "sha256:71e3f139cc6452f8fb93e84fc2c64723c6d5725d2f7058d4d06dd5d51ee9026e", + "bug-fix/2026-08-03-cli-signal-shutdown-escalation.md": "sha256:153f62218bbaeb0da3e1316e01f17701c5acb3792b30008608dc443bd50e8c6f", + "bug-fix/2026-08-03-cli-signal-shutdown-escalation.zh.md": "sha256:df37e1d47e911771380ab1f76aa111f9e3a0efb465ec7cdcebd02af64c598129", "bug-fix/2026-08-03-hmr-initial-scan-boot-deadlock.i18n.yaml": "sha256:80114779ec809c23251be5acea561ff3c5959336471d3241414c59dfaadbf746", "bug-fix/2026-08-03-hmr-initial-scan-boot-deadlock.md": "sha256:4e4c4e0e512c1bd14bb30ab5749f2bb7b8ef8986781b157f1a6dea0641ed2c91", "bug-fix/2026-08-03-hmr-initial-scan-boot-deadlock.zh.md": "sha256:b0f7708f29d078e511d03dbffc6ad5e16de1fad4e9ed36faf6fdeee08ddfc32d", @@ -556,6 +745,12 @@ "bug-fix/2026-08-06-api-key-format-validation.i18n.yaml": "sha256:83c9f4aca0f65020f0a456733512b77fb324d694d6c32b2f92efb8ef0542872b", "bug-fix/2026-08-06-api-key-format-validation.md": "sha256:0a18b8dccc5a67f8b6dbbc8f596e73cc95b797dc6280fb48455c2a0cb9229b76", "bug-fix/2026-08-06-api-key-format-validation.zh.md": "sha256:fa8ddc9b35d2f1b25407881797f4b407d906528a0c0ab3a99f11a16ea8e7512f", + "bug-fix/2026-08-06-bwrap-private-pid-namespace.i18n.yaml": "sha256:5d1807702d5839d44ed2245f0ce388bc82e6ef9767b787c5b071923cbae8a493", + "bug-fix/2026-08-06-bwrap-private-pid-namespace.md": "sha256:b9995a92db182f6548a9a1b39751c6cf44a12e92eddc9198c886589893966954", + "bug-fix/2026-08-06-bwrap-private-pid-namespace.zh.md": "sha256:4a08284342485e073bbb3ca156dbf72013200abd60a1252676f20910f60abebc", + "bug-fix/2026-08-06-host-backed-web-preferences.i18n.yaml": "sha256:cf85345483cc151a478f1dfcaa306ad57cfd5a9cf2d169f8c3724d0c2acedaec", + "bug-fix/2026-08-06-host-backed-web-preferences.md": "sha256:b93dc4d6b02c073acef18a50f0f9b9a7df49c00186f55366223a9408384c4a83", + "bug-fix/2026-08-06-host-backed-web-preferences.zh.md": "sha256:43e37874dafc17dbf0c3204af9a7cb98717e7f3ef868eb201872edd93daf2f47", "bug-fix/2026-08-06-list-agents-residency-vocabulary.i18n.yaml": "sha256:816a582c4a71304b0499c18aadea56a180d876dd81c4b22f6c1798e2e37d21f3", "bug-fix/2026-08-06-list-agents-residency-vocabulary.md": "sha256:f8ccd05c93bf7b5ee389c50c0ec248c29b04bbed9cca0354354032bb9099cc33", "bug-fix/2026-08-06-list-agents-residency-vocabulary.zh.md": "sha256:5dbdc24587823be669a727104780dbbe59ef9a510dd89893b79a93d0ba8289ed", @@ -574,12 +769,21 @@ "bug-fix/2026-08-06-token-surface-unpriced-replace-compatibility.i18n.yaml": "sha256:dd13d2717a8555e8dbfd6c33938c1eea714ac57ed50e3db792381237b7d676dd", "bug-fix/2026-08-06-token-surface-unpriced-replace-compatibility.md": "sha256:b1b034bfd8dcf4d1181cf5848a41ecc3c66e9b55b576d5973bfee749af0b242a", "bug-fix/2026-08-06-token-surface-unpriced-replace-compatibility.zh.md": "sha256:df7994d75351aea633642bca2fde5e41d78ff6e090637c253cc5755d664f8bf3", + "bug-fix/2026-08-07-cancel-convergence-wake-latch.i18n.yaml": "sha256:2dad33ed7c71b0b0fd7877405cd344a24eac735f015f0c285dabcc5045fcc33e", + "bug-fix/2026-08-07-cancel-convergence-wake-latch.md": "sha256:d1ba28894d50d52df9cf328f6ec2d79561b5aaa55bce6ad32a99cd4964320559", + "bug-fix/2026-08-07-cancel-convergence-wake-latch.zh.md": "sha256:0d0f93666ed2f8337eeb0f826eee5fff965d6c693828a51872502470702a57da", + "bug-fix/2026-08-07-ptc-executor-collapse.i18n.yaml": "sha256:c5215ff52bfcf1dbcd2d7e71aa8300b3a46437ce8c4afda9e7ce550de522ad96", + "bug-fix/2026-08-07-ptc-executor-collapse.md": "sha256:4456fc2f18a77b925fb3e8f9157f3a25d5b2b6b0a85638e970ddd4f86619ed17", + "bug-fix/2026-08-07-ptc-executor-collapse.zh.md": "sha256:74276aee21e43598d2374a4ea5402fdadcd7fda6b7e38fdc56c9fc6eb968e214", "bug-fix/2026-08-09-broken-preset-roster-rows.i18n.yaml": "sha256:945ca2ed436331d7b4f69a6eda26d7a0eff9ae03512842384f65ad433ad5f4d4", "bug-fix/2026-08-09-broken-preset-roster-rows.md": "sha256:4abc2668d328de3b7194fa76441acc79619cfa0653f0f985b1649f7b1f116320", "bug-fix/2026-08-09-broken-preset-roster-rows.zh.md": "sha256:7918e051c4a18bfef9905cf5cbacb9f761314673771fc9ac975a6a67a6856228", "bug-fix/2026-08-09-filesystem-absence-observation.i18n.yaml": "sha256:b0e7440c6527bdb4bec5f69073858f755f7a7ac1f6cfcb4d3bb8bc7f40cbdb3d", "bug-fix/2026-08-09-filesystem-absence-observation.md": "sha256:524b6d965587dc2a4c2c27440a20b189714f9112714df0984e6753553af061e6", "bug-fix/2026-08-09-filesystem-absence-observation.zh.md": "sha256:51a52dd1534c2db42ca07cd292e57eb46e18b1d1a8f458e6adc3efab926bf5ff", + "bug-fix/2026-08-10-child-agents-join-their-parent-preset.i18n.yaml": "sha256:9fcc8d4ef4f39fabfb70f060c81e2d56829f5d93c6a6aa7ee43e52209d84267d", + "bug-fix/2026-08-10-child-agents-join-their-parent-preset.md": "sha256:fe0dfb8a2a5c79bf31fcca116f137436632907e541a94749c9ea1bcff2a7a6a5", + "bug-fix/2026-08-10-child-agents-join-their-parent-preset.zh.md": "sha256:cd51eda599e4cb13068cab8ebe09b7c1848f5bdc5ebd8564a04a5c585e26f3ce", "bug-fix/2026-08-10-minimal-preset-owns-rl-composition.i18n.yaml": "sha256:97df20c38d7794cdf3d0d8dbad23e72417953ab6444cf2ad4cf40e91d1c36b84", "bug-fix/2026-08-10-minimal-preset-owns-rl-composition.md": "sha256:5c35a0b892d47f637aec94dde869d2b3f1c22b238ae7c6dd9d3a59104d48827e", "bug-fix/2026-08-10-minimal-preset-owns-rl-composition.zh.md": "sha256:b69dd72ab2ae5bf3118e3bd14dd7cf351ce00a1bdc5f119c25c8b56435503bc1", @@ -658,6 +862,12 @@ "bug-fix/2026-08-15-persistent-bash-keeps-controlled-prompt.i18n.yaml": "sha256:9fb062cdd41c23ca2137de9954f962acea2c0286356ce8bdb6f9275840db41c6", "bug-fix/2026-08-15-persistent-bash-keeps-controlled-prompt.md": "sha256:099fd51594b18c256477908b834dfeb0adefae37951aad5d578f88194d3621a7", "bug-fix/2026-08-15-persistent-bash-keeps-controlled-prompt.zh.md": "sha256:d5e207828e95097bead324ca0df7b2c1d815e0afaf52d8d46e46e626206e7b27", + "bug-fix/2026-08-17-durable-web-queue-recovery.i18n.yaml": "sha256:43a686f1013da9585c33e3557ea83b15bb26666edd924b1f4c0788f82f84831d", + "bug-fix/2026-08-17-durable-web-queue-recovery.md": "sha256:596875462a997146660a874a95a5407146efbf0f2a3e4575988aa307ec4e4e04", + "bug-fix/2026-08-17-durable-web-queue-recovery.zh.md": "sha256:b83fc7cde0f17dc8ae448bc21c8c664da8a5cfcc42c2c250ca9ab438695d54c2", + "bug-fix/2026-08-17-subagent-message-settlement-ordering.i18n.yaml": "sha256:c983bc6a18e0f458264bfd495a6857d33128222a542c6e4b58769625468de466", + "bug-fix/2026-08-17-subagent-message-settlement-ordering.md": "sha256:e0c22753c581dae827ee8e7b9c5da5b45c095ac9ae2a05ec1820ee0bdf624289", + "bug-fix/2026-08-17-subagent-message-settlement-ordering.zh.md": "sha256:c9e495149e97972becef27cddb58ddfcde38840d1ee052f91633fde04adedcf4", "bug-fix/2026-08-18-rail-search-outside-click-self-dismissal.i18n.yaml": "sha256:23e9e6028f95c1dd6543875e80debf49b11b780b0fa1bdb5988c4f204f2a67d3", "bug-fix/2026-08-18-rail-search-outside-click-self-dismissal.md": "sha256:76f43ad63a0a8f93ed56239f5687025533fcbe012b44a726305f6b59fbbb1396", "bug-fix/2026-08-18-rail-search-outside-click-self-dismissal.zh.md": "sha256:d481e3378c57bb0465221a3c1922d606a3e04dd42c191db32ddc8119629709e3", @@ -694,6 +904,9 @@ "bug-fix/2026-08-23-win32-utf16-nul-truncation.i18n.yaml": "sha256:fd27aaf586f7dc7c25a20d8edafe9865f1e39b4f35a0a94719e07799bc06a8f9", "bug-fix/2026-08-23-win32-utf16-nul-truncation.md": "sha256:18802f9953bb420f71fc564e3669ad48341259eaf00af753915e090c9172b5d2", "bug-fix/2026-08-23-win32-utf16-nul-truncation.zh.md": "sha256:cedc8ef2040e63e1a98e5a5a3b8e25cc726bc3c7a2bba4d5a0199d39bd046d6c", + "bug-fix/2026-08-24-alpha-routed-image-quality-ladders.i18n.yaml": "sha256:5e408a9e97ec6309b1ef2a7e0f74b5c3fee0b8c4e7f3c945b26a5061ed11386d", + "bug-fix/2026-08-24-alpha-routed-image-quality-ladders.md": "sha256:895ee58e347fee69f7f06d6d5729944ca6b75939ffccb07a5567e86e985f9531", + "bug-fix/2026-08-24-alpha-routed-image-quality-ladders.zh.md": "sha256:74ac20d843e538f4cba6886be7e8ee1e61cb72b5151c51fa6356910afdb27f7f", "bug-fix/2026-08-24-system-prompt-section-order-ties.i18n.yaml": "sha256:f7a20bddd4544738ec0dbbfc52ea931f42317defa1674beb9a3c0daebd52fc2d", "bug-fix/2026-08-24-system-prompt-section-order-ties.md": "sha256:108a97346eb7a62f1ab01f48dbb9fdd965e8991f53e382b0f501b916af0e9e23", "bug-fix/2026-08-24-system-prompt-section-order-ties.zh.md": "sha256:3deaddfcf9736b3ff8d61b51093d7e46fdcc86103705033e4aa4c9d043794b16", @@ -739,6 +952,9 @@ "bug-fix/2026-08-29-windows-atomic-replace-retry.i18n.yaml": "sha256:0a0c0f6b9e679bfc35cfa87a0103c6115c89545bab52243d83aca6de4bdcf654", "bug-fix/2026-08-29-windows-atomic-replace-retry.md": "sha256:7706103c846a6d349a3b22025afe68e68e34f74ad74ad806bf171135577cee55", "bug-fix/2026-08-29-windows-atomic-replace-retry.zh.md": "sha256:f888c6a0a69483957372b0511ddd13c659400d8629a231a50bd8f5aa5f89b3e6", + "bug-fix/2026-08-31-win32-picker-path-string-read.i18n.yaml": "sha256:9be5c51a9ebf3f688b034171ad2a1161d48cbbedba7dab4d4be97cc91c527f06", + "bug-fix/2026-08-31-win32-picker-path-string-read.md": "sha256:0b2c6f9974e2d014da1cdb97fa8c22a5a0832b650c746b39533063020c7f4632", + "bug-fix/2026-08-31-win32-picker-path-string-read.zh.md": "sha256:8fc8969713bbdd5951012bcc47f0e334b10c4351d1550157fc07f3f6efc8cd46", "bug-fix/2026-09-01-host-goal-pause-aborts-turn.i18n.yaml": "sha256:670caaf2216ee3f7ba7b86b6e7e475a258f7cfff83b675fede8b12f6bb147c7c", "bug-fix/2026-09-01-host-goal-pause-aborts-turn.md": "sha256:e4301ce3a7de253cf6088a035e34fb0bf5888a06552219e28afaa19a042673ef", "bug-fix/2026-09-01-host-goal-pause-aborts-turn.zh.md": "sha256:ec922ecc0b99907fcedd1c092a74382f8f295fb7f39aefc2e1155b79b250b4ea", @@ -748,18 +964,144 @@ "bug-fix/2026-09-03-hidden-windows-subprocess-windows.i18n.yaml": "sha256:2e5bcbd321006c22d6dc8e5de237f35b86839b48762c4d68a45334badf167b2f", "bug-fix/2026-09-03-hidden-windows-subprocess-windows.md": "sha256:2e26223d6b6cb7ffd098f4eb761bb44b669a1119b80d4ddff7d0ad03fb8ebff7", "bug-fix/2026-09-03-hidden-windows-subprocess-windows.zh.md": "sha256:30b64a935e3adce7b9114c580c427d058876928a10e97deb3981c58d517c768c", + "bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.i18n.yaml": "sha256:867d4701c14caab704ba01a3f1376c5e5150e70d3902919a40a2cd6b79e3bdd5", + "bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.md": "sha256:854942389b7852e3104b6c08bb8fac16d01c67edf2fbb00f3801fa71752bc4af", + "bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.zh.md": "sha256:525a7b143768f5f34b95f8f2354d3fd2f4b888e53547c253b6b7164277628805", + "bug-fix/2026-09-03-root-marker-metadata-failures.i18n.yaml": "sha256:f39faea8d4b53d63130ac3c3a9a8bf973103fafaaa41977813aeff00907ebdd9", + "bug-fix/2026-09-03-root-marker-metadata-failures.md": "sha256:0e4ddcede9766cee593d8ee2c1efa5fdbc99cb38824e4991ae3b6f846db3ab9f", + "bug-fix/2026-09-03-root-marker-metadata-failures.zh.md": "sha256:845b1ec4e07d16c7a34967a69f8dc0c3207b69f36ccb37404305804b282eee0a", "bug-fix/2026-09-03-session-search-result-reveal.i18n.yaml": "sha256:ad9dcedeb25ab3eddbc51660935abaf6e6e92eefb66fd14f8852ba5f30e725b5", "bug-fix/2026-09-03-session-search-result-reveal.md": "sha256:ce8983a9ffa3d1b59946aeecf0e10177c8316c3621d5d0718a03e8eedcd05fd9", "bug-fix/2026-09-03-session-search-result-reveal.zh.md": "sha256:cd3ca0290f259a252e0b19fd0f15ac62232847be6f186e16f72652044a034bbe", + "bug-fix/2026-09-03-user-owned-goal-pause-activation.i18n.yaml": "sha256:c0ca4d27f080f03c1c9813121f95a7e854b74bf54aebe5357edfc1c77b81769c", + "bug-fix/2026-09-03-user-owned-goal-pause-activation.md": "sha256:4c76b0398caeea365b746b5779185fb3ac4455bd2f7c52af96bfad7bca24c7c7", + "bug-fix/2026-09-03-user-owned-goal-pause-activation.zh.md": "sha256:58f0bf940ebb4ec6a927bcf38b7c11e44daf9e9477e58e6e8c29763042e35674", + "bug-fix/2026-09-05-continuous-client-recovery.i18n.yaml": "sha256:ded9ebad47f2918e4a704e4cf5d7227d89f0409cce66f93f13784a86ad1c33bc", + "bug-fix/2026-09-05-continuous-client-recovery.md": "sha256:50c422baa388b6d399f38cbe77a0db02520147783668735b2dd70f1969737b35", + "bug-fix/2026-09-05-continuous-client-recovery.zh.md": "sha256:fece089698983b525125efc0f5cad164d350cc74144fed6fcf36e72dd526fcb3", + "bug-fix/2026-09-05-nested-terminal-cards.i18n.yaml": "sha256:16d6bf730cb36b71c3cb1b2b4dbdee01b9e44d528db7c6622776ae795b1035f3", + "bug-fix/2026-09-05-nested-terminal-cards.md": "sha256:928fc633021f6e8fd838ebeb0d3f390e28709ea9f6471b6eab5386ddd8ce905d", + "bug-fix/2026-09-05-nested-terminal-cards.zh.md": "sha256:b4f2da5133df37c56966de2bab974fb4a6c5d16a2ed21fab407c9543934d5aff", + "bug-fix/2026-09-05-patch-plugin-file-urls.i18n.yaml": "sha256:d882eb7f14d4b01b7b0b9de75854f1fbd43482b9a9ec5555ce983fe1e2400580", + "bug-fix/2026-09-05-patch-plugin-file-urls.md": "sha256:ea1a97eb4d13c287c13657e5635982ac640ebdf23e565356019eb228951b9b7d", + "bug-fix/2026-09-05-patch-plugin-file-urls.zh.md": "sha256:7dacf40b39c60081535ced11101ac0687b3c3bba36d08d5c42138979a6ba3f30", + "bug-fix/2026-09-05-pi-ai-upgrade-compatibility.i18n.yaml": "sha256:6bac0459b641da9d96153775b8836177e133898e92bf2708ef7d89a45701a18b", + "bug-fix/2026-09-05-pi-ai-upgrade-compatibility.md": "sha256:a018cf580eb661b8f31041c328741f8b7a90e7d29727282ab24828d45839f0df", + "bug-fix/2026-09-05-pi-ai-upgrade-compatibility.zh.md": "sha256:dabd08dbc7d37ea5068dcbb2368ab94df65c4ccdd38fb72279310b902f6599e4", + "bug-fix/2026-09-05-session-reference-model-budget.i18n.yaml": "sha256:b1eb754d49cd48302d90aae5b8bdf958ff48b962becebd7a189ced4e71c29304", + "bug-fix/2026-09-05-session-reference-model-budget.md": "sha256:5917220ae120245f2c4ea9c639f6c3a6306c71e1ccf2d202f5d0dfc6731471c9", + "bug-fix/2026-09-05-session-reference-model-budget.zh.md": "sha256:dd2adc2f9277419f5e1c2aa3f7c8d1d2c4145534e28d38aa61eefed3d4230ab3", + "bug-fix/2026-09-05-session-reference-spill-reuse.i18n.yaml": "sha256:ac129a891c713c87f812b2bfb9c86aad97edf955c6ae879e97d7f2f3d0eaa42d", + "bug-fix/2026-09-05-session-reference-spill-reuse.md": "sha256:644f547b95acbe85b180f5602d90d9e7a81a4d150bb86d39978c3a63182b9e05", + "bug-fix/2026-09-05-session-reference-spill-reuse.zh.md": "sha256:4579252a6813b9c8d865bcbbaf0fac1819be79527b9a1ca66240af94811a3836", + "bug-fix/2026-09-06-environment-prompt-suffix.i18n.yaml": "sha256:7fdeaca60371edda47e8df7ec09bf4476a5952aead0a0947af470395768efd4f", + "bug-fix/2026-09-06-environment-prompt-suffix.md": "sha256:6c255262a30e6a5f01ed372a25ad999f537323cd2147c7bcb56daa5566959139", + "bug-fix/2026-09-06-environment-prompt-suffix.zh.md": "sha256:5bcbc652d9e090a2b253404929663bee67dd6e161dd2d34fa0553d3f3c10fbf0", + "bug-fix/2026-09-06-windows-python-console-spawn-wait.i18n.yaml": "sha256:9c406df8ab7e6c268d8c12e15c1d649a2e325c82303abbdf11a22fe7006a4067", + "bug-fix/2026-09-06-windows-python-console-spawn-wait.md": "sha256:8496aedf1f91c90c599a416fdcb4acb9fdf7098c174c6f19bd2ab02c2977789f", + "bug-fix/2026-09-06-windows-python-console-spawn-wait.zh.md": "sha256:b7d996203f28f0d8ad311313e82d708c61ab6a5c6d965fb0e465eac8c5f77999", + "bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.i18n.yaml": "sha256:e110e2dea1eb8233b277a017260cbf5771bd3e228de2865d8b8bda07eb557fa1", + "bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.md": "sha256:5544ee31ed17d6d69642ccb37008b6b59e7c55296a08996e1ce993df71422f14", + "bug-fix/2026-09-07-pi-ai-settings-catalog-recovery.zh.md": "sha256:687fb87f5f1fe4c971d16eafe387f1c7f1b78d957bf23d2206842aa5dacac0b1", + "bug-fix/2026-09-07-typert-package-local-forwarding-imports.i18n.yaml": "sha256:99fd06cd024f132af98b8f502132c7b0b57f6d807a08daddc6a73d9513b02cfe", + "bug-fix/2026-09-07-typert-package-local-forwarding-imports.md": "sha256:f1d8d9e9f448fb3e6945347c6f268469e6293548c3653c2d80c4d9913f623f12", + "bug-fix/2026-09-07-typert-package-local-forwarding-imports.zh.md": "sha256:e18b1a4c8d901a0a92341611db2057ff70c25b269086a41577cc7ada1c6d505e", + "bug-fix/2026-09-07-win32-picker-foreground-alt-key.i18n.yaml": "sha256:34330a38fedaa54e2f9280c1db5f4fcf3ac32f022cc96f2dd35f3fd4c419c7bd", + "bug-fix/2026-09-07-win32-picker-foreground-alt-key.md": "sha256:6c6bc976ffd9111ea8ecb08d65b4aa04a78557da23ec32b02d4d943462fe9780", + "bug-fix/2026-09-07-win32-picker-foreground-alt-key.zh.md": "sha256:fc13a95bc7e0802844b93f005c7a2f8bea26018a8cf5bf376158c14b55217c18", "bug-fix/2026-09-09-content-sized-diagram-previews.i18n.yaml": "sha256:a4404fe8e35ca5b6371f9cdb58fea6724cf3e7737bb2db8a3a321d534454b17c", "bug-fix/2026-09-09-content-sized-diagram-previews.md": "sha256:5239e98e5c057d6f7e10c3f10a0f67273778d99b0c4f10b31a1921c3c6474b80", "bug-fix/2026-09-09-content-sized-diagram-previews.zh.md": "sha256:c1ee3790a9d5c3561e1d93d5e649afa904c7d19b9d77248c85ef16daccd953e2", + "bug-fix/2026-09-10-built-bundle-css-exemption.i18n.yaml": "sha256:a8db240c2d71914772746e7a304642753ac3c9e46ac14f2ecb4a040ed6572a75", + "bug-fix/2026-09-10-built-bundle-css-exemption.md": "sha256:e08f2de5cecf934e6315d9f46d1730e89969eb9a053ecdbf632c4d1be6d76d56", + "bug-fix/2026-09-10-built-bundle-css-exemption.zh.md": "sha256:ef79bc1c085ec7e80331480eac85e1a07159a405a38919812db741309a3b9ddc", + "bug-fix/2026-09-10-deepseek-image-token-calculator-v41.i18n.yaml": "sha256:4035bd4db3f5789fd5bcba4d7996f1bf063e49dbb266d87c11fd4c168d104ce5", + "bug-fix/2026-09-10-deepseek-image-token-calculator-v41.md": "sha256:ba702f70e31bbfc5d3d588045fb15c55d84dd78cca16ca2a4e746eaf3d7459ae", + "bug-fix/2026-09-10-deepseek-image-token-calculator-v41.zh.md": "sha256:1dc46872d18eaba1d086da258093a2b156e9a1c412412c08d26dfbdf70518078", + "bug-fix/2026-09-10-deepseek-v41-request-image-projection.i18n.yaml": "sha256:39b8b16f67ffa1847d60173d60f6e51e7e3b5a4a7aa1c2764a3dd99fda52efb9", + "bug-fix/2026-09-10-deepseek-v41-request-image-projection.md": "sha256:aeb02ea272c0498e6c69dc12f26126b45228a93b81840064c98ae7469cd22a97", + "bug-fix/2026-09-10-deepseek-v41-request-image-projection.zh.md": "sha256:a2fbe2c9e2051bc96aac9e0e974b87649ae9674659e3b94a0a1e5d30acc84936", + "bug-fix/2026-09-11-incremental-terminal-retention.i18n.yaml": "sha256:b587c0cb7a88b53c978f5e08b141936a7fd5d39f0780962f904a57d359400599", + "bug-fix/2026-09-11-incremental-terminal-retention.md": "sha256:d1b86985feecf87453df151fd9cf33567043571de08a5f95e4f672d3e7d7c0d4", + "bug-fix/2026-09-11-incremental-terminal-retention.zh.md": "sha256:436a9df9610954720c851d586142bad655ab4f5f2bc4b9a0fba063c7a342a915", "bug-fix/2026-09-11-session-controller-fork-turn-cut.i18n.yaml": "sha256:4442529ced1c8e48d30f7b50c65ff03eb92dce9815beb438cedbf29f234bce47", "bug-fix/2026-09-11-session-controller-fork-turn-cut.md": "sha256:a996f24a896c7fc5d81e015db3eae27d8a46c853287572e815623ce35eae1b12", "bug-fix/2026-09-11-session-controller-fork-turn-cut.zh.md": "sha256:6486f0eacf5067ef9850dc32f1c27b2109a7d4e9e3c498366f5c38742bb53ac5", + "bug-fix/2026-09-12-linux-scope-direct-kill-settlement.i18n.yaml": "sha256:545de747129531dbf30c8c51dc0b88ce0f047c73db5178a4f5ab414a4fc77b16", + "bug-fix/2026-09-12-linux-scope-direct-kill-settlement.md": "sha256:3743f6d6c0b85eedadbc4a807a592e0d69f19fb2dfb961b2c5c0d9255bf27453", + "bug-fix/2026-09-12-linux-scope-direct-kill-settlement.zh.md": "sha256:ffe962220e1e4c6281b6b87958c37bb75a0a9571f4403aa568e074fd832177eb", + "bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.i18n.yaml": "sha256:5ffb5f494f90fc3ac64295e68d5930b6c563e0a4136ca29ce082fbb0716c85e0", + "bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.md": "sha256:1b62e7437a3a01b508cc34bf31b9df1bdc5dfd15ceadc933f9d91f15556679b3", + "bug-fix/2026-09-13-partitioned-coverage-location-canonicalization.zh.md": "sha256:04404f826a1bb0caf218d67bf60a893a8cdf459452ea6f473d577f2f891f7e40", + "bug-fix/2026-09-14-web-diff-context.i18n.yaml": "sha256:72ef2f8207ca6c68562757df5a8ddb4a57eeb006fe7064a483adc58e2b57ad9e", + "bug-fix/2026-09-14-web-diff-context.md": "sha256:563edc7b3c7bfc4cd89d010a31257b9959b1301ac842c8ff7c86e07efffbf7b8", + "bug-fix/2026-09-14-web-diff-context.zh.md": "sha256:e6fdd89755e0ea1fd5ae0f616e3d7350862b0a8ffdae475e0eb09f01bd649b25", + "bug-fix/2026-09-14-windows-lock-release-probe.i18n.yaml": "sha256:24f59c361560b8add8a92094e610633822ec8359294a1d43577395050d7d24bf", + "bug-fix/2026-09-14-windows-lock-release-probe.md": "sha256:a6c7be3ebc5e8bbf8a0e24db5b0361bb9d611d8b4fb92b9e128c0a9453c7e58e", + "bug-fix/2026-09-14-windows-lock-release-probe.zh.md": "sha256:e83a094dc37251fe336a11cbfda1f58b74d120c2766c949c2f964d4c0ac3a59a", + "bug-fix/2026-09-15-linear-session-list-cache.i18n.yaml": "sha256:0ca0c4cd470dde18a919f26b95a141dfe000d22c4d94eb17d8890c2f8405dd3f", + "bug-fix/2026-09-15-linear-session-list-cache.md": "sha256:fa5763c4c8200714260336f9d71e4063d1b754490b827adc042f7de89bcf0183", + "bug-fix/2026-09-15-linear-session-list-cache.zh.md": "sha256:20c44ab42c186a1a31bbed810f4df5d9d3603281a7c198d0a0c1d7ed36a23dc9", + "bug-fix/2026-09-15-messages-v1-base-url.i18n.yaml": "sha256:8d46cb52e57637239c47f61dcbac4d93febba2a5502f15d4bf2ad8c2cb52518f", + "bug-fix/2026-09-15-messages-v1-base-url.md": "sha256:d0c880ccf6970f5de0bc053877981688961bce6ec5ccdeba2fc9b401753543aa", + "bug-fix/2026-09-15-messages-v1-base-url.zh.md": "sha256:489c9ae3c4e40aab1f0ca53f425d97c59445617b700336ef777304441a0eb713", + "bug-fix/2026-09-16-messages-historical-tool-input.i18n.yaml": "sha256:2e0410d2c0d7bc46fde37d50bcff19691eac70d3bc60eb6d56c974f6f7d1b3a1", + "bug-fix/2026-09-16-messages-historical-tool-input.md": "sha256:f6edab5bea25a8542a0f02329e17d0ce26d402f6463d73d75c26447ceab3774f", + "bug-fix/2026-09-16-messages-historical-tool-input.zh.md": "sha256:a8598cbdb0bf2c69766c8cb11ccdd2002c3828fd22af4455ae38c90cf6df4ae5", "bug-fix/2026-09-16-movable-mandatory-update-window.i18n.yaml": "sha256:e526ce14ae9557e24364e3686778b130090445ef2152d976b7cc93e76eac6401", "bug-fix/2026-09-16-movable-mandatory-update-window.md": "sha256:67546cea0b3de2b3e32957a508dbde097d91dd919fe067c8dbecb2c65b50c366", "bug-fix/2026-09-16-movable-mandatory-update-window.zh.md": "sha256:20a0aade6ee71c89e84d70e23c89bb51e8a38c674d103dd43022feabb8d27be3", + "bug-fix/2026-09-16-session-writer-held-feedback.i18n.yaml": "sha256:590b569ed41c6fef0d1813487c61b3061d3c9d54dfc030d3d02298a1cf093a0a", + "bug-fix/2026-09-16-session-writer-held-feedback.md": "sha256:1ecdcf65d2d86834f568f00b29a5b4c12e1968cf535c9b9205008a957c153cd9", + "bug-fix/2026-09-16-session-writer-held-feedback.zh.md": "sha256:b21f21820240827ab2e558915bd8ed534d021a7621d450d479f7c9b4a27e81d0", + "bug-fix/2026-09-16-windows-subprocess-console-visibility.i18n.yaml": "sha256:d5069e64df9130dc6175fc18c493b12da9ebf535e2126518de86a0adcd3428dd", + "bug-fix/2026-09-16-windows-subprocess-console-visibility.md": "sha256:f87ed1efba55c0da05dea083029a0318c3553bee938ee6418bf81d6a12aa922a", + "bug-fix/2026-09-16-windows-subprocess-console-visibility.zh.md": "sha256:289309cb436dfc44479f341929d3567e6c6a114f9d8ced3258f56b880dfeca0f", + "bug-fix/2026-09-18-messages-input-history-compatibility.i18n.yaml": "sha256:9ac4481dc959ca1234508febdde26257218239213c2da2aba1a74963808ec14b", + "bug-fix/2026-09-18-messages-input-history-compatibility.md": "sha256:000e9ae636b8f8ecb29f93dc6be490c9cc28ecfd7f23d032853e9abfd829f76d", + "bug-fix/2026-09-18-messages-input-history-compatibility.zh.md": "sha256:3cc425872e12bb0474470c316727ff1297948d07965a8b253b21e2ea1469d79f", + "bug-fix/2026-09-18-schedule-task-tab-restore.i18n.yaml": "sha256:62b1ad050bf72ec4207d90a4a16815fa06ef4188276cc8e8194bcb6f7907e4c9", + "bug-fix/2026-09-18-schedule-task-tab-restore.md": "sha256:032487fe037f1ca1b3bfdc9e40e8ba137651e6be8de968cbddaabfd8691d31f2", + "bug-fix/2026-09-18-schedule-task-tab-restore.zh.md": "sha256:9b24f7147bd1e7bedb7cb51275ad62f9d4add1e586097d49319ebc6a70509471", + "bug-fix/2026-09-18-windows-directory-junction-listing.i18n.yaml": "sha256:ce9abb2cc9bcbe05aa0fbdbfdda93666507fbb316f14ac333ffcf915a9464ead", + "bug-fix/2026-09-18-windows-directory-junction-listing.md": "sha256:1967cc03acf4c5bfa297bae05313135f28711880b669c2086064b529d2105c7b", + "bug-fix/2026-09-18-windows-directory-junction-listing.zh.md": "sha256:3b61ea836fefcf0a1266bda831cc0d1c7cd979b5ceb04dc22fc4b89b9ce0c298", + "bug-fix/2026-09-19-declared-session-attachment-carriers.i18n.yaml": "sha256:82ae9d30390fdbf464cb65be8b06cfff7a5a5b631c98974a8af0aa72ef697516", + "bug-fix/2026-09-19-declared-session-attachment-carriers.md": "sha256:27e9bd72280e5b6b8e45bd9051ea799e76ef9ec1d12c4197f7b3c045a0fbeb23", + "bug-fix/2026-09-19-declared-session-attachment-carriers.zh.md": "sha256:c17ee7fdb6df91574414a48601ed12ce9719c217754f266a942c77829dccf302", + "bug-fix/2026-09-19-failed-step-tool-results.i18n.yaml": "sha256:2f2d16a3ffc443258dacc317250323b6809d9f722476881ff98244c35e657c73", + "bug-fix/2026-09-19-failed-step-tool-results.md": "sha256:5d46c0a22ba540c344e70e487c2dee8c9d9f9326c7f8a61d8151b0c2bb5f1adb", + "bug-fix/2026-09-19-failed-step-tool-results.zh.md": "sha256:6bbf5523c1253462ba605afcecdcfdf300967a5f9beafbbedfd0310b40919786", + "bug-fix/2026-09-19-session-local-subagent-migration.i18n.yaml": "sha256:53a4a048bc2e4ec81df05771768f6c1eb4c52069d52a5d22de0eb21e9450640c", + "bug-fix/2026-09-19-session-local-subagent-migration.md": "sha256:ab32d3fc829db5adf8a2b20c749f16ac7056f26dd089a8eae6a376d45a133d2e", + "bug-fix/2026-09-19-session-local-subagent-migration.zh.md": "sha256:7b5e119bbb2300067463ab6961a21df726c460aba0fbc4a65f45f00e055c88f3", + "bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.i18n.yaml": "sha256:6590c530405d7f2e448ee914e183fb5772c9038c694767e39bb6934c9bfa5631", + "bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.md": "sha256:f57e90276cce7a4dda6421e06e4d91ab343f97f27df61b361795da093895c743", + "bug-fix/2026-09-19-v3-incomplete-child-catalog-evidence.zh.md": "sha256:0d2c89ddc8ef06a9af67fa7cfe7db5b411842ed67729838449033c9211320d3b", + "bug-fix/2026-09-20-windows-embedded-mandatory-update.i18n.yaml": "sha256:1e1f60d7ecf2f5b43938f34fb7e89dd19d834705f4334c72b2d927b9e447b74c", + "bug-fix/2026-09-20-windows-embedded-mandatory-update.md": "sha256:dc58c1d9383897fbca0c02e4fa5413ce02be107b748e369c982b98478eee8da0", + "bug-fix/2026-09-20-windows-embedded-mandatory-update.zh.md": "sha256:f865589923266a95d900a0886ebc9f9de7dab5edf076b7156e450eefc10dddb8", + "bug-fix/2026-09-21-multimodal-tool-result-retention.i18n.yaml": "sha256:ceb93294c9f3a52a96e3a89bb1100c133d96adb3cf0d0fdfd17681d95455acce", + "bug-fix/2026-09-21-multimodal-tool-result-retention.md": "sha256:2b897481ea18e10cb5d2bb8dc8343dc9a3285e6ebeafd59acaeb327cc622ec42", + "bug-fix/2026-09-21-multimodal-tool-result-retention.zh.md": "sha256:f50bf94b839ba276633a0f5ec9e7bd97fe64353182887e3cd8c29e969b845c4d", + "bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.i18n.yaml": "sha256:9171767ebefb2c35d3503f3489a099aafea862d1e8e5c589cd83faecbe3913d8", + "bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.md": "sha256:f18ba0f49f380b8e7a2db8b192d747ea8dbdd3ba48c64bb215700ada1825a400", + "bug-fix/2026-09-21-persistent-pwsh-keeps-controlled-prompt.zh.md": "sha256:b84845e71194ccbd201c1c50baf15d2cb979273af61fda0fa10b52eb5ae3f84b", + "bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.i18n.yaml": "sha256:62796f58739708109ffa95d2002821cb762cde2899b775087120228d2bb11c2d", + "bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.md": "sha256:668fef415a239c92d79afa959c2a152514e61a35c90dd5ff5c7d614a58f939f5", + "bug-fix/2026-09-22-chat-scroll-follow-and-footer-geometry.zh.md": "sha256:4412c25451b1601d36a643361d266ff56dfa56373cccd934c9d60125b64d854f", + "bug-fix/2026-09-22-input-echo-admission-ownership.i18n.yaml": "sha256:c200d65c48e3a952b333e60ce5c0f8cdc56ef3070e563ff2832ea79b27a40c9d", + "bug-fix/2026-09-22-input-echo-admission-ownership.md": "sha256:46467c3b30039402b856486e1865cf04350161cb889d92d76bc5cb28a4841df3", + "bug-fix/2026-09-22-input-echo-admission-ownership.zh.md": "sha256:9105e7df26571f8b43ea23167f7f116440c60ed0e9895d4f4d4d5fa797b1c6b3", + "bug-fix/2026-09-22-windows-open-through-shell-resolution.i18n.yaml": "sha256:1a3223b7df7a279d1f86e59c49ee2104ecc8ba785aac7e01ca6498e107e03d74", + "bug-fix/2026-09-22-windows-open-through-shell-resolution.md": "sha256:9d6fc200420471a620c5e0feddeac8f5dd4ad04941d673f23133011bb36bbaa6", + "bug-fix/2026-09-22-windows-open-through-shell-resolution.zh.md": "sha256:9fb8c46e9079b8611ba8f881b182254721df8876b75d0ae2c6ce28d17def7979", + "bug-fix/2026-09-23-bounded-pnpm-runs.i18n.yaml": "sha256:88e1d37847d6d7e2dd574d309315e4cd608c78275a3ea8ca281c1ccbb707902c", + "bug-fix/2026-09-23-bounded-pnpm-runs.md": "sha256:307781166ae3f168f7e3897876cd5492c2e04651ea4b03126f3ea2f9757f895f", + "bug-fix/2026-09-23-bounded-pnpm-runs.zh.md": "sha256:f5d0545ab8ac9c93af96399082ee69d26ccb7604ae919798e7e494ee8d473749", + "bug-fix/2026-09-24-exited-holder-lock-takeover.i18n.yaml": "sha256:0844226ea72ae31b013c51f7ec84b1cda6209b63e7fff6fbf5910f201692c60a", + "bug-fix/2026-09-24-exited-holder-lock-takeover.md": "sha256:7aea0a794b2e8566c624deb0ac5a43fffe11c52b17d2e15fe88ed412f3ad9487", + "bug-fix/2026-09-24-exited-holder-lock-takeover.zh.md": "sha256:61f647916f08f0c601859770b1fbc079592374407e0ac0ae88366c8ecef1a85a", "feature/2026-06-14-acp-agent-client-protocol.i18n.yaml": "sha256:006795baa43ae962a8d125cc0f1e9f134bc2ee9fb758b6e7669e3fa0126e1918", "feature/2026-06-14-acp-agent-client-protocol.md": "sha256:6828c0af74bb3fb96206ca6b21c0e56a000b50e4744aad4bc2c05092f3a5a31b", "feature/2026-06-14-acp-agent-client-protocol.zh.md": "sha256:ba104e841a1fb84edbd3b6c8119d50445b7785255a7a8d13bb9ac8a2cb4d2e69", @@ -772,6 +1114,12 @@ "feature/2026-06-18-acp-terminal-and-tool-rendering.i18n.yaml": "sha256:79592f96bb25713d01865f37972a6919b2bfb3b66368df0f275bbd59d09ebcf6", "feature/2026-06-18-acp-terminal-and-tool-rendering.md": "sha256:946d0c580705ef2e7c7ac1897ada074e72f2ec4209c1e7531b6eccf116e9aecc", "feature/2026-06-18-acp-terminal-and-tool-rendering.zh.md": "sha256:fd815817925a038f79b52b6fab43abdb2d655db3ec07974ce1320ea3674f2afc", + "feature/2026-06-18-compaction-capability-seam.i18n.yaml": "sha256:a3740fe60e93bd3bae647d4cf5968670facff548ef7f496d475646019b5aac77", + "feature/2026-06-18-compaction-capability-seam.md": "sha256:d1dc23017107bf77a018ed40fbc47c243c9e839c3986404fa45aab57ee538d9c", + "feature/2026-06-18-compaction-capability-seam.zh.md": "sha256:e4497e04c350c3d94fc40c960bd6b6ab67c516347c44fd18cee7b94c2c5d7df4", + "feature/2026-06-21-subagent-capability-seam.i18n.yaml": "sha256:063f307493876ac7373ebecb3d93ed1a75ec0d6ba75af8f32c31656c444272a1", + "feature/2026-06-21-subagent-capability-seam.md": "sha256:19b28736f119415b7078d44a3a87d541cc2e2431ea89539c63b5149c03d0be60", + "feature/2026-06-21-subagent-capability-seam.zh.md": "sha256:ab8501071cf778097a40a02cb83b9302dc8d816bcc9c49019efee04c26cb996e", "feature/2026-06-22-acp-subagent-backend.i18n.yaml": "sha256:cdcf46b80055bac08245d5b0ae52752339cb751eda65becbbceb17eb7d980d62", "feature/2026-06-22-acp-subagent-backend.md": "sha256:abd48c09c7c909c8dd3f6861cdc076a56d6b19ad870fcaba5a27ed7db433cf5b", "feature/2026-06-22-acp-subagent-backend.zh.md": "sha256:7e702480d60bb261d7e01e807de42a1f81a62c85f8aa59c87774471eb00530ec", @@ -790,18 +1138,30 @@ "feature/2026-06-30-hook-protocol-lib.i18n.yaml": "sha256:3545b0e36ac0a8ccd02ff4b355747a7431530ae8c12d2efe1d516687dc4185b1", "feature/2026-06-30-hook-protocol-lib.md": "sha256:76fd45e8eec8faab06afb5393dfbc54555942f32e4939546d40fbf23622acf1f", "feature/2026-06-30-hook-protocol-lib.zh.md": "sha256:217ad562326adfb90129c2c87437bbd0aafada9c976d053bf142f616203f0d1f", + "feature/2026-06-30-interception-extension-points.i18n.yaml": "sha256:c9afc81ad51ce448b7f2fd478ed8e53ef76619582861b03a3f0ef0ba3cddb4ea", + "feature/2026-06-30-interception-extension-points.md": "sha256:10ae368b10d0960c9df52060308894e09b7183962477426bff5113d639af4364", + "feature/2026-06-30-interception-extension-points.zh.md": "sha256:e0dea3aeb21058b3057fd4a9b1084612b6df1fb503a908790ae2d7d4d763e0da", "feature/2026-06-30-session-store-fork-api.i18n.yaml": "sha256:874b1f53eff4003028210c3f598cfe77bee7fcd69b950b69aea3a4059fa0faef", "feature/2026-06-30-session-store-fork-api.md": "sha256:38508b6689e3cd253e968c0257f60f12b62544498ecc863631488f4a957a3eec", "feature/2026-06-30-session-store-fork-api.zh.md": "sha256:2cb9dfdcb304b5f73588fd74895c63a0a02c2c9ac23da967ebff608543222b57", "feature/2026-06-30-subagent-observe-enrich.i18n.yaml": "sha256:08c2478ba394429f46c1e87a9f055e88704a9000e5d250d5600c0c85124cb17f", "feature/2026-06-30-subagent-observe-enrich.md": "sha256:0630975c3e325975a932f58a65a178b79c624dc56ebd29e288e96f5a189cfbfa", "feature/2026-06-30-subagent-observe-enrich.zh.md": "sha256:b9fbb44a7d81f4063faf3baaf97c382a2f5106be533feb4de792ee57b766c1a4", + "feature/2026-07-05-dynamic-workflows.i18n.yaml": "sha256:6b7648ed9a1c4a8d242fc9c675d14d9fe58467812991889c5d525c2452e64d98", + "feature/2026-07-05-dynamic-workflows.md": "sha256:9389387f13e9199da0becf172b85ba4f3217492de7be04f176051a7421f7e5ae", + "feature/2026-07-05-dynamic-workflows.zh.md": "sha256:856f168bddcd700bf567196d92be9cb2f8a0ccba730be5a31277fd004f65d8d2", "feature/2026-07-05-skill-system.i18n.yaml": "sha256:ed37e752eeb327fc436f910f96f9ad0fd429e0c9271e2c9268ede1304f9ac2ea", "feature/2026-07-05-skill-system.md": "sha256:abee9fe973b9603f0a60e7efc034ab90910e3807d87862f8e7023b76624e09b1", "feature/2026-07-05-skill-system.zh.md": "sha256:92cc3776bb24b29cec24f80a40a5939ed407c9240b97c93bb1bcac445682c571", "feature/2026-07-06-explicit-tool-order.i18n.yaml": "sha256:126fefb60b6439a7bf962d9b4b028c269663855e72e56a204ef811e4f7a5fbb1", "feature/2026-07-06-explicit-tool-order.md": "sha256:3fda289680337fcd07067ff2461469dfb1649ac9610c4cd46f1fe0fc1795f9c2", "feature/2026-07-06-explicit-tool-order.zh.md": "sha256:37a1e54e9bfb21cafa7f664d0769d0c72c435ab4dda522c0cbff9c22be21f15c", + "feature/2026-07-06-sandbox.i18n.yaml": "sha256:44086ea7914a400e83847487efed66ba00f084c17f31087a5f1e7a662fc78edb", + "feature/2026-07-06-sandbox.md": "sha256:a2c499963c7b3e38d37cbd1879d47de263478b03565cc9d27f44895fbc4e9ecf", + "feature/2026-07-06-sandbox.zh.md": "sha256:09536fb6a3d3a5630f098a6e0e8e508300df35095d351597b21ac74cc3e147a3", + "feature/2026-07-07-mcp-client-plugin.i18n.yaml": "sha256:72681a8218c2c40beab5548a177fa433951f74d0d6010adaf9b4147e7c672ce7", + "feature/2026-07-07-mcp-client-plugin.md": "sha256:ac5dee6d0698b2b50ed8e83de177fd2d60965c57cdd1f90c6551fecdaf8d3341", + "feature/2026-07-07-mcp-client-plugin.zh.md": "sha256:4f68cc70349111cc972553bffa2325e88e21fd232b7f21eedb567e66b1bcceb3", "feature/2026-07-07-plan-mode.i18n.yaml": "sha256:c59b6a6c218d741cdef8edf625f1d015e409a39411fa64e65200fdebb1c49394", "feature/2026-07-07-plan-mode.md": "sha256:7bf1bb8e826edf68f0ec919dfd4f66955b935b46b4400d7de85fac3e4663edbc", "feature/2026-07-07-plan-mode.zh.md": "sha256:5b08cbcd8023f26744e481386177dd0e82423e8b0032829d0dbc22a92cced0cd", @@ -814,6 +1174,9 @@ "feature/2026-07-08-repeat-tool-guard.i18n.yaml": "sha256:e4382e8d25f23d728f1869c5195723698842dfe5422443a22f21fa8ae9b2c63c", "feature/2026-07-08-repeat-tool-guard.md": "sha256:95df2c423624c5c56e0b3bb76ced49e91878c7e5096cfef0faf4b20203d8a2aa", "feature/2026-07-08-repeat-tool-guard.zh.md": "sha256:cbe63d163aa19fc5a63233b05c8f6ed9a8a0ca215cf6f337a3c1e8e48af11b28", + "feature/2026-07-08-self-referential-cordis-toolset.i18n.yaml": "sha256:f2384d4d7dfea1f8800a451c8dd6cd5bf6433740967abacd708a94767dd34027", + "feature/2026-07-08-self-referential-cordis-toolset.md": "sha256:3138d424cf695f9a63ba10475b2440198f4a881d62eede2aea2215841e9b0e48", + "feature/2026-07-08-self-referential-cordis-toolset.zh.md": "sha256:3ea9e3a050458e7cf8490f6eb057f2cf2b26c2baa6983ad3e086c8dfad1ac83c", "feature/2026-07-09-bash-backed-grep-glob-discovery.i18n.yaml": "sha256:8eb6ec1312c55b93c2d51c6e54585d6f4d5bf6db444fb9c336681848676e3638", "feature/2026-07-09-bash-backed-grep-glob-discovery.md": "sha256:908521563012a17d312de664f380444aeafffd401d2200ec97e7bf004bac9ee7", "feature/2026-07-09-bash-backed-grep-glob-discovery.zh.md": "sha256:52eec49e454357a7e0c3f27c8aaa63840b5822b5d103f49ed48a5c4f25081b00", @@ -829,12 +1192,18 @@ "feature/2026-07-13-session-query-tracing.i18n.yaml": "sha256:8dfcc41c31d13474e0f8e00bd2983354f860f2d8e8b3a255f5448bbac13ee368", "feature/2026-07-13-session-query-tracing.md": "sha256:76af305255f569b86a4c4fc00cd6c8a058926d507a8f5a56ca60b8211ebbf853", "feature/2026-07-13-session-query-tracing.zh.md": "sha256:3681be5241766179ca1a01754a0314c9f8481f6f91c60fc95eac9d3a18398c0b", + "feature/2026-07-14-cross-family-fs-sandbox.i18n.yaml": "sha256:8b69facc97b136628fb8ee969c24b0db67cdae49e636ef37276d24cee2bb3078", + "feature/2026-07-14-cross-family-fs-sandbox.md": "sha256:73a3dca7a2568825581ff9619265221f3aec29935ff8811adb201de3858c3031", + "feature/2026-07-14-cross-family-fs-sandbox.zh.md": "sha256:f45eca13be281ff5792fbf51292c89c899f7e706a53de6d7f4f312c4bcdd2838", "feature/2026-07-14-time-context-plugin.i18n.yaml": "sha256:670c093817c77e093562e02f43984d42ed44ebcced7c91d09366839e412d05e1", "feature/2026-07-14-time-context-plugin.md": "sha256:618b121da38a8b610bcadaecf121ca823b2c8c13598c012b350c214b82fd238f", "feature/2026-07-14-time-context-plugin.zh.md": "sha256:1e9eee8ba427a6f2ee08c79e2fcb33c0948e67a80758fdf9f8c9f7dff9aea361", "feature/2026-07-16-durable-per-step-time-context.i18n.yaml": "sha256:7521670265eacbdb875dadd45ad806ce2ae9529634998ce902c275ab18142052", "feature/2026-07-16-durable-per-step-time-context.md": "sha256:2fd420bec9a40f7e2e4c7399176a243d193ec5e8e25328da1204361eecb1d1ec", "feature/2026-07-16-durable-per-step-time-context.zh.md": "sha256:2c383c738f42e786a3d97398dc44dad91596a317eb44078243f1e5ac372ad512", + "feature/2026-07-16-harness-level-loop.i18n.yaml": "sha256:0c42d83eafa5c1520cd0b22d04d30ddc0cb79043a71fd5280fa5426d14de9418", + "feature/2026-07-16-harness-level-loop.md": "sha256:fa2a98c59138fc61fdd11b29a04b624890befa5500077f220924f978135dc4e9", + "feature/2026-07-16-harness-level-loop.zh.md": "sha256:8bd0c9e884ed5dd2f2511391ebd3a3bcc806dbc33afb16aa69bf89e0af371167", "feature/2026-07-17-dedicated-full-screen-tui-front-door.i18n.yaml": "sha256:c04ec462f846887f349ffeb48aef8febf50f06903e7177ffd7679a694f6c1a57", "feature/2026-07-17-dedicated-full-screen-tui-front-door.md": "sha256:feb70faaad016965e8cc1bd7339947e48937fb3e8ea1425dada581073396f50c", "feature/2026-07-17-dedicated-full-screen-tui-front-door.zh.md": "sha256:71e4a4abf01e5fc46f7da60e0a66bca659c1ee3c4ea2c4bc20587844f33920fe", @@ -844,6 +1213,12 @@ "feature/2026-07-19-human-goal-command.i18n.yaml": "sha256:29ee3554aa2335a3d85ff4743a1b427ae192ab428070ad4378615ac85877baff", "feature/2026-07-19-human-goal-command.md": "sha256:9cfe4bc4c3bd05e59dabb3344139e29237fe9ca9804b3cac776043bd0c2943eb", "feature/2026-07-19-human-goal-command.zh.md": "sha256:b29b38fd6536dd1578ef441cf587d5467b9a03eaba335d9cbe17a5e32f6a24fd", + "feature/2026-07-19-persisted-same-session-goal-domain.i18n.yaml": "sha256:bb9abedac42e3d5c3c346710480ffd5c65a0161c17f06deda85dc45d0c368777", + "feature/2026-07-19-persisted-same-session-goal-domain.md": "sha256:7568ed133fdb64d8d13aae9f99d03b7391693365f388f1bc39609c3dcced78b8", + "feature/2026-07-19-persisted-same-session-goal-domain.zh.md": "sha256:f4bb202df863bd35f2a0e7ecb3b9204bd236baa74e35d20c301bfa9718ffc829", + "feature/2026-07-19-plugin-command-registration.i18n.yaml": "sha256:dbf7426c745a410dc2a91ee05a75b44db2d14e15fe773cc53be096e9590eab83", + "feature/2026-07-19-plugin-command-registration.md": "sha256:adebeb0f86965e70b0d2c2eba8bef73862e57fc7f5dd775063572a9c5579474c", + "feature/2026-07-19-plugin-command-registration.zh.md": "sha256:a084b9d4f272f407a43c65791272138e158c71041692c1787140f5a3d5d33d64", "feature/2026-07-19-same-session-goal-round-driver.i18n.yaml": "sha256:cb7e2c23199366aab1c2399abd050d94ae5eab5b0430d0e96d9de4c522331a49", "feature/2026-07-19-same-session-goal-round-driver.md": "sha256:fce94c819f720a972564afe7a1dfef1905c5f088154e5e13bfe5507e613265cc", "feature/2026-07-19-same-session-goal-round-driver.zh.md": "sha256:cc32045a7f60f1d0c56a6b5c61f7b57f5651dbb3394dfa9d810462740f748867", @@ -865,6 +1240,9 @@ "feature/2026-07-21-dsh-system-prompt-source-path.i18n.yaml": "sha256:22efaf3237425fecbac1b40a444454e0fc244a3c85c2f6a14535de22ea777719", "feature/2026-07-21-dsh-system-prompt-source-path.md": "sha256:5fa554932c62a8bbd5a619581710d7f8b6b65d79ec1e340129cda96d279c5ae3", "feature/2026-07-21-dsh-system-prompt-source-path.zh.md": "sha256:995cd593074881c72510a6af3ba80108bbf986d49508cce9f698c2fcb493fd23", + "feature/2026-07-21-follow-instruction-symlinks.i18n.yaml": "sha256:f2975c4d214b821ad09aedc63496646c6c719e3bf6f0dbf666ec600d451008ed", + "feature/2026-07-21-follow-instruction-symlinks.md": "sha256:a0d20549c736c719f896ed183377b06928036d36627bed9ee0fe578c1ab8a85f", + "feature/2026-07-21-follow-instruction-symlinks.zh.md": "sha256:9e2251cdb04ea42fd042c5288ebfc2619ea02a61854242f9970b94f2a78b0a98", "feature/2026-07-21-instruction-load-all-dedup.i18n.yaml": "sha256:8355cb3e30dab043df91579c9f9300f684bcc70ea36b211b6879acc6d6faba41", "feature/2026-07-21-instruction-load-all-dedup.md": "sha256:ccc4db9687273ed12a9bc6ae5a35abc05051ac33fc3ddbdbd2ec0fccddb35e19", "feature/2026-07-21-instruction-load-all-dedup.zh.md": "sha256:b55d85db8e7409360e0751c643ca444a871d6142e804f9dd30d39d8218ef5578", @@ -922,6 +1300,9 @@ "feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.i18n.yaml": "sha256:d046fe7d735bf6bfc0e6cb8eaf8961db5b7368e2d21519c1257c648eb9060a5e", "feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.md": "sha256:88f400ae4eeaee44aea8ac45bf574f8346ea473fffe86885fdcce4ca4166c010", "feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.zh.md": "sha256:32f7e6302b19ae25a2d04cc9c02eebf95ae4592ecc9321a7168a6a8a627d7be2", + "feature/2026-07-23-session-telemetry-otel-revival.i18n.yaml": "sha256:d1f81486550c16bc5b70166c8bd25781136fe9490a7486aaa110d13367b754f5", + "feature/2026-07-23-session-telemetry-otel-revival.md": "sha256:40b809f925772abe907287bb5f12bdd3d01a5f42a5aea86bde4e0e5f048342d1", + "feature/2026-07-23-session-telemetry-otel-revival.zh.md": "sha256:da254a254dd6ba7dee7da793dccbb9c7f490f71e9625c0a0d1f286f2d97cb9f5", "feature/2026-07-23-trajectory-step-cell.i18n.yaml": "sha256:fe2e935a0affdef877902a40d9861ef5f55b30f40650469f6a52a4d45a92793f", "feature/2026-07-23-trajectory-step-cell.md": "sha256:185e3b87174cb6d2f2d2271fd2a74b1517d03e8570be602570d027bf6002d106", "feature/2026-07-23-trajectory-step-cell.zh.md": "sha256:51f46be43d2f5c4f78a05ed9aeec92d1f33ac988f45cf24d35528e9c43828ef3", @@ -964,6 +1345,9 @@ "feature/2026-07-25-session-list-browsing-and-manual-order.i18n.yaml": "sha256:3430aba7bc6d8cebe158ecf292ffb6384b9d8c66553f41843e91da199030fbaf", "feature/2026-07-25-session-list-browsing-and-manual-order.md": "sha256:1f2e78f24617844ef5b8f2906c4d6f14ef9b2d5a52223baec3493888676e9f0a", "feature/2026-07-25-session-list-browsing-and-manual-order.zh.md": "sha256:04052b9ac92da61a941959f148af5ba91ee7b15fa5205ff4103f25f8bd431e48", + "feature/2026-07-25-subagent-policy-inheritance.i18n.yaml": "sha256:77aace611a0c267145ee9d354f11491d51861b53e9f50a4bb6cdb2aef63178a6", + "feature/2026-07-25-subagent-policy-inheritance.md": "sha256:7a4a97dcd0963d045c6966d9090141dad5f9fa173ba672c3130bd514a7d7d1be", + "feature/2026-07-25-subagent-policy-inheritance.zh.md": "sha256:94ace13010b699189a10ae7afd019743a043f421adaf89eb1f43119499f17cda", "feature/2026-07-25-workspace-ui-product-flow.i18n.yaml": "sha256:8a51ba028c2568471ded13a7eba9e1d41393e0f4194b754b84e398d92bc76edf", "feature/2026-07-25-workspace-ui-product-flow.md": "sha256:3799f3ecbba9cdc44a2df420c41f291ad1220f1cddc84ab27bde518823c74095", "feature/2026-07-25-workspace-ui-product-flow.zh.md": "sha256:0f2db4d277cc0eb000d190d3dc35ac99b946a6eed602b7a081b85714ae5a8318", @@ -979,6 +1363,9 @@ "feature/2026-07-26-ptc-dispatch-ui-foundation.i18n.yaml": "sha256:06ff1aa77e9ac138f343341fb5e5defa87dbec037be06680bfe7ad70c6ddebe9", "feature/2026-07-26-ptc-dispatch-ui-foundation.md": "sha256:d06ab3a41c4ac57bb651f709fee6abf1e443dfe88c1ad1c09ccb8fa73a217014", "feature/2026-07-26-ptc-dispatch-ui-foundation.zh.md": "sha256:ef1b781407e6e0bf4a3e0eefe00ce8fd9bd93ed9cafbb886401d5c99d7e23980", + "feature/2026-07-26-ptc-live-parallel-dispatch.i18n.yaml": "sha256:b1a18ca690e8ae18388bd761f56169c3e8de119f882bb25f949fa7bb46efa5a2", + "feature/2026-07-26-ptc-live-parallel-dispatch.md": "sha256:3d0a8590695b201b61cba9586b61f0b507ad3ffa5368b75cdcc27ec00c92cea3", + "feature/2026-07-26-ptc-live-parallel-dispatch.zh.md": "sha256:7b9fca86a2ee75a3e70511dfa69b92a05d89997953a77ac971418836a7ae5f56", "feature/2026-07-26-todo-parallel-in-progress.i18n.yaml": "sha256:2a6b9075e538fa158189ec725e75cf1e39fbf4e800f04a6dc95612a40d1e7582", "feature/2026-07-26-todo-parallel-in-progress.md": "sha256:73e630a7a3d689bc01c2f77d74ed6929e6b50d20780931a90452cd0dd9b5c11c", "feature/2026-07-26-todo-parallel-in-progress.zh.md": "sha256:3f95dd6d3b3fb7c934a9be48336df829871a818374e7c63329e934c91836547c", @@ -1018,6 +1405,12 @@ "feature/2026-07-27-web-session-search.i18n.yaml": "sha256:511e0ca45eda11423ec8407438d0cd2cb144ff23fdafbaac0c90f8a7160f35e1", "feature/2026-07-27-web-session-search.md": "sha256:8c5310b450fe722ceb1a90da3352514a2822ab7a58d4414a787c1ec8bc475ad0", "feature/2026-07-27-web-session-search.zh.md": "sha256:48352ac09ac255e3761526ea688df799475a5609ff88ebeadd106aeeaad10bc4", + "feature/2026-07-27-web-subagent-conversations.i18n.yaml": "sha256:6f0f08a3e717c0c71595a659e12e3667d419166c7ee1af345f7b04be413e70ca", + "feature/2026-07-27-web-subagent-conversations.md": "sha256:927d4942d88169046fe13a262ec47ad9e78677b0329192c7583481ea88a35b35", + "feature/2026-07-27-web-subagent-conversations.zh.md": "sha256:4adecbc84324df5b5e8b13778203b94b66a209c63b4e16bb0d452ed77c4c019f", + "feature/2026-07-27-workspace-registration-deletion.i18n.yaml": "sha256:2586fa408650940b15a430dc5990f49fe7bb35e1d4368ada540f3e0e7315e969", + "feature/2026-07-27-workspace-registration-deletion.md": "sha256:f894bc7ac29d96bc3d3f2057131fa905494ce518b41fa3b0ee2833c8eec24444", + "feature/2026-07-27-workspace-registration-deletion.zh.md": "sha256:7da95c573e2213833118cc0eeb8da41a737d806faf1b71b14001c1f583202ad4", "feature/2026-07-28-cross-workspace-resume.i18n.yaml": "sha256:b8a356e297d187a382aa3575a9093ac256f9027ac7813e8bcfba3c03284dcff2", "feature/2026-07-28-cross-workspace-resume.md": "sha256:50a663e01be46d2f5d205743a844e2e4610c46d80626d2dc76a42e8a50300ff2", "feature/2026-07-28-cross-workspace-resume.zh.md": "sha256:2679654a6ef71200b919175d3c3c69d5c105401f83c60bc000b2e321a56e1e43", @@ -1033,6 +1426,9 @@ "feature/2026-07-28-sdk-max-output-tokens.i18n.yaml": "sha256:7e6e899a848e8feabb1a2a9cdc7adca8d79c5dcbad70ce9b6993dee27fd0675c", "feature/2026-07-28-sdk-max-output-tokens.md": "sha256:8c354d085c164e2e14209d7bf192adbd4dee9953c9813c0c28c9f6f732c803f2", "feature/2026-07-28-sdk-max-output-tokens.zh.md": "sha256:24323876389ddfe677dc8667df64a82e97ed599d7dc4fd140929ee91d65e28e7", + "feature/2026-07-28-skill-invocation-policy.i18n.yaml": "sha256:a891aa634b61d655055ea58d232eb9f783099d137e56f17ce05939bb54d6354a", + "feature/2026-07-28-skill-invocation-policy.md": "sha256:62f9e82732c761cbde7206e5ab1029b2d794bdb26d10e522646490ec7966530f", + "feature/2026-07-28-skill-invocation-policy.zh.md": "sha256:f22c1a90730a38ab389cdb99c2590d1d0ad18e9454a1ec9f5fc7876648934a8c", "feature/2026-07-28-todo-plan-clears-on-next-turn.i18n.yaml": "sha256:d9ca84732d19f8d84fe7003d09cf437b572406490f52a23ecd2841239bd1eda6", "feature/2026-07-28-todo-plan-clears-on-next-turn.md": "sha256:af16dd33b87cf31d097e8e1292c590461a6e4428f80b21580c724c61ae602b51", "feature/2026-07-28-todo-plan-clears-on-next-turn.zh.md": "sha256:ece7eb492ef653ebb693903d7ff6609201f02fbe4a2ddec47a26da6e75cb7f4e", @@ -1075,6 +1471,9 @@ "feature/2026-07-30-plan-review-presentation-intent.i18n.yaml": "sha256:5a68291220b29a4e1588ddbc205d0f72f142cfd166389465390ac402aa0a9a2d", "feature/2026-07-30-plan-review-presentation-intent.md": "sha256:2ad115ac571ddc44e620d0a452a634027d0cf5efe7b42e121d080ebd8517e2fb", "feature/2026-07-30-plan-review-presentation-intent.zh.md": "sha256:348ed63e665296a69b93fa6d6eb39abc9b2b31f0f87b28b83925e9ee6898e167", + "feature/2026-07-30-queued-manual-compaction.i18n.yaml": "sha256:249173b2861f4c47851f1caf8a0bbf4341f685a063ffd399052f35a494af5344", + "feature/2026-07-30-queued-manual-compaction.md": "sha256:9d7c15be020b4c4b81ddebe10bac7d2d4daa08c84fb4304dd666202b6f23b102", + "feature/2026-07-30-queued-manual-compaction.zh.md": "sha256:1aa5725b0bbf6cec148233eace4d79572a4dc7efb08d9db24dc05dbe659c682a", "feature/2026-07-30-search-render-card.i18n.yaml": "sha256:f6cd5cb7ef8bb0e649f7f130eef60dbd05f484a77742f57b3dc70116549af062", "feature/2026-07-30-search-render-card.md": "sha256:3d4efce36de933ccae1a34ec49ff6d8d086e644946cf07587ac16d793f326593", "feature/2026-07-30-search-render-card.zh.md": "sha256:2dceb2079912016ee2be018b3ee073126952289fde2b40a11565cbcb074be05c", @@ -1105,6 +1504,9 @@ "feature/2026-07-30-web-read-card.i18n.yaml": "sha256:6d833572067f197e9914cf50b91bd52a0b217cdadc86a8bce32f561e1334eeb7", "feature/2026-07-30-web-read-card.md": "sha256:3a0d3fbdb4731f2b395927d0f6bc7e7d4d9e6a1f4d1f7cc82761ed0c9d27e427", "feature/2026-07-30-web-read-card.zh.md": "sha256:2bf2675f87ed5758331161ed0d0d327d899575c1698458d33b1513710a9decf2", + "feature/2026-07-30-web-remote-markdown-images.i18n.yaml": "sha256:31df060ff17a50cf7187c2153800d56ff96436af5ce737c8d174ef7d04e0b671", + "feature/2026-07-30-web-remote-markdown-images.md": "sha256:5da1da4b92eace0ae30147471ec453356ecd8d09b03eeb3aad11f2e25be59eb3", + "feature/2026-07-30-web-remote-markdown-images.zh.md": "sha256:3aea839bdaba9ac2cbcd7f894d7b7f4a9e8f775bb371ab999c11299a24c18c38", "feature/2026-07-30-web-result-card-frontend.i18n.yaml": "sha256:14733b85dca48c338ce38d9b0c8d3e5bdf6a3e3936de245c2ef8c86c77486fbd", "feature/2026-07-30-web-result-card-frontend.md": "sha256:2f4731bc35e6e67030f0cb440a592403089b7b237b72dcd649e0fceef76e09e1", "feature/2026-07-30-web-result-card-frontend.zh.md": "sha256:5aecc2df79c7df169b508071354115e3198aeecb24923e531c3be4651c35352c", @@ -1120,6 +1522,9 @@ "feature/2026-07-31-browser-derived-initial-locale.i18n.yaml": "sha256:ecd8114e6d2d6b407d2a79e719486ca80950ff2f8b16b41f6db1b0c6044755d1", "feature/2026-07-31-browser-derived-initial-locale.md": "sha256:696b56929237dc470295a78ca1b00434574194c449eea108db82949b34036c14", "feature/2026-07-31-browser-derived-initial-locale.zh.md": "sha256:b0632048bdd6577fe04ac281e6a1d956befb07024a6de5cb2cc7d7b2fd63b83b", + "feature/2026-07-31-even-out-shipped-tool-rosters.i18n.yaml": "sha256:f0460cc416fa546001890e30e59f4ccdc072a15ff71516bf322ea0e91263ab42", + "feature/2026-07-31-even-out-shipped-tool-rosters.md": "sha256:c226342e18d1463f7d79d6a32ad4f6cdaa9a5c6ef875764aa1c05b43460a93fd", + "feature/2026-07-31-even-out-shipped-tool-rosters.zh.md": "sha256:d8d9a8ac22a96724bf63c4601108b1c7c74926ade678369676691b515f9669e6", "feature/2026-07-31-experimental-subcommand-gate.i18n.yaml": "sha256:d223669bebbf6ea65b4ec636e8e7ed618eff389117335946be713897151c6968", "feature/2026-07-31-experimental-subcommand-gate.md": "sha256:8fdee37340f7e72397cf2f440a2ca70639a987d07f0c2102e02e79c0fec4bfeb", "feature/2026-07-31-experimental-subcommand-gate.zh.md": "sha256:bcdec0f82319670a1d1de54a27b103b5e2d86306b884a5f9f415b89cd5a373f4", @@ -1147,9 +1552,15 @@ "feature/2026-07-31-web-cards-toolrow.i18n.yaml": "sha256:f9a6ab72a77934cdcc02167c7313f08d7e9925362017b34bed7ad56c8c70fbaa", "feature/2026-07-31-web-cards-toolrow.md": "sha256:5058f7cec4497d1cb0a5c8e77b88fddacac6eead034f3edec88e8514919b8a3e", "feature/2026-07-31-web-cards-toolrow.zh.md": "sha256:ba84ef2e1be61211ab5ba6950b78ede3d3a979f252bc068d3e04e2c025f7bc03", + "feature/2026-07-31-web-default-search.i18n.yaml": "sha256:ed8b6bfc28383640d3a6d52fd8ac691920222ff892f5c011592ca1e2f6ee6282", + "feature/2026-07-31-web-default-search.md": "sha256:3349b01fa16214139d93c3f70eb159cb51e53c7c10a8659a769ae6de9425832d", + "feature/2026-07-31-web-default-search.zh.md": "sha256:2571749b67229636db4462f2263d03b7c39ca7a1a6122fcad5c3501f60cd90f5", "feature/2026-07-31-web-telemetry-default-mount.i18n.yaml": "sha256:9763b57b3373fd9082ccd10e6c8a80d676ba9598b9c6d58084af7b21122b1cdf", "feature/2026-07-31-web-telemetry-default-mount.md": "sha256:dd7a7c1e246f414acd77d767326cc14ed875351229d03e84d2bb7de9ec5a8956", "feature/2026-07-31-web-telemetry-default-mount.zh.md": "sha256:eba00332fae8c0374a002ead25d1f35842c4239c3f9343b46fba6c99b2e3e804", + "feature/2026-07-31-web-workspace-file-links.i18n.yaml": "sha256:6f652e5e6299b382fbddb26789451ddaa6d372bb8bd839bbf74c6cdebd82a7d5", + "feature/2026-07-31-web-workspace-file-links.md": "sha256:32c660b6b3cffda3866626c2e442c07c009831b2f9baa0769b8c35628a91ca9f", + "feature/2026-07-31-web-workspace-file-links.zh.md": "sha256:04f6a1ede2ad8e347b6a9e6592c7a97c77838768e73d67e09f0cd41d1c2d989c", "feature/2026-07-31-workspace-write-surface-default.i18n.yaml": "sha256:ca2131ba0c95b7fd2f3472c9f0acebf1a54bbc0b494deef2438e62e45715d4e6", "feature/2026-07-31-workspace-write-surface-default.md": "sha256:b96292c03ea7f7f0dcb6d2f9f7921706020881d86e71f73c9209b414071c56e1", "feature/2026-07-31-workspace-write-surface-default.zh.md": "sha256:53c5212239f3ca8d5f975b6aaa4c127b8ccf5de3943ff4f54aedf89129e619b3", @@ -1162,6 +1573,9 @@ "feature/2026-08-01-windows-pwsh-default.i18n.yaml": "sha256:7dbec4f48f94f96af3c957f24345880a6c09eff699d0e7e506b5ee72744cd505", "feature/2026-08-01-windows-pwsh-default.md": "sha256:7a00686bd786c14422fe1b89f79a26ea5869d34767220946d1092f32218dc16f", "feature/2026-08-01-windows-pwsh-default.zh.md": "sha256:fe6d285f7fcd1ae6f238d7256daf4bfb164f9cbe568610177e38e153f760478e", + "feature/2026-08-02-pwsh-tool-bash-parity.i18n.yaml": "sha256:e577b7308b3e074cbe6bc0074d398e51e6bcbfbf18c785cb0e04f3d984418080", + "feature/2026-08-02-pwsh-tool-bash-parity.md": "sha256:ad4edd7556eb0097b6d7a7e15e13697045d760822b10a19e8db311c3cded6a70", + "feature/2026-08-02-pwsh-tool-bash-parity.zh.md": "sha256:99c59e955f7ccd0b6c61d27a43fe9db20203047192fdb3ccffdeab24af6166dc", "feature/2026-08-02-session-search-not-shipped-default.i18n.yaml": "sha256:ca274275b57975561a30c65cade508f57fde1a7fb38c8c5e0527f99200f5078d", "feature/2026-08-02-session-search-not-shipped-default.md": "sha256:4a7c6cd9fbe156fb5bab839bf065ba7241bb72ee3a959886e8b265156dae7138", "feature/2026-08-02-session-search-not-shipped-default.zh.md": "sha256:fb258724d7b43eff65f1176bc74a922b3158f32d1ca48236b2d59ed7fbec7986", @@ -1180,6 +1594,9 @@ "feature/2026-08-03-web-turn-run-time.i18n.yaml": "sha256:aa0ed89476908932ee7f95c95be67c49751f595c604afe107eaa8f7a857842c7", "feature/2026-08-03-web-turn-run-time.md": "sha256:5274b10edd0d73f90ddc3720e0b69fe15ca6abe8b4c88bb661c73d6e312d8761", "feature/2026-08-03-web-turn-run-time.zh.md": "sha256:e9e6664177adf24f6815882dd4aa4076f83dca8a4f3bc333f56f18446d2f8304", + "feature/2026-08-04-claude-code-and-codex-subagent-backends.i18n.yaml": "sha256:caf44f5765a7846751f587e2d77aa2f187a910b8ca60adb2245b598ca1fa567e", + "feature/2026-08-04-claude-code-and-codex-subagent-backends.md": "sha256:e5bae4e1374a4040bb8b59eb3ca9f019330b77cae6cf8105bdf1c8c5bdac06eb", + "feature/2026-08-04-claude-code-and-codex-subagent-backends.zh.md": "sha256:f67ebe95a92c649766674ed6a52e2ba32e8469338d69a0375d297c5715a0052f", "feature/2026-08-04-pointer-revealed-sidebar-scrollbars.i18n.yaml": "sha256:36d632e657acbcf966d7124984b8da9ea9a42e922a47b73fe2ed4f4c071382b4", "feature/2026-08-04-pointer-revealed-sidebar-scrollbars.md": "sha256:ff5bbf8b485074dd72bb86e2f3c5a2a779e8156a46cc06cc8d79b0fea57142b2", "feature/2026-08-04-pointer-revealed-sidebar-scrollbars.zh.md": "sha256:ace1304545f6f282107530bf3bd7b05b376bd5347237899c57d61aca1b125797", @@ -1198,6 +1615,9 @@ "feature/2026-08-05-composer-context-meter-breakdown.i18n.yaml": "sha256:fb90a9e9f27dec45a5a7a18d577f3678104ca7fbd14a4eb33ca721e84ce7e27c", "feature/2026-08-05-composer-context-meter-breakdown.md": "sha256:1fc3dc02e8fb0d07b6d866f825f80d38b3e414d58de60d14df7ca6c849ce317a", "feature/2026-08-05-composer-context-meter-breakdown.zh.md": "sha256:098ad3c97be6a9887ff3dfbf77f42fd253b42a10df96d041c3e3993bc1ca166f", + "feature/2026-08-05-durable-web-schedule.i18n.yaml": "sha256:d5888ebd538ca291bb4a2052e4aec7306135e92f469e87fefb640a508385a517", + "feature/2026-08-05-durable-web-schedule.md": "sha256:891859d93b1328af74e98bf61671c8ae4e00d3102f190745665818a898ed971d", + "feature/2026-08-05-durable-web-schedule.zh.md": "sha256:1c67b2d6b8eb049fcd3221c6d490f5c34ebd68fc2516ea7228fbcdfd3ae28f45", "feature/2026-08-05-feedback-gated-session-telemetry.i18n.yaml": "sha256:e357cae2bb409f3360a61227b470b3c53d32a748604cef57593486dc3603d625", "feature/2026-08-05-feedback-gated-session-telemetry.md": "sha256:91a5e0c59c134e573133bc09e2d15d0d69bb5e2c42b90970deab42059c204238", "feature/2026-08-05-feedback-gated-session-telemetry.zh.md": "sha256:27b1bcaf901e9284a2cc3e12958a785fee53c6ba179b6e7bc92db51c9d406bf5", @@ -1216,6 +1636,12 @@ "feature/2026-08-06-bundled-dsh-badge-skill.i18n.yaml": "sha256:4b568d89976a71b7b3864e13b36925bf055479213739ffd4ac81614e00e93e36", "feature/2026-08-06-bundled-dsh-badge-skill.md": "sha256:7b67f7c09b7e2b2ca756983a8951dad3a15786b8cd3adc6e819f316c67d31b2c", "feature/2026-08-06-bundled-dsh-badge-skill.zh.md": "sha256:dcc0acb2dca596196ac034a8e86a644131c5b7fb09b184ec9d8493f93019d2b1", + "feature/2026-08-06-continuable-subagent-interrupt.i18n.yaml": "sha256:dd2d1b1d841f7675930856433b4eeebc2fd4b9a942d19703f691441b7fc885f4", + "feature/2026-08-06-continuable-subagent-interrupt.md": "sha256:f9f7ae452658bea9c3cb14bf307ab1595b302c0b48b2ccd823a7bc97d4e63dc7", + "feature/2026-08-06-continuable-subagent-interrupt.zh.md": "sha256:daa0c77d7b5e2c5eea9444cf4ee1f60d41bbbfd472902b58b018334235dcb129", + "feature/2026-08-06-manager-owned-subagent-settlement-delivery.i18n.yaml": "sha256:e628bf5160096fa745f6dcbef2dc402e8d5437a8f98446c961691473a23754ee", + "feature/2026-08-06-manager-owned-subagent-settlement-delivery.md": "sha256:bca40d28325d5c7f459a4d0b2a89c3cd25fbe3131765feac1fbb8c3b769920a0", + "feature/2026-08-06-manager-owned-subagent-settlement-delivery.zh.md": "sha256:d95a79675a8cc564184f2952b4d52c5c3b7ee9a80bfc7b0a41fb14ad94950b24", "feature/2026-08-06-mcp-client-auto-reconnect.i18n.yaml": "sha256:63f0156346ae66d402c4494deac585021b980ab3baf9263222e0ce49a7ca04db", "feature/2026-08-06-mcp-client-auto-reconnect.md": "sha256:b70436035ef9f320e345a17f91e6083d50dc87c523b08114fa98ba1ee5d58372", "feature/2026-08-06-mcp-client-auto-reconnect.zh.md": "sha256:2de73b49d485d514e44d4be85c4faecf797c2c407e2d87cdb1399ef6e21e770d", @@ -1255,6 +1681,9 @@ "feature/2026-08-08-user-explicit-skill-invocation.i18n.yaml": "sha256:cb5c01f4571155956c549c755c73a94edc5869c6a3a5d248c1cbadda4014880e", "feature/2026-08-08-user-explicit-skill-invocation.md": "sha256:a5a38d76a74a820625b32f75868cb05def4a80c371f991876d0a9499aebb3c2e", "feature/2026-08-08-user-explicit-skill-invocation.zh.md": "sha256:1c725a82fd47d39169182bb5c8ef29de4bbf7b1c069c455b9dfe423bacf9956c", + "feature/2026-08-08-web-background-job-display.i18n.yaml": "sha256:272fd6ebb1724b93901bb11e06e1faf021f5e8c2fa773f3dd6f7201ab7180c55", + "feature/2026-08-08-web-background-job-display.md": "sha256:794ac7f72a2dcfe5afaa96325c3b79172ee8d44d706bff57078f7a61715a5344", + "feature/2026-08-08-web-background-job-display.zh.md": "sha256:994531cdc2da1e53460d239e76a40a0bfdee0af94805815812362da62e13deea", "feature/2026-08-09-parallel-subagent-delegations.i18n.yaml": "sha256:d86ffd44b2d3e45018ffd63a3dcbbdd9001c9f9a2658b327d2bdff08662e0c36", "feature/2026-08-09-parallel-subagent-delegations.md": "sha256:0397fe0685f41a4b898557efacbbff5b8562d6d94088aeae83ade6a2aaa92cb8", "feature/2026-08-09-parallel-subagent-delegations.zh.md": "sha256:dab8373f0f8f38e70cd34a64e24a8fcdf77600e1da2d1b201bcbc36d1359094d", @@ -1264,12 +1693,15 @@ "feature/2026-08-10-creator-guidance-introduce-cue.i18n.yaml": "sha256:74f519839f0cf82c7304bdeae41ae1cab8bb930bfb94f79ab44708acd3b72128", "feature/2026-08-10-creator-guidance-introduce-cue.md": "sha256:3e25409dda498de150de18943ee332e1760963e377a40a365902b66f667fdc9f", "feature/2026-08-10-creator-guidance-introduce-cue.zh.md": "sha256:203847010cab9e9d13c3969f17921d3a5aa0d69377eccfef555c7ff96572f162", - "feature/2026-08-10-durable-workflow-runs-in-chat.i18n.yaml": "sha256:0db3c21a3c8785e56d5d7b90df990b158069cd1cea664e62fc4786c6d7588450", - "feature/2026-08-10-durable-workflow-runs-in-chat.md": "sha256:f9f5290cd880908d17b1080ae5776f22e182f5253471f90cf8bead418b33b502", - "feature/2026-08-10-durable-workflow-runs-in-chat.zh.md": "sha256:f4ffd2700bc9c2a0cc4b9d90f84e1d0a576939e2e6f0b130c5b142fd8cd518b0", + "feature/2026-08-10-durable-workflow-runs-in-chat.i18n.yaml": "sha256:03eadb60c8ba4fde262cd61e3f911d8cd68ea4a58f57adeb8dd7bb9a97d08ca2", + "feature/2026-08-10-durable-workflow-runs-in-chat.md": "sha256:6018de4a89ca99d6cbfd618aff1c8136b23d8e4854a30f7b12a602f0417cbdc2", + "feature/2026-08-10-durable-workflow-runs-in-chat.zh.md": "sha256:0080859221773122022d5880efa3d52f29c0872b52d63e170250d94f214ff37a", "feature/2026-08-10-minimal-read-image-tool.i18n.yaml": "sha256:2311b6453b90a1f81d4fcbdaa723ab233cc0998f34393956364c8b92bc4d1213", "feature/2026-08-10-minimal-read-image-tool.md": "sha256:debe6b570d11634f57a80eaa5891e4fd1e7a5aac19f10fb7dd1683c316515150", "feature/2026-08-10-minimal-read-image-tool.zh.md": "sha256:572d080340682b354cb1f8a0f74af153d6542bd3dffbe3b72b32591e5d5d3baf", + "feature/2026-08-10-subagent-approval-pinned-never.i18n.yaml": "sha256:7bb8db9a9c146e86eb3182fa6d0dcc6328976abee33f21c6d8abec566f1d6087", + "feature/2026-08-10-subagent-approval-pinned-never.md": "sha256:65eee3490cd260e1ce33f3a28cbce94c0bb38d4d35a0e588578755a0118e1967", + "feature/2026-08-10-subagent-approval-pinned-never.zh.md": "sha256:ce3852e312d351c6fdaa6f3f9faa24fdcc659e6cc163bcf7842cb40eba5836b1", "feature/2026-08-10-telemetry-default-off.i18n.yaml": "sha256:4d49b6ad0199c9128bb0393ccef75b2b46eab15a16d5117417fdd49c6e8e0252", "feature/2026-08-10-telemetry-default-off.md": "sha256:def8531ebf8cc88f07bb7169f949321132bc702ffbb0458acfacaefd5abe5674", "feature/2026-08-10-telemetry-default-off.zh.md": "sha256:0b6b85c858897e7e01aa0c54112a4a1644e548b584561c1d8b9e879dadf2c738", @@ -1282,12 +1714,21 @@ "feature/2026-08-11-background-first-continuable-delegation.i18n.yaml": "sha256:0cb5636ca94f5793503c1769ff5353fc8bc944e3060269e80349ef1144d3228e", "feature/2026-08-11-background-first-continuable-delegation.md": "sha256:6c7877c9ecda5c1591ff58da46094b6fef006a79c76bead4a2fe2b1c6d70a3d1", "feature/2026-08-11-background-first-continuable-delegation.zh.md": "sha256:991b14b8d40fc06f1beb98185734824f8ec0664452722886a10d37d26dc25fd5", + "feature/2026-08-11-background-job-completion-wakes-an-idle-owner.i18n.yaml": "sha256:bed76033f6957eaec6606d27de115fd8dade36674ba99a207061fd0d3d4532a8", + "feature/2026-08-11-background-job-completion-wakes-an-idle-owner.md": "sha256:7f7179e17a1653023d4eede1b72343df4bbeb4a99a8bced54908fef76ff4b4f7", + "feature/2026-08-11-background-job-completion-wakes-an-idle-owner.zh.md": "sha256:7a4f4ee16eb6a3b8ff61415b3cf8d396c24e0d378e352ab182e27111340dd953", "feature/2026-08-11-collapsible-ask-user-question-card.i18n.yaml": "sha256:9c0873bbb1437bcd5025f5859e1dc447a6b936f19c2c2ad2250521a3aa773a12", "feature/2026-08-11-collapsible-ask-user-question-card.md": "sha256:4f3b3f5d7020fefbbac8a3c36a97642721ef14a0476a7d8117bde8a128d25f42", "feature/2026-08-11-collapsible-ask-user-question-card.zh.md": "sha256:e7186c92f77d337a875f981ae39b16331a1c5466a948415bcacfe108ad98fb63", + "feature/2026-08-11-deepseek-request-user-id-header.i18n.yaml": "sha256:3064fdb56c343b1cf82c59793a48d2905f175f65070f4fa4f20725e6aff60c96", + "feature/2026-08-11-deepseek-request-user-id-header.md": "sha256:61b79747f5735a210806bfc63563c367407a8bab890b2ff897079cb0e30aa2aa", + "feature/2026-08-11-deepseek-request-user-id-header.zh.md": "sha256:77ca75f537432cc15533668cdd0aa245519e2660146a9f487f6417e95945d812", "feature/2026-08-11-message-feedback-web-surface.i18n.yaml": "sha256:4dc65040403c97e6d7d7768877ece068a19ee39678a3734d070a3601a8c61885", "feature/2026-08-11-message-feedback-web-surface.md": "sha256:891b718b8d4c7410c783a4799985021db40f4121d367f668ed14bb74babf9be3", "feature/2026-08-11-message-feedback-web-surface.zh.md": "sha256:3620be1a57cbd41823b1ffb2fdd836c9cb8cc96f14fc6afb206fc52d0a7d0fb4", + "feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.i18n.yaml": "sha256:7a65a90d5ee78a53dd50bdd6b2c337b173e578775e0f438dc400e18e9a7219b9", + "feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.md": "sha256:cc14db8c9528d4330cfabe4602c61f9ff84f4df652650b928b84acc7f3a1da93", + "feature/2026-08-11-minimal-profiles-bare-two-tool-runtime.zh.md": "sha256:aab3af21b5e12166fc0d0d8c168136d2f2e2c36d576af291cd7e747cda870655", "feature/2026-08-11-web-attachment-display-alignment.i18n.yaml": "sha256:e0259ebc08e1cd6ffa91bf7d89ddb96fcdccf3adbd370d3fa1b0b083ae57b752", "feature/2026-08-11-web-attachment-display-alignment.md": "sha256:977554ff2ce926580fa1ae0bc5c2e50ca8e29f6a5902d98c43b1f286e2661d6b", "feature/2026-08-11-web-attachment-display-alignment.zh.md": "sha256:72f8548f910e2e58830e6d0ffa6e76a4bf4389426479534ab172a8c87a24b974", @@ -1324,9 +1765,15 @@ "feature/2026-08-17-web-system-prompt-opaque-body.i18n.yaml": "sha256:f571ff4ff529a71a6220795df3fb27006ecb41f11bbe2adcbf2176a2fb5dae34", "feature/2026-08-17-web-system-prompt-opaque-body.md": "sha256:93bc0347dd1e0c9ab5d4222c67afeaadbe18375654718a8302b7a5738233af1f", "feature/2026-08-17-web-system-prompt-opaque-body.zh.md": "sha256:6dcd226723afc5c3559b1ff4db6ea2f3544aa5ecb85105cbc752c8f3afa3f2b6", + "feature/2026-08-18-arbitrary-seq-session-fork.i18n.yaml": "sha256:8593d0712e2c3b2f08d243336d88c45545780582251eaac66ec95296f45adbcb", + "feature/2026-08-18-arbitrary-seq-session-fork.md": "sha256:e691b277a4661c3065de0b708fc333469f6fea47716b7c68cefe37d6291ddda0", + "feature/2026-08-18-arbitrary-seq-session-fork.zh.md": "sha256:50589978102b44075528112a2a7bba734a1aad34beceea07fa5acb49c97f2d55", "feature/2026-08-18-conversation-adaptive-content-width.i18n.yaml": "sha256:145f22377e231439665b83751c7e4dd924b0197414bebda188b88f533e5bb47e", "feature/2026-08-18-conversation-adaptive-content-width.md": "sha256:0644f856ac475d43a9bf28c8091e3bd20a95ec13a6261f366af95cbf43e5cdb5", "feature/2026-08-18-conversation-adaptive-content-width.zh.md": "sha256:28246084689dac867ea7b1b2b75f2f38a8406ac97786fa993f9c9b2925b0e6a5", + "feature/2026-08-18-model-selected-subagent-routes.i18n.yaml": "sha256:b84074905a49054fd68fe78df2ff4533488452e98957a96a5d4c414a1b2ac38d", + "feature/2026-08-18-model-selected-subagent-routes.md": "sha256:be595e8bf4ddade5ccaaba4378fa415b6f804cf54a8e224113a6b4274e220154", + "feature/2026-08-18-model-selected-subagent-routes.zh.md": "sha256:42cb10a62de8984c8512c2bcd1784a275a3fe4a0495945a771202afbb04fed93", "feature/2026-08-18-pi-ai-wire-compat-surface.i18n.yaml": "sha256:b0b0c921bdc335aeee3dd86a68fd0a73b1958d8a245fb77947c28083a5c3daca", "feature/2026-08-18-pi-ai-wire-compat-surface.md": "sha256:964d578d20deca2d3a9e6e49fe9cea4d554ddc901cefa7f823558a9d7d91dc4b", "feature/2026-08-18-pi-ai-wire-compat-surface.zh.md": "sha256:55c946465f8c58254c4c13401206990f79111ef4f2a067863f31e0157e8dd63a", @@ -1354,6 +1801,9 @@ "feature/2026-08-20-tool-card-image-results.i18n.yaml": "sha256:a0f4307de3bf37a582817f1ff052c1ee599c7bee95db8647867508a3729eac09", "feature/2026-08-20-tool-card-image-results.md": "sha256:f29668d5b53284ef5042624f499b9e90ed7680f01c5e1a2e15842453075cf08c", "feature/2026-08-20-tool-card-image-results.zh.md": "sha256:15867fbaacfc01a485104e8790236b647b8550d7f65dbbd349a0b1c9554731e8", + "feature/2026-08-20-unified-image-request-pipeline.i18n.yaml": "sha256:fde2716644c06ee8c147b8548986db28f32e430fde2d1a96f74d3d8dba5eef3e", + "feature/2026-08-20-unified-image-request-pipeline.md": "sha256:096e73eb304d3b137764b6fff341171bc945a39f9125b04f928a58680c73bcf8", + "feature/2026-08-20-unified-image-request-pipeline.zh.md": "sha256:577784fe77ed0f55d9c9847a019eff05407d636a686f93b6a8ee3186d1f356da", "feature/2026-08-20-web-streaming-fence-highlight.i18n.yaml": "sha256:ab35f0675214e80dd6566bbb3f452c9eb43e70bc56bbf01030728176bdb2e075", "feature/2026-08-20-web-streaming-fence-highlight.md": "sha256:4c672a677bd70f89141d3ac9668274b71ba83be105c2db8bb8c6dbe3123c2af1", "feature/2026-08-20-web-streaming-fence-highlight.zh.md": "sha256:236abfcb846a34bf9b869e553f51e354ced7262cdfc5c0cb3595573d956beaae", @@ -1366,6 +1816,15 @@ "feature/2026-08-21-out-of-process-subagent-minimal-diagnostics.i18n.yaml": "sha256:dbe9c81bb02ed6d5dd9a9fd41630502908fa841babf9fc7db108682757a081cc", "feature/2026-08-21-out-of-process-subagent-minimal-diagnostics.md": "sha256:4689c6eac9083908e7c3f8c818c318598c3776ddf8438d49468e7400c73dc4c8", "feature/2026-08-21-out-of-process-subagent-minimal-diagnostics.zh.md": "sha256:257089b0def9fc143fd015e4450e440b993ea57826fe41af4df2b68f63548d1d", + "feature/2026-08-22-fire-and-forget-webhook-sessions.i18n.yaml": "sha256:a9b85d41d4a7684d2756233011ba1d094b9eca609ee75d6f45ce14db18e996d9", + "feature/2026-08-22-fire-and-forget-webhook-sessions.md": "sha256:260f72c6b5217263f6d253703e33e4f0963064013c7c5e55ad3c4ccdcef2fba5", + "feature/2026-08-22-fire-and-forget-webhook-sessions.zh.md": "sha256:4f2e1142534adf97b8bd6707de3669ce055b63f3ee1b0361389d7cde16943f79", + "feature/2026-08-22-standard-acp-automation-controls.i18n.yaml": "sha256:94b39e0462afcdf2f98f249ad4254d66cd34575b4f0b45ba9391f2149e8bc172", + "feature/2026-08-22-standard-acp-automation-controls.md": "sha256:5c0741f7d0df7941facfd7c9a7165c2243231631109cd5cd124c9e758ef5316e", + "feature/2026-08-22-standard-acp-automation-controls.zh.md": "sha256:425c37a943a3e9e754c0c9d7cccf68db12f03d37d3acd639823afb5a31dc3999", + "feature/2026-08-24-activity-observation-seam.i18n.yaml": "sha256:c7af2927abc1e8b3d116722ae6db7970899934279f3e8934aeb109273415bf9a", + "feature/2026-08-24-activity-observation-seam.md": "sha256:aec28d01de9a61d10e99461f2dec0d35659605548d2090957e8c07a832cd3a92", + "feature/2026-08-24-activity-observation-seam.zh.md": "sha256:d9a4c723b5e388a9728cf7ea88d8a98c8ea400a6e718ac0e4a9aa38c4b7ebd46", "feature/2026-08-24-folder-reference-pick-vs-drill.i18n.yaml": "sha256:94b1bbf6a536318a41051757b07767876cbafbf63c419664c9a220a7426f608e", "feature/2026-08-24-folder-reference-pick-vs-drill.md": "sha256:0677902082634f1dfc536d3530b17dae1a555ca223f63875a1850d587720d74d", "feature/2026-08-24-folder-reference-pick-vs-drill.zh.md": "sha256:071791690d272af7a220c63469e29412aef582a5028ac9aed307f1ef0b507705", @@ -1378,15 +1837,30 @@ "feature/2026-08-24-web-per-turn-token-usage.i18n.yaml": "sha256:a7795b217a41945da095c214f66775d9af0c051db655bf6f35502c5f5232de39", "feature/2026-08-24-web-per-turn-token-usage.md": "sha256:6ed076816d928dc5510621e7ffbafec35b6a94721609ad4faa01cd5ec6cee732", "feature/2026-08-24-web-per-turn-token-usage.zh.md": "sha256:e14b827943a8901c188a74aab1d14624a134942fd61a216446ff3e72b2e5ab2e", + "feature/2026-08-25-feedback-gated-telemetry-default.i18n.yaml": "sha256:24d1e844ebc2f1d299fdddd734b323e80410d33ea15b832a9be2a654583e534f", + "feature/2026-08-25-feedback-gated-telemetry-default.md": "sha256:ab08d9d27dc243997bd49b4b70c5691fa48ea50ea10ebe8ac7640ac896dab4af", + "feature/2026-08-25-feedback-gated-telemetry-default.zh.md": "sha256:8dbff071744c6a3e89a1b0667b8c8501ac6663cccb13de049942dd094d95e8a4", "feature/2026-08-25-loaded-turn-chat-navigation.i18n.yaml": "sha256:86bd02d56cf95ac465d0f6e326ccf75432ffb9c3db47373ae6a795195cff9ea7", "feature/2026-08-25-loaded-turn-chat-navigation.md": "sha256:0ee1cb6da76b93e467d747aa8ba07697ba648cb213ba52202c51ee1e85dff1a8", "feature/2026-08-25-loaded-turn-chat-navigation.zh.md": "sha256:5d3e567027fc65241856bf9f9cf0d73a20d53214c49bfbc884ab2ddd19503918", + "feature/2026-08-25-promote-open-anywhere-plugin.i18n.yaml": "sha256:a7c8b4ff0a01018682f0d4bac62ef8e07a6574f07470c3659775a35c92650a74", + "feature/2026-08-25-promote-open-anywhere-plugin.md": "sha256:fb3187ef75a17cead8d80b2e1fd047a273b1859c162665172aa28beeddaf118c", + "feature/2026-08-25-promote-open-anywhere-plugin.zh.md": "sha256:380beaad77040356f5e80e48a466a77b99cb36003991f33f39028c2c59126ab2", "feature/2026-08-25-unified-task-list.i18n.yaml": "sha256:fec0d4a3ecf59aafd440bc801c686b14d63152c937f51bebe0da61ff615f6f33", "feature/2026-08-25-unified-task-list.md": "sha256:30bd4e338a3de2f59af98d512c7878928c61846e6700d6012fc45e51c0bf94df", "feature/2026-08-25-unified-task-list.zh.md": "sha256:88fce0a52b5387ea98c1f68742c03b2f475c5465c680befb32c587066e52cfce", + "feature/2026-08-26-human-job-kill.i18n.yaml": "sha256:18041cc6a7922829c03e85b93c9a00f273ecaf8d41222d219334aa7bba469b0d", + "feature/2026-08-26-human-job-kill.md": "sha256:e5bd32590d0346f2a53982f5038d4c3faa76e8c44f557b14958d52da481de6be", + "feature/2026-08-26-human-job-kill.zh.md": "sha256:34bc94d8177bc225404cbcee677e729732370a0003aaaaf3ce838d229e415abb", + "feature/2026-08-26-shell-execute-projection-and-jobs-at-start.i18n.yaml": "sha256:d52fd4bf02d0e666d5f0ca94ad6f08e25c306b6568999218799fef9cbb173953", + "feature/2026-08-26-shell-execute-projection-and-jobs-at-start.md": "sha256:01c7923819f65166f00a33ceb73203a10882304a0855beea8597b22c12913d7a", + "feature/2026-08-26-shell-execute-projection-and-jobs-at-start.zh.md": "sha256:7711d814135cf1b8365bc62d0f66f0d7c78f9013d6b8332f5077fad4804b1da3", "feature/2026-08-26-web-trigger-menu-presentation-polish.i18n.yaml": "sha256:69179f3056c6d5fc35119e83dd7a5af30213502dac3c1f2d4fd43eae96ee2ecf", "feature/2026-08-26-web-trigger-menu-presentation-polish.md": "sha256:c54e3bbe528d6be711541c61e777e6e4ed4fbc1374df97d846b015d3693679f4", "feature/2026-08-26-web-trigger-menu-presentation-polish.zh.md": "sha256:7db49018eebbba539838d734a80fbb330e2b73fea3b343900591a3605c6c03b5", + "feature/2026-08-27-continuable-subagent-human-inbox-control.i18n.yaml": "sha256:03b234430788465fcbbe39097f50dbf976bf29e04310e7681908c5171390ae90", + "feature/2026-08-27-continuable-subagent-human-inbox-control.md": "sha256:99ff61580f921e68eb6cfecffc21f6ad01507a2fc8ada21b1ba85cf2237397f6", + "feature/2026-08-27-continuable-subagent-human-inbox-control.zh.md": "sha256:f4a73e449207a9779335dbc71ee8a26e1f1088d06bb69dfbdfced012cd1a7933", "feature/2026-08-27-web-at-mention-discovery-and-row-content.i18n.yaml": "sha256:f67e6607f99da020ce7994c35163ade3260d9058c3f77ea68119c13962375ee3", "feature/2026-08-27-web-at-mention-discovery-and-row-content.md": "sha256:e25c5cfb9ad194a68e4db958a80006ebc18a2bfd1c567beeb255e8700e61d80c", "feature/2026-08-27-web-at-mention-discovery-and-row-content.zh.md": "sha256:0fc7079645f0a8bff5048f2709650c325eca7d34109e33807ca4ed770b931dfb", @@ -1408,18 +1882,162 @@ "feature/2026-09-01-web-superellipse-corner-smoothing.i18n.yaml": "sha256:50afdbe5b5e19889918af6d86ab3218c05205be35938b6d33d158c60777e3b58", "feature/2026-09-01-web-superellipse-corner-smoothing.md": "sha256:b1445101c49e74bbcb4f607af850cd6df105d4034828d0dd47081e8079148f15", "feature/2026-09-01-web-superellipse-corner-smoothing.zh.md": "sha256:1a278c417c0d7de3b4c3c35061b419303b4a1a0707831c283d8f862ab9b6fd23", + "feature/2026-09-01-workflow-run-in-background.i18n.yaml": "sha256:e5f90b518b4a83123c5f0d79daa7ec78702250222b59e59ef43ac99ee02cdb79", + "feature/2026-09-01-workflow-run-in-background.md": "sha256:01af9fe9133860dd430b5f3432da49903ea463fe63c77b26fb04256b1e396390", + "feature/2026-09-01-workflow-run-in-background.zh.md": "sha256:d8033094bd02008c39057d0f17b5aa518082894515a4607fa840732581fe5873", + "feature/2026-09-05-sidebar-text-preview-and-file-tree.i18n.yaml": "sha256:2b4f9a415582511cb3435058d23dbddf16d5db56d782452cecf3eb9fe23375d4", + "feature/2026-09-05-sidebar-text-preview-and-file-tree.md": "sha256:fd89d15aa9cc34f1df29175bc4a693060b3d9669b14d970499cf77f9737948dd", + "feature/2026-09-05-sidebar-text-preview-and-file-tree.zh.md": "sha256:a6db6afb7b958f19b8cd87cd02777427115a4d1805ffb4ca7e32378ea86ef16a", + "feature/2026-09-07-model-switch-notice.i18n.yaml": "sha256:8e34098ff4a64c700a459de4ad92fab10bdf25949e5f22da7307fcf4f3bfed1b", + "feature/2026-09-07-model-switch-notice.md": "sha256:08ad2adf67e8cc6bbe2cae886114116431ef3f0ced1105735d8ad3de3609a369", + "feature/2026-09-07-model-switch-notice.zh.md": "sha256:e94d9081b71b77f3e61fd2d079819fcf2626c29af42b3b3911d2e8fb6aafb9af", + "feature/2026-09-07-public-web-deployments.i18n.yaml": "sha256:661f49adce78e5effaf974c35df0318cc748f18db26270dc66671897359e9155", + "feature/2026-09-07-public-web-deployments.md": "sha256:43235c1f03263aa6fef293f8c9e9029cbcc9047e6608248a484b3de78f51dc22", + "feature/2026-09-07-public-web-deployments.zh.md": "sha256:75bb3cd11985587af977f317ea9d84bd3ff11f86178d8ccb771cd20ef9d031b4", + "feature/2026-09-07-session-prose-local-media-display.i18n.yaml": "sha256:112021d0496fa6b93ef48a48bb8194b53d487d317c372dabf35877ccde553111", + "feature/2026-09-07-session-prose-local-media-display.md": "sha256:a699a317847439d1767abe99cf9df3b5305716aa2d254e36c071fbd2819c7621", + "feature/2026-09-07-session-prose-local-media-display.zh.md": "sha256:1eb2a592ff2bfc8ae7a2a26e55e551d0e113e0ee776068aedc7fabc9dc1bbeba", + "feature/2026-09-08-desktop-uninstall-preserve-dsh-home.i18n.yaml": "sha256:9134e03075092df67648657d3408ec1298c92143ef8642e5cbf9d02a497ea918", + "feature/2026-09-08-desktop-uninstall-preserve-dsh-home.md": "sha256:2f7275adc1fece4d1f7fbabf10cf9f9e4649459270babbc27701fbec0731e416", + "feature/2026-09-08-desktop-uninstall-preserve-dsh-home.zh.md": "sha256:f5cd28777c3f3cb1ea492c79110136e28a5266e2ecb0df4b78629dc05d1a853d", + "feature/2026-09-08-feedback-dialog-and-categories.i18n.yaml": "sha256:e61596b8fb87c3d987f216fd7cc9ee2e3ad050fd7bc4e4a2392b5fc2545bc113", + "feature/2026-09-08-feedback-dialog-and-categories.md": "sha256:96138861c734efa4d413b59392872f03b885684e01c0918c684ef81994a36d14", + "feature/2026-09-08-feedback-dialog-and-categories.zh.md": "sha256:d37573f5fffb18e2a78c0e43e31940ef18d92cfa34fcc0c746daa6f77769b0e4", + "feature/2026-09-08-file-display-through-filesystem.i18n.yaml": "sha256:8140cd7da2e09400925c2d59e0d693a54a5bafc010f1c3fb805753b6c1777ece", + "feature/2026-09-08-file-display-through-filesystem.md": "sha256:314c2b702d09125726e58f82c132fa6b0cb0667586e5427851e0f98b69035e26", + "feature/2026-09-08-file-display-through-filesystem.zh.md": "sha256:c6c37f76702dd85039980f9c33d8ffd66dd7f94d9385a2026b74c68a4950e22e", "feature/2026-09-08-web-explicit-file-delivery.i18n.yaml": "sha256:99daae539cc8fd7376ce0265538bee21e1e33f3c0d77c8cc4e011f94b4e9568a", "feature/2026-09-08-web-explicit-file-delivery.md": "sha256:bb416b1e8be081e6cb6af17792eb1a442172ff114c3a3577e5ef06a77eb57093", "feature/2026-09-08-web-explicit-file-delivery.zh.md": "sha256:00a642380e1f6ac9d5cd840e021f4e3e4ae68a289cb6344eb3dcd73a6fd81f4d", + "feature/2026-09-09-headless-machine-readable-run-surface.i18n.yaml": "sha256:95b740c9e6a0df3f049497922a59b89560717f15c1cad9a309847a967913cea5", + "feature/2026-09-09-headless-machine-readable-run-surface.md": "sha256:f01efb97c83ecbff18ba2b9b8f596b73b7abfc97a60ea127ef2c898e90a69509", + "feature/2026-09-09-headless-machine-readable-run-surface.zh.md": "sha256:e77e0dbbaade572897a695aab0263cdd1b0b32523664b935e8ab561a16efee92", + "feature/2026-09-09-present-filesystem-access.i18n.yaml": "sha256:f1af87dd81c4ed600781551c95e44d43a682b1ef74ee9c562a8f44e2e4b7fb69", + "feature/2026-09-09-present-filesystem-access.md": "sha256:6082d5e98202548349de4ef207cfd23d7062ddf974d9e4d475b2fe0cee983f77", + "feature/2026-09-09-present-filesystem-access.zh.md": "sha256:9cb3f3a296400fe068d5240708467f52af8c3b8451029adb963f3ab9e96bfedc", + "feature/2026-09-09-ptc-trajectory-code-inspection.i18n.yaml": "sha256:cd78d5a13aa4dd2d3f362cfe835e95b7807342d33d472329707d6d44b284f23e", + "feature/2026-09-09-ptc-trajectory-code-inspection.md": "sha256:eed99f370093d6e74da1e8305a4ba360197c8cc99507160b0dd826f293b3fc7e", + "feature/2026-09-09-ptc-trajectory-code-inspection.zh.md": "sha256:47b9b697d6e2f9998ce2de13c3cb1275aae90df4f08842b53f94b0e77ac524a2", + "feature/2026-09-10-composer-reference-previews.i18n.yaml": "sha256:bea1a56fe5f17e9b17d2c86df29795f1edae9515e8e0f7e42f9e0e76a2d47781", + "feature/2026-09-10-composer-reference-previews.md": "sha256:5e906383feeb74eec869142eb6bcdd7e609dd9b725196bc8cbd28419a51d0fcc", + "feature/2026-09-10-composer-reference-previews.zh.md": "sha256:3c59ee73ce23ce2f78d7469768a60edfb82d0ded9ff1ec67b8cf09ea420a666f", + "feature/2026-09-10-symmetric-message-feedback-submission.i18n.yaml": "sha256:f4a32935b406c3b95fd6ffa3dbf58eb97e30cb777b41f465977afb31870d43b2", + "feature/2026-09-10-symmetric-message-feedback-submission.md": "sha256:4d45f477e2156d2960cc20148dbbb23881a3eb4b88a80007cc677a6e714d0f76", + "feature/2026-09-10-symmetric-message-feedback-submission.zh.md": "sha256:fcdee10706a36bc0a93ce8305a5904e0f31d3bd0e9a8b4377d593665f29fe165", + "feature/2026-09-11-desktop-mandatory-update-client.i18n.yaml": "sha256:59210d82843b2d0d595a01841468258fb919ff59a71a588bec5cc868e85943ad", + "feature/2026-09-11-desktop-mandatory-update-client.md": "sha256:2de5a6353d3859b67f87d6b83dbf01d3b2c281a590f7a3c559f3cf0e1b1977e4", + "feature/2026-09-11-desktop-mandatory-update-client.zh.md": "sha256:cd9963b8887b5fdfbf9f3b8216b7a4dd3d4f492d488fd533dc136c935f4424aa", + "feature/2026-09-11-sidebar-document-preview-polish.i18n.yaml": "sha256:c2d220b173e9241786dbb10a4539cfbab66b649e221c523b54f9c710bae77f20", + "feature/2026-09-11-sidebar-document-preview-polish.md": "sha256:b3d40ec827efc0a14f0c8422a4d4d61daf175455f4220457d56c2013c95e059e", + "feature/2026-09-11-sidebar-document-preview-polish.zh.md": "sha256:8f42f7464747d6950dfa1aa9cb2c639b6c00bbc88f7a98cf9f3f72166c5bed8f", + "feature/2026-09-11-turn-changed-files-card.i18n.yaml": "sha256:d47ef4502c689e8bce34a8ccc364dcf25da75e5658a04580102d200373884653", + "feature/2026-09-11-turn-changed-files-card.md": "sha256:f72bf15af0e755018e049ed171a17eb874de4654fb5da5c3df8ee6dfde123cf8", + "feature/2026-09-11-turn-changed-files-card.zh.md": "sha256:4514f2acc3e8a31efba53faccf271afc379a8787f5b75d1187c74c78c8638446", + "feature/2026-09-12-mcp-resources-and-instructions.i18n.yaml": "sha256:7fdef40f42bf71c18f318ad01cdb3aef49931b73a134f72d9f7afb9457c7c57d", + "feature/2026-09-12-mcp-resources-and-instructions.md": "sha256:01d894a58399c97447129854e56c98b8d9fc4445828a603bde0eeb7388bee090", + "feature/2026-09-12-mcp-resources-and-instructions.zh.md": "sha256:fe37fa9930e0525eca849463418bc308daa4760b963a7dda0f1525a8b0a0c0f8", + "feature/2026-09-12-mcp-sdk-protocol-negotiation.i18n.yaml": "sha256:9b105b6ec3fd32668fde36ed66922047c127ed5c5a3c018054879cbeafd74170", + "feature/2026-09-12-mcp-sdk-protocol-negotiation.md": "sha256:1684f5f510aa16e18b5a31728a833a1c659ed73472b372ba506cc0c2ad3f8e87", + "feature/2026-09-12-mcp-sdk-protocol-negotiation.zh.md": "sha256:df270f54782e04e799296adc7422741ef1368c8a1af6eebde860713dc3516233", + "feature/2026-09-13-macos-hidden-titlebar-vibrancy.i18n.yaml": "sha256:b0a819d5609a6da9bae4c0688f5c017a4038b11eb0a7894c08f8a5b9395c5400", + "feature/2026-09-13-macos-hidden-titlebar-vibrancy.md": "sha256:218fb7f1ec8ab9b89e8c9833bad2ec298d21f395b7b774f9027f3bf3ee3e9cd4", + "feature/2026-09-13-macos-hidden-titlebar-vibrancy.zh.md": "sha256:4d6497cbb37013571e5106b5b6d527a256853c2a65aacbec655c0bc36a001421", + "feature/2026-09-13-mcp-resources-in-profiles.i18n.yaml": "sha256:2f4ee5ae876eae013367a9064418060712579c6f3d588c3cc87f2b7877c2b1e6", + "feature/2026-09-13-mcp-resources-in-profiles.md": "sha256:a2065c7c76b480e55baaffa99fda629f8be3dee6b6c27339a9cb5605a34175c2", + "feature/2026-09-13-mcp-resources-in-profiles.zh.md": "sha256:7ce6ebd2605ced93c7dbf41d9194b929da505afc2b837b0646393f0da2a0c183", + "feature/2026-09-14-composer-selection-keyboard.i18n.yaml": "sha256:a74286188640b4d972236a48f8e63a2f3e6bb86956a11bc863404e7b97a80ef9", + "feature/2026-09-14-composer-selection-keyboard.md": "sha256:12dd9d98ef24c1aecb8a5d9b3a33560b0ad9ba8ce6b54009a28279fb21cc8b93", + "feature/2026-09-14-composer-selection-keyboard.zh.md": "sha256:60b836c4312112b1025b454f71ad1f1f3461e317146be72169401f140d337304", + "feature/2026-09-14-docs-mermaid-viewer.i18n.yaml": "sha256:6998620aad52a0ac9e97f19bd60849b98f80ee1383ab9d01ecf749ac00f1b99d", + "feature/2026-09-14-docs-mermaid-viewer.md": "sha256:631726774b109d7ba785e315f9fa8f3c1a00275841e5cd0e05b8c1ce0fc2524c", + "feature/2026-09-14-docs-mermaid-viewer.zh.md": "sha256:a0d86f58c02241d76b0bf55246257d48e327cb4d86337858b3f66784245d7e2b", + "feature/2026-09-15-bundled-office-skills.i18n.yaml": "sha256:62c22569b76bf277204d4b65e0d31ba52dc2f7be6328479260a4dc2d8b9446bc", + "feature/2026-09-15-bundled-office-skills.md": "sha256:03f06db94e64dabbbebef7809125716cf7432fb2e591951382f0555d56b248af", + "feature/2026-09-15-bundled-office-skills.zh.md": "sha256:d068c9ad97f5e5acdd43fa79df6070ebd958e992e942d7a839bc4cf322ffcf7e", + "feature/2026-09-15-changed-file-diff-preview.i18n.yaml": "sha256:2c081d604cdbe7b6f10524fab53f2cd441e3ad95acbf60376c2b99d454e23ffc", + "feature/2026-09-15-changed-file-diff-preview.md": "sha256:f33c69856a1388d16eadf844a45b0b7a2ada494f9808c90f3dbac19da6d2ea0b", + "feature/2026-09-15-changed-file-diff-preview.zh.md": "sha256:34ef8b3f3dda685a762f5c369046ce0d75508ec72636fb753a9de0ea8c09d4df", + "feature/2026-09-15-continuable-activation-capacity.i18n.yaml": "sha256:8e6efac1e651494d95b79d3fe19f951b00c0cc93d5fa9ac2f61f297b54fc9320", + "feature/2026-09-15-continuable-activation-capacity.md": "sha256:f8aa7fa33e6e041303bd2b10bc02a818a1959febc40a7e9bff1778896eea65df", + "feature/2026-09-15-continuable-activation-capacity.zh.md": "sha256:bdcf5f79cbb60a6b4fb18b8a374d480eaa4ea5a1efb8b29ae702354b68c12221", + "feature/2026-09-15-docs-page-markdown-actions.i18n.yaml": "sha256:d8d4c14d9695f4fe6594241e745d2c234097b5f7ac14c9e7ab8eab146bd84919", + "feature/2026-09-15-docs-page-markdown-actions.md": "sha256:8603dec264c063bc7230c06b25f94648c1e58e457f19ba43c305ffbefa2d386a", + "feature/2026-09-15-docs-page-markdown-actions.zh.md": "sha256:887c75edde0bc72ab7a9f90246a6e58957fc8d1e89aec809dd58d21167218894", + "feature/2026-09-15-markdown-file-preview-links.i18n.yaml": "sha256:66ed21095a5bef11c9494a860563c76179a21e8d46f2f91c62f881c621220570", + "feature/2026-09-15-markdown-file-preview-links.md": "sha256:359bc0b6a9857a007d0a777116b382b4a37beb8d30e83f8027c216fbdb188a4e", + "feature/2026-09-15-markdown-file-preview-links.zh.md": "sha256:481173c2ef3c89c897c10ff9a04c7985f37864ac85c24ec19136952673515d57", + "feature/2026-09-15-profile-command-shorthand.i18n.yaml": "sha256:4d6828e6ad004f6a2a04ecc0880db463935b1b25da72291bf3f1e687076c713b", + "feature/2026-09-15-profile-command-shorthand.md": "sha256:3a63eec420feaeeffeff08f8f9a196370fe5ece03fec9ef32409b08aaf50fe4a", + "feature/2026-09-15-profile-command-shorthand.zh.md": "sha256:9854d560eac99464a950ce75ec38e9d673e7d14202c4988a8386f38cd0d22ffb", + "feature/2026-09-16-desktop-onboarding.i18n.yaml": "sha256:3d1a4e885976542ed0ced2211fa7469315fab3be7b7f0939bff84b6da3a4ccc9", + "feature/2026-09-16-desktop-onboarding.md": "sha256:43cbdb6f3c76528bbaa557e3f073bbe838534962b11c92fbb4c984c5c6efdef2", + "feature/2026-09-16-desktop-onboarding.zh.md": "sha256:93bdce12c1e633a779ed2bed04f98f8663e2963ee60c4c7ac6a96f4cb51812fe", + "feature/2026-09-16-open-in-default-app-for-sidebar-files.i18n.yaml": "sha256:7598f4913d0680b7e741922d7f916a54563ccd2d88c19e3c417db839bde434d7", + "feature/2026-09-16-open-in-default-app-for-sidebar-files.md": "sha256:dd7dc092057fcf14fe13e2466c43b340e5e3313b690432cf34d1368ac79e8792", + "feature/2026-09-16-open-in-default-app-for-sidebar-files.zh.md": "sha256:78bae90e71ed96538674f3922c9099c2e7737e2bb7fbf3e53408fcf857b45957", + "feature/2026-09-16-sandbox-same-mode.i18n.yaml": "sha256:f577daf8d010700f5d710fbeece704e9e47ed23c5e059f8475b7a9a52ed49de4", + "feature/2026-09-16-sandbox-same-mode.md": "sha256:79dc06f0eba002ea63ae45fb0db94d9290705acd7eddd4949ca7edb08f4b1f7a", + "feature/2026-09-16-sandbox-same-mode.zh.md": "sha256:d35ebc9332ee4359719476cf5c3cbe6287472b25f64420b03a0b93ad627074b9", + "feature/2026-09-16-unified-model-input-controls.i18n.yaml": "sha256:461a590e6b48cd47ff08ade47fe16516ae376c2ec2bc840bbecbbd3e7dbeefea", + "feature/2026-09-16-unified-model-input-controls.md": "sha256:efb160355e049dfe01577184eb31089509089e59029cffcf867d3ac6a742ef5c", + "feature/2026-09-16-unified-model-input-controls.zh.md": "sha256:01d2ae7f3ab6ad04b10d7e45776d803a5297e460082db15b11d49cbaec763a55", + "feature/2026-09-16-windows-desktop-titlebar.i18n.yaml": "sha256:44ad967a12e038e211d7fb003067e3ab4de32f0d2f3e0c87cc737fd91dd3e89a", + "feature/2026-09-16-windows-desktop-titlebar.md": "sha256:fc89b10a01cf60604a5673e13568ad83c004015fd4c68258224fd76bc51dbd21", + "feature/2026-09-16-windows-desktop-titlebar.zh.md": "sha256:6819d877344fd663007d60dc2b9ef1ae2df3b775e372cff1bf0eb57673ffa6ae", + "feature/2026-09-17-developer-tools-settings.i18n.yaml": "sha256:460e27d604ae4591b90ec42e0cbdb837c64167e98922846ca409147207831130", + "feature/2026-09-17-developer-tools-settings.md": "sha256:d28584d6e48ebb46ecbfbe33335fc3925b97304a21168eb515ccd80a68998411", + "feature/2026-09-17-developer-tools-settings.zh.md": "sha256:3c6f8821d3fad6a64f2137dfd0b9eabdbbab73e980d3326ac162443cf5acaf1b", + "feature/2026-09-17-persistent-plan-cards.i18n.yaml": "sha256:94c0ed809ed33d42db0bb3e3d4d199675ce1e9fd6a64aaccb48d2a8dd894309d", + "feature/2026-09-17-persistent-plan-cards.md": "sha256:73aa4c21f9c7354a70bed9297ec29f13f7741d2dbe80dde48ed4c415ce0093c6", + "feature/2026-09-17-persistent-plan-cards.zh.md": "sha256:0c203310e3252b1daf74191919a0d397e21833dd7e91fb84e45f3c59cfbcabdd", + "feature/2026-09-18-account-quota-top-up.i18n.yaml": "sha256:229eb2558f18ff3a74e2121191508278d5e54839357041ce802c2f1c5b73658e", + "feature/2026-09-18-account-quota-top-up.md": "sha256:ab05f80ceddb7623aa858b73bb080904ef8d8fa9dcd9668c4250c5f8dd6a81fd", + "feature/2026-09-18-account-quota-top-up.zh.md": "sha256:087ae3ebb29b0c35f8b6034b95a6959b247db9e4731230fe24bdfeed82a469eb", + "feature/2026-09-18-session-pin-and-sidebar-archive.i18n.yaml": "sha256:a31526750048ff52a2d6d766eacd69b3ae197060a95dfe80f86731754e2750b4", + "feature/2026-09-18-session-pin-and-sidebar-archive.md": "sha256:aa0cfb0433bf9c1c7aa9c7fe12a174a7e40853962a51797be2ce05a88416a372", + "feature/2026-09-18-session-pin-and-sidebar-archive.zh.md": "sha256:6fc2cc4b379d4f190521ad07016b6fbb80bb6049f16bc141c76cd27b30db2017", + "feature/2026-09-20-default-workspace.i18n.yaml": "sha256:32aba99894da919541ac5c623279b7e064c5953f349618dd2647781adbe6c454", + "feature/2026-09-20-default-workspace.md": "sha256:5edd5b5817304a129e60e5f51b2b881dfc23b0c3fefc8ff9e99eba942e272f21", + "feature/2026-09-20-default-workspace.zh.md": "sha256:3fe991f3a9cc8e776b087860d3c88310764a3610b2860b6f4e7f7e097f240759", + "feature/2026-09-20-developer-tools-default-on.i18n.yaml": "sha256:376367023d1c1f4be03a47e877155da0ce66c73f0decb76a3596f8d93f801d8e", + "feature/2026-09-20-developer-tools-default-on.md": "sha256:3e68fd94eb938710995c0a4969f9759c4efa008535c4ddd3be669b36fbe5a891", + "feature/2026-09-20-developer-tools-default-on.zh.md": "sha256:10282ef866c7b15b964acacb712e21decf939c8ae366a7335fa8ed6c172b1031", + "feature/2026-09-20-focus-ring-brand-primary.i18n.yaml": "sha256:0e554bd3a08cf3001bbf3cef9b22c772789fff9d2fa53d7e6ec29f06bca091ea", + "feature/2026-09-20-focus-ring-brand-primary.md": "sha256:5ecd6dbe750157072d05458ed686db99616c7240676a1a7e99b0e6fc97962385", + "feature/2026-09-20-focus-ring-brand-primary.zh.md": "sha256:de317ffbc065ea8493677190ac7bd49b5348c271d84b942f3670308f776f68f1", + "feature/2026-09-22-unbounded-completion-wakes-by-default.i18n.yaml": "sha256:580c46a3a07b3fa1ac2b6e697981aab12acef098386f2c7b10b8d8b5de433b22", + "feature/2026-09-22-unbounded-completion-wakes-by-default.md": "sha256:743ce3d187a79bd25d421ffd6905efa431b479c97cb195f71d62a1ea96e84b3e", + "feature/2026-09-22-unbounded-completion-wakes-by-default.zh.md": "sha256:79b72786a0ca10c00d1a01b61218481121a49ff966ed6e2f9aee52b15a263f2d", + "feature/2026-09-23-language-neutral-default-workspace-naming.i18n.yaml": "sha256:9cfac88e040171968bc9984722c3b5c14924752dd42063ddf9cfc121a864afb7", + "feature/2026-09-23-language-neutral-default-workspace-naming.md": "sha256:2beed7185f99545c274e8e42040b36e65a02955ee925a0ee97917ab1962bbbbe", + "feature/2026-09-23-language-neutral-default-workspace-naming.zh.md": "sha256:81e19236ddeb23b4d27c533ce7f9ecf61ed3b7cf32aa5ef9c75fbf071bffbd41", + "feature/2026-09-24-fixed-rate-floor-one-minute.i18n.yaml": "sha256:1731d7423796d12c701e96db989a68ef8e6249b46d40d4f0654d9b0d6f9f7b2f", + "feature/2026-09-24-fixed-rate-floor-one-minute.md": "sha256:03a711602feb0c0e73fdd8da3d7823654169e4129f8ac667676c0f65a4ae9b5e", + "feature/2026-09-24-fixed-rate-floor-one-minute.zh.md": "sha256:0e4361fffbec14adc621629646aeacf35924b6856587226dc7de25fed6f110ab", + "feature/2026-09-27-desktop-cli-runtime.i18n.yaml": "sha256:b9dbdfbcc54777e784d8813b76f25286a3ff58116fbd9a5417c8ed6994866c0a", + "feature/2026-09-27-desktop-cli-runtime.md": "sha256:82df96d366be2ba35d01b19b9cd483ca489a9c940083f9298e48be64b1190d4f", + "feature/2026-09-27-desktop-cli-runtime.zh.md": "sha256:8e23c5fe07468a16d5a50d7e66aec9ba273dd2a3d3535e1eace7d94732d31f23", + "feature/2026-09-28-desktop-login-shell-environment.i18n.yaml": "sha256:6129edeb0a7ecf087911193ca5a15223a730ad01e30d2ead7739d01f589fafa7", + "feature/2026-09-28-desktop-login-shell-environment.md": "sha256:cd133b1ef1a178828d30b9db176a91597eedf9e67802551356f34d3e0f80206d", + "feature/2026-09-28-desktop-login-shell-environment.zh.md": "sha256:1422667a44aacc51736f31b328a8e171a39cb6b5168d6993e980e4324b23b98f", "process/2026-06-11-doc-sync-enforcement.i18n.yaml": "sha256:33b6d5874427bd7a2bd82e7e2f4f482b12448b2464aef15a9c57975edb48554d", "process/2026-06-11-doc-sync-enforcement.md": "sha256:aa2fe83d519fc30d48dff19e596e83c8922aacc9e063e14fe2cc35b769b9100e", "process/2026-06-11-doc-sync-enforcement.zh.md": "sha256:698017bd35f030fdea3eac51df9e43138c48140f504739d687b7251d13fced2b", + "process/2026-06-11-quality-gates.i18n.yaml": "sha256:2819e83235b02b58afcdc03e4543509a343052b6bbf1e57c2999124d6348170a", + "process/2026-06-11-quality-gates.md": "sha256:94bfd4add22e5c9e1c140317570d1cfe5d877dca5c0ec2c0ef7e36883e997907", + "process/2026-06-11-quality-gates.zh.md": "sha256:1becd113d173b1db3a4c1ec4367232b0b91f0881e8718c2d1ec9012f835b3e2b", "process/2026-06-11-tsdown-over-dumble.i18n.yaml": "sha256:22791adb84a4b6c545173d4f1708eea51151d57e426d875e0e5423be9b6e0212", "process/2026-06-11-tsdown-over-dumble.md": "sha256:8d3c35dddd8869cc3361059dfe4b7b8ab6716d29dda232c97c2f37e92c841dc0", "process/2026-06-11-tsdown-over-dumble.zh.md": "sha256:cf11c651c13f5ffef5474e7795006ba3653c5eb08eae75a879be6499353455dc", "process/2026-06-11-vendor-cordis-as-source.i18n.yaml": "sha256:b02b3c0469de87acd3abbe7352d50da208b0e049752543b1ada0140890218d9b", "process/2026-06-11-vendor-cordis-as-source.md": "sha256:e1e9b70e9439eef26d68428b0829e1d07b6dcecd5601a05754189770586f8a20", "process/2026-06-11-vendor-cordis-as-source.zh.md": "sha256:ade0a6196e0b0188a2ef19217b32f980d7e129f6252c5c10115e5582d4c4c32f", + "process/2026-06-16-pnpm-over-yarn.i18n.yaml": "sha256:a28f429debb0d61009189887ee1bf4493ff1d769e28ba48c521b39a54a03aee5", + "process/2026-06-16-pnpm-over-yarn.md": "sha256:4c557c353d3483fc42c0ab8694b45b1cd76961b3ff9036de78cd7bfe06ab7d29", + "process/2026-06-16-pnpm-over-yarn.zh.md": "sha256:32010231566de2a33511dc2c75a67677ea161dd73354013c71542c6e0e20daae", + "process/2026-06-17-ts-build-config.i18n.yaml": "sha256:16b9ff92757b590b506d476df2f9a7f095a3e6b87bd1ad82b532ed912bf1f1b2", + "process/2026-06-17-ts-build-config.md": "sha256:26e8447b6a1172573e7c09563687a0a4ba2c24e58403efb23c1372b3b13e595b", + "process/2026-06-17-ts-build-config.zh.md": "sha256:71ba73e43869de8bfab11c232405205f27eef8289aeaad9d385e95b0718dd124", "process/2026-06-18-markdown-cross-link-lint.i18n.yaml": "sha256:8d3e9fc65db2d4cee347a077923c664f661821026fef837c4eda923baad765dc", "process/2026-06-18-markdown-cross-link-lint.md": "sha256:cdbe7ba8995f7430c7e2cef59ab7bb3a61992147408fae41c5dcffe4e60a2261", "process/2026-06-18-markdown-cross-link-lint.zh.md": "sha256:6bc822d10549cc687dad42da379bfca56b5140fbee6d7787a206fe39a82aad7f", @@ -1432,6 +2050,9 @@ "process/2026-06-20-generated-cordis-catalog.i18n.yaml": "sha256:5250aaec698b25bdf5e3a02f67e531793fc968f9c38348f0c8bd11418571967f", "process/2026-06-20-generated-cordis-catalog.md": "sha256:1f3190b759bf1445b35f25f2f18ac1c8b16d7f2e9263e2627bf3c94fac54d275", "process/2026-06-20-generated-cordis-catalog.zh.md": "sha256:5d46da71bd73bba62ba15a9f11b21da422dbecc8ed68b6f530ceb302e1935ddb", + "process/2026-07-02-bilingual-docs-and-pairing-gate.i18n.yaml": "sha256:af1e17658781f40dca00bb692935484789b2173d47e75da9716e3c7970227857", + "process/2026-07-02-bilingual-docs-and-pairing-gate.md": "sha256:1a3b1248e71c04c8805a1332dcf68f31f90a7b43d1533bc3f1a90dde45a0a67c", + "process/2026-07-02-bilingual-docs-and-pairing-gate.zh.md": "sha256:194a1589e957e6f62a04fb6af54a0dccac4d3cedec817749083d1e9ca4a5ae9a", "process/2026-07-02-tool-schema-catalog.i18n.yaml": "sha256:6a6dcd025c320c7fe50d99982716c6724ba8ccfda7170f9541fb70d53da2e008", "process/2026-07-02-tool-schema-catalog.md": "sha256:43536908e3698bf75e77e204a9c72425b2289a67c18a3b905986351832334d5b", "process/2026-07-02-tool-schema-catalog.zh.md": "sha256:de2da2ec2828e769d4dd282bf7c16437562a9155111726a981842e58891aaf53", @@ -1441,9 +2062,15 @@ "process/2026-07-04-cordis-jsdoc-completeness-gate.i18n.yaml": "sha256:92ab8aca8856324acb383927d4500d2f2b3b8ad64d24bd855632035a52671032", "process/2026-07-04-cordis-jsdoc-completeness-gate.md": "sha256:a9404acbfeaa83f032d17414627b2cce5e280cad8651c6ff078a2ea6af458285", "process/2026-07-04-cordis-jsdoc-completeness-gate.zh.md": "sha256:e8f4737ecc0925e3dcd60f8319d9cd0fd24de5c7468e1ede4438748d3ad378a1", + "process/2026-07-04-doc-tiers-and-budgets.i18n.yaml": "sha256:c8d25e4a580aa150a3d6621321d7362c7a8987a579edfe217bd5190496c6a4fc", + "process/2026-07-04-doc-tiers-and-budgets.md": "sha256:58b0f425701d9fa59f9cd28783bd4301b8f294be2710fc1837475d36e406edf3", + "process/2026-07-04-doc-tiers-and-budgets.zh.md": "sha256:968c3023664f46484ace8a76b642dd30babd7def0a383c03b5000e3415358313", "process/2026-07-04-persistence-log-catalog.i18n.yaml": "sha256:23119a0769808279d7caef9e84934cc53b6a86580b703c205fa47ad181a2bf76", "process/2026-07-04-persistence-log-catalog.md": "sha256:fbb44218b77fd92f7b0cc7af2559200547018ceb5c34aca560371227c8bf5898", "process/2026-07-04-persistence-log-catalog.zh.md": "sha256:a39ee31bec043e97ad6b7e8433d4c1d24200642049e371ac0167a2092a6e5286", + "process/2026-07-05-uniform-agent-note-format.i18n.yaml": "sha256:10b8510da2112acecb6fe89197ba573a5b2128b92455d8134f7e5a5ff8fad038", + "process/2026-07-05-uniform-agent-note-format.md": "sha256:55fd64ea57270e44bfc8aed830f4be63835684a5b603d9f82b9f10eab38d711a", + "process/2026-07-05-uniform-agent-note-format.zh.md": "sha256:437912260ffc6bd6d00dcb60a8a4f5c6279cc87f58fc2ff2b69e674a91db1975", "process/2026-07-06-export-jsdoc-gate.i18n.yaml": "sha256:e96b33ffe7ca4eb891e4757ad415334a02bda0a1659dc0e7db8d39c83ab54c27", "process/2026-07-06-export-jsdoc-gate.md": "sha256:a772ca941c1e3dc29820cb8287bda1d44a7a4ec51dba71513101f5ff8b329819", "process/2026-07-06-export-jsdoc-gate.zh.md": "sha256:223ad583f4b165fc48f5fa2764f971bf194c4fe92be0a7361b37f6bc87e71198", @@ -1453,9 +2080,15 @@ "process/2026-07-06-parallel-github-ci-gates.i18n.yaml": "sha256:0f6ece268d9a51bc20cb8eb929f26d8838761603a64eb08dc24521198f10da36", "process/2026-07-06-parallel-github-ci-gates.md": "sha256:6249bd7396ae7f2d0dc671879ce21cefab33a47ace6ef17a25a70e8650b815af", "process/2026-07-06-parallel-github-ci-gates.zh.md": "sha256:cf7edb9bcf97ab1d4e452330c0df0b127a664509ec3f11597ace3eabeb663a5b", + "process/2026-07-06-parallel-pre-push-gates.i18n.yaml": "sha256:388013a92962c3a4b8367c8b08ddd32c6000c21c1268d1ee6736c95f436e7241", + "process/2026-07-06-parallel-pre-push-gates.md": "sha256:83b7e2eecdf48e339027bcce438acd04bf59b46c6847915db22d56c7df7db533", + "process/2026-07-06-parallel-pre-push-gates.zh.md": "sha256:85b7afad1a6dfd678b74276db7600c5e291fd410bf449727ca119053a78418b2", "process/2026-07-10-readme-known-limitations-gate.i18n.yaml": "sha256:57635340ba3a9d1a0d20e0c6222fb153488dd3f198e5d67fc2cf107645d537b4", "process/2026-07-10-readme-known-limitations-gate.md": "sha256:ffb5969f1a4e9196d18510cda3905bcf6ca26509fd0106c0bc6e7dac63806b0d", "process/2026-07-10-readme-known-limitations-gate.zh.md": "sha256:9b7f9fa5b1b171f7961487e303eca55b7e50f9a558cd91942991376d1d77f57c", + "process/2026-07-12-package-model-experience-contract.i18n.yaml": "sha256:ce3051cdab39a0a91d838fbb605b29bafa842ae14ff44ba7308d4537cf73c9bb", + "process/2026-07-12-package-model-experience-contract.md": "sha256:1f902dd4820252e50a9175169816f7acd80b8cae6f89ee8bf8601517c0d469ca", + "process/2026-07-12-package-model-experience-contract.zh.md": "sha256:f646e0acaf8dc947a0631d4e6e1b520d8e311db976ec8ab329e70de4a4899dd4", "process/2026-07-13-documentation-site-projection.i18n.yaml": "sha256:3711a572c20d906bfe7d6ddfe6edfc2fbb2a6bb4a46c65ab98e0c68d248977fa", "process/2026-07-13-documentation-site-projection.md": "sha256:638e257222fa5d21d33b2da3450159edd6fbe60b98a405aef79a6df42dcdb12b", "process/2026-07-13-documentation-site-projection.zh.md": "sha256:d51155d83bbc95ba490b632498bbd57fbde021636537d6d8bb8768b4a33a1742", @@ -1465,12 +2098,21 @@ "process/2026-07-17-run-ci-examples-from-built-lib.i18n.yaml": "sha256:0a2e97095be592e2c603f23d9b3b8959c4556b5636fa2c6e4539be18cfcc7a6c", "process/2026-07-17-run-ci-examples-from-built-lib.md": "sha256:d7e8901c67e9850b05cef65132f193b8be566be40d0f54b28b11043871955263", "process/2026-07-17-run-ci-examples-from-built-lib.zh.md": "sha256:9bb720b65a0d5933b5804dfbe0104c831a26695687b7f1a72f4ed4cfb4bd4415", + "process/2026-07-19-remove-generated-agent-note-index.i18n.yaml": "sha256:7799c3c7cea8ba50ebcef10d2d18b8efc0ee5f3998bb8735f2ab71b206814332", + "process/2026-07-19-remove-generated-agent-note-index.md": "sha256:aa606ddb01f8aedc1d1bf01548cf28f01d941f83e8a89d0639bd326a233e9c70", + "process/2026-07-19-remove-generated-agent-note-index.zh.md": "sha256:abc0b441702d3b830869904985f1c5d38ddba710752d9bd3b8d3f48507c1c141", "process/2026-07-19-require-agent-notes-for-non-trivial-changes.i18n.yaml": "sha256:3f02660aa672f62e03f29c23878c1f4809be37994e96074e649556326a273956", "process/2026-07-19-require-agent-notes-for-non-trivial-changes.md": "sha256:b10a2b7fb24daacb1e0eb41c926686c5ce5ebc7afb6c3fccf872a0318c4f9dbd", "process/2026-07-19-require-agent-notes-for-non-trivial-changes.zh.md": "sha256:71b7d8aec3c6c75a17d41f910db405ad63cbea03fd4db74f40851adbd0ca67b3", + "process/2026-07-19-web-styling-system.i18n.yaml": "sha256:121bd48abc9a1b676969781a65f96a30e7bd60346a9722367119183e38a2f0bf", + "process/2026-07-19-web-styling-system.md": "sha256:e704d9a131222d5feb10fe5d4147c21828adec9c8d6f8b6308c75bac46a57eba", + "process/2026-07-19-web-styling-system.zh.md": "sha256:b72b08a9e592dda92108c18a7f6264fae95b666fe69ad080744ddd9d57f57d45", "process/2026-07-20-generated-cordis-core-api.i18n.yaml": "sha256:4405f216d4beefdbb33f521dc8126be4f8d3a664abfed3a4cdad04fef84ab0f9", "process/2026-07-20-generated-cordis-core-api.md": "sha256:eed4dde36984f584c211bd00fa88ce4aef9ee296a0814b46a8d759f953a90660", "process/2026-07-20-generated-cordis-core-api.zh.md": "sha256:74f4316abc78500097f1b25bac06b460cb20a7dd3d5f323da875cc0575148991", + "process/2026-07-20-gui-testing-system.i18n.yaml": "sha256:5d52062a38abc8c286c604000eb26d7fa678ac0643223c39028762d7e7f4fe36", + "process/2026-07-20-gui-testing-system.md": "sha256:729a52af7c2809c5b5615fb040f2753a214ecbba16005517d6bcdd02102c5ae3", + "process/2026-07-20-gui-testing-system.zh.md": "sha256:44687b48e81513ff83bf423a37bf5902b9fdc15169a1b7243c9d536959ccdfb4", "process/2026-07-21-doc-sync-through-gate-scheduler.i18n.yaml": "sha256:1dbe70d21dd510bec4f2f56ae39d0fdc7290d5648280ca0b67224cd23b3a02a8", "process/2026-07-21-doc-sync-through-gate-scheduler.md": "sha256:b3eb3f2395ad8f1b77f44aa3fdac79856e5d0b6b4873560d0cc87b63de2ea2e0", "process/2026-07-21-doc-sync-through-gate-scheduler.zh.md": "sha256:e262e02c3d08057b83b0d29281eadb92723f0fe5b3f54424528f47be137bc760", @@ -1546,6 +2188,9 @@ "process/2026-07-31-installer-adopts-existing-checkout.i18n.yaml": "sha256:e7d072856cd3df3b717d94647be4ea05db087b114df4b11d68a171677b94c970", "process/2026-07-31-installer-adopts-existing-checkout.md": "sha256:d97e39d07bde30d534417a406fc6c56ee6765dbc7b671888d17ef2cac9a7c6dc", "process/2026-07-31-installer-adopts-existing-checkout.zh.md": "sha256:ab445493c1aacf3f8dc091bdbd765ad56c551ae613e0d8156610f0c4614a7431", + "process/2026-08-03-package-anchored-subsystem-pages.i18n.yaml": "sha256:234f854f218ef169ce13cb73d9769ec4fab6be9014e4e15c8808fd61ba486968", + "process/2026-08-03-package-anchored-subsystem-pages.md": "sha256:0acc25292c75c0ca6e09e15cdc8da67c2e2807dee65151c46b9f98240113b5d6", + "process/2026-08-03-package-anchored-subsystem-pages.zh.md": "sha256:b6142325cd3c3fd4b9c199d1e6583db37df6547bb2f8cd3406e53bc92ea3bde9", "process/2026-08-04-forward-only-pr-issue-status.i18n.yaml": "sha256:af23e203a66a95674154899410e2f420d1d0685dbf856c24cfccdaa547a17925", "process/2026-08-04-forward-only-pr-issue-status.md": "sha256:2d31077da47d95ab3ddf64d5efc6b1b8fb7c7709d39aca4a825ef9e9d382d501", "process/2026-08-04-forward-only-pr-issue-status.zh.md": "sha256:b61f865b7a8a0ac901250a3edbb92ea73177067c4c25448c7088925c2caeccd7", @@ -1564,6 +2209,9 @@ "process/2026-08-08-automatic-translation-pairing-merges.i18n.yaml": "sha256:5398ef0c48258d3f3a9881e2b34fc4e2086a0b8084b8d7100798dbca6cc39887", "process/2026-08-08-automatic-translation-pairing-merges.md": "sha256:fb1f3df3246151da920c14fdf195b0cb3bf595a2eed639c84baf70e3f56d36ce", "process/2026-08-08-automatic-translation-pairing-merges.zh.md": "sha256:9ce7ff6f511ce973637f001b119ce323a5efe0be57cc11d12691aaa36199a8b8", + "process/2026-08-08-browser-gif-evidence-chain.i18n.yaml": "sha256:9d60bc9bf1bd432fcd0bd9d237f7277dd8ab275024a22574eb7f2b8a5dc4255e", + "process/2026-08-08-browser-gif-evidence-chain.md": "sha256:fc6fe17019c2a1d4709282ac8a52daecd779a8f048af9143477fde0c975ae8ef", + "process/2026-08-08-browser-gif-evidence-chain.zh.md": "sha256:d5407676dbc15e47ca3aaac87fc0b85c76bfef2e290bb931629c82259e3aae66", "process/2026-08-08-lightweight-routine-documentation-translation.i18n.yaml": "sha256:f3b44e6148941de9840ef54be60e60ed6ec32ee04b42a1a472e38838b6aa7b14", "process/2026-08-08-lightweight-routine-documentation-translation.md": "sha256:264fe2ee2338053a11fe0f0d5ccf12772897fe9fd4f4a7e8a1d6ba226f853e14", "process/2026-08-08-lightweight-routine-documentation-translation.zh.md": "sha256:3d309e2fc34a6a99bbce4891c32d681e0a23b233791b29a550884f3e753d593c", @@ -1573,6 +2221,12 @@ "process/2026-08-09-chinese-contract-terminology.i18n.yaml": "sha256:25cc7d0b0bb1947931858c0b9bec7d0adb3af247d276da8c8fb8e052b632b1d8", "process/2026-08-09-chinese-contract-terminology.md": "sha256:e32145c8f467d5a43eb93a16af24d4dd45bff84acf682d768b9f49eb347efb15", "process/2026-08-09-chinese-contract-terminology.zh.md": "sha256:12efa9c57002d71745373e9afb2f1bd047888e8b45df6b115719b77bfeaa2dd2", + "process/2026-08-09-committed-artifact-citations.i18n.yaml": "sha256:006f514e9190a3c9db7b8a26bf2166f5606315480910fc0195674f4adc6213ab", + "process/2026-08-09-committed-artifact-citations.md": "sha256:629fc78ac4759a4564f0a8cb64f2a9763903831c83d7b92fa358c0ddbc0b942c", + "process/2026-08-09-committed-artifact-citations.zh.md": "sha256:e73d575e08e998e0ff36f56412363cd8ad8f6b51cf36cb550ef3f5c3da00c10e", + "process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.i18n.yaml": "sha256:1da77ff03a2d70467756301f00976eb861067623a3b81462f5b545074419ea0f", + "process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.md": "sha256:fcafa32f6f4e0efc76ca700e3bd488422e350d98f6cee7c7309b39fbf33bac7c", + "process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.zh.md": "sha256:b86d111e4ad2768920089f4d638cc77ccd584182ea1a67a3f412ea83e6c1ae7f", "process/2026-08-09-md-fragment-anchor-gate.i18n.yaml": "sha256:1fed8e5c83099d128819afcc1f80a3727f0fb69ad939865b21c18c27a7db31d3", "process/2026-08-09-md-fragment-anchor-gate.md": "sha256:60b887fa78d6c0e6176cd906b8b10695a230ae8c5286a93b6f5c7048f3770874", "process/2026-08-09-md-fragment-anchor-gate.zh.md": "sha256:8cb7c156697cc1d3018b20ebc7477479cee6ce51368297fef394db572fbe7e09", @@ -1600,9 +2254,15 @@ "process/2026-08-17-readme-assets-on-cdn.i18n.yaml": "sha256:6127ebccb5ad673f539b6043bd12018182de5eda1ddcf9701e8b3cf8fdc75da4", "process/2026-08-17-readme-assets-on-cdn.md": "sha256:c1c7a47f6eda815e13a497b15ce4226e2e021202f1c9b61c2b7330c5ede9b1bb", "process/2026-08-17-readme-assets-on-cdn.zh.md": "sha256:e55d6d236076755ddfd79cb03d3942b8a083c29d586bf04f1344a6a925c02d88", + "process/2026-08-18-in-job-partitioned-coverage.i18n.yaml": "sha256:30ec278b2e07e8926ad1cc1decdccc2dd86f4be24fe287dd4fbfc371730389e9", + "process/2026-08-18-in-job-partitioned-coverage.md": "sha256:c4926b0f7fcda67af0a96a012525f8dab3778d5893df10a71f3d403b8436c83f", + "process/2026-08-18-in-job-partitioned-coverage.zh.md": "sha256:c1f2fe9dbd4f0ef709a726ae9ae9a039af45923e44e660f00b82570aa87627ff", "process/2026-08-18-localized-bilingual-links.i18n.yaml": "sha256:ae4e71d3893050019de59ab0499e500acc0af59a9a1546efe05cbb77e1a00784", "process/2026-08-18-localized-bilingual-links.md": "sha256:de8afbdc1aa64b51e4df8332b52e87d1622fe3dadb1a5b1cb33b4fd3713eb43a", "process/2026-08-18-localized-bilingual-links.zh.md": "sha256:89eb74665d5a38a87209dfc172696cb530f6152b2511c9cee675f3c649514575", + "process/2026-08-19-remove-knip.i18n.yaml": "sha256:15c9a9686ea225f4e825b79fb1d1687fa47076e8d08e8e3712a15b8ca745b33e", + "process/2026-08-19-remove-knip.md": "sha256:4aaf058ee75062ff9894381cf6af45386dac42b0425141cc840ccf1a0aa54e66", + "process/2026-08-19-remove-knip.zh.md": "sha256:8d0ecefb1876f3a3555b70958f531284c604fc8bcb9d6df4b045cfccee4b94fe", "process/2026-08-20-doc-site-raw-markdown-twins.i18n.yaml": "sha256:de18336460253fa8c3f0729a8961b229c039692aac3f4ec3922ea8f0fb97c7a7", "process/2026-08-20-doc-site-raw-markdown-twins.md": "sha256:a630777a349b1af4a6006aca086ba540ea8613522c3c211b6145c88945303457", "process/2026-08-20-doc-site-raw-markdown-twins.zh.md": "sha256:90b5c927dec2238e06daa03b45eecbb8a10c50288c99816718aa0b41f8bf9ecb", @@ -1618,6 +2278,9 @@ "process/2026-08-27-gate-runner-fail-fast.i18n.yaml": "sha256:b6003a8a7232ae05d4cc5a24d4f93274f6b05e81dd1cdb1b59767e194aeb2897", "process/2026-08-27-gate-runner-fail-fast.md": "sha256:c0445303d6bcedef055c7b87c513c1c81d8ae151a18462f40d7293be928c083c", "process/2026-08-27-gate-runner-fail-fast.zh.md": "sha256:633e8698d7f0aabee210da2d0b6a06da857a60a8bab05943ae6bb993ba6e96cf", + "process/2026-08-28-ci-node-compile-cache-data-disk.i18n.yaml": "sha256:019b36c00081036e64482b6628c1c5f8fae3b09a133edc4e6e1426e62f2c05d7", + "process/2026-08-28-ci-node-compile-cache-data-disk.md": "sha256:37cba5edef71ed81eb28ee927ebc5b052fef69e81812bad359682017f9cddfd2", + "process/2026-08-28-ci-node-compile-cache-data-disk.zh.md": "sha256:a111923c3ec4891ab815245b919dacf16fb58e7f65d792221ed714e5d1974fe9", "process/2026-08-28-test-temp-dir-self-cleanup.i18n.yaml": "sha256:b801b7be8503f620b78e6231fa756eb73bd7ba9706991b831b7ae6e23b093cdf", "process/2026-08-28-test-temp-dir-self-cleanup.md": "sha256:66e62abf171f1393f0b4cdf4c1d932f6bae0ca660d0948d780e355bb4c1bfe87", "process/2026-08-28-test-temp-dir-self-cleanup.zh.md": "sha256:c6f96a3f429196e96ac98722b42d4f0a77840bc36c9694773bb57fdea7d765ac", @@ -1633,15 +2296,96 @@ "process/2026-08-31-windows-coverage-flaky-test-budgets.i18n.yaml": "sha256:9f79d6164ea4100e5dda7f5fd301ec190ec9f601b4f50f713a6a34055e4f3be0", "process/2026-08-31-windows-coverage-flaky-test-budgets.md": "sha256:f08e98e002781b8b45af0b16c375aabc8ea66195733b4552a3586f9029e6210c", "process/2026-08-31-windows-coverage-flaky-test-budgets.zh.md": "sha256:784d200d253ef9db7559d5d1a444f6b05a798ec9ed66e518b973b24084606f3b", + "process/2026-09-02-project-local-issue-planning-fields.i18n.yaml": "sha256:34160f28bcf28a361a9f4f0b4b6899a3406182519fd672790a0fb511fd6f371b", + "process/2026-09-02-project-local-issue-planning-fields.md": "sha256:04adfabce5e6fa76dd57caa3efa5ad4c2f3d0fa7ba3a29c7d1ef11e3b34b0d18", + "process/2026-09-02-project-local-issue-planning-fields.zh.md": "sha256:6ab779ea76cfb5cf627bcf9a3a683114d502421657c32a98626d8cb3a8b487a9", + "process/2026-09-03-semantic-issue-templates-and-policy.i18n.yaml": "sha256:dce48ecf4976e4a97bd7be52a372db4b805610036cc86342c6e00610c9d9f854", + "process/2026-09-03-semantic-issue-templates-and-policy.md": "sha256:4ed1e2ea971b1d9ce17dc5cafafd5bc05b0eafa9fc3a42bd5e64d8d78816271c", + "process/2026-09-03-semantic-issue-templates-and-policy.zh.md": "sha256:a32d39ab4f67feb158dd47c7ea41b45c1b3fa70ec8120fc021fe9426c3f7715f", "process/2026-09-03-workspace-version-coherence-gate.i18n.yaml": "sha256:ac442dee172d396395b8516d6d38c4fcedbc855d735c86c378aec5c1098ecd8d", "process/2026-09-03-workspace-version-coherence-gate.md": "sha256:37b63a78506a8741eb04826dc1eea7e3a64c19fd4494c2d7754054a5602d308b", "process/2026-09-03-workspace-version-coherence-gate.zh.md": "sha256:cfa2c8fe6cf1d4665121a987861b70a91b5b41eb99e7ed192c85760a916fddf6", + "process/2026-09-06-evidence-driven-performance-skill.i18n.yaml": "sha256:07f1f47ddb8d3be3a1722ab557df57c06dff3e8880369cb5a9f35071813f7cb3", + "process/2026-09-06-evidence-driven-performance-skill.md": "sha256:a9cf80ed7eef6522238ae95bc30fb53ff99f6f36d530219da28a57a0cc35e51f", + "process/2026-09-06-evidence-driven-performance-skill.zh.md": "sha256:a29f666ecabfed02db86b1185cd7cedc30b85bd09a35124cb30425e5d1d3af45", + "process/2026-09-06-master-only-platform-ci.i18n.yaml": "sha256:fd1c43f07afae4db3da65fed5d706a5914b11215ed5a786179c65ea29449f158", + "process/2026-09-06-master-only-platform-ci.md": "sha256:dab44d4e1f8f3ada17696eee51d20b7ff2a175e815f02aebc1ed889e9c6aa5f5", + "process/2026-09-06-master-only-platform-ci.zh.md": "sha256:82756ff15a7ed421ec12f832afdffa25791a68fece55054e75c4e813e8a734fc", + "process/2026-09-06-node-compatibility-selfhosted.i18n.yaml": "sha256:ee65edeb6f9894168b715eebf2081e94e76d0043bc49dd0172fd38bb3618eb6a", + "process/2026-09-06-node-compatibility-selfhosted.md": "sha256:999df24ef381dc1787d86333a42c1ed067b8b012c5e6828ab2382f8289283c23", + "process/2026-09-06-node-compatibility-selfhosted.zh.md": "sha256:d24b7169aab5cb895086dfee6bfb4cd5520c33f93007ae59418b56376de9e78f", + "process/2026-09-06-preview-hosted-runner-sizing.i18n.yaml": "sha256:f14fdf81c5526d304a2aae4e6697e47ebf59b206cd7ac51739d6ecbc1ff776ed", + "process/2026-09-06-preview-hosted-runner-sizing.md": "sha256:022c99e4bbfd4c7dc4a1571c4ab496f7247f40a2af01c203c174346ee52b84cb", + "process/2026-09-06-preview-hosted-runner-sizing.zh.md": "sha256:cd9fb42b9427be757de9e142f44b7ba34993ccba3869dd6482995b78c12f7bdc", + "process/2026-09-06-release-rehearsal-selfhosted.i18n.yaml": "sha256:7f70f15f3338f4576e30346606e87d63ce921a6d9ee14f5f6344cc0c4b2aa63d", + "process/2026-09-06-release-rehearsal-selfhosted.md": "sha256:285963db1990a4efff5b172dcc3cabb85fb23b115ba93172dddb6ef410b1d414", + "process/2026-09-06-release-rehearsal-selfhosted.zh.md": "sha256:99b970010871d5d8d93811c48f8d9f2a0f3bd188b79ab0443eba54b43606b501", + "process/2026-09-07-selective-issue-policy-evaluation.i18n.yaml": "sha256:26a439d7094eedfc8a96645986fa7de744794eb59edd6180007dbc94709f5bde", + "process/2026-09-07-selective-issue-policy-evaluation.md": "sha256:85e133a762934b569b3a0688876998b7e8aa16ce94766be7405cdd5afffd95bd", + "process/2026-09-07-selective-issue-policy-evaluation.zh.md": "sha256:1856ad51653d78d96e53589b6a7cad9ab8c58327e07a3e501d2d1d9ab13e9978", + "process/2026-09-08-browser-third-party-build-inputs.i18n.yaml": "sha256:d524e9f1ebada68a7f21e06cd3150ed12cd8cc60ab57c523971b91bb693b4e81", + "process/2026-09-08-browser-third-party-build-inputs.md": "sha256:6f93b90da079c3074b0f6211c18b8ff6b6a11f570fabe4f35295730ddbcd75fb", + "process/2026-09-08-browser-third-party-build-inputs.zh.md": "sha256:6183487cde6f19fcd119f89cb99a30f9ad915899e75c61f7690d716bec9a4ac4", + "process/2026-09-08-package-index-link-discovery.i18n.yaml": "sha256:7aecd400985dbf80d1bcd9d189de9862e804ef46b0aad028b72a4aa8b83d37ae", + "process/2026-09-08-package-index-link-discovery.md": "sha256:9fc9711b4482c973488b09666ea71be39c0c6ee2f5972a97cfdaf12141d4c973", + "process/2026-09-08-package-index-link-discovery.zh.md": "sha256:bd2d989497eefbe13a4b4f5414fec27b0d5dfb7b8d37c96e4026514eac4d03c0", + "process/2026-09-08-playwright-video-gif.i18n.yaml": "sha256:cdd39beaab65698324443c2b7b3c8e1612db045b5b8acecfc1803f9ab9075c0c", + "process/2026-09-08-playwright-video-gif.md": "sha256:529e0d83e8c63d35ac9c67bc98199ed93de85e665edaf55643a34011b3b0e7d9", + "process/2026-09-08-playwright-video-gif.zh.md": "sha256:77cb1728d7888c8ba234267eca43309a50e1ebac1bd0656753951a3eab9d63b1", + "process/2026-09-09-blocked-weighted-approvals-remain-pending.i18n.yaml": "sha256:2d50494e8d4a4ccf16e71d103b2746d888abb69105679e5a1898e5a3f925d255", + "process/2026-09-09-blocked-weighted-approvals-remain-pending.md": "sha256:e378410391541f5f6167bc7640fd8a50960cb684f44c19cac15568551fc59dd7", + "process/2026-09-09-blocked-weighted-approvals-remain-pending.zh.md": "sha256:7290ce4a0466901c036a752c67c709430549f09beebbb597a74bfdb39b95642e", + "process/2026-09-09-cancel-superseded-ci.i18n.yaml": "sha256:ecde5514794a920182e1d67326ea31af9142d21f7926db4a75026ac2d6f67d40", + "process/2026-09-09-cancel-superseded-ci.md": "sha256:18e5b6eb20474cb595ebf2798fd643a639e008cccd25dfcdf1dc57d84d5e21df", + "process/2026-09-09-cancel-superseded-ci.zh.md": "sha256:e6517e1bd2f4868c58d6092f96bfc886c3b343617c1410db6e68135fae765954", + "process/2026-09-10-approval-review-workflow-identity.i18n.yaml": "sha256:5b8d34b8c89291513b279684320c230ce248c0c215aaece954fa0d43b9b28a2b", + "process/2026-09-10-approval-review-workflow-identity.md": "sha256:92c7ca27186df04807405a252ffd1719329ff00ea5efab5a278e018f80daf172", + "process/2026-09-10-approval-review-workflow-identity.zh.md": "sha256:4a14f2af256af5b0b7538e94f4955c27b50b4275003da4ca3efe9d328302d855", "process/2026-09-11-independent-libreoffice-package.i18n.yaml": "sha256:e8d2fe75e05ac53438513a7c51dab6510bcecf644019391ee6650e73961c0f8d", "process/2026-09-11-independent-libreoffice-package.md": "sha256:1292b409b7b4cbc4420868de5e3b7417b3c855889023ccfd9a61d824bf3019d8", "process/2026-09-11-independent-libreoffice-package.zh.md": "sha256:384783da1614c7e2ea84ea513013af6b20e9d4545a03cf7fa068415078126932", + "process/2026-09-11-production-blame-approval-weight.i18n.yaml": "sha256:2cac8dc664ce516add33f440a523a92e15e606ebf91e702bad5540bc201351c2", + "process/2026-09-11-production-blame-approval-weight.md": "sha256:4686461419672280e26f6a977ecd37a3f11427e8da480637cb88b08313444361", + "process/2026-09-11-production-blame-approval-weight.zh.md": "sha256:5508910fa53e9498b5e71225ef7125adcaafa8d03656d467982c011fa036a554", + "process/2026-09-12-experimental-publication-denylist.i18n.yaml": "sha256:f73c3b09b33222a83631eac7097995e9aa59abb81395618d569adf58336ef6cf", + "process/2026-09-12-experimental-publication-denylist.md": "sha256:eff60a29cb52c0b8d351c47daac870acd6961152be0bdb72e1fa181401cbb482", + "process/2026-09-12-experimental-publication-denylist.zh.md": "sha256:c9ba62885c62ad921ae4c9441d7bcfe145d4b277d89919152c792a3b3df4e5f6", + "process/2026-09-12-maintained-repository-references.i18n.yaml": "sha256:c7d07e9aa14dd326622a3b1db1c14bf2f5c0aabc21177311377fc28765269840", + "process/2026-09-12-maintained-repository-references.md": "sha256:c6d8c0d0a363dfdcabc9686a602f6474c5c90bba6a794640b68cdd05fca3f84b", + "process/2026-09-12-maintained-repository-references.zh.md": "sha256:a114db858aca836b26cd534bafc7866df490f32dcce54019cb513c7f246b058a", + "process/2026-09-12-publish-all-experimental-packages.i18n.yaml": "sha256:1dbf64b7f1581162327681c2562de5913519f8790e27e6502fb365e3617522b3", + "process/2026-09-12-publish-all-experimental-packages.md": "sha256:e092adab7cd930b2122a7b3e6d00a1229e2895c5ca3aacfdce0ca8658d7e5efc", + "process/2026-09-12-publish-all-experimental-packages.zh.md": "sha256:11dcf6542a10ec0742943789ccdb135689e5bc9c66dbee4b9b4caf71771e223f", + "process/2026-09-15-pr-approval-delegation.i18n.yaml": "sha256:1eb0d88236fbf3b396848b93f6c0120d0f7ca9eb56661f430e8dd9e87f22a31f", + "process/2026-09-15-pr-approval-delegation.md": "sha256:f46b4ed1091e39e1651cb937200c4c9bbe7301d9d2b0b80504cc93d0e3cb22c7", + "process/2026-09-15-pr-approval-delegation.zh.md": "sha256:cc5f151063f6d76adaca46d018c5872e5e470a214658e792c6b9a10628649de5", + "process/2026-09-16-author-approval-credit.i18n.yaml": "sha256:153b25430cb9f8d7ec4e78d0c5f3497c72357a613a03df2ad95af7e03cff59fd", + "process/2026-09-16-author-approval-credit.md": "sha256:b825eae5475a0d6538510c4c41bc02c32382e38375bfe03cfc465bda7a1ea66e", + "process/2026-09-16-author-approval-credit.zh.md": "sha256:e1b7ef5152751e6a9693bcf76a966f0c3df5ce8bb0abe1694a9314258458f153", + "process/2026-09-16-desktop-release-version-derivation.i18n.yaml": "sha256:d78b7e7249e7a9554f8fef2ef20fbeb0a362fec009c1f6f2cfb083f3e56c6d8c", + "process/2026-09-16-desktop-release-version-derivation.md": "sha256:4c96e733912cf8336d8d761c18dd5d82e38ad1064538e43c8b5a5ff0aa37c30f", + "process/2026-09-16-desktop-release-version-derivation.zh.md": "sha256:d1e5c4396e4c1333cbd9dbaf9a515ecb78fa20750641b94f92f96d8a2988c3a2", + "process/2026-09-19-evidence-led-simplification-surveys.i18n.yaml": "sha256:d0df5a9d65ea515bf760da995f1287aff7d7eb73fd78651f05541d8465716f94", + "process/2026-09-19-evidence-led-simplification-surveys.md": "sha256:454486b67608f423e61745ec421db49b885f0911423cdb741078b53ba6341ec8", + "process/2026-09-19-evidence-led-simplification-surveys.zh.md": "sha256:b246b894c71d1e18f5c749354400868ddd302b5f47a6395067c951bb9a12eda6", + "process/2026-09-21-desktop-build-version-as-input.i18n.yaml": "sha256:99a9a228425c2ac6bdce1fa2b6bac51a29a1aa0a1339e20b35c08360ed75cd98", + "process/2026-09-21-desktop-build-version-as-input.md": "sha256:8b4640553a98d7b3192a55a676457e790cc73c9b5f88b31d8e1c94c4e10421db", + "process/2026-09-21-desktop-build-version-as-input.zh.md": "sha256:68c74765e736237e9651a8ecb1ae4a37958d1d63cdadbe7dc77aef9c698a1a58", + "process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.i18n.yaml": "sha256:ac8374e853140485dcb1f098d393a63a2b989999efe25598749ec3eb205fcdcd", + "process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.md": "sha256:7fdfb41c50ea88946c5bd00cf38ed2d0759095f74f3c4b4b5cbd347d975b6deb", + "process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.zh.md": "sha256:2cf9a9396ccbe7aa1b5c27923600053078d7ef30a06b5300dcc00b27b1a2a952", + "process/2026-09-22-workspace-release-ranges.i18n.yaml": "sha256:1bc6a5caa47c3b651d1504c0fab46450962bfd1346f8f28dc9e45a29301856a1", + "process/2026-09-22-workspace-release-ranges.md": "sha256:0a6726dc1436be81a1b60ac01ad3e2cccfbbdd7c4c0b29dc4b33255dbeb38dfb", + "process/2026-09-22-workspace-release-ranges.zh.md": "sha256:cba9386e83ccdee54306bb8693ecae8395f40a91f63e43dd89ef6276d7fa13e4", + "process/2026-09-23-section-keyed-translation-pairing-records.i18n.yaml": "sha256:ec07cef0e6b9628c81ae62ff772821b7dc659c07bd01a451a561b37a96f423e4", + "process/2026-09-23-section-keyed-translation-pairing-records.md": "sha256:990d5c3c0d3fbcf43327997ece13879119a1e36a9841f7797a8a2a675c932f57", + "process/2026-09-23-section-keyed-translation-pairing-records.zh.md": "sha256:befcb9915ff0020d1153d596ed85b0a09a7cac6541ec7af0ac93ab96dc62263f", "simplification/2026-06-19-drop-mutable-session-summary.i18n.yaml": "sha256:43fe5daadc1491f94a3e34595182cad1591f76b64e1f13b48811b80fd7e53b94", "simplification/2026-06-19-drop-mutable-session-summary.md": "sha256:01647a5a14aa4e195328d4d39c6d80eb0723739e5a543115314716b280a93560", "simplification/2026-06-19-drop-mutable-session-summary.zh.md": "sha256:22389e0c29158b1f7a5a43ed6073f8795bb87cf51c04cf83be055359cd65c9f5", + "simplification/2026-06-20-collapse-trace-only-session-events.i18n.yaml": "sha256:85493212298b580429b50c69e88acad8514ad192fbcbb41217d6b39811b9d4fb", + "simplification/2026-06-20-collapse-trace-only-session-events.md": "sha256:331381082aa03bd152de6c1ad9e9ed055cc862f13b8d51bf0f45005a6d87d64b", + "simplification/2026-06-20-collapse-trace-only-session-events.zh.md": "sha256:cb98a71e80e4d320edb2b946cedc8a0f8ea1b332ade9c5a1ad02047dd4e038f2", "simplification/2026-06-20-drop-unconsumed-llm-adapter-change-event.i18n.yaml": "sha256:ad3d1263cb0051b885173bf064de62065e2c646ccaae2d7250723da3b4eab90c", "simplification/2026-06-20-drop-unconsumed-llm-adapter-change-event.md": "sha256:8fb061d51c8c23b47d2367814bab3623c6d5b972f38d207a273caa9030b579bd", "simplification/2026-06-20-drop-unconsumed-llm-adapter-change-event.zh.md": "sha256:2ffeaca91f82844a5616d6dcce6b4af514bb8a7c46f78e47f668b204ac6edc04", @@ -1657,6 +2401,9 @@ "simplification/2026-06-20-remove-agent-boundary-mirror-events.i18n.yaml": "sha256:449d72fef793fba249462bcc61a87271c17b1c709ce6ac51dc0907e1cc72f4b5", "simplification/2026-06-20-remove-agent-boundary-mirror-events.md": "sha256:a0603180ce487894ffb7f27341b9aa7bd5ce7f0e02c7dc0dc3178ec6ec1423b3", "simplification/2026-06-20-remove-agent-boundary-mirror-events.zh.md": "sha256:c3a58df81e6f94a7a303c36e00a74c30896630a409f0d6bef9a2af6b79a5f435", + "simplification/2026-06-26-fsspec-style-fs-seam.i18n.yaml": "sha256:4c6328127093bf5594d8fd369bba0db1be960c4a6b3c2b55d37df9919123fa10", + "simplification/2026-06-26-fsspec-style-fs-seam.md": "sha256:641a854ba4c478ea853ea87fd50128c51088c93308c18efc063571ce338ed205", + "simplification/2026-06-26-fsspec-style-fs-seam.zh.md": "sha256:d0ed1bb865d4183223a8c3e085fe4a5e8c6df1e392dc83b79b89c74087c7d09d", "simplification/2026-07-02-remove-stream-chunk-mirror.i18n.yaml": "sha256:eef600eafd70a576b2ac16a74f5dd5010ee601376008a90be10f1da56d746cee", "simplification/2026-07-02-remove-stream-chunk-mirror.md": "sha256:0c22a896260c6eb8991cc8babd8172f7b6889fc41bb891d748f34650b3eee5ec", "simplification/2026-07-02-remove-stream-chunk-mirror.zh.md": "sha256:ae7a3c2450b16fdf2f8da9e1f83cd987bf387671ecc8ebb76d2e7541695e7ee1", @@ -1711,18 +2458,27 @@ "simplification/2026-07-20-retire-readline-front-door.i18n.yaml": "sha256:48b8573d325d280b65e7debde660140e7afdf1db793d4eb32c839c635121a965", "simplification/2026-07-20-retire-readline-front-door.md": "sha256:f632cd22fd81cc470992ff4e5f695a118a2aaed53748a860da7e9a78ca99ebbd", "simplification/2026-07-20-retire-readline-front-door.zh.md": "sha256:3612b25120a87f0e1c9d075c9e3c4b6a9449f38c8b219dd1aef506c6e6f92d98", + "simplification/2026-07-20-unwrap-injected-content-envelopes.i18n.yaml": "sha256:653654fb7b8453ac507defd923af0ce647bc653e1469f3e755adfd5f687f1620", + "simplification/2026-07-20-unwrap-injected-content-envelopes.md": "sha256:522c1e620c3c60a081c23951fda87065b36050fe442230eebcb907fe2ed20f1a", + "simplification/2026-07-20-unwrap-injected-content-envelopes.zh.md": "sha256:d3b9bd6afe99da7f946035708aeb1eea309a95b2aaffd464f3d1d65e5b97ff5e", "simplification/2026-07-21-tui-remove-cancel-command.i18n.yaml": "sha256:17ee6e9a3db867b85d8399879c40552a6771b5d7585f7b58e33601428a1309e3", "simplification/2026-07-21-tui-remove-cancel-command.md": "sha256:e90ad809b5ea241a653641f7331893347a1a0be7c677c99cbfc6bba8c907ab19", "simplification/2026-07-21-tui-remove-cancel-command.zh.md": "sha256:94d388753157eb498b9a8dbd9050dc07e5ee893e9b5a07f4c265b2e8e66f6338", "simplification/2026-07-21-tui-todo-write-opt-in.i18n.yaml": "sha256:633975e45444f179e5fcd258d3c4bce924975583505fa97f18cff21861a88ca2", "simplification/2026-07-21-tui-todo-write-opt-in.md": "sha256:7c4c0818f5cb5b1a506dabb71a56b7d79b811e4b912d492865f1404f4d1ece99", "simplification/2026-07-21-tui-todo-write-opt-in.zh.md": "sha256:2c121b8ea03182f7854e7d834b07967fdb6790af6a2a38c1d24bb0ca968496ba", + "simplification/2026-07-22-plan-specific-collaboration-state.i18n.yaml": "sha256:a6d42441fd22ce93593affbbd1b184639241d8a18d01a9c65e65c0e31b4df2d2", + "simplification/2026-07-22-plan-specific-collaboration-state.md": "sha256:a522f55b2d45ad726a3c9900ba9824089b53885ca655e17c405bde06875ab9f2", + "simplification/2026-07-22-plan-specific-collaboration-state.zh.md": "sha256:30e4e66fd8d3c01ad4fda6c2bb49361135915f053fdbd8965d09c4f230ab9965", "simplification/2026-07-22-tui-titles-from-session-title-service.i18n.yaml": "sha256:b02b34f76599eef44ef6cbacac36345716bed52eafe8f30e5300d654a93eecbb", "simplification/2026-07-22-tui-titles-from-session-title-service.md": "sha256:c84b34c2c4700f78e3060e64f49f16625bab002e8211dcd6fce431e7fd076392", "simplification/2026-07-22-tui-titles-from-session-title-service.zh.md": "sha256:99df66f452004df84efb215e3b58bf73e39af0538ddf038bbed4ac6b65c630ea", "simplification/2026-07-23-collapse-persistence-flush-state.i18n.yaml": "sha256:117b3c55ccb34b83334fa446042c044914953c541a7880183986888a44ac2049", "simplification/2026-07-23-collapse-persistence-flush-state.md": "sha256:f759dba2bb805ac2857cd9239bf4298776228b3413b52765fcf60831be438db7", "simplification/2026-07-23-collapse-persistence-flush-state.zh.md": "sha256:78dea969e20b7f8fa8d3fc70ba7015266ab38def7c8762d1c14f30130c6ac06f", + "simplification/2026-07-24-agent-loop-observable-state-machine.i18n.yaml": "sha256:4d2cdd1fd62c71bd617da06abef4802f44c49b38f2a571dedb5d4913f2980003", + "simplification/2026-07-24-agent-loop-observable-state-machine.md": "sha256:3b7bfcaffb9b29106f062075b641db566e4bd97467d9f00df37838891296399e", + "simplification/2026-07-24-agent-loop-observable-state-machine.zh.md": "sha256:b4e99f5672a78cf38eec406f6290d885b8895beb94450f50aededacabb55b929", "simplification/2026-07-26-consolidate-gate-scripts-on-existing-deps.i18n.yaml": "sha256:7acf002ea8c1533f052c7bfc0c4e3da013ecf43c5872866a3ee4a8c2691c5e33", "simplification/2026-07-26-consolidate-gate-scripts-on-existing-deps.md": "sha256:f18a913096b7defd2192c4bac888a33f68075c3662703a0e28a6146897d17777", "simplification/2026-07-26-consolidate-gate-scripts-on-existing-deps.zh.md": "sha256:ff48a37673c97059536fe5b61aff746133eac682145550badb049eb5c83b097c", @@ -1741,6 +2497,9 @@ "simplification/2026-07-27-intent-named-subagent-continuation-operations.i18n.yaml": "sha256:29460e03376a7c7f4f9c8f0db330ee29da0db2035e8218b3b6350e1797e43b3c", "simplification/2026-07-27-intent-named-subagent-continuation-operations.md": "sha256:234ec4c6deaf66b434b3dfdfd247b5aa68898fa1fb05faf9f9399fe055a7c8d7", "simplification/2026-07-27-intent-named-subagent-continuation-operations.zh.md": "sha256:dd1e8b92ba7d2990f7f43401bcebf21b8847bd9bb4422cf1722cbf285da6cb05", + "simplification/2026-07-27-request-error-retry-action.i18n.yaml": "sha256:2ec6e24c20c32396f79c75c5fa484b97ef9a77b06a20c0655fd26c4a1cf7e154", + "simplification/2026-07-27-request-error-retry-action.md": "sha256:353fc93ce3f37c191b73f1f6ec56225c1993e8e983af2934fd03050ff4f6d5cf", + "simplification/2026-07-27-request-error-retry-action.zh.md": "sha256:24e835ae54c60bc29eb58e25f491d485c12d396b1f20bd5e4dd5a852f966eef2", "simplification/2026-07-28-local-json-tree-renderer.i18n.yaml": "sha256:52903d45c69f0996f86cd45b9fe9ec6fe3912a0d27bbbf2f126c874ec6ef5710", "simplification/2026-07-28-local-json-tree-renderer.md": "sha256:86f90ba8e6c5963598f276e11a7dc3a621cba42ead5b2d48b8ead6bd1b9fbc47", "simplification/2026-07-28-local-json-tree-renderer.zh.md": "sha256:09f839200b46d328e36bff424db4493a3ce07e7a264941887359cb931874a223", @@ -1846,6 +2605,9 @@ "simplification/2026-08-27-persistence-export-and-pre-release-trims.i18n.yaml": "sha256:1c6779c70d8d327844d69390a449b0c4f0603364666b7d30c93cbeb01899d3ec", "simplification/2026-08-27-persistence-export-and-pre-release-trims.md": "sha256:715ecdf9be8eda840c8ad37e56569d91aeac8128a171cbc783aba898cea240fc", "simplification/2026-08-27-persistence-export-and-pre-release-trims.zh.md": "sha256:244a2225316ad54edbeaeef558cba8a01c68f6f366e22abd5688553c77b71629", + "simplification/2026-08-28-omit-unneeded-invariant-companions.i18n.yaml": "sha256:49a8f569a6b8b04596c846e6ef27b19d5a9a0e6f04bf0559580927966b0747a1", + "simplification/2026-08-28-omit-unneeded-invariant-companions.md": "sha256:d981d9b813f7b317c41cc636e44d6bf0cd79dd71971285db3843ef2f27be47a3", + "simplification/2026-08-28-omit-unneeded-invariant-companions.zh.md": "sha256:c6a18d0be3bf03fcd4febc33d863d3c993dea24e5e2e2b3a93fda4ba646eb5e7", "simplification/2026-08-28-remove-hero-input-glow.i18n.yaml": "sha256:68af9690c3463de8e658dbc14194edb438ebf75c8788bba740332d11b0420819", "simplification/2026-08-28-remove-hero-input-glow.md": "sha256:1d492977342fae8542c2781b0b3df8a95388ce97bedf9dc69db74868167b782c", "simplification/2026-08-28-remove-hero-input-glow.zh.md": "sha256:b5e52a51adddee66a7f738e0345203cc339f0aaf2dbdfd9ad7524592a300837c", @@ -1861,9 +2623,45 @@ "simplification/2026-09-01-ptc-omits-workflow-tool.i18n.yaml": "sha256:84318dde2d7955dae069138a3bb223002beeec859e536be9c42c51a9bbb333d3", "simplification/2026-09-01-ptc-omits-workflow-tool.md": "sha256:c5ba23ff9dfbba90d55e1585ad78e11151bb4370d3c5b1ad0414390f86d2bc7c", "simplification/2026-09-01-ptc-omits-workflow-tool.zh.md": "sha256:e06ed5bb82e5f5372546704e340dea6539b438c76363fa23a74d7c512f4acafc", + "simplification/2026-09-03-minimal-profiles-persistent-shell-only.i18n.yaml": "sha256:3dd8beb43c0e727df7f3d5da6bdbb0e0960b813e2833fbc3a8f31564c81c87a9", + "simplification/2026-09-03-minimal-profiles-persistent-shell-only.md": "sha256:a9d23a24f4c60c8576237cff24c0d99a28770fe5a66d464f88363fbdb4b9d9a1", + "simplification/2026-09-03-minimal-profiles-persistent-shell-only.zh.md": "sha256:cc69c1145bdcade61833006303b0ded6cd97bffef257f316d47fac88a9be8f4a", + "simplification/2026-09-05-base-default-file-editor.i18n.yaml": "sha256:d0611e9fec6722724369578398f2bae075a85054b9bdb93de0a6bd4c64eb2a2c", + "simplification/2026-09-05-base-default-file-editor.md": "sha256:cc0bafa6054912e39d4e34db29b19522988e0f1684fcb2eef88f03831bb2db44", + "simplification/2026-09-05-base-default-file-editor.zh.md": "sha256:7ddbb1671916d9fad4ce83c27f544825c413892976538432e99d73ea3a3d9c9e", + "simplification/2026-09-06-agent-request-freeze-evidence.i18n.yaml": "sha256:4c9da0968fe2f511c17338671d134e868a8dd750285d0e769555d82738ad13c3", + "simplification/2026-09-06-agent-request-freeze-evidence.md": "sha256:f3cf59f0a56fa94326841523d5a91e8089c1a64cc064eaa870f086c87a6d22d6", + "simplification/2026-09-06-agent-request-freeze-evidence.zh.md": "sha256:8b74a60a7431a1b22fbd0b98e203ca846ee4f1d7bbb753399595f6234acd9f62", + "simplification/2026-09-07-file-content-scan.i18n.yaml": "sha256:01a445e9134f90145af77eeadd9c5e35736dacd22a5d2862b208e0e916dada18", + "simplification/2026-09-07-file-content-scan.md": "sha256:2a465ba85647f4486df3383747ac88187f02ad7e577caf162620d71a49d12375", + "simplification/2026-09-07-file-content-scan.zh.md": "sha256:8a355f184ea428a5361cfb55faea6ec038e65e38b8cc653a9c9a65c589af3e9a", + "simplification/2026-09-08-web-subagent-catalog-projections.i18n.yaml": "sha256:0f4fa03a2dde71d8548639cefad6695794efb52ba1f7990046334d70946cca04", + "simplification/2026-09-08-web-subagent-catalog-projections.md": "sha256:816f072e6a7e1e1a363620a3cc49c27016d31e842873395eedf59fa67bcf237e", + "simplification/2026-09-08-web-subagent-catalog-projections.zh.md": "sha256:88c4efa930c7bab4b98c23395d0935c02ae5427171426694c5b5db808c927570", + "simplification/2026-09-10-derived-workspace-recency.i18n.yaml": "sha256:8b2a1c5b42cd10198a5af5dc1a8474800b42e889d4d9de36c420e7dbed9ee650", + "simplification/2026-09-10-derived-workspace-recency.md": "sha256:fa3d4c2ae4fa7ece5ab1d13e02f4c41a4a133c2046304dfb68e153de626dff0a", + "simplification/2026-09-10-derived-workspace-recency.zh.md": "sha256:11e5944c00c8fee4d69e724129fb701997dd3e6df3c9fae38b284a48de1ef71b", + "simplification/2026-09-12-ralph-off-in-shipped-defaults.i18n.yaml": "sha256:81b73d88887e00273c05ee6d029dd7462142d89451a95a2646c0928c6f694a2c", + "simplification/2026-09-12-ralph-off-in-shipped-defaults.md": "sha256:72d794787d401e3d25320265266a43d0dfa69d0a9026c3f53c2f94e5926bd5f3", + "simplification/2026-09-12-ralph-off-in-shipped-defaults.zh.md": "sha256:c19fb72cd4c47f9473e2097a19910a87c03ab907df576b57014f2079be7e8b19", + "simplification/2026-09-15-host-only-remote-input-validation.i18n.yaml": "sha256:17c0efede08c45997f20184f1991bac715cfae0c741affd1124344601b1d66b1", + "simplification/2026-09-15-host-only-remote-input-validation.md": "sha256:47d36719562b43ae2ba34166828bbbe2c0730a7c3e465645134b6e71d5965c46", + "simplification/2026-09-15-host-only-remote-input-validation.zh.md": "sha256:52dcb1f44afb802705976b98534c1640626f451dfae401852337a6c908652ac3", + "simplification/2026-09-15-model-agent-availability-and-team-targets.i18n.yaml": "sha256:fffea408a7ed18983af7f21fab3aeccf2a3d98d8e86c9dd2ac541fb112f8f0c2", + "simplification/2026-09-15-model-agent-availability-and-team-targets.md": "sha256:b37ec30fc0c1bcc25c2f7d40982ef69673c485958bf6cd97569532c173eab8e8", + "simplification/2026-09-15-model-agent-availability-and-team-targets.zh.md": "sha256:42cafa7987b5d0997e7c338128f9d881d8e83b9e06344bd304e2c261205f1a36", + "simplification/2026-09-16-subagent-catalog-membership-only.i18n.yaml": "sha256:ef33017bacb4011f17c2982c01f3cda4cd238fc7741a7a02bdbafb74cdabedd8", + "simplification/2026-09-16-subagent-catalog-membership-only.md": "sha256:281347ccd28f020f1d623074890b67bc42f02aea677997ae7de777db1cf68d4e", + "simplification/2026-09-16-subagent-catalog-membership-only.zh.md": "sha256:c52bd261a0cd2a483bf159501a362ca0b22a6cede93c16eae31dc8ff36efd638", + "simplification/2026-09-19-deepseek-messages-only.i18n.yaml": "sha256:7ffd708c5823c39cc9536178292e7e7fa57db5267bbc9acdda0a87e4953d5ba8", + "simplification/2026-09-19-deepseek-messages-only.md": "sha256:241861200ce73e02f77d182633d6ea10b1f29c696c81bff002680762db01d9b5", + "simplification/2026-09-19-deepseek-messages-only.zh.md": "sha256:311ef6f8f4cf60dae2a43ca94d772028b645631501fb3648aaeb406ba174991e", "testing/2026-06-11-property-based-testing.i18n.yaml": "sha256:9d378912101ad30203f1fcbcad23e0f5d6ec6f39e04a83f17f90887b5c5d761e", "testing/2026-06-11-property-based-testing.md": "sha256:cca3b6299784cff94965f21b6d59966109a0bb41fdc2f8cf56653fa6c417a20a", "testing/2026-06-11-property-based-testing.zh.md": "sha256:09f3d1e2defd2792f87fb0e9892fb7e1db006f3c75ea4581f97e9cde4ea98175", + "testing/2026-06-19-acp-snapshot-tests.i18n.yaml": "sha256:fb85e95356a1565bc5da52e07614f8dc0bc08d1c7f95429117ecd132351dad51", + "testing/2026-06-19-acp-snapshot-tests.md": "sha256:3bcd0bf4cba8151c4074349e70e35506369afeaa35c8ae9e83f2afc3840af028", + "testing/2026-06-19-acp-snapshot-tests.zh.md": "sha256:902b7b2cec815d66df395e20149ebceff430085bef303f3bbd52057dbc93bb9a", "testing/2026-06-20-remove-redundant-snapshot-log-expected-output.i18n.yaml": "sha256:4177012c0821a8c22499852ecdf096af56d7263cb91c5d9d1bcd552cc26a3e00", "testing/2026-06-20-remove-redundant-snapshot-log-expected-output.md": "sha256:45234e7cc04b6010c6141f8d5924c04547300098f96262d423c50108e7c7011a", "testing/2026-06-20-remove-redundant-snapshot-log-expected-output.zh.md": "sha256:15e5a4ad3dee0bb711480cabe45cd97ec37bbdba19c2c2b47d1e9c203b07a48b", @@ -1903,6 +2701,9 @@ "testing/2026-07-30-vitest-jsdom-webstorage-ownership.i18n.yaml": "sha256:3752fb76874000ae95da9c404e9f5ec47332c92bc46bce7b42ab92997b5084c1", "testing/2026-07-30-vitest-jsdom-webstorage-ownership.md": "sha256:c3f0da0213a3024cd15bc31952a7e13573d18eb4edf0905e3c63b1af5fd2f7ba", "testing/2026-07-30-vitest-jsdom-webstorage-ownership.zh.md": "sha256:08ea14581f7485f4af7e945afbd5c2a2a52dafff7be723849bcbd1c91cf9160d", + "testing/2026-07-30-web-browser-snapshot-ci-gate.i18n.yaml": "sha256:f1278e1c9934f036f6a31401d236cff77c4ca2844165e8b646709b50393259b4", + "testing/2026-07-30-web-browser-snapshot-ci-gate.md": "sha256:8df498a8c9b00c5e1d13b56b73e624159c6d7c6b71aaaad9555b1d00d84f5e63", + "testing/2026-07-30-web-browser-snapshot-ci-gate.zh.md": "sha256:23bedca39c42437152531f0fbc6eb2a5f1506789fdb6a51132216ad72651741b", "testing/2026-08-12-required-python-runtime-pull-request-ci.i18n.yaml": "sha256:741e7e58e5e8a9c82d901c4a16a70cea9bd256eac0e94179b5a24a231bb9fe1f", "testing/2026-08-12-required-python-runtime-pull-request-ci.md": "sha256:1f1273d7a550667533e29c76efd148aebf57581a91729c877b44a5e43a52d9ad", "testing/2026-08-12-required-python-runtime-pull-request-ci.zh.md": "sha256:6b9bf126c6b83d9b21e135d38df677c0d5623168b4353c6ddb706f76762c2193", @@ -1920,6 +2721,57 @@ "testing/2026-08-28-ci-test-reliability-skill.zh.md": "sha256:f58bc370c9a1bf2fe2badd5bf10bd1a8c1012133bb506206113d5c12cb60f93a", "testing/2026-08-29-windows-lane-hook-and-lefthook-budget.i18n.yaml": "sha256:d6bd5a532f5ed27678291659c5a9424a854e97da6c8bdddba16e4ac4764b9762", "testing/2026-08-29-windows-lane-hook-and-lefthook-budget.md": "sha256:18a9c2d55ddf166ea3ae854e48cdbd69a9851ab6d68da71c650085ff9611753a", - "testing/2026-08-29-windows-lane-hook-and-lefthook-budget.zh.md": "sha256:571322ae3764969df7bfca845ab5fbec2b577762c53701333db7f6c10489cb9b" + "testing/2026-08-29-windows-lane-hook-and-lefthook-budget.zh.md": "sha256:571322ae3764969df7bfca845ab5fbec2b577762c53701333db7f6c10489cb9b", + "testing/2026-09-06-client-assembly-test-line.i18n.yaml": "sha256:fa2a9de4fd908f01b4c2aca4bdf3b148e3cfffcf386744613744968a1720cfea", + "testing/2026-09-06-client-assembly-test-line.md": "sha256:b3647621620618bd837bb069a764e3626c530b9584ebfb526534e916ef63283a", + "testing/2026-09-06-client-assembly-test-line.zh.md": "sha256:0c3cd219f647551aad62a79905ec7ab33c39c2f3edb943b76d1cb2c413c23a64", + "testing/2026-09-06-pr-ci-runner-temporary-storage.i18n.yaml": "sha256:6427c77639c2a88a4308bd1b23c468dc28f916fe9ac1672ee55b15b5e0ef9d24", + "testing/2026-09-06-pr-ci-runner-temporary-storage.md": "sha256:1c2cf0a50f8f5bb38be13720265de63758185faac0a8a2ea706c7821487c5468", + "testing/2026-09-06-pr-ci-runner-temporary-storage.zh.md": "sha256:348e6924131340b33d9b6d4dbd0fe6b497dae378b3139cb65280521d29996e19", + "testing/2026-09-06-python-runtime-install-retry.i18n.yaml": "sha256:b1a73895989e776c9481ca5fa7c8bacd2bf86c3ea0ee97ca049918d2c6f816f5", + "testing/2026-09-06-python-runtime-install-retry.md": "sha256:45bb787803e3b3177f6c2a21db5d2ba8558af134239a0fc05ccda52f64401f5b", + "testing/2026-09-06-python-runtime-install-retry.zh.md": "sha256:87565daf17023e140665ee015ab28a0961f0ad996784123d3d60b69e9511644a", + "testing/2026-09-06-standard-hosted-benchmark-runner.i18n.yaml": "sha256:432a39d73af43f4a4e4cf02223550b615076e357b74c16987cb7ed72512940c7", + "testing/2026-09-06-standard-hosted-benchmark-runner.md": "sha256:e4afa7982f84acde3caf014d823bd33805f69b9175c0a56fa8b4202141895dbd", + "testing/2026-09-06-standard-hosted-benchmark-runner.zh.md": "sha256:8ebbc614514a652ac0336a0be0136143f9a0aadde363b96375c09a7681a8aebd", + "testing/2026-09-07-publint-test-subprocess-lifetime.i18n.yaml": "sha256:37a6291a1c4f0a98a2c9485ba79f8524abd7772ecbd05f7f015e7d44b8d5fc4a", + "testing/2026-09-07-publint-test-subprocess-lifetime.md": "sha256:bb22e153c41b88dcf2f521ef783e46a809b911ee062eccc27066243f802cd52b", + "testing/2026-09-07-publint-test-subprocess-lifetime.zh.md": "sha256:81bd4f4f59659f2cf2dab35dcfdf2fd64931856c5597b59a864f8f36ea6e39e6", + "testing/2026-09-07-pwsh-ci-observable-completion.i18n.yaml": "sha256:ee13efb1c71bdb08d05f1c71b475ec4c651cbedc09485dfc5bff4b00d3d27240", + "testing/2026-09-07-pwsh-ci-observable-completion.md": "sha256:31655b54c5c2e5cddd09261b9b7c688a20a7b730b468356663b8cefe3d08751d", + "testing/2026-09-07-pwsh-ci-observable-completion.zh.md": "sha256:9a6e7ebf26e5af6eb84e66b1cd1b6767ff0e69c395a876d55ee9b14815f22729", + "testing/2026-09-07-subagent-teardown-test-budgets.i18n.yaml": "sha256:ef61dc888e2570bcaf982f6cb486b7ec5524ef0bd01f0c82182ed880672ef975", + "testing/2026-09-07-subagent-teardown-test-budgets.md": "sha256:f9ebe270c6c1564af433347d9e53d428803ab3adeace6ef614d1fc5836cd0ac2", + "testing/2026-09-07-subagent-teardown-test-budgets.zh.md": "sha256:86bfeb957ee089f11f8649fae28176e33ecedcf9d6219e4470308e62de2b9b22", + "testing/2026-09-08-ci-completion-observations.i18n.yaml": "sha256:4d1dfb50ab7e56131438def163f81d34333f59dcc50dc66a95628095cd051dee", + "testing/2026-09-08-ci-completion-observations.md": "sha256:d149c2a4a2f42ba8bf386cbebae87091b376b6e89d9b1aa9efee596e5f771de6", + "testing/2026-09-08-ci-completion-observations.zh.md": "sha256:09bb88a97662d42a84c3242edb56588cd4625d918d438de8198ba672029da353", + "testing/2026-09-08-ci-readiness-and-completion.i18n.yaml": "sha256:785303ca27d14ff7f0b079e80b81b8b464c2fc2346435fa2e2b4d227b74cdb95", + "testing/2026-09-08-ci-readiness-and-completion.md": "sha256:e3c45bf06214ddebc74b3e0a1b4244de228759fc2a4a3266f0cef6e6ea412702", + "testing/2026-09-08-ci-readiness-and-completion.zh.md": "sha256:a589cfcdc6320b2a712c90735b0fe0b5644eb21d7f4de35ba070479d24792764", + "testing/2026-09-09-user-patch-hmr-test-delivery.i18n.yaml": "sha256:6c064651423fe9bff6887b28af79aa6d48101fd939c74f4cfcf4e8c11c8db6ab", + "testing/2026-09-09-user-patch-hmr-test-delivery.md": "sha256:8ac7b8913c1c2ccaab749c06c73cd272cf3feacb5a9c1c6c10345bcfbe249b4e", + "testing/2026-09-09-user-patch-hmr-test-delivery.zh.md": "sha256:c71fbb603ef2c58eed1246f9cb094739099f212bc5945311a218be9b6eaf1c9a", + "testing/2026-09-10-hosted-image-test-assumptions.i18n.yaml": "sha256:f9630a0dc879ecd00cd7921e6517582ca8c37092569d0f65913a4dfb1890d0f2", + "testing/2026-09-10-hosted-image-test-assumptions.md": "sha256:6d9b719070257f0d8e9bef285a08f85a3f65fe4d48af4ef63637542c81346457", + "testing/2026-09-10-hosted-image-test-assumptions.zh.md": "sha256:4565cdd322c6028d47c8ac2c824fb022190f50a17bb75d89a641c1802f8cc690", + "testing/2026-09-12-connection-and-compaction-fixture-preconditions.i18n.yaml": "sha256:1740bca0aafb2f91dad66b870917a78ec8d50243b20f21f872cc005229231b65", + "testing/2026-09-12-connection-and-compaction-fixture-preconditions.md": "sha256:959da865d7740bfde03dcc4a5a1bd67e80c7595807e035d6499af738a6efcde4", + "testing/2026-09-12-connection-and-compaction-fixture-preconditions.zh.md": "sha256:c00055c634f579ee80e910cc89de742ce1db90e43b407356f9fdc12a7ccab66d", + "testing/2026-09-26-web-conversation-clock-fixture-day.i18n.yaml": "sha256:1e57f76a30c07fd343ce22be7ea9454e5beb8cc3979b7709d2f55423b1c7d2c0", + "testing/2026-09-26-web-conversation-clock-fixture-day.md": "sha256:a918c35b1b4e69b766b02883218bd1280d161392c4ca2f359d45dbe1cbfcfce8", + "testing/2026-09-26-web-conversation-clock-fixture-day.zh.md": "sha256:910eff4bae8075dd576726ccb3bc7cfd1f8bb5a970c543e1b9c986494a09749f", + "testing/2026-09-27-oxlint-contract-spawn-case-budgets.i18n.yaml": "sha256:12091d19b21eed28f0a2e0730bc0bf3929aca320ad64d6b19cbeed2cfc0e8c91", + "testing/2026-09-27-oxlint-contract-spawn-case-budgets.md": "sha256:3a74c192392d1671b13c18092e3876952acc929cf60748873653ec62de255769", + "testing/2026-09-27-oxlint-contract-spawn-case-budgets.zh.md": "sha256:c38b92967d9237ff5bfe23b312964f022295b1e5aefe2425be1a1c564abea124", + "testing/2026-09-27-plugin-install-interceptor-lifetime.i18n.yaml": "sha256:2679fc6e54e1949aa07c952fdb174fad9d2c4ff61982dcb645b7e05898e22de2", + "testing/2026-09-27-plugin-install-interceptor-lifetime.md": "sha256:133fef1b85a5495522bb6b13d104ec41d4993a187d012b75f8eb61eec8baf05e", + "testing/2026-09-27-plugin-install-interceptor-lifetime.zh.md": "sha256:0e99eb1bcb50e2fb7eda6f155f3602c39130d1e4dc9d3b342fda1782d672cc4b", + "testing/2026-09-27-web-lane-assertions-name-their-input-state.i18n.yaml": "sha256:d59bfb871a6f0e3c07f59efb72c6ace251c44e065cceca913a77badb9cebb15d", + "testing/2026-09-27-web-lane-assertions-name-their-input-state.md": "sha256:5574f069f6e07652415840b4dbf3194a8f5efbb6d3e7111b32c451b29099543f", + "testing/2026-09-27-web-lane-assertions-name-their-input-state.zh.md": "sha256:44e6485e939cc854b3468a3ce1ba999dc4b15951606acbacea91593405e3e6c0", + "testing/2026-09-28-detail-close-waits-on-observed-state.i18n.yaml": "sha256:c9b4a6e5c47812f12ed210624beabffe0bfd54fd0b217bb071dccf8942f49be5", + "testing/2026-09-28-detail-close-waits-on-observed-state.md": "sha256:e2168131bd9c671600b8dcb31c0a96d934f6e5bdb0bd41af542fdcdfce3c182d", + "testing/2026-09-28-detail-close-waits-on-observed-state.zh.md": "sha256:8439b884f36c0b594abf2a861cfdcb140acf106f6d4fa462be3243da5fef1fe6" } } diff --git a/.agents/notes/archived/process/2026-06-11-quality-gates.i18n.yaml b/.agents/notes/archived/process/2026-06-11-quality-gates.i18n.yaml new file mode 100644 index 0000000000..0e5ebb4f63 --- /dev/null +++ b/.agents/notes/archived/process/2026-06-11-quality-gates.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-06-11-quality-gates.md +2026-06-11-quality-gates.md: f49d377614681724b10f0e3f4eda5d1a645332cf +2026-06-11-quality-gates.zh.md: f80406f938cc5461eb77e211f2fe9f0b1643d15e diff --git a/.agents/notes/implemented/process/2026-06-11-quality-gates.md b/.agents/notes/archived/process/2026-06-11-quality-gates.md similarity index 99% rename from .agents/notes/implemented/process/2026-06-11-quality-gates.md rename to .agents/notes/archived/process/2026-06-11-quality-gates.md index b4bcbcbb6e..f49d377614 100644 --- a/.agents/notes/implemented/process/2026-06-11-quality-gates.md +++ b/.agents/notes/archived/process/2026-06-11-quality-gates.md @@ -1,6 +1,7 @@ # Agent Note: Mechanical quality gates over prose guidelines Status: implemented +Archived: 2026-09-30 English | [中文](2026-06-11-quality-gates.zh.md) diff --git a/.agents/notes/implemented/process/2026-06-11-quality-gates.zh.md b/.agents/notes/archived/process/2026-06-11-quality-gates.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-06-11-quality-gates.zh.md rename to .agents/notes/archived/process/2026-06-11-quality-gates.zh.md index 64179fd7b1..f80406f938 100644 --- a/.agents/notes/implemented/process/2026-06-11-quality-gates.zh.md +++ b/.agents/notes/archived/process/2026-06-11-quality-gates.zh.md @@ -1,6 +1,7 @@ # Agent Note: 以机械质量门禁取代行文约定 Status: implemented +Archived: 2026-09-30 [English](2026-06-11-quality-gates.md) | 中文 diff --git a/.agents/notes/archived/process/2026-06-16-pnpm-over-yarn.i18n.yaml b/.agents/notes/archived/process/2026-06-16-pnpm-over-yarn.i18n.yaml new file mode 100644 index 0000000000..b6cbadcfee --- /dev/null +++ b/.agents/notes/archived/process/2026-06-16-pnpm-over-yarn.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-06-16-pnpm-over-yarn.md +2026-06-16-pnpm-over-yarn.md: f27856dd51d349fef7f7969c03cdd16c6353162e +2026-06-16-pnpm-over-yarn.zh.md: d2736e98946ce8916efd12ab930cf3f1c8777f2a diff --git a/.agents/notes/implemented/process/2026-06-16-pnpm-over-yarn.md b/.agents/notes/archived/process/2026-06-16-pnpm-over-yarn.md similarity index 99% rename from .agents/notes/implemented/process/2026-06-16-pnpm-over-yarn.md rename to .agents/notes/archived/process/2026-06-16-pnpm-over-yarn.md index 4a8560a021..f27856dd51 100644 --- a/.agents/notes/implemented/process/2026-06-16-pnpm-over-yarn.md +++ b/.agents/notes/archived/process/2026-06-16-pnpm-over-yarn.md @@ -1,6 +1,7 @@ # Agent Note: pnpm as the package manager instead of Yarn 4 Status: implemented +Archived: 2026-09-30 English | [中文](2026-06-16-pnpm-over-yarn.zh.md) diff --git a/.agents/notes/implemented/process/2026-06-16-pnpm-over-yarn.zh.md b/.agents/notes/archived/process/2026-06-16-pnpm-over-yarn.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-06-16-pnpm-over-yarn.zh.md rename to .agents/notes/archived/process/2026-06-16-pnpm-over-yarn.zh.md index 4955cf8883..d2736e9894 100644 --- a/.agents/notes/implemented/process/2026-06-16-pnpm-over-yarn.zh.md +++ b/.agents/notes/archived/process/2026-06-16-pnpm-over-yarn.zh.md @@ -1,6 +1,7 @@ # Agent Note: 使用 pnpm 替代 Yarn 4 作为包管理器 Status: implemented +Archived: 2026-09-30 [English](2026-06-16-pnpm-over-yarn.md) | 中文 diff --git a/.agents/notes/archived/process/2026-06-17-ts-build-config.i18n.yaml b/.agents/notes/archived/process/2026-06-17-ts-build-config.i18n.yaml new file mode 100644 index 0000000000..d1230e5755 --- /dev/null +++ b/.agents/notes/archived/process/2026-06-17-ts-build-config.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-06-17-ts-build-config.md +2026-06-17-ts-build-config.md: 9e823575f7c4591425bb629268ac4a1ae0e40c8b +2026-06-17-ts-build-config.zh.md: a735a795a5fcd8882af02cfa525594bed83d7feb diff --git a/.agents/notes/implemented/process/2026-06-17-ts-build-config.md b/.agents/notes/archived/process/2026-06-17-ts-build-config.md similarity index 99% rename from .agents/notes/implemented/process/2026-06-17-ts-build-config.md rename to .agents/notes/archived/process/2026-06-17-ts-build-config.md index 5b40ba01a0..9e823575f7 100644 --- a/.agents/notes/implemented/process/2026-06-17-ts-build-config.md +++ b/.agents/notes/archived/process/2026-06-17-ts-build-config.md @@ -1,6 +1,7 @@ # Agent Note: TSC-first build and one compiler ownership Status: implemented +Archived: 2026-09-30 English | [中文](2026-06-17-ts-build-config.zh.md) diff --git a/.agents/notes/implemented/process/2026-06-17-ts-build-config.zh.md b/.agents/notes/archived/process/2026-06-17-ts-build-config.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-06-17-ts-build-config.zh.md rename to .agents/notes/archived/process/2026-06-17-ts-build-config.zh.md index c250cdd831..a735a795a5 100644 --- a/.agents/notes/implemented/process/2026-06-17-ts-build-config.zh.md +++ b/.agents/notes/archived/process/2026-06-17-ts-build-config.zh.md @@ -1,6 +1,7 @@ # Agent Note: TSC 优先构建与编译器单一归属 Status: implemented +Archived: 2026-09-30 [English](2026-06-17-ts-build-config.md) | 中文 diff --git a/.agents/notes/archived/process/2026-07-02-bilingual-docs-and-pairing-gate.i18n.yaml b/.agents/notes/archived/process/2026-07-02-bilingual-docs-and-pairing-gate.i18n.yaml new file mode 100644 index 0000000000..24e4eacfe6 --- /dev/null +++ b/.agents/notes/archived/process/2026-07-02-bilingual-docs-and-pairing-gate.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-07-02-bilingual-docs-and-pairing-gate.md +2026-07-02-bilingual-docs-and-pairing-gate.md: b6a93dcdf7d440dfbfd6a18cd7122f237795fb7e +2026-07-02-bilingual-docs-and-pairing-gate.zh.md: 7e0f5f6cf260152b3f12475b063d7bbcb5f99e6c diff --git a/.agents/notes/implemented/process/2026-07-02-bilingual-docs-and-pairing-gate.md b/.agents/notes/archived/process/2026-07-02-bilingual-docs-and-pairing-gate.md similarity index 99% rename from .agents/notes/implemented/process/2026-07-02-bilingual-docs-and-pairing-gate.md rename to .agents/notes/archived/process/2026-07-02-bilingual-docs-and-pairing-gate.md index 9448c9dcd7..b6a93dcdf7 100644 --- a/.agents/notes/implemented/process/2026-07-02-bilingual-docs-and-pairing-gate.md +++ b/.agents/notes/archived/process/2026-07-02-bilingual-docs-and-pairing-gate.md @@ -1,6 +1,7 @@ # Agent Note: Bilingual documentation via paired sibling files and a pairing gate Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-02-bilingual-docs-and-pairing-gate.zh.md) diff --git a/.agents/notes/implemented/process/2026-07-02-bilingual-docs-and-pairing-gate.zh.md b/.agents/notes/archived/process/2026-07-02-bilingual-docs-and-pairing-gate.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-07-02-bilingual-docs-and-pairing-gate.zh.md rename to .agents/notes/archived/process/2026-07-02-bilingual-docs-and-pairing-gate.zh.md index b843de91e2..7e0f5f6cf2 100644 --- a/.agents/notes/implemented/process/2026-07-02-bilingual-docs-and-pairing-gate.zh.md +++ b/.agents/notes/archived/process/2026-07-02-bilingual-docs-and-pairing-gate.zh.md @@ -1,6 +1,7 @@ # Agent Note: 通过配对兄弟文件与配对门禁实现双语文档 Status: implemented +Archived: 2026-09-30 [English](2026-07-02-bilingual-docs-and-pairing-gate.md) | 中文 diff --git a/.agents/notes/archived/process/2026-07-04-doc-tiers-and-budgets.i18n.yaml b/.agents/notes/archived/process/2026-07-04-doc-tiers-and-budgets.i18n.yaml new file mode 100644 index 0000000000..a968f0ec96 --- /dev/null +++ b/.agents/notes/archived/process/2026-07-04-doc-tiers-and-budgets.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-07-04-doc-tiers-and-budgets.md +2026-07-04-doc-tiers-and-budgets.md: 9281990adffb751f627737513b540ae65839fcb1 +2026-07-04-doc-tiers-and-budgets.zh.md: 4cd13ce339c0a38262208eb194769e0ef95930fa diff --git a/.agents/notes/implemented/process/2026-07-04-doc-tiers-and-budgets.md b/.agents/notes/archived/process/2026-07-04-doc-tiers-and-budgets.md similarity index 99% rename from .agents/notes/implemented/process/2026-07-04-doc-tiers-and-budgets.md rename to .agents/notes/archived/process/2026-07-04-doc-tiers-and-budgets.md index 209504218d..9281990adf 100644 --- a/.agents/notes/implemented/process/2026-07-04-doc-tiers-and-budgets.md +++ b/.agents/notes/archived/process/2026-07-04-doc-tiers-and-budgets.md @@ -1,6 +1,7 @@ # Agent Note: Documentation structure, tiers, and budgets Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-04-doc-tiers-and-budgets.zh.md) diff --git a/.agents/notes/implemented/process/2026-07-04-doc-tiers-and-budgets.zh.md b/.agents/notes/archived/process/2026-07-04-doc-tiers-and-budgets.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-07-04-doc-tiers-and-budgets.zh.md rename to .agents/notes/archived/process/2026-07-04-doc-tiers-and-budgets.zh.md index 9c866424d8..4cd13ce339 100644 --- a/.agents/notes/implemented/process/2026-07-04-doc-tiers-and-budgets.zh.md +++ b/.agents/notes/archived/process/2026-07-04-doc-tiers-and-budgets.zh.md @@ -1,6 +1,7 @@ # Agent Note: 文档结构、层级与预算 Status: implemented +Archived: 2026-09-30 [English](2026-07-04-doc-tiers-and-budgets.md) | 中文 diff --git a/.agents/notes/archived/process/2026-07-05-uniform-agent-note-format.i18n.yaml b/.agents/notes/archived/process/2026-07-05-uniform-agent-note-format.i18n.yaml new file mode 100644 index 0000000000..3ecf6cda42 --- /dev/null +++ b/.agents/notes/archived/process/2026-07-05-uniform-agent-note-format.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-07-05-uniform-agent-note-format.md +2026-07-05-uniform-agent-note-format.md: 3412209688c97f0e3d8dbe9064bd2e18285d7c2b +2026-07-05-uniform-agent-note-format.zh.md: 9a4d67b6538aa58ca5c1b91bfa5f33eb437ab6d3 diff --git a/.agents/notes/implemented/process/2026-07-05-uniform-agent-note-format.md b/.agents/notes/archived/process/2026-07-05-uniform-agent-note-format.md similarity index 99% rename from .agents/notes/implemented/process/2026-07-05-uniform-agent-note-format.md rename to .agents/notes/archived/process/2026-07-05-uniform-agent-note-format.md index c05d81c700..3412209688 100644 --- a/.agents/notes/implemented/process/2026-07-05-uniform-agent-note-format.md +++ b/.agents/notes/archived/process/2026-07-05-uniform-agent-note-format.md @@ -1,6 +1,7 @@ # Agent Note: One gated in-file format for Agent Notes Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-05-uniform-agent-note-format.zh.md) diff --git a/.agents/notes/implemented/process/2026-07-05-uniform-agent-note-format.zh.md b/.agents/notes/archived/process/2026-07-05-uniform-agent-note-format.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-07-05-uniform-agent-note-format.zh.md rename to .agents/notes/archived/process/2026-07-05-uniform-agent-note-format.zh.md index 13991632e7..9a4d67b653 100644 --- a/.agents/notes/implemented/process/2026-07-05-uniform-agent-note-format.zh.md +++ b/.agents/notes/archived/process/2026-07-05-uniform-agent-note-format.zh.md @@ -1,6 +1,7 @@ # Agent Note: Agent Note 的统一受门禁约束的文件内格式 Status: implemented +Archived: 2026-09-30 [English](2026-07-05-uniform-agent-note-format.md) | 中文 diff --git a/.agents/notes/archived/process/2026-07-06-parallel-pre-push-gates.i18n.yaml b/.agents/notes/archived/process/2026-07-06-parallel-pre-push-gates.i18n.yaml new file mode 100644 index 0000000000..c44e212df4 --- /dev/null +++ b/.agents/notes/archived/process/2026-07-06-parallel-pre-push-gates.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-07-06-parallel-pre-push-gates.md +2026-07-06-parallel-pre-push-gates.md: ef60e7d15bbf370ce12dc0e0cbc94c305806081a +2026-07-06-parallel-pre-push-gates.zh.md: 67c0a3bab858588d1fe141ae37b0396fc2ad453b diff --git a/.agents/notes/implemented/process/2026-07-06-parallel-pre-push-gates.md b/.agents/notes/archived/process/2026-07-06-parallel-pre-push-gates.md similarity index 99% rename from .agents/notes/implemented/process/2026-07-06-parallel-pre-push-gates.md rename to .agents/notes/archived/process/2026-07-06-parallel-pre-push-gates.md index 9773a86428..ef60e7d15b 100644 --- a/.agents/notes/implemented/process/2026-07-06-parallel-pre-push-gates.md +++ b/.agents/notes/archived/process/2026-07-06-parallel-pre-push-gates.md @@ -1,6 +1,7 @@ # Agent Note: Parallel pre-push gates Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-06-parallel-pre-push-gates.zh.md) diff --git a/.agents/notes/implemented/process/2026-07-06-parallel-pre-push-gates.zh.md b/.agents/notes/archived/process/2026-07-06-parallel-pre-push-gates.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-07-06-parallel-pre-push-gates.zh.md rename to .agents/notes/archived/process/2026-07-06-parallel-pre-push-gates.zh.md index 4d0e15a338..67c0a3bab8 100644 --- a/.agents/notes/implemented/process/2026-07-06-parallel-pre-push-gates.zh.md +++ b/.agents/notes/archived/process/2026-07-06-parallel-pre-push-gates.zh.md @@ -1,6 +1,7 @@ # Agent Note: 并行 pre-push 门禁 Status: implemented +Archived: 2026-09-30 [English](2026-07-06-parallel-pre-push-gates.md) | 中文 diff --git a/.agents/notes/archived/process/2026-07-12-package-model-experience-contract.i18n.yaml b/.agents/notes/archived/process/2026-07-12-package-model-experience-contract.i18n.yaml new file mode 100644 index 0000000000..8be4508216 --- /dev/null +++ b/.agents/notes/archived/process/2026-07-12-package-model-experience-contract.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-07-12-package-model-experience-contract.md +2026-07-12-package-model-experience-contract.md: baa590cb4d36722dd6ade5d03b6345bd061a0062 +2026-07-12-package-model-experience-contract.zh.md: 79d000d4f9eb64033feb54bafa782edea94ca591 diff --git a/.agents/notes/implemented/process/2026-07-12-package-model-experience-contract.md b/.agents/notes/archived/process/2026-07-12-package-model-experience-contract.md similarity index 99% rename from .agents/notes/implemented/process/2026-07-12-package-model-experience-contract.md rename to .agents/notes/archived/process/2026-07-12-package-model-experience-contract.md index 8462cc20e8..baa590cb4d 100644 --- a/.agents/notes/implemented/process/2026-07-12-package-model-experience-contract.md +++ b/.agents/notes/archived/process/2026-07-12-package-model-experience-contract.md @@ -1,6 +1,7 @@ # Agent Note: Package Model Experience contract Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-12-package-model-experience-contract.zh.md) diff --git a/.agents/notes/implemented/process/2026-07-12-package-model-experience-contract.zh.md b/.agents/notes/archived/process/2026-07-12-package-model-experience-contract.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-07-12-package-model-experience-contract.zh.md rename to .agents/notes/archived/process/2026-07-12-package-model-experience-contract.zh.md index 040412f3af..79d000d4f9 100644 --- a/.agents/notes/implemented/process/2026-07-12-package-model-experience-contract.zh.md +++ b/.agents/notes/archived/process/2026-07-12-package-model-experience-contract.zh.md @@ -1,6 +1,7 @@ # Agent Note: 包的模型体验约定 Status: implemented +Archived: 2026-09-30 [English](2026-07-12-package-model-experience-contract.md) | 中文 diff --git a/.agents/notes/archived/process/2026-07-19-remove-generated-agent-note-index.i18n.yaml b/.agents/notes/archived/process/2026-07-19-remove-generated-agent-note-index.i18n.yaml new file mode 100644 index 0000000000..33abb9cbb8 --- /dev/null +++ b/.agents/notes/archived/process/2026-07-19-remove-generated-agent-note-index.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-07-19-remove-generated-agent-note-index.md +2026-07-19-remove-generated-agent-note-index.md: c8c943582bc05cfa5de57023bf7a35db5951eed1 +2026-07-19-remove-generated-agent-note-index.zh.md: 8e474536d63d534195f7a87978a7eef220fa42c9 diff --git a/.agents/notes/implemented/process/2026-07-19-remove-generated-agent-note-index.md b/.agents/notes/archived/process/2026-07-19-remove-generated-agent-note-index.md similarity index 99% rename from .agents/notes/implemented/process/2026-07-19-remove-generated-agent-note-index.md rename to .agents/notes/archived/process/2026-07-19-remove-generated-agent-note-index.md index 60dba14064..c8c943582b 100644 --- a/.agents/notes/implemented/process/2026-07-19-remove-generated-agent-note-index.md +++ b/.agents/notes/archived/process/2026-07-19-remove-generated-agent-note-index.md @@ -1,6 +1,7 @@ # Agent Note: Keep Agent Notes discoverable without a generated index Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-19-remove-generated-agent-note-index.zh.md) diff --git a/.agents/notes/implemented/process/2026-07-19-remove-generated-agent-note-index.zh.md b/.agents/notes/archived/process/2026-07-19-remove-generated-agent-note-index.zh.md similarity index 98% rename from .agents/notes/implemented/process/2026-07-19-remove-generated-agent-note-index.zh.md rename to .agents/notes/archived/process/2026-07-19-remove-generated-agent-note-index.zh.md index 912aea1330..8e474536d6 100644 --- a/.agents/notes/implemented/process/2026-07-19-remove-generated-agent-note-index.zh.md +++ b/.agents/notes/archived/process/2026-07-19-remove-generated-agent-note-index.zh.md @@ -1,6 +1,7 @@ # Agent Note: 无需生成索引即可发现 Agent Note Status: implemented +Archived: 2026-09-30 [English](2026-07-19-remove-generated-agent-note-index.md) | 中文 diff --git a/.agents/notes/archived/process/2026-07-19-web-styling-system.i18n.yaml b/.agents/notes/archived/process/2026-07-19-web-styling-system.i18n.yaml new file mode 100644 index 0000000000..2be48bcbbb --- /dev/null +++ b/.agents/notes/archived/process/2026-07-19-web-styling-system.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-07-19-web-styling-system.md +2026-07-19-web-styling-system.md: 348c18137734b45458fdf8cdfeb10f5bd7e3ea41 +2026-07-19-web-styling-system.zh.md: 86c5731ba49fce4b9c39787dc55ea888e783dd5e diff --git a/.agents/notes/implemented/process/2026-07-19-web-styling-system.md b/.agents/notes/archived/process/2026-07-19-web-styling-system.md similarity index 99% rename from .agents/notes/implemented/process/2026-07-19-web-styling-system.md rename to .agents/notes/archived/process/2026-07-19-web-styling-system.md index b4d647924a..348c181377 100644 --- a/.agents/notes/implemented/process/2026-07-19-web-styling-system.md +++ b/.agents/notes/archived/process/2026-07-19-web-styling-system.md @@ -1,6 +1,7 @@ # Agent Note: Web styling system — the token framework and engineering constraints Status: implemented +Archived: 2026-09-30 > Token-system update (2026-07-22): the framework rulings here (CSS Modules + clsx, no component library, no tailwind, tokens-only colors) remain in force, but the two-layer `--bg-*`/`--text-*` token table and its `web-ui/src/style/global.css` home were replaced by the `--dsw-*` static+alias sheets in `packages/client/ui-theme/src/styles/` (dark = `body[data-ds-dark-theme]` override) — the sheets themselves are the token authority. diff --git a/.agents/notes/implemented/process/2026-07-19-web-styling-system.zh.md b/.agents/notes/archived/process/2026-07-19-web-styling-system.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-07-19-web-styling-system.zh.md rename to .agents/notes/archived/process/2026-07-19-web-styling-system.zh.md index e7384575cf..86c5731ba4 100644 --- a/.agents/notes/implemented/process/2026-07-19-web-styling-system.zh.md +++ b/.agents/notes/archived/process/2026-07-19-web-styling-system.zh.md @@ -1,6 +1,7 @@ # Agent Note: Web 样式体系——token 框架与工程约束 Status: implemented +Archived: 2026-09-30 > token 体系更新(2026-07-22):本文框架裁决(CSS Modules + clsx、无组件库、无 tailwind、颜色只用 token)仍然生效,但两层 `--bg-*`/`--text-*` token 表及其宿主 `web-ui/src/style/global.css` 已被 `packages/client/ui-theme/src/styles/` 的 `--dsw-*` static+alias 双层表取代(暗色=`body[data-ds-dark-theme]` 覆写)——样式表本身即 token 权威。 diff --git a/.agents/notes/archived/process/2026-07-20-gui-testing-system.i18n.yaml b/.agents/notes/archived/process/2026-07-20-gui-testing-system.i18n.yaml new file mode 100644 index 0000000000..c86d0b687d --- /dev/null +++ b/.agents/notes/archived/process/2026-07-20-gui-testing-system.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-07-20-gui-testing-system.md +2026-07-20-gui-testing-system.md: 07c4e948c6c93516420cfb70c5b4372360e4de08 +2026-07-20-gui-testing-system.zh.md: f41b92495d12bcd108379af204423d60f8e1f33d diff --git a/.agents/notes/implemented/process/2026-07-20-gui-testing-system.md b/.agents/notes/archived/process/2026-07-20-gui-testing-system.md similarity index 99% rename from .agents/notes/implemented/process/2026-07-20-gui-testing-system.md rename to .agents/notes/archived/process/2026-07-20-gui-testing-system.md index 3fdb9a596d..07c4e948c6 100644 --- a/.agents/notes/implemented/process/2026-07-20-gui-testing-system.md +++ b/.agents/notes/archived/process/2026-07-20-gui-testing-system.md @@ -1,6 +1,7 @@ # Agent Note: GUI testing system — the three-tier structure Status: implemented +Archived: 2026-09-30 > Path update (2026-08-27, Remote migration): the three-tier philosophy and golden-path method here remain current; object-layer specs live across `packages/api/session-controller/tests/` and `packages/test-support/client-runtime/tests/`, while Remote and carrier specs live across `packages/api/gateway/tests/` and `packages/client/connection/tests/`. Component specs are per-plugin jsdom suites under each `packages/client/*/tests/`. Component-spec shape follows the [slot system standard](../architecture/2026-07-22-slot-type-chain-implementation.md): feed props directly — the store share comes from `createXXXStore().create()` (the real engine, the sanctioned zero-machinery path), framework hooks are plain stubs; no render machinery, no provider mounting. Slot ownership and registry semantics are tier-2 territory (`ui-renderer` + `ui-slots` suites), not component specs. diff --git a/.agents/notes/implemented/process/2026-07-20-gui-testing-system.zh.md b/.agents/notes/archived/process/2026-07-20-gui-testing-system.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-07-20-gui-testing-system.zh.md rename to .agents/notes/archived/process/2026-07-20-gui-testing-system.zh.md index e49d5a2f84..f41b92495d 100644 --- a/.agents/notes/implemented/process/2026-07-20-gui-testing-system.zh.md +++ b/.agents/notes/archived/process/2026-07-20-gui-testing-system.zh.md @@ -1,6 +1,7 @@ # Agent Note: GUI 测试体系——三层结构 Status: implemented +Archived: 2026-09-30 > 路径更新(2026-08-27,Remote 迁移):本文三层理念与黄金路径方法仍为现行;对象层 spec 分布于 `packages/api/session-controller/tests/` 和 `packages/test-support/client-runtime/tests/`,Remote 与承载 spec 分布于 `packages/api/gateway/tests/` 和 `packages/client/connection/tests/`。组件 spec 是各 `packages/client/*/tests/` 下的插件级 jsdom 套件。组件 spec 形态遵循 [slot 体系标准](../architecture/2026-07-22-slot-type-chain-implementation.zh.md):props 直喂——store 份额来自 `createXXXStore().create()`(真引擎,获认可的无额外机制路径),框架钩子用普通桩;无渲染机制、不挂载提供方。slot 归属和注册表语义归 2 层地界(`ui-renderer` + `ui-slots` 套件),不归组件 spec。 diff --git a/.agents/notes/archived/process/2026-08-03-package-anchored-subsystem-pages.i18n.yaml b/.agents/notes/archived/process/2026-08-03-package-anchored-subsystem-pages.i18n.yaml new file mode 100644 index 0000000000..aed46e2618 --- /dev/null +++ b/.agents/notes/archived/process/2026-08-03-package-anchored-subsystem-pages.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-08-03-package-anchored-subsystem-pages.md +2026-08-03-package-anchored-subsystem-pages.md: eab569b7dcf7c671ea0ae7c50691ffd1edc0f0d6 +2026-08-03-package-anchored-subsystem-pages.zh.md: 61b648c45bb3cc54eebe69ddf4ae0b9f56c9c50d diff --git a/.agents/notes/implemented/process/2026-08-03-package-anchored-subsystem-pages.md b/.agents/notes/archived/process/2026-08-03-package-anchored-subsystem-pages.md similarity index 99% rename from .agents/notes/implemented/process/2026-08-03-package-anchored-subsystem-pages.md rename to .agents/notes/archived/process/2026-08-03-package-anchored-subsystem-pages.md index ea98bae0c5..eab569b7dc 100644 --- a/.agents/notes/implemented/process/2026-08-03-package-anchored-subsystem-pages.md +++ b/.agents/notes/archived/process/2026-08-03-package-anchored-subsystem-pages.md @@ -1,6 +1,7 @@ # Agent Note: Package-anchored subsystem pages and thin group READMEs Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-03-package-anchored-subsystem-pages.zh.md) diff --git a/.agents/notes/implemented/process/2026-08-03-package-anchored-subsystem-pages.zh.md b/.agents/notes/archived/process/2026-08-03-package-anchored-subsystem-pages.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-08-03-package-anchored-subsystem-pages.zh.md rename to .agents/notes/archived/process/2026-08-03-package-anchored-subsystem-pages.zh.md index 4da4211f4e..61b648c45b 100644 --- a/.agents/notes/implemented/process/2026-08-03-package-anchored-subsystem-pages.zh.md +++ b/.agents/notes/archived/process/2026-08-03-package-anchored-subsystem-pages.zh.md @@ -1,6 +1,7 @@ # Agent Note: 按包锚定的子系统页面与精简的分组 README Status: implemented +Archived: 2026-09-30 [English](2026-08-03-package-anchored-subsystem-pages.md) | 中文 diff --git a/.agents/notes/archived/process/2026-08-08-browser-gif-evidence-chain.i18n.yaml b/.agents/notes/archived/process/2026-08-08-browser-gif-evidence-chain.i18n.yaml new file mode 100644 index 0000000000..9b64d6e70c --- /dev/null +++ b/.agents/notes/archived/process/2026-08-08-browser-gif-evidence-chain.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-08-08-browser-gif-evidence-chain.md +2026-08-08-browser-gif-evidence-chain.md: e85c05ef214cbf03409be1512da4b127231ac4f3 +2026-08-08-browser-gif-evidence-chain.zh.md: bc2d11f007adc4645aa6402736007f1d16ecf56e diff --git a/.agents/notes/implemented/process/2026-08-08-browser-gif-evidence-chain.md b/.agents/notes/archived/process/2026-08-08-browser-gif-evidence-chain.md similarity index 99% rename from .agents/notes/implemented/process/2026-08-08-browser-gif-evidence-chain.md rename to .agents/notes/archived/process/2026-08-08-browser-gif-evidence-chain.md index 8a7c28792b..e85c05ef21 100644 --- a/.agents/notes/implemented/process/2026-08-08-browser-gif-evidence-chain.md +++ b/.agents/notes/archived/process/2026-08-08-browser-gif-evidence-chain.md @@ -1,6 +1,7 @@ # Agent Note: Browser GIFs preserve one evidence chain Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-08-browser-gif-evidence-chain.zh.md) diff --git a/.agents/notes/implemented/process/2026-08-08-browser-gif-evidence-chain.zh.md b/.agents/notes/archived/process/2026-08-08-browser-gif-evidence-chain.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-08-08-browser-gif-evidence-chain.zh.md rename to .agents/notes/archived/process/2026-08-08-browser-gif-evidence-chain.zh.md index ff9b6cc729..bc2d11f007 100644 --- a/.agents/notes/implemented/process/2026-08-08-browser-gif-evidence-chain.zh.md +++ b/.agents/notes/archived/process/2026-08-08-browser-gif-evidence-chain.zh.md @@ -1,6 +1,7 @@ # Agent Note: 浏览器 GIF 保留单一证据链 Status: implemented +Archived: 2026-09-30 [English](2026-08-08-browser-gif-evidence-chain.md) | 中文 diff --git a/.agents/notes/archived/process/2026-08-09-committed-artifact-citations.i18n.yaml b/.agents/notes/archived/process/2026-08-09-committed-artifact-citations.i18n.yaml new file mode 100644 index 0000000000..8b06f09d72 --- /dev/null +++ b/.agents/notes/archived/process/2026-08-09-committed-artifact-citations.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-08-09-committed-artifact-citations.md +2026-08-09-committed-artifact-citations.md: cc7483ac97c69191cfb755e304e011e528727070 +2026-08-09-committed-artifact-citations.zh.md: 1d19250e3e4ccb3a23f80517f31b072938278698 diff --git a/.agents/notes/implemented/process/2026-08-09-committed-artifact-citations.md b/.agents/notes/archived/process/2026-08-09-committed-artifact-citations.md similarity index 99% rename from .agents/notes/implemented/process/2026-08-09-committed-artifact-citations.md rename to .agents/notes/archived/process/2026-08-09-committed-artifact-citations.md index 66dec38755..cc7483ac97 100644 --- a/.agents/notes/implemented/process/2026-08-09-committed-artifact-citations.md +++ b/.agents/notes/archived/process/2026-08-09-committed-artifact-citations.md @@ -1,6 +1,7 @@ # Agent Note: Cite committed artifacts, never design-session ordinals Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-09-committed-artifact-citations.zh.md) diff --git a/.agents/notes/implemented/process/2026-08-09-committed-artifact-citations.zh.md b/.agents/notes/archived/process/2026-08-09-committed-artifact-citations.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-08-09-committed-artifact-citations.zh.md rename to .agents/notes/archived/process/2026-08-09-committed-artifact-citations.zh.md index ebc4541e56..1d19250e3e 100644 --- a/.agents/notes/implemented/process/2026-08-09-committed-artifact-citations.zh.md +++ b/.agents/notes/archived/process/2026-08-09-committed-artifact-citations.zh.md @@ -1,6 +1,7 @@ # Agent Note: 引用已提交的产物,绝不引用设计会话序号 Status: implemented +Archived: 2026-09-30 [English](2026-08-09-committed-artifact-citations.md) | 中文 diff --git a/.agents/notes/archived/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.i18n.yaml b/.agents/notes/archived/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.i18n.yaml new file mode 100644 index 0000000000..602ee5c781 --- /dev/null +++ b/.agents/notes/archived/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.md +2026-08-09-concrete-prose-names-actors-and-recorded-facts.md: 26075efb0b202e2e401e8d33007239c4df10b1b6 +2026-08-09-concrete-prose-names-actors-and-recorded-facts.zh.md: 1904a3575447928a32c64816f1fd10f4ce6f28bd diff --git a/.agents/notes/implemented/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.md b/.agents/notes/archived/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.md similarity index 99% rename from .agents/notes/implemented/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.md rename to .agents/notes/archived/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.md index 91f7913ff0..26075efb0b 100644 --- a/.agents/notes/implemented/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.md +++ b/.agents/notes/archived/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.md @@ -1,6 +1,7 @@ # Agent Note: Concrete prose names actors and recorded facts Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-09-concrete-prose-names-actors-and-recorded-facts.zh.md) diff --git a/.agents/notes/implemented/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.zh.md b/.agents/notes/archived/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.zh.md rename to .agents/notes/archived/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.zh.md index 315850711a..1904a35754 100644 --- a/.agents/notes/implemented/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.zh.md +++ b/.agents/notes/archived/process/2026-08-09-concrete-prose-names-actors-and-recorded-facts.zh.md @@ -1,6 +1,7 @@ # Agent Note: 具体表述说明执行者和记录的事实 Status: implemented +Archived: 2026-09-30 [English](2026-08-09-concrete-prose-names-actors-and-recorded-facts.md) | 中文 diff --git a/.agents/notes/archived/process/2026-08-18-in-job-partitioned-coverage.i18n.yaml b/.agents/notes/archived/process/2026-08-18-in-job-partitioned-coverage.i18n.yaml new file mode 100644 index 0000000000..7d93d49b49 --- /dev/null +++ b/.agents/notes/archived/process/2026-08-18-in-job-partitioned-coverage.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-08-18-in-job-partitioned-coverage.md +2026-08-18-in-job-partitioned-coverage.md: f2e531a8242c4597f0c85fe30d37167df7c0e444 +2026-08-18-in-job-partitioned-coverage.zh.md: 39425a378afd924c231349e7be81b64dc1c1fc9b diff --git a/.agents/notes/implemented/process/2026-08-18-in-job-partitioned-coverage.md b/.agents/notes/archived/process/2026-08-18-in-job-partitioned-coverage.md similarity index 99% rename from .agents/notes/implemented/process/2026-08-18-in-job-partitioned-coverage.md rename to .agents/notes/archived/process/2026-08-18-in-job-partitioned-coverage.md index 3eafecc02f..f2e531a824 100644 --- a/.agents/notes/implemented/process/2026-08-18-in-job-partitioned-coverage.md +++ b/.agents/notes/archived/process/2026-08-18-in-job-partitioned-coverage.md @@ -1,6 +1,7 @@ # Agent Note: In-job partitioned coverage Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-18-in-job-partitioned-coverage.zh.md) diff --git a/.agents/notes/implemented/process/2026-08-18-in-job-partitioned-coverage.zh.md b/.agents/notes/archived/process/2026-08-18-in-job-partitioned-coverage.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-08-18-in-job-partitioned-coverage.zh.md rename to .agents/notes/archived/process/2026-08-18-in-job-partitioned-coverage.zh.md index 457e352992..39425a378a 100644 --- a/.agents/notes/implemented/process/2026-08-18-in-job-partitioned-coverage.zh.md +++ b/.agents/notes/archived/process/2026-08-18-in-job-partitioned-coverage.zh.md @@ -1,6 +1,7 @@ # Agent Note: 单 job 分区覆盖率 Status: implemented +Archived: 2026-09-30 [English](2026-08-18-in-job-partitioned-coverage.md) | 中文 diff --git a/.agents/notes/archived/process/2026-08-19-remove-knip.i18n.yaml b/.agents/notes/archived/process/2026-08-19-remove-knip.i18n.yaml new file mode 100644 index 0000000000..d281b03bc5 --- /dev/null +++ b/.agents/notes/archived/process/2026-08-19-remove-knip.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-08-19-remove-knip.md +2026-08-19-remove-knip.md: d385e729d3336400b55aec50a9464260c2b6bfa7 +2026-08-19-remove-knip.zh.md: 5decd988fbec425961d73b36cda93fd10746c2cd diff --git a/.agents/notes/implemented/process/2026-08-19-remove-knip.md b/.agents/notes/archived/process/2026-08-19-remove-knip.md similarity index 99% rename from .agents/notes/implemented/process/2026-08-19-remove-knip.md rename to .agents/notes/archived/process/2026-08-19-remove-knip.md index 5e7e898e05..d385e729d3 100644 --- a/.agents/notes/implemented/process/2026-08-19-remove-knip.md +++ b/.agents/notes/archived/process/2026-08-19-remove-knip.md @@ -1,6 +1,7 @@ # Agent Note: Remove Knip from repository gates Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-19-remove-knip.zh.md) diff --git a/.agents/notes/implemented/process/2026-08-19-remove-knip.zh.md b/.agents/notes/archived/process/2026-08-19-remove-knip.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-08-19-remove-knip.zh.md rename to .agents/notes/archived/process/2026-08-19-remove-knip.zh.md index f6bca86616..5decd988fb 100644 --- a/.agents/notes/implemented/process/2026-08-19-remove-knip.zh.md +++ b/.agents/notes/archived/process/2026-08-19-remove-knip.zh.md @@ -1,6 +1,7 @@ # Agent Note: 从仓库门禁中移除 Knip Status: implemented +Archived: 2026-09-30 [English](2026-08-19-remove-knip.md) | 中文 diff --git a/.agents/notes/archived/process/2026-08-28-ci-node-compile-cache-data-disk.i18n.yaml b/.agents/notes/archived/process/2026-08-28-ci-node-compile-cache-data-disk.i18n.yaml new file mode 100644 index 0000000000..519da97f20 --- /dev/null +++ b/.agents/notes/archived/process/2026-08-28-ci-node-compile-cache-data-disk.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-08-28-ci-node-compile-cache-data-disk.md +2026-08-28-ci-node-compile-cache-data-disk.md: 5b6b29ab42c6d041e846bd65f63957ee1906bdc2 +2026-08-28-ci-node-compile-cache-data-disk.zh.md: 040b3ab730c9baafa21481a84600fb3dddc89ea9 diff --git a/.agents/notes/implemented/process/2026-08-28-ci-node-compile-cache-data-disk.md b/.agents/notes/archived/process/2026-08-28-ci-node-compile-cache-data-disk.md similarity index 99% rename from .agents/notes/implemented/process/2026-08-28-ci-node-compile-cache-data-disk.md rename to .agents/notes/archived/process/2026-08-28-ci-node-compile-cache-data-disk.md index 3f5f7eb2f0..5b6b29ab42 100644 --- a/.agents/notes/implemented/process/2026-08-28-ci-node-compile-cache-data-disk.md +++ b/.agents/notes/archived/process/2026-08-28-ci-node-compile-cache-data-disk.md @@ -1,6 +1,7 @@ # Agent Note: Redirect the Node compile cache to the data-volume runner temp Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-28-ci-node-compile-cache-data-disk.zh.md) diff --git a/.agents/notes/implemented/process/2026-08-28-ci-node-compile-cache-data-disk.zh.md b/.agents/notes/archived/process/2026-08-28-ci-node-compile-cache-data-disk.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-08-28-ci-node-compile-cache-data-disk.zh.md rename to .agents/notes/archived/process/2026-08-28-ci-node-compile-cache-data-disk.zh.md index c55a6c73cf..040b3ab730 100644 --- a/.agents/notes/implemented/process/2026-08-28-ci-node-compile-cache-data-disk.zh.md +++ b/.agents/notes/archived/process/2026-08-28-ci-node-compile-cache-data-disk.zh.md @@ -1,6 +1,7 @@ # Agent Note: 将 Node 编译缓存重定向到数据卷 runner 临时目录 Status: implemented +Archived: 2026-09-30 [English](2026-08-28-ci-node-compile-cache-data-disk.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-02-project-local-issue-planning-fields.i18n.yaml b/.agents/notes/archived/process/2026-09-02-project-local-issue-planning-fields.i18n.yaml new file mode 100644 index 0000000000..f913cc8c6e --- /dev/null +++ b/.agents/notes/archived/process/2026-09-02-project-local-issue-planning-fields.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-02-project-local-issue-planning-fields.md +2026-09-02-project-local-issue-planning-fields.md: 9e7ec91eaa2cff7acd1690c3557c934982854a24 +2026-09-02-project-local-issue-planning-fields.zh.md: 1f138721585195dd81f0b286eadee664bc65beea diff --git a/.agents/notes/implemented/process/2026-09-02-project-local-issue-planning-fields.md b/.agents/notes/archived/process/2026-09-02-project-local-issue-planning-fields.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-02-project-local-issue-planning-fields.md rename to .agents/notes/archived/process/2026-09-02-project-local-issue-planning-fields.md index e44fe0f002..9e7ec91eaa 100644 --- a/.agents/notes/implemented/process/2026-09-02-project-local-issue-planning-fields.md +++ b/.agents/notes/archived/process/2026-09-02-project-local-issue-planning-fields.md @@ -1,6 +1,7 @@ # Agent Note: Project-local Issue planning fields Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-02-project-local-issue-planning-fields.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-02-project-local-issue-planning-fields.zh.md b/.agents/notes/archived/process/2026-09-02-project-local-issue-planning-fields.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-02-project-local-issue-planning-fields.zh.md rename to .agents/notes/archived/process/2026-09-02-project-local-issue-planning-fields.zh.md index 28308d4899..1f13872158 100644 --- a/.agents/notes/implemented/process/2026-09-02-project-local-issue-planning-fields.zh.md +++ b/.agents/notes/archived/process/2026-09-02-project-local-issue-planning-fields.zh.md @@ -1,6 +1,7 @@ # Agent Note: Project 局部 Issue 规划字段 Status: implemented +Archived: 2026-09-30 [English](2026-09-02-project-local-issue-planning-fields.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-03-semantic-issue-templates-and-policy.i18n.yaml b/.agents/notes/archived/process/2026-09-03-semantic-issue-templates-and-policy.i18n.yaml new file mode 100644 index 0000000000..6a1d749c24 --- /dev/null +++ b/.agents/notes/archived/process/2026-09-03-semantic-issue-templates-and-policy.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-03-semantic-issue-templates-and-policy.md +2026-09-03-semantic-issue-templates-and-policy.md: 6d6e425b9b4fc5cf158ba6e701786c7cdb4c0743 +2026-09-03-semantic-issue-templates-and-policy.zh.md: b963bc0c5490dda606a877da8281331b3b2ea27e diff --git a/.agents/notes/implemented/process/2026-09-03-semantic-issue-templates-and-policy.md b/.agents/notes/archived/process/2026-09-03-semantic-issue-templates-and-policy.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-03-semantic-issue-templates-and-policy.md rename to .agents/notes/archived/process/2026-09-03-semantic-issue-templates-and-policy.md index 96b1981b21..6d6e425b9b 100644 --- a/.agents/notes/implemented/process/2026-09-03-semantic-issue-templates-and-policy.md +++ b/.agents/notes/archived/process/2026-09-03-semantic-issue-templates-and-policy.md @@ -1,6 +1,7 @@ # Agent Note: Semantic Issue templates and presentation-neutral policy Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-03-semantic-issue-templates-and-policy.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-03-semantic-issue-templates-and-policy.zh.md b/.agents/notes/archived/process/2026-09-03-semantic-issue-templates-and-policy.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-03-semantic-issue-templates-and-policy.zh.md rename to .agents/notes/archived/process/2026-09-03-semantic-issue-templates-and-policy.zh.md index 706cd59047..b963bc0c54 100644 --- a/.agents/notes/implemented/process/2026-09-03-semantic-issue-templates-and-policy.zh.md +++ b/.agents/notes/archived/process/2026-09-03-semantic-issue-templates-and-policy.zh.md @@ -1,6 +1,7 @@ # Agent Note: 语义化 Issue template 与不检查展示形式的 policy Status: implemented +Archived: 2026-09-30 [English](2026-09-03-semantic-issue-templates-and-policy.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-06-evidence-driven-performance-skill.i18n.yaml b/.agents/notes/archived/process/2026-09-06-evidence-driven-performance-skill.i18n.yaml new file mode 100644 index 0000000000..b981481511 --- /dev/null +++ b/.agents/notes/archived/process/2026-09-06-evidence-driven-performance-skill.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-06-evidence-driven-performance-skill.md +2026-09-06-evidence-driven-performance-skill.md: 33725da5c3fa6b48f14728305d15b0e994af54f8 +2026-09-06-evidence-driven-performance-skill.zh.md: 7df77c104133f9fddeb7478b728603a56479835c diff --git a/.agents/notes/implemented/process/2026-09-06-evidence-driven-performance-skill.md b/.agents/notes/archived/process/2026-09-06-evidence-driven-performance-skill.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-06-evidence-driven-performance-skill.md rename to .agents/notes/archived/process/2026-09-06-evidence-driven-performance-skill.md index 221287ef03..33725da5c3 100644 --- a/.agents/notes/implemented/process/2026-09-06-evidence-driven-performance-skill.md +++ b/.agents/notes/archived/process/2026-09-06-evidence-driven-performance-skill.md @@ -1,6 +1,7 @@ # Agent Note: Evidence-driven performance optimization workflow Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-06-evidence-driven-performance-skill.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-06-evidence-driven-performance-skill.zh.md b/.agents/notes/archived/process/2026-09-06-evidence-driven-performance-skill.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-06-evidence-driven-performance-skill.zh.md rename to .agents/notes/archived/process/2026-09-06-evidence-driven-performance-skill.zh.md index 90e2c1aa57..7df77c1041 100644 --- a/.agents/notes/implemented/process/2026-09-06-evidence-driven-performance-skill.zh.md +++ b/.agents/notes/archived/process/2026-09-06-evidence-driven-performance-skill.zh.md @@ -1,6 +1,7 @@ # Agent Note: 以证据驱动的性能优化工作流 Status: implemented +Archived: 2026-09-30 [English](2026-09-06-evidence-driven-performance-skill.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-06-master-only-platform-ci.i18n.yaml b/.agents/notes/archived/process/2026-09-06-master-only-platform-ci.i18n.yaml new file mode 100644 index 0000000000..0bca3431cc --- /dev/null +++ b/.agents/notes/archived/process/2026-09-06-master-only-platform-ci.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-06-master-only-platform-ci.md +2026-09-06-master-only-platform-ci.md: cd2148ddf7bf65cec0257f7a2b0f4db7569889eb +2026-09-06-master-only-platform-ci.zh.md: 8806fbd9f6d8694235da82b8098289ec26071981 diff --git a/.agents/notes/implemented/process/2026-09-06-master-only-platform-ci.md b/.agents/notes/archived/process/2026-09-06-master-only-platform-ci.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-06-master-only-platform-ci.md rename to .agents/notes/archived/process/2026-09-06-master-only-platform-ci.md index fcdc413d64..cd2148ddf7 100644 --- a/.agents/notes/implemented/process/2026-09-06-master-only-platform-ci.md +++ b/.agents/notes/archived/process/2026-09-06-master-only-platform-ci.md @@ -1,6 +1,7 @@ # Agent Note: Master-only platform CI Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-06-master-only-platform-ci.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-06-master-only-platform-ci.zh.md b/.agents/notes/archived/process/2026-09-06-master-only-platform-ci.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-06-master-only-platform-ci.zh.md rename to .agents/notes/archived/process/2026-09-06-master-only-platform-ci.zh.md index 4fb55d5e95..8806fbd9f6 100644 --- a/.agents/notes/implemented/process/2026-09-06-master-only-platform-ci.zh.md +++ b/.agents/notes/archived/process/2026-09-06-master-only-platform-ci.zh.md @@ -1,6 +1,7 @@ # Agent Note: 仅 master 执行的平台 CI Status: implemented +Archived: 2026-09-30 [English](2026-09-06-master-only-platform-ci.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-06-node-compatibility-selfhosted.i18n.yaml b/.agents/notes/archived/process/2026-09-06-node-compatibility-selfhosted.i18n.yaml new file mode 100644 index 0000000000..bb503ec9f7 --- /dev/null +++ b/.agents/notes/archived/process/2026-09-06-node-compatibility-selfhosted.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-06-node-compatibility-selfhosted.md +2026-09-06-node-compatibility-selfhosted.md: cd8c7c4e1e27ec32d2a64bc7ddf765c4b8427344 +2026-09-06-node-compatibility-selfhosted.zh.md: 3800e7ef170b605594be20ccca5f617b751a214a diff --git a/.agents/notes/implemented/process/2026-09-06-node-compatibility-selfhosted.md b/.agents/notes/archived/process/2026-09-06-node-compatibility-selfhosted.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-06-node-compatibility-selfhosted.md rename to .agents/notes/archived/process/2026-09-06-node-compatibility-selfhosted.md index 0ed4227114..cd8c7c4e1e 100644 --- a/.agents/notes/implemented/process/2026-09-06-node-compatibility-selfhosted.md +++ b/.agents/notes/archived/process/2026-09-06-node-compatibility-selfhosted.md @@ -1,6 +1,7 @@ # Agent Note: Isolated Node compatibility jobs on self-hosted Linux Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-06-node-compatibility-selfhosted.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-06-node-compatibility-selfhosted.zh.md b/.agents/notes/archived/process/2026-09-06-node-compatibility-selfhosted.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-06-node-compatibility-selfhosted.zh.md rename to .agents/notes/archived/process/2026-09-06-node-compatibility-selfhosted.zh.md index 2e58e3e798..3800e7ef17 100644 --- a/.agents/notes/implemented/process/2026-09-06-node-compatibility-selfhosted.zh.md +++ b/.agents/notes/archived/process/2026-09-06-node-compatibility-selfhosted.zh.md @@ -1,6 +1,7 @@ # Agent Note: 自托管 Linux 上隔离的 Node 兼容性作业 Status: implemented +Archived: 2026-09-30 [English](2026-09-06-node-compatibility-selfhosted.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-06-preview-hosted-runner-sizing.i18n.yaml b/.agents/notes/archived/process/2026-09-06-preview-hosted-runner-sizing.i18n.yaml new file mode 100644 index 0000000000..2c462f7f98 --- /dev/null +++ b/.agents/notes/archived/process/2026-09-06-preview-hosted-runner-sizing.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-06-preview-hosted-runner-sizing.md +2026-09-06-preview-hosted-runner-sizing.md: 8ccaf66e059095be3a51330a063f83f1010c16e7 +2026-09-06-preview-hosted-runner-sizing.zh.md: 3a30032c20c00b7554ffd8cbcc9d22c7b0a89af8 diff --git a/.agents/notes/implemented/process/2026-09-06-preview-hosted-runner-sizing.md b/.agents/notes/archived/process/2026-09-06-preview-hosted-runner-sizing.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-06-preview-hosted-runner-sizing.md rename to .agents/notes/archived/process/2026-09-06-preview-hosted-runner-sizing.md index 414a17bf8a..8ccaf66e05 100644 --- a/.agents/notes/implemented/process/2026-09-06-preview-hosted-runner-sizing.md +++ b/.agents/notes/archived/process/2026-09-06-preview-hosted-runner-sizing.md @@ -1,6 +1,7 @@ # Agent Note: Measured GitHub-hosted PR preview sizing Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-06-preview-hosted-runner-sizing.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-06-preview-hosted-runner-sizing.zh.md b/.agents/notes/archived/process/2026-09-06-preview-hosted-runner-sizing.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-06-preview-hosted-runner-sizing.zh.md rename to .agents/notes/archived/process/2026-09-06-preview-hosted-runner-sizing.zh.md index 91a67b90b6..3a30032c20 100644 --- a/.agents/notes/implemented/process/2026-09-06-preview-hosted-runner-sizing.zh.md +++ b/.agents/notes/archived/process/2026-09-06-preview-hosted-runner-sizing.zh.md @@ -1,6 +1,7 @@ # Agent Note: 基于测量的 GitHub 托管 PR 预览规格 Status: implemented +Archived: 2026-09-30 [English](2026-09-06-preview-hosted-runner-sizing.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-06-release-rehearsal-selfhosted.i18n.yaml b/.agents/notes/archived/process/2026-09-06-release-rehearsal-selfhosted.i18n.yaml new file mode 100644 index 0000000000..2d3ef2e4f7 --- /dev/null +++ b/.agents/notes/archived/process/2026-09-06-release-rehearsal-selfhosted.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-06-release-rehearsal-selfhosted.md +2026-09-06-release-rehearsal-selfhosted.md: eea2a3804bb993ec98b45a9d3b7608fe08fa44c7 +2026-09-06-release-rehearsal-selfhosted.zh.md: 05f8d7192ce8bed99b90346fb7d02cd6c7f0fd71 diff --git a/.agents/notes/implemented/process/2026-09-06-release-rehearsal-selfhosted.md b/.agents/notes/archived/process/2026-09-06-release-rehearsal-selfhosted.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-06-release-rehearsal-selfhosted.md rename to .agents/notes/archived/process/2026-09-06-release-rehearsal-selfhosted.md index 415ae4716e..eea2a3804b 100644 --- a/.agents/notes/implemented/process/2026-09-06-release-rehearsal-selfhosted.md +++ b/.agents/notes/archived/process/2026-09-06-release-rehearsal-selfhosted.md @@ -1,6 +1,7 @@ # Agent Note: trusted release rehearsals on persistent Linux runners Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-06-release-rehearsal-selfhosted.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-06-release-rehearsal-selfhosted.zh.md b/.agents/notes/archived/process/2026-09-06-release-rehearsal-selfhosted.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-06-release-rehearsal-selfhosted.zh.md rename to .agents/notes/archived/process/2026-09-06-release-rehearsal-selfhosted.zh.md index a6fa441d01..05f8d7192c 100644 --- a/.agents/notes/implemented/process/2026-09-06-release-rehearsal-selfhosted.zh.md +++ b/.agents/notes/archived/process/2026-09-06-release-rehearsal-selfhosted.zh.md @@ -1,6 +1,7 @@ # Agent Note: 在持久化 Linux 运行器上执行受信任的发布演练 Status: implemented +Archived: 2026-09-30 [English](2026-09-06-release-rehearsal-selfhosted.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-07-selective-issue-policy-evaluation.i18n.yaml b/.agents/notes/archived/process/2026-09-07-selective-issue-policy-evaluation.i18n.yaml new file mode 100644 index 0000000000..918fa2c3e4 --- /dev/null +++ b/.agents/notes/archived/process/2026-09-07-selective-issue-policy-evaluation.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-07-selective-issue-policy-evaluation.md +2026-09-07-selective-issue-policy-evaluation.md: 07c564f95b8ab3904d807f6e709f45fffe6fc394 +2026-09-07-selective-issue-policy-evaluation.zh.md: f0d5133ab6284c25f3a079394d32359ab5c248ff diff --git a/.agents/notes/implemented/process/2026-09-07-selective-issue-policy-evaluation.md b/.agents/notes/archived/process/2026-09-07-selective-issue-policy-evaluation.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-07-selective-issue-policy-evaluation.md rename to .agents/notes/archived/process/2026-09-07-selective-issue-policy-evaluation.md index 5e05bef320..07c564f95b 100644 --- a/.agents/notes/implemented/process/2026-09-07-selective-issue-policy-evaluation.md +++ b/.agents/notes/archived/process/2026-09-07-selective-issue-policy-evaluation.md @@ -1,6 +1,7 @@ # Agent Note: Selective Issue policy evaluation Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-07-selective-issue-policy-evaluation.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-07-selective-issue-policy-evaluation.zh.md b/.agents/notes/archived/process/2026-09-07-selective-issue-policy-evaluation.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-07-selective-issue-policy-evaluation.zh.md rename to .agents/notes/archived/process/2026-09-07-selective-issue-policy-evaluation.zh.md index 37c531e14e..f0d5133ab6 100644 --- a/.agents/notes/implemented/process/2026-09-07-selective-issue-policy-evaluation.zh.md +++ b/.agents/notes/archived/process/2026-09-07-selective-issue-policy-evaluation.zh.md @@ -1,6 +1,7 @@ # Agent Note: Issue 策略的选择性求值 Status: implemented +Archived: 2026-09-30 [English](2026-09-07-selective-issue-policy-evaluation.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-08-browser-third-party-build-inputs.i18n.yaml b/.agents/notes/archived/process/2026-09-08-browser-third-party-build-inputs.i18n.yaml new file mode 100644 index 0000000000..535d6efbcf --- /dev/null +++ b/.agents/notes/archived/process/2026-09-08-browser-third-party-build-inputs.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-08-browser-third-party-build-inputs.md +2026-09-08-browser-third-party-build-inputs.md: c654ab50d1dfbf1e6782707bb9ed899a963905da +2026-09-08-browser-third-party-build-inputs.zh.md: 1ddd50e81abb91ee5a01d3fb6fdd074a2519b425 diff --git a/.agents/notes/implemented/process/2026-09-08-browser-third-party-build-inputs.md b/.agents/notes/archived/process/2026-09-08-browser-third-party-build-inputs.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-08-browser-third-party-build-inputs.md rename to .agents/notes/archived/process/2026-09-08-browser-third-party-build-inputs.md index 97e61f3b99..c654ab50d1 100644 --- a/.agents/notes/implemented/process/2026-09-08-browser-third-party-build-inputs.md +++ b/.agents/notes/archived/process/2026-09-08-browser-third-party-build-inputs.md @@ -1,6 +1,7 @@ # Agent Note: Browser third-party libraries as build inputs Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-08-browser-third-party-build-inputs.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-08-browser-third-party-build-inputs.zh.md b/.agents/notes/archived/process/2026-09-08-browser-third-party-build-inputs.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-08-browser-third-party-build-inputs.zh.md rename to .agents/notes/archived/process/2026-09-08-browser-third-party-build-inputs.zh.md index e23c4e9d46..1ddd50e81a 100644 --- a/.agents/notes/implemented/process/2026-09-08-browser-third-party-build-inputs.zh.md +++ b/.agents/notes/archived/process/2026-09-08-browser-third-party-build-inputs.zh.md @@ -1,6 +1,7 @@ # Agent Note: 浏览器第三方库作为构建输入 Status: implemented +Archived: 2026-09-30 [English](2026-09-08-browser-third-party-build-inputs.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-08-package-index-link-discovery.i18n.yaml b/.agents/notes/archived/process/2026-09-08-package-index-link-discovery.i18n.yaml new file mode 100644 index 0000000000..8d99fd295f --- /dev/null +++ b/.agents/notes/archived/process/2026-09-08-package-index-link-discovery.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-08-package-index-link-discovery.md +2026-09-08-package-index-link-discovery.md: b23626811d6d3ab79e7a2aa5abfcc88c1e355be3 +2026-09-08-package-index-link-discovery.zh.md: 016fd987f9244f6410c0a3b950245dc1d2836a02 diff --git a/.agents/notes/implemented/process/2026-09-08-package-index-link-discovery.md b/.agents/notes/archived/process/2026-09-08-package-index-link-discovery.md similarity index 98% rename from .agents/notes/implemented/process/2026-09-08-package-index-link-discovery.md rename to .agents/notes/archived/process/2026-09-08-package-index-link-discovery.md index be9084f72e..b23626811d 100644 --- a/.agents/notes/implemented/process/2026-09-08-package-index-link-discovery.md +++ b/.agents/notes/archived/process/2026-09-08-package-index-link-discovery.md @@ -1,6 +1,7 @@ # Agent Note: Include package indexes in Markdown link discovery Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-08-package-index-link-discovery.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-08-package-index-link-discovery.zh.md b/.agents/notes/archived/process/2026-09-08-package-index-link-discovery.zh.md similarity index 98% rename from .agents/notes/implemented/process/2026-09-08-package-index-link-discovery.zh.md rename to .agents/notes/archived/process/2026-09-08-package-index-link-discovery.zh.md index 93d6c21631..016fd987f9 100644 --- a/.agents/notes/implemented/process/2026-09-08-package-index-link-discovery.zh.md +++ b/.agents/notes/archived/process/2026-09-08-package-index-link-discovery.zh.md @@ -1,6 +1,7 @@ # Agent Note: 将包索引纳入 Markdown 链接发现范围 Status: implemented +Archived: 2026-09-30 [English](2026-09-08-package-index-link-discovery.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-08-playwright-video-gif.i18n.yaml b/.agents/notes/archived/process/2026-09-08-playwright-video-gif.i18n.yaml new file mode 100644 index 0000000000..bbff172425 --- /dev/null +++ b/.agents/notes/archived/process/2026-09-08-playwright-video-gif.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-08-playwright-video-gif.md +2026-09-08-playwright-video-gif.md: ef7a1f9cbfc487428df50fda10ce9b64ef292dbb +2026-09-08-playwright-video-gif.zh.md: 35c487419daa5bd8ac92484de53d1e1c69527b2c diff --git a/.agents/notes/implemented/process/2026-09-08-playwright-video-gif.md b/.agents/notes/archived/process/2026-09-08-playwright-video-gif.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-08-playwright-video-gif.md rename to .agents/notes/archived/process/2026-09-08-playwright-video-gif.md index 44db048149..ef7a1f9cbf 100644 --- a/.agents/notes/implemented/process/2026-09-08-playwright-video-gif.md +++ b/.agents/notes/archived/process/2026-09-08-playwright-video-gif.md @@ -1,6 +1,7 @@ # Agent Note: Playwright video captures continuous browser demos Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-08-playwright-video-gif.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-08-playwright-video-gif.zh.md b/.agents/notes/archived/process/2026-09-08-playwright-video-gif.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-08-playwright-video-gif.zh.md rename to .agents/notes/archived/process/2026-09-08-playwright-video-gif.zh.md index 4922d739f0..35c487419d 100644 --- a/.agents/notes/implemented/process/2026-09-08-playwright-video-gif.zh.md +++ b/.agents/notes/archived/process/2026-09-08-playwright-video-gif.zh.md @@ -1,6 +1,7 @@ # Agent Note: Playwright 视频录制连续浏览器演示 Status: implemented +Archived: 2026-09-30 [English](2026-09-08-playwright-video-gif.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-09-blocked-weighted-approvals-remain-pending.i18n.yaml b/.agents/notes/archived/process/2026-09-09-blocked-weighted-approvals-remain-pending.i18n.yaml new file mode 100644 index 0000000000..2da9f1e69e --- /dev/null +++ b/.agents/notes/archived/process/2026-09-09-blocked-weighted-approvals-remain-pending.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-09-blocked-weighted-approvals-remain-pending.md +2026-09-09-blocked-weighted-approvals-remain-pending.md: 1cd01bb4661f7b98df59385f1105774969f5b71d +2026-09-09-blocked-weighted-approvals-remain-pending.zh.md: ca9480c2fd38141be541aeb30c2ebe36a9600d2a diff --git a/.agents/notes/implemented/process/2026-09-09-blocked-weighted-approvals-remain-pending.md b/.agents/notes/archived/process/2026-09-09-blocked-weighted-approvals-remain-pending.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-09-blocked-weighted-approvals-remain-pending.md rename to .agents/notes/archived/process/2026-09-09-blocked-weighted-approvals-remain-pending.md index 50ab64dadc..1cd01bb466 100644 --- a/.agents/notes/implemented/process/2026-09-09-blocked-weighted-approvals-remain-pending.md +++ b/.agents/notes/archived/process/2026-09-09-blocked-weighted-approvals-remain-pending.md @@ -1,6 +1,7 @@ # Agent Note: Blocked weighted approvals remain pending Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-09-blocked-weighted-approvals-remain-pending.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-09-blocked-weighted-approvals-remain-pending.zh.md b/.agents/notes/archived/process/2026-09-09-blocked-weighted-approvals-remain-pending.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-09-blocked-weighted-approvals-remain-pending.zh.md rename to .agents/notes/archived/process/2026-09-09-blocked-weighted-approvals-remain-pending.zh.md index 58ab10b3ac..ca9480c2fd 100644 --- a/.agents/notes/implemented/process/2026-09-09-blocked-weighted-approvals-remain-pending.zh.md +++ b/.agents/notes/archived/process/2026-09-09-blocked-weighted-approvals-remain-pending.zh.md @@ -1,6 +1,7 @@ # Agent Note: 阻塞中的加权批准保持 pending Status: implemented +Archived: 2026-09-30 [English](2026-09-09-blocked-weighted-approvals-remain-pending.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-09-cancel-superseded-ci.i18n.yaml b/.agents/notes/archived/process/2026-09-09-cancel-superseded-ci.i18n.yaml new file mode 100644 index 0000000000..55b0948851 --- /dev/null +++ b/.agents/notes/archived/process/2026-09-09-cancel-superseded-ci.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-09-cancel-superseded-ci.md +2026-09-09-cancel-superseded-ci.md: cb6c906d7507c2c2345faa72072a293a3a663968 +2026-09-09-cancel-superseded-ci.zh.md: e3a6b50e70cb721d84418ff097040ea2bdea3fcd diff --git a/.agents/notes/implemented/process/2026-09-09-cancel-superseded-ci.md b/.agents/notes/archived/process/2026-09-09-cancel-superseded-ci.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-09-cancel-superseded-ci.md rename to .agents/notes/archived/process/2026-09-09-cancel-superseded-ci.md index 8de1f75787..cb6c906d75 100644 --- a/.agents/notes/implemented/process/2026-09-09-cancel-superseded-ci.md +++ b/.agents/notes/archived/process/2026-09-09-cancel-superseded-ci.md @@ -1,6 +1,7 @@ # Agent Note: Cancel superseded CI validation Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-09-cancel-superseded-ci.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-09-cancel-superseded-ci.zh.md b/.agents/notes/archived/process/2026-09-09-cancel-superseded-ci.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-09-cancel-superseded-ci.zh.md rename to .agents/notes/archived/process/2026-09-09-cancel-superseded-ci.zh.md index 3ae6ec6ad5..e3a6b50e70 100644 --- a/.agents/notes/implemented/process/2026-09-09-cancel-superseded-ci.zh.md +++ b/.agents/notes/archived/process/2026-09-09-cancel-superseded-ci.zh.md @@ -1,6 +1,7 @@ # Agent Note: 取消被取代的 CI 验证 Status: implemented +Archived: 2026-09-30 [English](2026-09-09-cancel-superseded-ci.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-10-approval-review-workflow-identity.i18n.yaml b/.agents/notes/archived/process/2026-09-10-approval-review-workflow-identity.i18n.yaml new file mode 100644 index 0000000000..d619b5ee89 --- /dev/null +++ b/.agents/notes/archived/process/2026-09-10-approval-review-workflow-identity.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-10-approval-review-workflow-identity.md +2026-09-10-approval-review-workflow-identity.md: e89db3c0e869ab3770c071018ec7de88f18f9ad5 +2026-09-10-approval-review-workflow-identity.zh.md: ce4885ae1f30a69d21c629a3f592b0700d8acac2 diff --git a/.agents/notes/implemented/process/2026-09-10-approval-review-workflow-identity.md b/.agents/notes/archived/process/2026-09-10-approval-review-workflow-identity.md similarity index 98% rename from .agents/notes/implemented/process/2026-09-10-approval-review-workflow-identity.md rename to .agents/notes/archived/process/2026-09-10-approval-review-workflow-identity.md index 77164134e8..e89db3c0e8 100644 --- a/.agents/notes/implemented/process/2026-09-10-approval-review-workflow-identity.md +++ b/.agents/notes/archived/process/2026-09-10-approval-review-workflow-identity.md @@ -1,6 +1,7 @@ # Agent Note: Identify approval review workflows by file path Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-10-approval-review-workflow-identity.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-10-approval-review-workflow-identity.zh.md b/.agents/notes/archived/process/2026-09-10-approval-review-workflow-identity.zh.md similarity index 98% rename from .agents/notes/implemented/process/2026-09-10-approval-review-workflow-identity.zh.md rename to .agents/notes/archived/process/2026-09-10-approval-review-workflow-identity.zh.md index 736851d6f3..ce4885ae1f 100644 --- a/.agents/notes/implemented/process/2026-09-10-approval-review-workflow-identity.zh.md +++ b/.agents/notes/archived/process/2026-09-10-approval-review-workflow-identity.zh.md @@ -1,6 +1,7 @@ # Agent Note: 按文件路径识别审批评审工作流 Status: implemented +Archived: 2026-09-30 [English](2026-09-10-approval-review-workflow-identity.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-11-production-blame-approval-weight.i18n.yaml b/.agents/notes/archived/process/2026-09-11-production-blame-approval-weight.i18n.yaml new file mode 100644 index 0000000000..00ff708436 --- /dev/null +++ b/.agents/notes/archived/process/2026-09-11-production-blame-approval-weight.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-11-production-blame-approval-weight.md +2026-09-11-production-blame-approval-weight.md: a29e02cc0a900ed02a79d4ca0ee7eedc001b5d3a +2026-09-11-production-blame-approval-weight.zh.md: d25a791fa5c03dead3a98a8bae8d0ba9e558c48a diff --git a/.agents/notes/implemented/process/2026-09-11-production-blame-approval-weight.md b/.agents/notes/archived/process/2026-09-11-production-blame-approval-weight.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-11-production-blame-approval-weight.md rename to .agents/notes/archived/process/2026-09-11-production-blame-approval-weight.md index d9a223c2f3..a29e02cc0a 100644 --- a/.agents/notes/implemented/process/2026-09-11-production-blame-approval-weight.md +++ b/.agents/notes/archived/process/2026-09-11-production-blame-approval-weight.md @@ -1,6 +1,7 @@ # Agent Note: Weight approvals by changed production-line ownership Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-11-production-blame-approval-weight.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-11-production-blame-approval-weight.zh.md b/.agents/notes/archived/process/2026-09-11-production-blame-approval-weight.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-11-production-blame-approval-weight.zh.md rename to .agents/notes/archived/process/2026-09-11-production-blame-approval-weight.zh.md index f4dfc9d4fc..d25a791fa5 100644 --- a/.agents/notes/implemented/process/2026-09-11-production-blame-approval-weight.zh.md +++ b/.agents/notes/archived/process/2026-09-11-production-blame-approval-weight.zh.md @@ -1,6 +1,7 @@ # Agent Note: 按变更生产代码行的归属调整审批权重 Status: implemented +Archived: 2026-09-30 [English](2026-09-11-production-blame-approval-weight.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-12-experimental-publication-denylist.i18n.yaml b/.agents/notes/archived/process/2026-09-12-experimental-publication-denylist.i18n.yaml new file mode 100644 index 0000000000..c66c8013dc --- /dev/null +++ b/.agents/notes/archived/process/2026-09-12-experimental-publication-denylist.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-12-experimental-publication-denylist.md +2026-09-12-experimental-publication-denylist.md: 8e45ceb8ef5b5746e6ebf6afca6caca846fad56b +2026-09-12-experimental-publication-denylist.zh.md: 53d4c07dea3856c826667afa492a94b6e6701d72 diff --git a/.agents/notes/implemented/process/2026-09-12-experimental-publication-denylist.md b/.agents/notes/archived/process/2026-09-12-experimental-publication-denylist.md similarity index 83% rename from .agents/notes/implemented/process/2026-09-12-experimental-publication-denylist.md rename to .agents/notes/archived/process/2026-09-12-experimental-publication-denylist.md index f19faa1f39..8e45ceb8ef 100644 --- a/.agents/notes/implemented/process/2026-09-12-experimental-publication-denylist.md +++ b/.agents/notes/archived/process/2026-09-12-experimental-publication-denylist.md @@ -1,6 +1,7 @@ # Agent Note: Publish experimental packages with explicit private exceptions Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-12-experimental-publication-denylist.zh.md) @@ -10,7 +11,7 @@ An allowlist for public experimental packages requires a policy edit whenever a ## Decision -The local npm baseline publisher and the public dsh release family discover experimental packages by default. [`PRIVATE_EXPERIMENTAL_PACKAGE_DIRECTORIES`](../../../../scripts/experimental-package-policy.ts) owns explicit private exclusions. The [complete experimental publication decision](2026-09-12-publish-all-experimental-packages.md) leaves this denylist empty; all current experimental packages publish. +The local npm baseline publisher and the public dsh release family discover experimental packages by default. [`PRIVATE_EXPERIMENTAL_PACKAGE_DIRECTORIES`](../../../../scripts/experimental-package-policy.ts) owns explicit private exclusions. The denylist is empty, so all current experimental packages publish. Every experimental directory outside the denylist is public by default. Workspace constraints require public packages to omit `private` and set `publishConfig.access: public`; all experimental packages retain the `@deepseek-ai/dsh-experimental-*` npm prefix. Adding a private prototype requires a denylist entry as well as its private manifest. @@ -20,7 +21,7 @@ This decision supersedes the private publication default in the [Agent Teams pac **Retain a public allowlist.** Every new public experimental package needs another policy entry, even though the default publication path can discover it. -**Publish every experimental package immediately.** This would expose the existing internal-only prototypes. An explicit private denylist changes the default for new packages while preserving their current publication status. The [complete publication decision](2026-09-12-publish-all-experimental-packages.md) records their separate publication. +**Publish every experimental package immediately.** This would expose the existing internal-only prototypes. An explicit private denylist changes the default for new packages while preserving their current publication status. The [archived publication decision](../../archived/process/2026-09-12-publish-all-experimental-packages.md) records their subsequent publication. ## Consequences diff --git a/.agents/notes/implemented/process/2026-09-12-experimental-publication-denylist.zh.md b/.agents/notes/archived/process/2026-09-12-experimental-publication-denylist.zh.md similarity index 82% rename from .agents/notes/implemented/process/2026-09-12-experimental-publication-denylist.zh.md rename to .agents/notes/archived/process/2026-09-12-experimental-publication-denylist.zh.md index 92a1c6d5cd..53d4c07dea 100644 --- a/.agents/notes/implemented/process/2026-09-12-experimental-publication-denylist.zh.md +++ b/.agents/notes/archived/process/2026-09-12-experimental-publication-denylist.zh.md @@ -1,6 +1,7 @@ # Agent Note: 默认发布实验性包并保留显式私有例外 Status: implemented +Archived: 2026-09-30 [English](2026-09-12-experimental-publication-denylist.md) | 中文 @@ -10,7 +11,7 @@ Status: implemented ## 决策 -本地 npm baseline 发布器与公开 dsh 发布系列默认发现实验性包。[`PRIVATE_EXPERIMENTAL_PACKAGE_DIRECTORIES`](../../../../scripts/experimental-package-policy.ts) 负责显式私有排除项。[完整实验包发布决策](2026-09-12-publish-all-experimental-packages.zh.md)使该拒绝列表保持为空;所有当前实验性包都参与发布。 +本地 npm baseline 发布器与公开 dsh 发布系列默认发现实验性包。[`PRIVATE_EXPERIMENTAL_PACKAGE_DIRECTORIES`](../../../../scripts/experimental-package-policy.ts) 负责显式私有排除项。拒绝列表为空,因此所有当前实验性包都参与发布。 拒绝列表以外的每个实验性目录默认公开。workspace 约束要求公开包省略 `private` 并设置 `publishConfig.access: public`;所有实验性包保留 `@deepseek-ai/dsh-experimental-*` npm 前缀。添加私有原型需要拒绝列表条目及其私有 manifest(元数据清单)。 @@ -20,7 +21,7 @@ Status: implemented **保留公开允许列表。** 即使默认发布路径能够发现新公开实验性包,每个包仍需要额外的策略条目。 -**立即发布所有实验性包。** 这会暴露现有的内部专用原型。显式私有拒绝列表改变新包的默认策略,同时保留这些原型的当前发布状态。[完整发布决策](2026-09-12-publish-all-experimental-packages.zh.md)记录了对这些包的单独发布决定。 +**立即发布所有实验性包。** 这会暴露现有的内部专用原型。显式私有拒绝列表改变新包的默认策略,同时保留这些原型的当前发布状态。[已归档的发布决策](../../archived/process/2026-09-12-publish-all-experimental-packages.md)记录了这些包后来的发布。 ## 后果 diff --git a/.agents/notes/archived/process/2026-09-12-maintained-repository-references.i18n.yaml b/.agents/notes/archived/process/2026-09-12-maintained-repository-references.i18n.yaml new file mode 100644 index 0000000000..c4d2fb5f82 --- /dev/null +++ b/.agents/notes/archived/process/2026-09-12-maintained-repository-references.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-12-maintained-repository-references.md +2026-09-12-maintained-repository-references.md: b63c4315dba420a49b709787b098cc5402c6d391 +2026-09-12-maintained-repository-references.zh.md: 9c167d16bdca823c369d4a176ed35dee0d20cf6e diff --git a/.agents/notes/implemented/process/2026-09-12-maintained-repository-references.md b/.agents/notes/archived/process/2026-09-12-maintained-repository-references.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-12-maintained-repository-references.md rename to .agents/notes/archived/process/2026-09-12-maintained-repository-references.md index b2bc750100..b63c4315db 100644 --- a/.agents/notes/implemented/process/2026-09-12-maintained-repository-references.md +++ b/.agents/notes/archived/process/2026-09-12-maintained-repository-references.md @@ -1,6 +1,7 @@ # Agent Note: Maintained repository references Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-12-maintained-repository-references.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-12-maintained-repository-references.zh.md b/.agents/notes/archived/process/2026-09-12-maintained-repository-references.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-12-maintained-repository-references.zh.md rename to .agents/notes/archived/process/2026-09-12-maintained-repository-references.zh.md index 99216e8105..9c167d16bd 100644 --- a/.agents/notes/implemented/process/2026-09-12-maintained-repository-references.zh.md +++ b/.agents/notes/archived/process/2026-09-12-maintained-repository-references.zh.md @@ -1,6 +1,7 @@ # Agent Note: 维护中的仓库引用 Status: implemented +Archived: 2026-09-30 [English](2026-09-12-maintained-repository-references.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-12-publish-all-experimental-packages.i18n.yaml b/.agents/notes/archived/process/2026-09-12-publish-all-experimental-packages.i18n.yaml new file mode 100644 index 0000000000..24a2b06c8f --- /dev/null +++ b/.agents/notes/archived/process/2026-09-12-publish-all-experimental-packages.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-12-publish-all-experimental-packages.md +2026-09-12-publish-all-experimental-packages.md: f8d586fb7e58273d912efe56542fb04ff0637642 +2026-09-12-publish-all-experimental-packages.zh.md: 7a4659369c88e05722184551f90b9c44933dc635 diff --git a/.agents/notes/implemented/process/2026-09-12-publish-all-experimental-packages.md b/.agents/notes/archived/process/2026-09-12-publish-all-experimental-packages.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-12-publish-all-experimental-packages.md rename to .agents/notes/archived/process/2026-09-12-publish-all-experimental-packages.md index 8bef877297..f8d586fb7e 100644 --- a/.agents/notes/implemented/process/2026-09-12-publish-all-experimental-packages.md +++ b/.agents/notes/archived/process/2026-09-12-publish-all-experimental-packages.md @@ -1,6 +1,7 @@ # Agent Note: Publish every current experimental package Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-12-publish-all-experimental-packages.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-12-publish-all-experimental-packages.zh.md b/.agents/notes/archived/process/2026-09-12-publish-all-experimental-packages.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-12-publish-all-experimental-packages.zh.md rename to .agents/notes/archived/process/2026-09-12-publish-all-experimental-packages.zh.md index 6163e6b4ac..7a4659369c 100644 --- a/.agents/notes/implemented/process/2026-09-12-publish-all-experimental-packages.zh.md +++ b/.agents/notes/archived/process/2026-09-12-publish-all-experimental-packages.zh.md @@ -1,6 +1,7 @@ # Agent Note: 发布所有当前实验性包 Status: implemented +Archived: 2026-09-30 [English](2026-09-12-publish-all-experimental-packages.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-15-pr-approval-delegation.i18n.yaml b/.agents/notes/archived/process/2026-09-15-pr-approval-delegation.i18n.yaml new file mode 100644 index 0000000000..ea0e44bd61 --- /dev/null +++ b/.agents/notes/archived/process/2026-09-15-pr-approval-delegation.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-15-pr-approval-delegation.md +2026-09-15-pr-approval-delegation.md: 8165f4f0eec28e44b91aa074004fab43a6702d3d +2026-09-15-pr-approval-delegation.zh.md: da4c0dcf8ee920d73082abb6bb234860c7502ddf diff --git a/.agents/notes/implemented/process/2026-09-15-pr-approval-delegation.md b/.agents/notes/archived/process/2026-09-15-pr-approval-delegation.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-15-pr-approval-delegation.md rename to .agents/notes/archived/process/2026-09-15-pr-approval-delegation.md index 4dcf0e8a8d..8165f4f0ee 100644 --- a/.agents/notes/implemented/process/2026-09-15-pr-approval-delegation.md +++ b/.agents/notes/archived/process/2026-09-15-pr-approval-delegation.md @@ -1,6 +1,7 @@ # Agent Note: PR-scoped approval delegation Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-15-pr-approval-delegation.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-15-pr-approval-delegation.zh.md b/.agents/notes/archived/process/2026-09-15-pr-approval-delegation.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-15-pr-approval-delegation.zh.md rename to .agents/notes/archived/process/2026-09-15-pr-approval-delegation.zh.md index bf21724d67..da4c0dcf8e 100644 --- a/.agents/notes/implemented/process/2026-09-15-pr-approval-delegation.zh.md +++ b/.agents/notes/archived/process/2026-09-15-pr-approval-delegation.zh.md @@ -1,6 +1,7 @@ # Agent Note: PR 范围内的批准委托 Status: implemented +Archived: 2026-09-30 [English](2026-09-15-pr-approval-delegation.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-16-author-approval-credit.i18n.yaml b/.agents/notes/archived/process/2026-09-16-author-approval-credit.i18n.yaml new file mode 100644 index 0000000000..ee60ccc06b --- /dev/null +++ b/.agents/notes/archived/process/2026-09-16-author-approval-credit.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-16-author-approval-credit.md +2026-09-16-author-approval-credit.md: 85e8a16db2a2bfd31773274d0b6215cda293c95e +2026-09-16-author-approval-credit.zh.md: 42aa544aceb4b0e5cbc01c8081b14994f6a9b4f7 diff --git a/.agents/notes/implemented/process/2026-09-16-author-approval-credit.md b/.agents/notes/archived/process/2026-09-16-author-approval-credit.md similarity index 98% rename from .agents/notes/implemented/process/2026-09-16-author-approval-credit.md rename to .agents/notes/archived/process/2026-09-16-author-approval-credit.md index ab7aba8880..85e8a16db2 100644 --- a/.agents/notes/implemented/process/2026-09-16-author-approval-credit.md +++ b/.agents/notes/archived/process/2026-09-16-author-approval-credit.md @@ -1,6 +1,7 @@ # Agent Note: Author approval credit Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-16-author-approval-credit.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-16-author-approval-credit.zh.md b/.agents/notes/archived/process/2026-09-16-author-approval-credit.zh.md similarity index 98% rename from .agents/notes/implemented/process/2026-09-16-author-approval-credit.zh.md rename to .agents/notes/archived/process/2026-09-16-author-approval-credit.zh.md index 316a09ea5d..42aa544ace 100644 --- a/.agents/notes/implemented/process/2026-09-16-author-approval-credit.zh.md +++ b/.agents/notes/archived/process/2026-09-16-author-approval-credit.zh.md @@ -1,6 +1,7 @@ # Agent Note: 作者审批积分 Status: implemented +Archived: 2026-09-30 [English](2026-09-16-author-approval-credit.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-16-desktop-release-version-derivation.i18n.yaml b/.agents/notes/archived/process/2026-09-16-desktop-release-version-derivation.i18n.yaml new file mode 100644 index 0000000000..bc557847d3 --- /dev/null +++ b/.agents/notes/archived/process/2026-09-16-desktop-release-version-derivation.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-16-desktop-release-version-derivation.md +2026-09-16-desktop-release-version-derivation.md: e7c89e7bca935f92d9395fee6d17d13b1080952f +2026-09-16-desktop-release-version-derivation.zh.md: 17fd98c51ccf88eceef511d8e43a6bcaefc55c41 diff --git a/.agents/notes/implemented/process/2026-09-16-desktop-release-version-derivation.md b/.agents/notes/archived/process/2026-09-16-desktop-release-version-derivation.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-16-desktop-release-version-derivation.md rename to .agents/notes/archived/process/2026-09-16-desktop-release-version-derivation.md index 54a7b9d52c..e7c89e7bca 100644 --- a/.agents/notes/implemented/process/2026-09-16-desktop-release-version-derivation.md +++ b/.agents/notes/archived/process/2026-09-16-desktop-release-version-derivation.md @@ -1,6 +1,7 @@ # Agent Note: Derive Desktop test versions from the complete dsh version Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-16-desktop-release-version-derivation.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-16-desktop-release-version-derivation.zh.md b/.agents/notes/archived/process/2026-09-16-desktop-release-version-derivation.zh.md similarity index 98% rename from .agents/notes/implemented/process/2026-09-16-desktop-release-version-derivation.zh.md rename to .agents/notes/archived/process/2026-09-16-desktop-release-version-derivation.zh.md index dddf4b7732..17fd98c51c 100644 --- a/.agents/notes/implemented/process/2026-09-16-desktop-release-version-derivation.zh.md +++ b/.agents/notes/archived/process/2026-09-16-desktop-release-version-derivation.zh.md @@ -1,6 +1,7 @@ # Agent Note: 从完整 dsh 版本派生 Desktop 测试版本 Status: implemented +Archived: 2026-09-30 [English](2026-09-16-desktop-release-version-derivation.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-19-evidence-led-simplification-surveys.i18n.yaml b/.agents/notes/archived/process/2026-09-19-evidence-led-simplification-surveys.i18n.yaml new file mode 100644 index 0000000000..d9b3053f90 --- /dev/null +++ b/.agents/notes/archived/process/2026-09-19-evidence-led-simplification-surveys.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-19-evidence-led-simplification-surveys.md +2026-09-19-evidence-led-simplification-surveys.md: 04942f69cd0d2bb53fce34a6b8a00b80f1b8f84e +2026-09-19-evidence-led-simplification-surveys.zh.md: f899208ee75897b949d04fcf76c63ef5a82579b3 diff --git a/.agents/notes/implemented/process/2026-09-19-evidence-led-simplification-surveys.md b/.agents/notes/archived/process/2026-09-19-evidence-led-simplification-surveys.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-19-evidence-led-simplification-surveys.md rename to .agents/notes/archived/process/2026-09-19-evidence-led-simplification-surveys.md index c217f80239..04942f69cd 100644 --- a/.agents/notes/implemented/process/2026-09-19-evidence-led-simplification-surveys.md +++ b/.agents/notes/archived/process/2026-09-19-evidence-led-simplification-surveys.md @@ -1,6 +1,7 @@ # Agent Note: Evidence-led simplification surveys Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-19-evidence-led-simplification-surveys.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-19-evidence-led-simplification-surveys.zh.md b/.agents/notes/archived/process/2026-09-19-evidence-led-simplification-surveys.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-19-evidence-led-simplification-surveys.zh.md rename to .agents/notes/archived/process/2026-09-19-evidence-led-simplification-surveys.zh.md index 1b1a117319..f899208ee7 100644 --- a/.agents/notes/implemented/process/2026-09-19-evidence-led-simplification-surveys.zh.md +++ b/.agents/notes/archived/process/2026-09-19-evidence-led-simplification-surveys.zh.md @@ -1,6 +1,7 @@ # Agent Note: 以证据指导简化调研 Status: implemented +Archived: 2026-09-30 [English](2026-09-19-evidence-led-simplification-surveys.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-21-desktop-build-version-as-input.i18n.yaml b/.agents/notes/archived/process/2026-09-21-desktop-build-version-as-input.i18n.yaml new file mode 100644 index 0000000000..0221680129 --- /dev/null +++ b/.agents/notes/archived/process/2026-09-21-desktop-build-version-as-input.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-21-desktop-build-version-as-input.md +2026-09-21-desktop-build-version-as-input.md: 8175d41166666be5ee5070a75e6fe23eb00c73fd +2026-09-21-desktop-build-version-as-input.zh.md: 076492a02be2fcb1cf4aea1345cdd5479173392a diff --git a/.agents/notes/implemented/process/2026-09-21-desktop-build-version-as-input.md b/.agents/notes/archived/process/2026-09-21-desktop-build-version-as-input.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-21-desktop-build-version-as-input.md rename to .agents/notes/archived/process/2026-09-21-desktop-build-version-as-input.md index 8653c1ed58..8175d41166 100644 --- a/.agents/notes/implemented/process/2026-09-21-desktop-build-version-as-input.md +++ b/.agents/notes/archived/process/2026-09-21-desktop-build-version-as-input.md @@ -1,6 +1,7 @@ # Agent Note: Pass the Desktop build version as an argument instead of rewriting manifests Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-21-desktop-build-version-as-input.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-21-desktop-build-version-as-input.zh.md b/.agents/notes/archived/process/2026-09-21-desktop-build-version-as-input.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-21-desktop-build-version-as-input.zh.md rename to .agents/notes/archived/process/2026-09-21-desktop-build-version-as-input.zh.md index 0a995ab574..076492a02b 100644 --- a/.agents/notes/implemented/process/2026-09-21-desktop-build-version-as-input.zh.md +++ b/.agents/notes/archived/process/2026-09-21-desktop-build-version-as-input.zh.md @@ -1,6 +1,7 @@ # Agent Note:Desktop 发布版本改为命令参数,不再改写清单 Status: implemented +Archived: 2026-09-30 [English](2026-09-21-desktop-build-version-as-input.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.i18n.yaml b/.agents/notes/archived/process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.i18n.yaml new file mode 100644 index 0000000000..f22494740b --- /dev/null +++ b/.agents/notes/archived/process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.md +2026-09-22-desktop-main-bundle-after-workspace-tsdown.md: 14cdec05f876d2656f2b232dae3dfc15374f4b99 +2026-09-22-desktop-main-bundle-after-workspace-tsdown.zh.md: f0fcaf6529634150e7d69cdb1395ec62eb45b454 diff --git a/.agents/notes/implemented/process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.md b/.agents/notes/archived/process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.md rename to .agents/notes/archived/process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.md index 3c997f0707..14cdec05f8 100644 --- a/.agents/notes/implemented/process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.md +++ b/.agents/notes/archived/process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.md @@ -1,6 +1,7 @@ # Agent Note: Bundle the Desktop main process after the workspace tsdown pass Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-22-desktop-main-bundle-after-workspace-tsdown.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.zh.md b/.agents/notes/archived/process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.zh.md rename to .agents/notes/archived/process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.zh.md index 3f741125f6..f0fcaf6529 100644 --- a/.agents/notes/implemented/process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.zh.md +++ b/.agents/notes/archived/process/2026-09-22-desktop-main-bundle-after-workspace-tsdown.zh.md @@ -1,6 +1,7 @@ # Agent Note:Desktop 主进程在工作区 tsdown 阶段之后再打 bundle Status: implemented +Archived: 2026-09-30 [English](2026-09-22-desktop-main-bundle-after-workspace-tsdown.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-22-workspace-release-ranges.i18n.yaml b/.agents/notes/archived/process/2026-09-22-workspace-release-ranges.i18n.yaml new file mode 100644 index 0000000000..3fc26993b0 --- /dev/null +++ b/.agents/notes/archived/process/2026-09-22-workspace-release-ranges.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-22-workspace-release-ranges.md +2026-09-22-workspace-release-ranges.md: dc042ccc1f36b4af382f16754d1251b7303171d1 +2026-09-22-workspace-release-ranges.zh.md: 0d691a7a822d558dcca272f390e9d59e5d320720 diff --git a/.agents/notes/implemented/process/2026-09-22-workspace-release-ranges.md b/.agents/notes/archived/process/2026-09-22-workspace-release-ranges.md similarity index 98% rename from .agents/notes/implemented/process/2026-09-22-workspace-release-ranges.md rename to .agents/notes/archived/process/2026-09-22-workspace-release-ranges.md index 57c74df3ea..dc042ccc1f 100644 --- a/.agents/notes/implemented/process/2026-09-22-workspace-release-ranges.md +++ b/.agents/notes/archived/process/2026-09-22-workspace-release-ranges.md @@ -1,6 +1,7 @@ # Agent Note: Workspace dependency release ranges Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-22-workspace-release-ranges.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-22-workspace-release-ranges.zh.md b/.agents/notes/archived/process/2026-09-22-workspace-release-ranges.zh.md similarity index 98% rename from .agents/notes/implemented/process/2026-09-22-workspace-release-ranges.zh.md rename to .agents/notes/archived/process/2026-09-22-workspace-release-ranges.zh.md index f39ede4fb1..0d691a7a82 100644 --- a/.agents/notes/implemented/process/2026-09-22-workspace-release-ranges.zh.md +++ b/.agents/notes/archived/process/2026-09-22-workspace-release-ranges.zh.md @@ -1,6 +1,7 @@ # Agent Note: Workspace 依赖发布范围 Status: implemented +Archived: 2026-09-30 [English](2026-09-22-workspace-release-ranges.md) | 中文 diff --git a/.agents/notes/archived/process/2026-09-23-section-keyed-translation-pairing-records.i18n.yaml b/.agents/notes/archived/process/2026-09-23-section-keyed-translation-pairing-records.i18n.yaml new file mode 100644 index 0000000000..3d4a6cfa04 --- /dev/null +++ b/.agents/notes/archived/process/2026-09-23-section-keyed-translation-pairing-records.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/process/2026-09-23-section-keyed-translation-pairing-records.md +2026-09-23-section-keyed-translation-pairing-records.md: b0ae04be7b79cfd0f77eb6fe634e832c8a650204 +2026-09-23-section-keyed-translation-pairing-records.zh.md: c018642890a62add69d99f7daac1e6cba534e186 diff --git a/.agents/notes/implemented/process/2026-09-23-section-keyed-translation-pairing-records.md b/.agents/notes/archived/process/2026-09-23-section-keyed-translation-pairing-records.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-23-section-keyed-translation-pairing-records.md rename to .agents/notes/archived/process/2026-09-23-section-keyed-translation-pairing-records.md index e01eac4bbc..b0ae04be7b 100644 --- a/.agents/notes/implemented/process/2026-09-23-section-keyed-translation-pairing-records.md +++ b/.agents/notes/archived/process/2026-09-23-section-keyed-translation-pairing-records.md @@ -1,6 +1,7 @@ # Agent Note: Section-keyed translation pairing records Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-23-section-keyed-translation-pairing-records.zh.md) diff --git a/.agents/notes/implemented/process/2026-09-23-section-keyed-translation-pairing-records.zh.md b/.agents/notes/archived/process/2026-09-23-section-keyed-translation-pairing-records.zh.md similarity index 99% rename from .agents/notes/implemented/process/2026-09-23-section-keyed-translation-pairing-records.zh.md rename to .agents/notes/archived/process/2026-09-23-section-keyed-translation-pairing-records.zh.md index e4746a5092..c018642890 100644 --- a/.agents/notes/implemented/process/2026-09-23-section-keyed-translation-pairing-records.zh.md +++ b/.agents/notes/archived/process/2026-09-23-section-keyed-translation-pairing-records.zh.md @@ -1,6 +1,7 @@ # Agent Note: 按分节记录翻译配对 Status: implemented +Archived: 2026-09-30 [English](2026-09-23-section-keyed-translation-pairing-records.md) | 中文 diff --git a/.agents/notes/archived/simplification/2026-06-20-collapse-trace-only-session-events.i18n.yaml b/.agents/notes/archived/simplification/2026-06-20-collapse-trace-only-session-events.i18n.yaml new file mode 100644 index 0000000000..bd78c7b590 --- /dev/null +++ b/.agents/notes/archived/simplification/2026-06-20-collapse-trace-only-session-events.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/simplification/2026-06-20-collapse-trace-only-session-events.md +2026-06-20-collapse-trace-only-session-events.md: 7600455c73711af3b82fe1be2f38f3b235152e8c +2026-06-20-collapse-trace-only-session-events.zh.md: 1a340f102853bbe2d81d830fbcada98c11a5c885 diff --git a/.agents/notes/implemented/simplification/2026-06-20-collapse-trace-only-session-events.md b/.agents/notes/archived/simplification/2026-06-20-collapse-trace-only-session-events.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-06-20-collapse-trace-only-session-events.md rename to .agents/notes/archived/simplification/2026-06-20-collapse-trace-only-session-events.md index f83d93a899..7600455c73 100644 --- a/.agents/notes/implemented/simplification/2026-06-20-collapse-trace-only-session-events.md +++ b/.agents/notes/archived/simplification/2026-06-20-collapse-trace-only-session-events.md @@ -1,6 +1,7 @@ # Agent Note: Fold trace-only session facts into load-bearing events Status: implemented +Archived: 2026-09-30 English | [中文](2026-06-20-collapse-trace-only-session-events.zh.md) diff --git a/.agents/notes/implemented/simplification/2026-06-20-collapse-trace-only-session-events.zh.md b/.agents/notes/archived/simplification/2026-06-20-collapse-trace-only-session-events.zh.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-06-20-collapse-trace-only-session-events.zh.md rename to .agents/notes/archived/simplification/2026-06-20-collapse-trace-only-session-events.zh.md index e53544aed0..1a340f1028 100644 --- a/.agents/notes/implemented/simplification/2026-06-20-collapse-trace-only-session-events.zh.md +++ b/.agents/notes/archived/simplification/2026-06-20-collapse-trace-only-session-events.zh.md @@ -1,6 +1,7 @@ # Agent Note: 将仅用于追踪的会话事实折叠进承载实际功能的事件 Status: implemented +Archived: 2026-09-30 [English](2026-06-20-collapse-trace-only-session-events.md) | 中文 diff --git a/.agents/notes/archived/simplification/2026-06-26-fsspec-style-fs-seam.i18n.yaml b/.agents/notes/archived/simplification/2026-06-26-fsspec-style-fs-seam.i18n.yaml new file mode 100644 index 0000000000..ee666289cf --- /dev/null +++ b/.agents/notes/archived/simplification/2026-06-26-fsspec-style-fs-seam.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/simplification/2026-06-26-fsspec-style-fs-seam.md +2026-06-26-fsspec-style-fs-seam.md: 88d5c51f6e0fbede8df8f8168077ccf43910eace +2026-06-26-fsspec-style-fs-seam.zh.md: 6e6e3b43257839cc2d209bab314d898323ea1fe2 diff --git a/.agents/notes/implemented/simplification/2026-06-26-fsspec-style-fs-seam.md b/.agents/notes/archived/simplification/2026-06-26-fsspec-style-fs-seam.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-06-26-fsspec-style-fs-seam.md rename to .agents/notes/archived/simplification/2026-06-26-fsspec-style-fs-seam.md index 138d6d4d74..88d5c51f6e 100644 --- a/.agents/notes/implemented/simplification/2026-06-26-fsspec-style-fs-seam.md +++ b/.agents/notes/archived/simplification/2026-06-26-fsspec-style-fs-seam.md @@ -1,6 +1,7 @@ # Agent Note: Split the filesystem seam — provider text mutations plus the `dsh-fs-observation-policy` plugin Status: implemented +Archived: 2026-09-30 English | [中文](2026-06-26-fsspec-style-fs-seam.zh.md) diff --git a/.agents/notes/implemented/simplification/2026-06-26-fsspec-style-fs-seam.zh.md b/.agents/notes/archived/simplification/2026-06-26-fsspec-style-fs-seam.zh.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-06-26-fsspec-style-fs-seam.zh.md rename to .agents/notes/archived/simplification/2026-06-26-fsspec-style-fs-seam.zh.md index bc7a3756db..6e6e3b4325 100644 --- a/.agents/notes/implemented/simplification/2026-06-26-fsspec-style-fs-seam.zh.md +++ b/.agents/notes/archived/simplification/2026-06-26-fsspec-style-fs-seam.zh.md @@ -1,6 +1,7 @@ # Agent Note: 拆分文件系统 seam——提供方文本变更操作与 `dsh-fs-observation-policy` 插件 Status: implemented +Archived: 2026-09-30 [English](2026-06-26-fsspec-style-fs-seam.md) | 中文 diff --git a/.agents/notes/archived/simplification/2026-07-20-unwrap-injected-content-envelopes.i18n.yaml b/.agents/notes/archived/simplification/2026-07-20-unwrap-injected-content-envelopes.i18n.yaml new file mode 100644 index 0000000000..66477c1d9b --- /dev/null +++ b/.agents/notes/archived/simplification/2026-07-20-unwrap-injected-content-envelopes.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/simplification/2026-07-20-unwrap-injected-content-envelopes.md +2026-07-20-unwrap-injected-content-envelopes.md: 51ef8b9715d70c79b28c6327e1163298b80a073f +2026-07-20-unwrap-injected-content-envelopes.zh.md: 1d688765c14ac2981b73ff654a594e21998adf9b diff --git a/.agents/notes/implemented/simplification/2026-07-20-unwrap-injected-content-envelopes.md b/.agents/notes/archived/simplification/2026-07-20-unwrap-injected-content-envelopes.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-07-20-unwrap-injected-content-envelopes.md rename to .agents/notes/archived/simplification/2026-07-20-unwrap-injected-content-envelopes.md index 7d14ada7cc..51ef8b9715 100644 --- a/.agents/notes/implemented/simplification/2026-07-20-unwrap-injected-content-envelopes.md +++ b/.agents/notes/archived/simplification/2026-07-20-unwrap-injected-content-envelopes.md @@ -1,6 +1,7 @@ # Agent Note: Project injected content verbatim, dropping the XML envelopes Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-20-unwrap-injected-content-envelopes.zh.md) diff --git a/.agents/notes/implemented/simplification/2026-07-20-unwrap-injected-content-envelopes.zh.md b/.agents/notes/archived/simplification/2026-07-20-unwrap-injected-content-envelopes.zh.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-07-20-unwrap-injected-content-envelopes.zh.md rename to .agents/notes/archived/simplification/2026-07-20-unwrap-injected-content-envelopes.zh.md index 813adfb818..1d688765c1 100644 --- a/.agents/notes/implemented/simplification/2026-07-20-unwrap-injected-content-envelopes.zh.md +++ b/.agents/notes/archived/simplification/2026-07-20-unwrap-injected-content-envelopes.zh.md @@ -1,6 +1,7 @@ # Agent Note: 注入内容逐字投影,去除 XML 封套 Status: implemented +Archived: 2026-09-30 [English](2026-07-20-unwrap-injected-content-envelopes.md) | 中文 diff --git a/.agents/notes/archived/simplification/2026-07-22-plan-specific-collaboration-state.i18n.yaml b/.agents/notes/archived/simplification/2026-07-22-plan-specific-collaboration-state.i18n.yaml new file mode 100644 index 0000000000..ccf743c04e --- /dev/null +++ b/.agents/notes/archived/simplification/2026-07-22-plan-specific-collaboration-state.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/simplification/2026-07-22-plan-specific-collaboration-state.md +2026-07-22-plan-specific-collaboration-state.md: b92530a9acd780a410a2dafca01bc4a4140bd2cc +2026-07-22-plan-specific-collaboration-state.zh.md: 90ae80ba2be52bfaa748ef4bffa2ff9442a10715 diff --git a/.agents/notes/implemented/simplification/2026-07-22-plan-specific-collaboration-state.md b/.agents/notes/archived/simplification/2026-07-22-plan-specific-collaboration-state.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-07-22-plan-specific-collaboration-state.md rename to .agents/notes/archived/simplification/2026-07-22-plan-specific-collaboration-state.md index 20648b8d6c..b92530a9ac 100644 --- a/.agents/notes/implemented/simplification/2026-07-22-plan-specific-collaboration-state.md +++ b/.agents/notes/archived/simplification/2026-07-22-plan-specific-collaboration-state.md @@ -1,6 +1,7 @@ # Agent Note: Plan-specific collaboration state Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-22-plan-specific-collaboration-state.zh.md) diff --git a/.agents/notes/implemented/simplification/2026-07-22-plan-specific-collaboration-state.zh.md b/.agents/notes/archived/simplification/2026-07-22-plan-specific-collaboration-state.zh.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-07-22-plan-specific-collaboration-state.zh.md rename to .agents/notes/archived/simplification/2026-07-22-plan-specific-collaboration-state.zh.md index 2142839d5a..90ae80ba2b 100644 --- a/.agents/notes/implemented/simplification/2026-07-22-plan-specific-collaboration-state.zh.md +++ b/.agents/notes/archived/simplification/2026-07-22-plan-specific-collaboration-state.zh.md @@ -1,6 +1,7 @@ # Agent Note: plan 专用协作状态 Status: implemented +Archived: 2026-09-30 [English](2026-07-22-plan-specific-collaboration-state.md) | 中文 diff --git a/.agents/notes/archived/simplification/2026-07-24-agent-loop-observable-state-machine.i18n.yaml b/.agents/notes/archived/simplification/2026-07-24-agent-loop-observable-state-machine.i18n.yaml new file mode 100644 index 0000000000..474c370ae2 --- /dev/null +++ b/.agents/notes/archived/simplification/2026-07-24-agent-loop-observable-state-machine.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/simplification/2026-07-24-agent-loop-observable-state-machine.md +2026-07-24-agent-loop-observable-state-machine.md: 4c280505dd48d0d98ca28dfc4f88a217ee6c7f27 +2026-07-24-agent-loop-observable-state-machine.zh.md: b56c8943c2ba62d66cb64cb94858b09f1b0efe2e diff --git a/.agents/notes/implemented/simplification/2026-07-24-agent-loop-observable-state-machine.md b/.agents/notes/archived/simplification/2026-07-24-agent-loop-observable-state-machine.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-07-24-agent-loop-observable-state-machine.md rename to .agents/notes/archived/simplification/2026-07-24-agent-loop-observable-state-machine.md index f250d645ca..4c280505dd 100644 --- a/.agents/notes/implemented/simplification/2026-07-24-agent-loop-observable-state-machine.md +++ b/.agents/notes/archived/simplification/2026-07-24-agent-loop-observable-state-machine.md @@ -1,6 +1,7 @@ # Agent Note: Collapse agent-loop events around the observable state machine Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-24-agent-loop-observable-state-machine.zh.md) diff --git a/.agents/notes/implemented/simplification/2026-07-24-agent-loop-observable-state-machine.zh.md b/.agents/notes/archived/simplification/2026-07-24-agent-loop-observable-state-machine.zh.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-07-24-agent-loop-observable-state-machine.zh.md rename to .agents/notes/archived/simplification/2026-07-24-agent-loop-observable-state-machine.zh.md index c77e5ad8f6..b56c8943c2 100644 --- a/.agents/notes/implemented/simplification/2026-07-24-agent-loop-observable-state-machine.zh.md +++ b/.agents/notes/archived/simplification/2026-07-24-agent-loop-observable-state-machine.zh.md @@ -1,6 +1,7 @@ # Agent Note: 围绕可观察状态机收拢 agent loop 事件 Status: implemented +Archived: 2026-09-30 [English](2026-07-24-agent-loop-observable-state-machine.md) | 中文 diff --git a/.agents/notes/archived/simplification/2026-07-27-request-error-retry-action.i18n.yaml b/.agents/notes/archived/simplification/2026-07-27-request-error-retry-action.i18n.yaml new file mode 100644 index 0000000000..1979aa1946 --- /dev/null +++ b/.agents/notes/archived/simplification/2026-07-27-request-error-retry-action.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/simplification/2026-07-27-request-error-retry-action.md +2026-07-27-request-error-retry-action.md: 83fb72de6ffaf45d3fd08d8e320829bc82e8527c +2026-07-27-request-error-retry-action.zh.md: 1e21b90b04cd42fe0016618472aa18be322db3e2 diff --git a/.agents/notes/implemented/simplification/2026-07-27-request-error-retry-action.md b/.agents/notes/archived/simplification/2026-07-27-request-error-retry-action.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-07-27-request-error-retry-action.md rename to .agents/notes/archived/simplification/2026-07-27-request-error-retry-action.md index 9853d7d043..83fb72de6f 100644 --- a/.agents/notes/implemented/simplification/2026-07-27-request-error-retry-action.md +++ b/.agents/notes/archived/simplification/2026-07-27-request-error-retry-action.md @@ -1,6 +1,7 @@ # Agent Note: Request-error retry action Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-27-request-error-retry-action.zh.md) diff --git a/.agents/notes/implemented/simplification/2026-07-27-request-error-retry-action.zh.md b/.agents/notes/archived/simplification/2026-07-27-request-error-retry-action.zh.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-07-27-request-error-retry-action.zh.md rename to .agents/notes/archived/simplification/2026-07-27-request-error-retry-action.zh.md index e0c4749b7e..1e21b90b04 100644 --- a/.agents/notes/implemented/simplification/2026-07-27-request-error-retry-action.zh.md +++ b/.agents/notes/archived/simplification/2026-07-27-request-error-retry-action.zh.md @@ -1,6 +1,7 @@ # Agent Note: 请求错误重试动作 Status: implemented +Archived: 2026-09-30 [English](2026-07-27-request-error-retry-action.md) | 中文 diff --git a/.agents/notes/archived/simplification/2026-08-28-omit-unneeded-invariant-companions.i18n.yaml b/.agents/notes/archived/simplification/2026-08-28-omit-unneeded-invariant-companions.i18n.yaml new file mode 100644 index 0000000000..221aedc107 --- /dev/null +++ b/.agents/notes/archived/simplification/2026-08-28-omit-unneeded-invariant-companions.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/simplification/2026-08-28-omit-unneeded-invariant-companions.md +2026-08-28-omit-unneeded-invariant-companions.md: db6e74752add7f7f78384987a55ea77f8a47c4ac +2026-08-28-omit-unneeded-invariant-companions.zh.md: ecd3eec023ee18ee0ef3b638230b0d64ceed1d94 diff --git a/.agents/notes/implemented/simplification/2026-08-28-omit-unneeded-invariant-companions.md b/.agents/notes/archived/simplification/2026-08-28-omit-unneeded-invariant-companions.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-08-28-omit-unneeded-invariant-companions.md rename to .agents/notes/archived/simplification/2026-08-28-omit-unneeded-invariant-companions.md index 82d421677c..db6e74752a 100644 --- a/.agents/notes/implemented/simplification/2026-08-28-omit-unneeded-invariant-companions.md +++ b/.agents/notes/archived/simplification/2026-08-28-omit-unneeded-invariant-companions.md @@ -1,6 +1,7 @@ # Agent Note: Omit invariant companions without independent observations Status: implemented +Archived: 2026-09-30 English | [中文](2026-08-28-omit-unneeded-invariant-companions.zh.md) diff --git a/.agents/notes/implemented/simplification/2026-08-28-omit-unneeded-invariant-companions.zh.md b/.agents/notes/archived/simplification/2026-08-28-omit-unneeded-invariant-companions.zh.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-08-28-omit-unneeded-invariant-companions.zh.md rename to .agents/notes/archived/simplification/2026-08-28-omit-unneeded-invariant-companions.zh.md index d0fda91546..ecd3eec023 100644 --- a/.agents/notes/implemented/simplification/2026-08-28-omit-unneeded-invariant-companions.zh.md +++ b/.agents/notes/archived/simplification/2026-08-28-omit-unneeded-invariant-companions.zh.md @@ -1,6 +1,7 @@ # Agent Note: 没有独立观察时省略不变量伴生入口 Status: implemented +Archived: 2026-09-30 [English](2026-08-28-omit-unneeded-invariant-companions.md) | 中文 diff --git a/.agents/notes/archived/simplification/2026-09-03-minimal-profiles-persistent-shell-only.i18n.yaml b/.agents/notes/archived/simplification/2026-09-03-minimal-profiles-persistent-shell-only.i18n.yaml new file mode 100644 index 0000000000..ae8918c95d --- /dev/null +++ b/.agents/notes/archived/simplification/2026-09-03-minimal-profiles-persistent-shell-only.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/simplification/2026-09-03-minimal-profiles-persistent-shell-only.md +2026-09-03-minimal-profiles-persistent-shell-only.md: 740d2e233d1b00f6babe4abbca889a3ffa0a5791 +2026-09-03-minimal-profiles-persistent-shell-only.zh.md: 48d800683acc82e78706be8ee57a80965a3c9f83 diff --git a/.agents/notes/implemented/simplification/2026-09-03-minimal-profiles-persistent-shell-only.md b/.agents/notes/archived/simplification/2026-09-03-minimal-profiles-persistent-shell-only.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-03-minimal-profiles-persistent-shell-only.md rename to .agents/notes/archived/simplification/2026-09-03-minimal-profiles-persistent-shell-only.md index 2bc4ef7ada..740d2e233d 100644 --- a/.agents/notes/implemented/simplification/2026-09-03-minimal-profiles-persistent-shell-only.md +++ b/.agents/notes/archived/simplification/2026-09-03-minimal-profiles-persistent-shell-only.md @@ -1,6 +1,7 @@ # Agent Note: Minimal profiles expose only a persistent shell Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-03-minimal-profiles-persistent-shell-only.zh.md) diff --git a/.agents/notes/implemented/simplification/2026-09-03-minimal-profiles-persistent-shell-only.zh.md b/.agents/notes/archived/simplification/2026-09-03-minimal-profiles-persistent-shell-only.zh.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-03-minimal-profiles-persistent-shell-only.zh.md rename to .agents/notes/archived/simplification/2026-09-03-minimal-profiles-persistent-shell-only.zh.md index d54e5734ac..48d800683a 100644 --- a/.agents/notes/implemented/simplification/2026-09-03-minimal-profiles-persistent-shell-only.zh.md +++ b/.agents/notes/archived/simplification/2026-09-03-minimal-profiles-persistent-shell-only.zh.md @@ -1,6 +1,7 @@ # Agent Note: 极简 profile 只提供持久 shell Status: implemented +Archived: 2026-09-30 [English](2026-09-03-minimal-profiles-persistent-shell-only.md) | 中文 diff --git a/.agents/notes/archived/simplification/2026-09-05-base-default-file-editor.i18n.yaml b/.agents/notes/archived/simplification/2026-09-05-base-default-file-editor.i18n.yaml new file mode 100644 index 0000000000..c6670f1f3f --- /dev/null +++ b/.agents/notes/archived/simplification/2026-09-05-base-default-file-editor.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/simplification/2026-09-05-base-default-file-editor.md +2026-09-05-base-default-file-editor.md: e4e3740292fce922dcd7340e180feb81a999b23c +2026-09-05-base-default-file-editor.zh.md: 8623149547fc4b2293da72392087236394b29358 diff --git a/.agents/notes/implemented/simplification/2026-09-05-base-default-file-editor.md b/.agents/notes/archived/simplification/2026-09-05-base-default-file-editor.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-05-base-default-file-editor.md rename to .agents/notes/archived/simplification/2026-09-05-base-default-file-editor.md index e1e1571896..e4e3740292 100644 --- a/.agents/notes/implemented/simplification/2026-09-05-base-default-file-editor.md +++ b/.agents/notes/archived/simplification/2026-09-05-base-default-file-editor.md @@ -1,6 +1,7 @@ # Agent Note: Shared base default file editor selection Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-05-base-default-file-editor.zh.md) diff --git a/.agents/notes/implemented/simplification/2026-09-05-base-default-file-editor.zh.md b/.agents/notes/archived/simplification/2026-09-05-base-default-file-editor.zh.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-05-base-default-file-editor.zh.md rename to .agents/notes/archived/simplification/2026-09-05-base-default-file-editor.zh.md index d43df3313e..8623149547 100644 --- a/.agents/notes/implemented/simplification/2026-09-05-base-default-file-editor.zh.md +++ b/.agents/notes/archived/simplification/2026-09-05-base-default-file-editor.zh.md @@ -1,6 +1,7 @@ # Agent Note: 共享 base 默认文件编辑器选择 Status: implemented +Archived: 2026-09-30 [English](2026-09-05-base-default-file-editor.md) | 中文 diff --git a/.agents/notes/archived/simplification/2026-09-06-agent-request-freeze-evidence.i18n.yaml b/.agents/notes/archived/simplification/2026-09-06-agent-request-freeze-evidence.i18n.yaml new file mode 100644 index 0000000000..2b21ae0bee --- /dev/null +++ b/.agents/notes/archived/simplification/2026-09-06-agent-request-freeze-evidence.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/simplification/2026-09-06-agent-request-freeze-evidence.md +2026-09-06-agent-request-freeze-evidence.md: dccd3ee770582dae10cbbaf0b3ec1e1ccca75634 +2026-09-06-agent-request-freeze-evidence.zh.md: 1767c837a2e427454561b1010ca0b4144e94da6e diff --git a/.agents/notes/implemented/simplification/2026-09-06-agent-request-freeze-evidence.md b/.agents/notes/archived/simplification/2026-09-06-agent-request-freeze-evidence.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-06-agent-request-freeze-evidence.md rename to .agents/notes/archived/simplification/2026-09-06-agent-request-freeze-evidence.md index 6603a728c3..dccd3ee770 100644 --- a/.agents/notes/implemented/simplification/2026-09-06-agent-request-freeze-evidence.md +++ b/.agents/notes/archived/simplification/2026-09-06-agent-request-freeze-evidence.md @@ -1,6 +1,7 @@ # Agent Note: Reuse only loop-proven message freezes Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-06-agent-request-freeze-evidence.zh.md) diff --git a/.agents/notes/implemented/simplification/2026-09-06-agent-request-freeze-evidence.zh.md b/.agents/notes/archived/simplification/2026-09-06-agent-request-freeze-evidence.zh.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-06-agent-request-freeze-evidence.zh.md rename to .agents/notes/archived/simplification/2026-09-06-agent-request-freeze-evidence.zh.md index a5ba15ac13..1767c837a2 100644 --- a/.agents/notes/implemented/simplification/2026-09-06-agent-request-freeze-evidence.zh.md +++ b/.agents/notes/archived/simplification/2026-09-06-agent-request-freeze-evidence.zh.md @@ -1,6 +1,7 @@ # Agent Note: 仅复用循环已证明的消息冻结 Status: implemented +Archived: 2026-09-30 [English](2026-09-06-agent-request-freeze-evidence.md) | 中文 diff --git a/.agents/notes/archived/simplification/2026-09-07-file-content-scan.i18n.yaml b/.agents/notes/archived/simplification/2026-09-07-file-content-scan.i18n.yaml new file mode 100644 index 0000000000..d971e41439 --- /dev/null +++ b/.agents/notes/archived/simplification/2026-09-07-file-content-scan.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/simplification/2026-09-07-file-content-scan.md +2026-09-07-file-content-scan.md: 4c72988ee7722b6b80ae594f936710714bb5eb23 +2026-09-07-file-content-scan.zh.md: 55561b43f84d9780e3ece2bdeb51464737bcdc8b diff --git a/.agents/notes/implemented/simplification/2026-09-07-file-content-scan.md b/.agents/notes/archived/simplification/2026-09-07-file-content-scan.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-07-file-content-scan.md rename to .agents/notes/archived/simplification/2026-09-07-file-content-scan.md index 1ec46e7d68..4c72988ee7 100644 --- a/.agents/notes/implemented/simplification/2026-09-07-file-content-scan.md +++ b/.agents/notes/archived/simplification/2026-09-07-file-content-scan.md @@ -1,6 +1,7 @@ # Agent Note: Scan file content without per-array callbacks Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-07-file-content-scan.zh.md) diff --git a/.agents/notes/implemented/simplification/2026-09-07-file-content-scan.zh.md b/.agents/notes/archived/simplification/2026-09-07-file-content-scan.zh.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-07-file-content-scan.zh.md rename to .agents/notes/archived/simplification/2026-09-07-file-content-scan.zh.md index b4ebd835ca..55561b43f8 100644 --- a/.agents/notes/implemented/simplification/2026-09-07-file-content-scan.zh.md +++ b/.agents/notes/archived/simplification/2026-09-07-file-content-scan.zh.md @@ -1,6 +1,7 @@ # Agent Note: 文件内容扫描不为每个数组创建回调 Status: implemented +Archived: 2026-09-30 [English](2026-09-07-file-content-scan.md) | 中文 diff --git a/.agents/notes/archived/simplification/2026-09-08-web-subagent-catalog-projections.i18n.yaml b/.agents/notes/archived/simplification/2026-09-08-web-subagent-catalog-projections.i18n.yaml new file mode 100644 index 0000000000..099fcbe14c --- /dev/null +++ b/.agents/notes/archived/simplification/2026-09-08-web-subagent-catalog-projections.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/simplification/2026-09-08-web-subagent-catalog-projections.md +2026-09-08-web-subagent-catalog-projections.md: a8660dc6d90f9e555429e7fe666c10e2cc6beaf6 +2026-09-08-web-subagent-catalog-projections.zh.md: aa4e9c2d1ae4057c3060d94c87b90d3c6b5e4a51 diff --git a/.agents/notes/implemented/simplification/2026-09-08-web-subagent-catalog-projections.md b/.agents/notes/archived/simplification/2026-09-08-web-subagent-catalog-projections.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-08-web-subagent-catalog-projections.md rename to .agents/notes/archived/simplification/2026-09-08-web-subagent-catalog-projections.md index 766d33e581..a8660dc6d9 100644 --- a/.agents/notes/implemented/simplification/2026-09-08-web-subagent-catalog-projections.md +++ b/.agents/notes/archived/simplification/2026-09-08-web-subagent-catalog-projections.md @@ -1,6 +1,7 @@ # Agent Note: Web subagent catalogs consume shared projections Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-08-web-subagent-catalog-projections.zh.md) diff --git a/.agents/notes/implemented/simplification/2026-09-08-web-subagent-catalog-projections.zh.md b/.agents/notes/archived/simplification/2026-09-08-web-subagent-catalog-projections.zh.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-08-web-subagent-catalog-projections.zh.md rename to .agents/notes/archived/simplification/2026-09-08-web-subagent-catalog-projections.zh.md index ef14db2530..aa4e9c2d1a 100644 --- a/.agents/notes/implemented/simplification/2026-09-08-web-subagent-catalog-projections.zh.md +++ b/.agents/notes/archived/simplification/2026-09-08-web-subagent-catalog-projections.zh.md @@ -1,6 +1,7 @@ # Agent Note:Web 子代理目录消费共享 projection Status: implemented +Archived: 2026-09-30 [English](2026-09-08-web-subagent-catalog-projections.md) | 中文 diff --git a/.agents/notes/archived/simplification/2026-09-10-derived-workspace-recency.i18n.yaml b/.agents/notes/archived/simplification/2026-09-10-derived-workspace-recency.i18n.yaml new file mode 100644 index 0000000000..cfa1c33357 --- /dev/null +++ b/.agents/notes/archived/simplification/2026-09-10-derived-workspace-recency.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/simplification/2026-09-10-derived-workspace-recency.md +2026-09-10-derived-workspace-recency.md: 65d861fc9ea7e10845c4a071c43959cfc4480c7c +2026-09-10-derived-workspace-recency.zh.md: 5bf4a0020d447cbb3613a52a417d75f546a211d3 diff --git a/.agents/notes/implemented/simplification/2026-09-10-derived-workspace-recency.md b/.agents/notes/archived/simplification/2026-09-10-derived-workspace-recency.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-10-derived-workspace-recency.md rename to .agents/notes/archived/simplification/2026-09-10-derived-workspace-recency.md index b967e332f2..65d861fc9e 100644 --- a/.agents/notes/implemented/simplification/2026-09-10-derived-workspace-recency.md +++ b/.agents/notes/archived/simplification/2026-09-10-derived-workspace-recency.md @@ -1,6 +1,7 @@ # Agent Note: Derive Workspace recency independently of manual order Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-10-derived-workspace-recency.zh.md) diff --git a/.agents/notes/implemented/simplification/2026-09-10-derived-workspace-recency.zh.md b/.agents/notes/archived/simplification/2026-09-10-derived-workspace-recency.zh.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-10-derived-workspace-recency.zh.md rename to .agents/notes/archived/simplification/2026-09-10-derived-workspace-recency.zh.md index 87c2bb9f26..5bf4a0020d 100644 --- a/.agents/notes/implemented/simplification/2026-09-10-derived-workspace-recency.zh.md +++ b/.agents/notes/archived/simplification/2026-09-10-derived-workspace-recency.zh.md @@ -1,6 +1,7 @@ # Agent Note: 独立于手动顺序派生 Workspace 最近更新顺序 Status: implemented +Archived: 2026-09-30 [English](2026-09-10-derived-workspace-recency.md) | 中文 diff --git a/.agents/notes/archived/simplification/2026-09-12-ralph-off-in-shipped-defaults.i18n.yaml b/.agents/notes/archived/simplification/2026-09-12-ralph-off-in-shipped-defaults.i18n.yaml new file mode 100644 index 0000000000..ea54a41cd2 --- /dev/null +++ b/.agents/notes/archived/simplification/2026-09-12-ralph-off-in-shipped-defaults.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/simplification/2026-09-12-ralph-off-in-shipped-defaults.md +2026-09-12-ralph-off-in-shipped-defaults.md: 6b1dea345c6d22c05550f6a5db35ccbc2da0216c +2026-09-12-ralph-off-in-shipped-defaults.zh.md: 85ad7419301f7a18231622a5d0dba271fa02418e diff --git a/.agents/notes/implemented/simplification/2026-09-12-ralph-off-in-shipped-defaults.md b/.agents/notes/archived/simplification/2026-09-12-ralph-off-in-shipped-defaults.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-12-ralph-off-in-shipped-defaults.md rename to .agents/notes/archived/simplification/2026-09-12-ralph-off-in-shipped-defaults.md index fbd7ea72e0..6b1dea345c 100644 --- a/.agents/notes/implemented/simplification/2026-09-12-ralph-off-in-shipped-defaults.md +++ b/.agents/notes/archived/simplification/2026-09-12-ralph-off-in-shipped-defaults.md @@ -1,6 +1,7 @@ # Agent Note: Ship ralph off in the default compositions Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-12-ralph-off-in-shipped-defaults.zh.md) diff --git a/.agents/notes/implemented/simplification/2026-09-12-ralph-off-in-shipped-defaults.zh.md b/.agents/notes/archived/simplification/2026-09-12-ralph-off-in-shipped-defaults.zh.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-12-ralph-off-in-shipped-defaults.zh.md rename to .agents/notes/archived/simplification/2026-09-12-ralph-off-in-shipped-defaults.zh.md index 377f865623..85ad741930 100644 --- a/.agents/notes/implemented/simplification/2026-09-12-ralph-off-in-shipped-defaults.zh.md +++ b/.agents/notes/archived/simplification/2026-09-12-ralph-off-in-shipped-defaults.zh.md @@ -1,6 +1,7 @@ # Agent Note: 在随附默认组合中关闭 ralph Status: implemented +Archived: 2026-09-30 [English](2026-09-12-ralph-off-in-shipped-defaults.md) | 中文 diff --git a/.agents/notes/archived/simplification/2026-09-15-host-only-remote-input-validation.i18n.yaml b/.agents/notes/archived/simplification/2026-09-15-host-only-remote-input-validation.i18n.yaml new file mode 100644 index 0000000000..038cebb0fd --- /dev/null +++ b/.agents/notes/archived/simplification/2026-09-15-host-only-remote-input-validation.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/simplification/2026-09-15-host-only-remote-input-validation.md +2026-09-15-host-only-remote-input-validation.md: 327f7ef025c7a5fac0447f07282fab6c5a2f62ca +2026-09-15-host-only-remote-input-validation.zh.md: 9e8a1d67c77b3221b5d364c6e850887325164769 diff --git a/.agents/notes/implemented/simplification/2026-09-15-host-only-remote-input-validation.md b/.agents/notes/archived/simplification/2026-09-15-host-only-remote-input-validation.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-15-host-only-remote-input-validation.md rename to .agents/notes/archived/simplification/2026-09-15-host-only-remote-input-validation.md index 5c256fb5f5..327f7ef025 100644 --- a/.agents/notes/implemented/simplification/2026-09-15-host-only-remote-input-validation.md +++ b/.agents/notes/archived/simplification/2026-09-15-host-only-remote-input-validation.md @@ -1,6 +1,7 @@ # Agent Note: Validate Remote inputs only on the Host Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-15-host-only-remote-input-validation.zh.md) diff --git a/.agents/notes/implemented/simplification/2026-09-15-host-only-remote-input-validation.zh.md b/.agents/notes/archived/simplification/2026-09-15-host-only-remote-input-validation.zh.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-15-host-only-remote-input-validation.zh.md rename to .agents/notes/archived/simplification/2026-09-15-host-only-remote-input-validation.zh.md index 92a3f2415c..9e8a1d67c7 100644 --- a/.agents/notes/implemented/simplification/2026-09-15-host-only-remote-input-validation.zh.md +++ b/.agents/notes/archived/simplification/2026-09-15-host-only-remote-input-validation.zh.md @@ -1,6 +1,7 @@ # Agent Note: 仅在 Host 校验 Remote 输入 Status: implemented +Archived: 2026-09-30 [English](2026-09-15-host-only-remote-input-validation.md) | 中文 diff --git a/.agents/notes/archived/simplification/2026-09-15-model-agent-availability-and-team-targets.i18n.yaml b/.agents/notes/archived/simplification/2026-09-15-model-agent-availability-and-team-targets.i18n.yaml new file mode 100644 index 0000000000..3700bfcbae --- /dev/null +++ b/.agents/notes/archived/simplification/2026-09-15-model-agent-availability-and-team-targets.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/simplification/2026-09-15-model-agent-availability-and-team-targets.md +2026-09-15-model-agent-availability-and-team-targets.md: 61fafb5ad3de039b0c624be56285fc8556dc6fbf +2026-09-15-model-agent-availability-and-team-targets.zh.md: 595b4ce4eba6bf02c5223cf3029e7924f8f2da87 diff --git a/.agents/notes/implemented/simplification/2026-09-15-model-agent-availability-and-team-targets.md b/.agents/notes/archived/simplification/2026-09-15-model-agent-availability-and-team-targets.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-15-model-agent-availability-and-team-targets.md rename to .agents/notes/archived/simplification/2026-09-15-model-agent-availability-and-team-targets.md index e1f7f95cfa..61fafb5ad3 100644 --- a/.agents/notes/implemented/simplification/2026-09-15-model-agent-availability-and-team-targets.md +++ b/.agents/notes/archived/simplification/2026-09-15-model-agent-availability-and-team-targets.md @@ -1,6 +1,7 @@ # Agent Note: Model agent availability and Team targets Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-15-model-agent-availability-and-team-targets.zh.md) diff --git a/.agents/notes/implemented/simplification/2026-09-15-model-agent-availability-and-team-targets.zh.md b/.agents/notes/archived/simplification/2026-09-15-model-agent-availability-and-team-targets.zh.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-15-model-agent-availability-and-team-targets.zh.md rename to .agents/notes/archived/simplification/2026-09-15-model-agent-availability-and-team-targets.zh.md index 0447d7d405..595b4ce4eb 100644 --- a/.agents/notes/implemented/simplification/2026-09-15-model-agent-availability-and-team-targets.zh.md +++ b/.agents/notes/archived/simplification/2026-09-15-model-agent-availability-and-team-targets.zh.md @@ -1,6 +1,7 @@ # Agent Note: 模型可见的 Agent 可用状态与 Team 目标 Status: implemented +Archived: 2026-09-30 [English](2026-09-15-model-agent-availability-and-team-targets.md) | 中文 diff --git a/.agents/notes/archived/simplification/2026-09-16-subagent-catalog-membership-only.i18n.yaml b/.agents/notes/archived/simplification/2026-09-16-subagent-catalog-membership-only.i18n.yaml new file mode 100644 index 0000000000..b2ddc69ba1 --- /dev/null +++ b/.agents/notes/archived/simplification/2026-09-16-subagent-catalog-membership-only.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/simplification/2026-09-16-subagent-catalog-membership-only.md +2026-09-16-subagent-catalog-membership-only.md: b2c8395b3c7dc19aa3a0733a951390fa006ac95e +2026-09-16-subagent-catalog-membership-only.zh.md: e41a115c875744cfcc5607d9afc4c693dbfce491 diff --git a/.agents/notes/implemented/simplification/2026-09-16-subagent-catalog-membership-only.md b/.agents/notes/archived/simplification/2026-09-16-subagent-catalog-membership-only.md similarity index 99% rename from .agents/notes/implemented/simplification/2026-09-16-subagent-catalog-membership-only.md rename to .agents/notes/archived/simplification/2026-09-16-subagent-catalog-membership-only.md index d1d0956380..b2c8395b3c 100644 --- a/.agents/notes/implemented/simplification/2026-09-16-subagent-catalog-membership-only.md +++ b/.agents/notes/archived/simplification/2026-09-16-subagent-catalog-membership-only.md @@ -1,6 +1,7 @@ # Agent Note: Keep model configuration outside subagent catalogs Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-16-subagent-catalog-membership-only.zh.md) diff --git a/.agents/notes/implemented/simplification/2026-09-16-subagent-catalog-membership-only.zh.md b/.agents/notes/archived/simplification/2026-09-16-subagent-catalog-membership-only.zh.md similarity index 98% rename from .agents/notes/implemented/simplification/2026-09-16-subagent-catalog-membership-only.zh.md rename to .agents/notes/archived/simplification/2026-09-16-subagent-catalog-membership-only.zh.md index 4225a331a0..e41a115c87 100644 --- a/.agents/notes/implemented/simplification/2026-09-16-subagent-catalog-membership-only.zh.md +++ b/.agents/notes/archived/simplification/2026-09-16-subagent-catalog-membership-only.zh.md @@ -1,6 +1,7 @@ # Agent Note: 将模型配置保留在子代理目录之外 Status: implemented +Archived: 2026-09-30 [English](2026-09-16-subagent-catalog-membership-only.md) | 中文 diff --git a/.agents/notes/archived/simplification/2026-09-19-deepseek-messages-only.i18n.yaml b/.agents/notes/archived/simplification/2026-09-19-deepseek-messages-only.i18n.yaml new file mode 100644 index 0000000000..20b70441c1 --- /dev/null +++ b/.agents/notes/archived/simplification/2026-09-19-deepseek-messages-only.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/simplification/2026-09-19-deepseek-messages-only.md +2026-09-19-deepseek-messages-only.md: ef3ab51c733fa92d8d1c4e29cbfe9154b67481c1 +2026-09-19-deepseek-messages-only.zh.md: 1d5bdabbaf05ec7291bcb0ade354806ba7234b66 diff --git a/.agents/notes/implemented/simplification/2026-09-19-deepseek-messages-only.md b/.agents/notes/archived/simplification/2026-09-19-deepseek-messages-only.md similarity index 98% rename from .agents/notes/implemented/simplification/2026-09-19-deepseek-messages-only.md rename to .agents/notes/archived/simplification/2026-09-19-deepseek-messages-only.md index c10ecae950..ef3ab51c73 100644 --- a/.agents/notes/implemented/simplification/2026-09-19-deepseek-messages-only.md +++ b/.agents/notes/archived/simplification/2026-09-19-deepseek-messages-only.md @@ -1,6 +1,7 @@ # Agent Note: One Messages transport for the official DeepSeek route Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-19-deepseek-messages-only.zh.md) diff --git a/.agents/notes/implemented/simplification/2026-09-19-deepseek-messages-only.zh.md b/.agents/notes/archived/simplification/2026-09-19-deepseek-messages-only.zh.md similarity index 98% rename from .agents/notes/implemented/simplification/2026-09-19-deepseek-messages-only.zh.md rename to .agents/notes/archived/simplification/2026-09-19-deepseek-messages-only.zh.md index 3cfadac6eb..1d5bdabbaf 100644 --- a/.agents/notes/implemented/simplification/2026-09-19-deepseek-messages-only.zh.md +++ b/.agents/notes/archived/simplification/2026-09-19-deepseek-messages-only.zh.md @@ -1,6 +1,7 @@ # Agent Note: One Messages transport for the official DeepSeek route Status: implemented +Archived: 2026-09-30 [English](2026-09-19-deepseek-messages-only.md) | 中文 diff --git a/.agents/notes/archived/testing/2026-06-19-acp-snapshot-tests.i18n.yaml b/.agents/notes/archived/testing/2026-06-19-acp-snapshot-tests.i18n.yaml new file mode 100644 index 0000000000..1aeb562128 --- /dev/null +++ b/.agents/notes/archived/testing/2026-06-19-acp-snapshot-tests.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-06-19-acp-snapshot-tests.md +2026-06-19-acp-snapshot-tests.md: 35ac1b52fbcff87afc548dab7792f643cbbf52ae +2026-06-19-acp-snapshot-tests.zh.md: 76dfe847b53b1b0e15f578eebe9de75166339668 diff --git a/.agents/notes/implemented/testing/2026-06-19-acp-snapshot-tests.md b/.agents/notes/archived/testing/2026-06-19-acp-snapshot-tests.md similarity index 99% rename from .agents/notes/implemented/testing/2026-06-19-acp-snapshot-tests.md rename to .agents/notes/archived/testing/2026-06-19-acp-snapshot-tests.md index 3a21d09609..35ac1b52fb 100644 --- a/.agents/notes/implemented/testing/2026-06-19-acp-snapshot-tests.md +++ b/.agents/notes/archived/testing/2026-06-19-acp-snapshot-tests.md @@ -1,6 +1,7 @@ # Agent Note: ACP snapshot tests — record-once / replay-deterministic Status: implemented +Archived: 2026-09-30 English | [中文](2026-06-19-acp-snapshot-tests.zh.md) diff --git a/.agents/notes/implemented/testing/2026-06-19-acp-snapshot-tests.zh.md b/.agents/notes/archived/testing/2026-06-19-acp-snapshot-tests.zh.md similarity index 99% rename from .agents/notes/implemented/testing/2026-06-19-acp-snapshot-tests.zh.md rename to .agents/notes/archived/testing/2026-06-19-acp-snapshot-tests.zh.md index e9f3682289..76dfe847b5 100644 --- a/.agents/notes/implemented/testing/2026-06-19-acp-snapshot-tests.zh.md +++ b/.agents/notes/archived/testing/2026-06-19-acp-snapshot-tests.zh.md @@ -1,6 +1,7 @@ # Agent Note: ACP 快照测试——一次录制 / 确定性回放 Status: implemented +Archived: 2026-09-30 [English](2026-06-19-acp-snapshot-tests.md) | 中文 diff --git a/.agents/notes/archived/testing/2026-07-30-web-browser-snapshot-ci-gate.i18n.yaml b/.agents/notes/archived/testing/2026-07-30-web-browser-snapshot-ci-gate.i18n.yaml new file mode 100644 index 0000000000..eec38f1c07 --- /dev/null +++ b/.agents/notes/archived/testing/2026-07-30-web-browser-snapshot-ci-gate.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-07-30-web-browser-snapshot-ci-gate.md +2026-07-30-web-browser-snapshot-ci-gate.md: a0034aed5858c89778d3516e114ec03386a2e905 +2026-07-30-web-browser-snapshot-ci-gate.zh.md: 3e84a335960f977eb6e6ed6fc82ec0185fa638fd diff --git a/.agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.md b/.agents/notes/archived/testing/2026-07-30-web-browser-snapshot-ci-gate.md similarity index 99% rename from .agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.md rename to .agents/notes/archived/testing/2026-07-30-web-browser-snapshot-ci-gate.md index 352072bca6..a0034aed58 100644 --- a/.agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.md +++ b/.agents/notes/archived/testing/2026-07-30-web-browser-snapshot-ci-gate.md @@ -1,6 +1,7 @@ # Agent Note: Required CI gate for web browser expected outputs Status: implemented +Archived: 2026-09-30 English | [中文](2026-07-30-web-browser-snapshot-ci-gate.zh.md) diff --git a/.agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.zh.md b/.agents/notes/archived/testing/2026-07-30-web-browser-snapshot-ci-gate.zh.md similarity index 99% rename from .agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.zh.md rename to .agents/notes/archived/testing/2026-07-30-web-browser-snapshot-ci-gate.zh.md index cd04f33a5d..3e84a33596 100644 --- a/.agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.zh.md +++ b/.agents/notes/archived/testing/2026-07-30-web-browser-snapshot-ci-gate.zh.md @@ -1,6 +1,7 @@ # Agent Note: Web 浏览器预期输出的必需 CI 门禁 Status: implemented +Archived: 2026-09-30 [English](2026-07-30-web-browser-snapshot-ci-gate.md) | 中文 diff --git a/.agents/notes/archived/testing/2026-09-06-client-assembly-test-line.i18n.yaml b/.agents/notes/archived/testing/2026-09-06-client-assembly-test-line.i18n.yaml new file mode 100644 index 0000000000..034a3a8acc --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-06-client-assembly-test-line.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-09-06-client-assembly-test-line.md +2026-09-06-client-assembly-test-line.md: 163f3ce63aee65055d995c12d81966f2dff98990 +2026-09-06-client-assembly-test-line.zh.md: 1dc6d07632caa21be9c87f2e8656a8152a013390 diff --git a/.agents/notes/implemented/testing/2026-09-06-client-assembly-test-line.md b/.agents/notes/archived/testing/2026-09-06-client-assembly-test-line.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-06-client-assembly-test-line.md rename to .agents/notes/archived/testing/2026-09-06-client-assembly-test-line.md index d2515c0689..163f3ce63a 100644 --- a/.agents/notes/implemented/testing/2026-09-06-client-assembly-test-line.md +++ b/.agents/notes/archived/testing/2026-09-06-client-assembly-test-line.md @@ -1,6 +1,7 @@ # Agent Note: Whole-client test tier over an endpoint-named Remote mock Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-06-client-assembly-test-line.zh.md) diff --git a/.agents/notes/implemented/testing/2026-09-06-client-assembly-test-line.zh.md b/.agents/notes/archived/testing/2026-09-06-client-assembly-test-line.zh.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-06-client-assembly-test-line.zh.md rename to .agents/notes/archived/testing/2026-09-06-client-assembly-test-line.zh.md index 90b5768db4..1dc6d07632 100644 --- a/.agents/notes/implemented/testing/2026-09-06-client-assembly-test-line.zh.md +++ b/.agents/notes/archived/testing/2026-09-06-client-assembly-test-line.zh.md @@ -1,6 +1,7 @@ # Agent Note: 基于端点具名 Remote mock 的整机客户端测试档 Status: implemented +Archived: 2026-09-30 [English](2026-09-06-client-assembly-test-line.md) | 中文 diff --git a/.agents/notes/archived/testing/2026-09-06-pr-ci-runner-temporary-storage.i18n.yaml b/.agents/notes/archived/testing/2026-09-06-pr-ci-runner-temporary-storage.i18n.yaml new file mode 100644 index 0000000000..3ed8efef11 --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-06-pr-ci-runner-temporary-storage.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-09-06-pr-ci-runner-temporary-storage.md +2026-09-06-pr-ci-runner-temporary-storage.md: 9faeaa088649d053c3d293ff5ec5282d4fd29d90 +2026-09-06-pr-ci-runner-temporary-storage.zh.md: 2a4355412286a8a76b404e367c217d5a1838a2a0 diff --git a/.agents/notes/implemented/testing/2026-09-06-pr-ci-runner-temporary-storage.md b/.agents/notes/archived/testing/2026-09-06-pr-ci-runner-temporary-storage.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-06-pr-ci-runner-temporary-storage.md rename to .agents/notes/archived/testing/2026-09-06-pr-ci-runner-temporary-storage.md index 59d609c08e..9faeaa0886 100644 --- a/.agents/notes/implemented/testing/2026-09-06-pr-ci-runner-temporary-storage.md +++ b/.agents/notes/archived/testing/2026-09-06-pr-ci-runner-temporary-storage.md @@ -1,6 +1,7 @@ # Agent Note: runner-owned temporary storage for PR CI Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-06-pr-ci-runner-temporary-storage.zh.md) diff --git a/.agents/notes/implemented/testing/2026-09-06-pr-ci-runner-temporary-storage.zh.md b/.agents/notes/archived/testing/2026-09-06-pr-ci-runner-temporary-storage.zh.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-06-pr-ci-runner-temporary-storage.zh.md rename to .agents/notes/archived/testing/2026-09-06-pr-ci-runner-temporary-storage.zh.md index f6765212af..2a43554122 100644 --- a/.agents/notes/implemented/testing/2026-09-06-pr-ci-runner-temporary-storage.zh.md +++ b/.agents/notes/archived/testing/2026-09-06-pr-ci-runner-temporary-storage.zh.md @@ -1,6 +1,7 @@ # Agent Note: PR CI 使用 runner 管理的临时存储 Status: implemented +Archived: 2026-09-30 [English](2026-09-06-pr-ci-runner-temporary-storage.md) | 中文 diff --git a/.agents/notes/archived/testing/2026-09-06-python-runtime-install-retry.i18n.yaml b/.agents/notes/archived/testing/2026-09-06-python-runtime-install-retry.i18n.yaml new file mode 100644 index 0000000000..d34d4d7f47 --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-06-python-runtime-install-retry.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-09-06-python-runtime-install-retry.md +2026-09-06-python-runtime-install-retry.md: 2fbb17afbcbc7ed0095256a5753d27273720585f +2026-09-06-python-runtime-install-retry.zh.md: e1b20eab4ff066b7df90c8aeaee51cc99cd8d9ca diff --git a/.agents/notes/implemented/testing/2026-09-06-python-runtime-install-retry.md b/.agents/notes/archived/testing/2026-09-06-python-runtime-install-retry.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-06-python-runtime-install-retry.md rename to .agents/notes/archived/testing/2026-09-06-python-runtime-install-retry.md index 639fe2814a..2fbb17afbc 100644 --- a/.agents/notes/implemented/testing/2026-09-06-python-runtime-install-retry.md +++ b/.agents/notes/archived/testing/2026-09-06-python-runtime-install-retry.md @@ -1,6 +1,7 @@ # Agent Note: Bounded retry for Python runtime dependency install Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-06-python-runtime-install-retry.zh.md) diff --git a/.agents/notes/implemented/testing/2026-09-06-python-runtime-install-retry.zh.md b/.agents/notes/archived/testing/2026-09-06-python-runtime-install-retry.zh.md similarity index 98% rename from .agents/notes/implemented/testing/2026-09-06-python-runtime-install-retry.zh.md rename to .agents/notes/archived/testing/2026-09-06-python-runtime-install-retry.zh.md index 7a7943f43f..e1b20eab4f 100644 --- a/.agents/notes/implemented/testing/2026-09-06-python-runtime-install-retry.zh.md +++ b/.agents/notes/archived/testing/2026-09-06-python-runtime-install-retry.zh.md @@ -1,6 +1,7 @@ # Agent Note: Python runtime 依赖安装的有界重试 Status: implemented +Archived: 2026-09-30 [English](2026-09-06-python-runtime-install-retry.md) | 中文 diff --git a/.agents/notes/archived/testing/2026-09-06-standard-hosted-benchmark-runner.i18n.yaml b/.agents/notes/archived/testing/2026-09-06-standard-hosted-benchmark-runner.i18n.yaml new file mode 100644 index 0000000000..4290cef39c --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-06-standard-hosted-benchmark-runner.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-09-06-standard-hosted-benchmark-runner.md +2026-09-06-standard-hosted-benchmark-runner.md: 9ebf9868ef1ccd7e73e6a5bafac6af5eaf65ffaa +2026-09-06-standard-hosted-benchmark-runner.zh.md: 7f3af61c66939bc14ecdfd70c23431c87493c4f7 diff --git a/.agents/notes/implemented/testing/2026-09-06-standard-hosted-benchmark-runner.md b/.agents/notes/archived/testing/2026-09-06-standard-hosted-benchmark-runner.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-06-standard-hosted-benchmark-runner.md rename to .agents/notes/archived/testing/2026-09-06-standard-hosted-benchmark-runner.md index af95af6ee8..9ebf9868ef 100644 --- a/.agents/notes/implemented/testing/2026-09-06-standard-hosted-benchmark-runner.md +++ b/.agents/notes/archived/testing/2026-09-06-standard-hosted-benchmark-runner.md @@ -1,6 +1,7 @@ # Agent Note: Standard hosted runner for required benchmarks Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-06-standard-hosted-benchmark-runner.zh.md) diff --git a/.agents/notes/implemented/testing/2026-09-06-standard-hosted-benchmark-runner.zh.md b/.agents/notes/archived/testing/2026-09-06-standard-hosted-benchmark-runner.zh.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-06-standard-hosted-benchmark-runner.zh.md rename to .agents/notes/archived/testing/2026-09-06-standard-hosted-benchmark-runner.zh.md index 47095a5b2e..7f3af61c66 100644 --- a/.agents/notes/implemented/testing/2026-09-06-standard-hosted-benchmark-runner.zh.md +++ b/.agents/notes/archived/testing/2026-09-06-standard-hosted-benchmark-runner.zh.md @@ -1,6 +1,7 @@ # Agent Note: 必需 benchmark 使用标准托管运行器 Status: implemented +Archived: 2026-09-30 [English](2026-09-06-standard-hosted-benchmark-runner.md) | 中文 diff --git a/.agents/notes/archived/testing/2026-09-07-publint-test-subprocess-lifetime.i18n.yaml b/.agents/notes/archived/testing/2026-09-07-publint-test-subprocess-lifetime.i18n.yaml new file mode 100644 index 0000000000..0ab4ee9bb8 --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-07-publint-test-subprocess-lifetime.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-09-07-publint-test-subprocess-lifetime.md +2026-09-07-publint-test-subprocess-lifetime.md: 8e3430d1a357b6b903b980c248e469907b85974c +2026-09-07-publint-test-subprocess-lifetime.zh.md: 9f4f20a358c86f2d8d17df7da19a28c03694a231 diff --git a/.agents/notes/implemented/testing/2026-09-07-publint-test-subprocess-lifetime.md b/.agents/notes/archived/testing/2026-09-07-publint-test-subprocess-lifetime.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-07-publint-test-subprocess-lifetime.md rename to .agents/notes/archived/testing/2026-09-07-publint-test-subprocess-lifetime.md index f8b0e0455f..8e3430d1a3 100644 --- a/.agents/notes/implemented/testing/2026-09-07-publint-test-subprocess-lifetime.md +++ b/.agents/notes/archived/testing/2026-09-07-publint-test-subprocess-lifetime.md @@ -1,6 +1,7 @@ # Agent Note: Publint test subprocesses inherit the execution lane deadline Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-07-publint-test-subprocess-lifetime.zh.md) diff --git a/.agents/notes/implemented/testing/2026-09-07-publint-test-subprocess-lifetime.zh.md b/.agents/notes/archived/testing/2026-09-07-publint-test-subprocess-lifetime.zh.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-07-publint-test-subprocess-lifetime.zh.md rename to .agents/notes/archived/testing/2026-09-07-publint-test-subprocess-lifetime.zh.md index dd0533752b..9f4f20a358 100644 --- a/.agents/notes/implemented/testing/2026-09-07-publint-test-subprocess-lifetime.zh.md +++ b/.agents/notes/archived/testing/2026-09-07-publint-test-subprocess-lifetime.zh.md @@ -1,6 +1,7 @@ # Agent Note: Publint 测试子进程继承执行通道期限 Status: implemented +Archived: 2026-09-30 [English](2026-09-07-publint-test-subprocess-lifetime.md) | 中文 diff --git a/.agents/notes/archived/testing/2026-09-07-pwsh-ci-observable-completion.i18n.yaml b/.agents/notes/archived/testing/2026-09-07-pwsh-ci-observable-completion.i18n.yaml new file mode 100644 index 0000000000..921be49b69 --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-07-pwsh-ci-observable-completion.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-09-07-pwsh-ci-observable-completion.md +2026-09-07-pwsh-ci-observable-completion.md: bb77be62e8d77c10749adb386d5a127eec5e76ac +2026-09-07-pwsh-ci-observable-completion.zh.md: 6516febde66bb05373e29a2fac421835ebccd758 diff --git a/.agents/notes/implemented/testing/2026-09-07-pwsh-ci-observable-completion.md b/.agents/notes/archived/testing/2026-09-07-pwsh-ci-observable-completion.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-07-pwsh-ci-observable-completion.md rename to .agents/notes/archived/testing/2026-09-07-pwsh-ci-observable-completion.md index 2cd42296c1..bb77be62e8 100644 --- a/.agents/notes/implemented/testing/2026-09-07-pwsh-ci-observable-completion.md +++ b/.agents/notes/archived/testing/2026-09-07-pwsh-ci-observable-completion.md @@ -1,6 +1,7 @@ # Agent Note: PowerShell CI completion and profile expectations Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-07-pwsh-ci-observable-completion.zh.md) diff --git a/.agents/notes/implemented/testing/2026-09-07-pwsh-ci-observable-completion.zh.md b/.agents/notes/archived/testing/2026-09-07-pwsh-ci-observable-completion.zh.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-07-pwsh-ci-observable-completion.zh.md rename to .agents/notes/archived/testing/2026-09-07-pwsh-ci-observable-completion.zh.md index 9ea83963be..6516febde6 100644 --- a/.agents/notes/implemented/testing/2026-09-07-pwsh-ci-observable-completion.zh.md +++ b/.agents/notes/archived/testing/2026-09-07-pwsh-ci-observable-completion.zh.md @@ -1,6 +1,7 @@ # Agent Note: PowerShell CI 完成信号与 profile 预期 Status: implemented +Archived: 2026-09-30 [English](2026-09-07-pwsh-ci-observable-completion.md) | 中文 diff --git a/.agents/notes/archived/testing/2026-09-07-subagent-teardown-test-budgets.i18n.yaml b/.agents/notes/archived/testing/2026-09-07-subagent-teardown-test-budgets.i18n.yaml new file mode 100644 index 0000000000..817a15b32c --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-07-subagent-teardown-test-budgets.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-09-07-subagent-teardown-test-budgets.md +2026-09-07-subagent-teardown-test-budgets.md: 2a1049bdecfaabc172bb607fab4b25c7845d2acd +2026-09-07-subagent-teardown-test-budgets.zh.md: 2650b3057fe35aab5cfe73b85e40851644e58e24 diff --git a/.agents/notes/implemented/testing/2026-09-07-subagent-teardown-test-budgets.md b/.agents/notes/archived/testing/2026-09-07-subagent-teardown-test-budgets.md similarity index 77% rename from .agents/notes/implemented/testing/2026-09-07-subagent-teardown-test-budgets.md rename to .agents/notes/archived/testing/2026-09-07-subagent-teardown-test-budgets.md index 372c8b3110..2a1049bdec 100644 --- a/.agents/notes/implemented/testing/2026-09-07-subagent-teardown-test-budgets.md +++ b/.agents/notes/archived/testing/2026-09-07-subagent-teardown-test-budgets.md @@ -1,6 +1,7 @@ # Agent Note: Subagent teardown tests inherit their execution lane budgets Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-07-subagent-teardown-test-budgets.zh.md) @@ -12,7 +13,7 @@ The Windows coverage run (run 34085536250, job 101628739668) reports two teardow The [ACP test](../../../../packages/subagent/subagent-acp/tests/subagent-acp.spec.ts) awaits disposal under the execution lane’s test budget, then checks the actual child outcome. Failure cleanup awaits disposal and child completion before removing the private directory. A deferred exit observation proves that disposal cannot finish merely because termination was requested. The production EOF and termination grace periods remain unchanged. -The [Codex test](../../../../packages/subagent/subagent-codex/tests/real-product.spec.ts) inherits the execution lane’s hook budget. Cleanup captures its contexts, HTTP fixtures, and temporary roots before its first asynchronous wait, so an overdue hook cannot drain resources registered by another test. It preserves context-disposal, server-closure, and directory-removal ordering, waits for every captured disposer, and attempts the remaining cleanup stages after a rejection. Collected errors identify each failing stage or path and retain their causes; cleanup reports them only after all captured resources have been attempted. +The [Codex test](../../../../packages/subagent/subagent-codex/tests/real-product.spec.ts) inherits the execution lane’s hook budget, which `vitest.config.ts` applies to every inline project from `DSH_COVERAGE_TEST_TIMEOUT_MS` ([`coverageTestTimeoutOptions`](../../../../scripts/coverage-partitions.ts) owns why a CLI flag cannot carry it). Cleanup captures its contexts, HTTP fixtures, and temporary roots before its first asynchronous wait, so an overdue hook cannot drain resources registered by another test. It preserves context-disposal, server-closure, and directory-removal ordering, waits for every captured disposer, and attempts the remaining cleanup stages after a rejection. Collected errors identify each failing stage or path and retain their causes; cleanup reports them only after all captured resources have been attempted. The [native Windows CI decision](../process/2026-08-08-native-windows-pull-request-ci.md) continues to own lane scheduling and budgets. This change only removes conflicting local deadlines and strengthens resource-lifetime assertions; it does not establish a Windows process-kill or filesystem defect. diff --git a/.agents/notes/implemented/testing/2026-09-07-subagent-teardown-test-budgets.zh.md b/.agents/notes/archived/testing/2026-09-07-subagent-teardown-test-budgets.zh.md similarity index 74% rename from .agents/notes/implemented/testing/2026-09-07-subagent-teardown-test-budgets.zh.md rename to .agents/notes/archived/testing/2026-09-07-subagent-teardown-test-budgets.zh.md index 8539664280..2650b3057f 100644 --- a/.agents/notes/implemented/testing/2026-09-07-subagent-teardown-test-budgets.zh.md +++ b/.agents/notes/archived/testing/2026-09-07-subagent-teardown-test-budgets.zh.md @@ -1,6 +1,7 @@ # Agent Note: 子代理清理测试继承执行通道的时间预算 Status: implemented +Archived: 2026-09-30 [English](2026-09-07-subagent-teardown-test-budgets.md) | 中文 @@ -12,7 +13,7 @@ Windows 覆盖率运行 (run 34085536250, job 101628739668) 为测试和钩子 [ACP 测试](../../../../packages/subagent/subagent-acp/tests/subagent-acp.spec.ts) 在执行通道的测试预算内等待清理完成,然后检查真实子进程的结果。失败清理先等待释放和子进程完成,再删除私有目录。延迟的退出观察证明,清理不能仅因已请求终止而完成。生产环境的 EOF 与终止宽限期保持不变。 -[Codex 测试](../../../../packages/subagent/subagent-codex/tests/real-product.spec.ts) 继承执行通道的钩子预算。清理在第一次异步等待前取得其上下文、HTTP 夹具和临时根目录,因此超时钩子不能取走其他测试注册的资源。清理保留上下文释放、服务器关闭、目录删除的顺序,等待所有已取得的释放操作,并在拒绝后继续尝试其余清理阶段。收集的错误指出各自失败的阶段或路径并保留原始原因;只有全部已取得资源都尝试清理后才报告错误。 +[Codex 测试](../../../../packages/subagent/subagent-codex/tests/real-product.spec.ts) 继承执行通道的钩子预算;`vitest.config.ts` 从 `DSH_COVERAGE_TEST_TIMEOUT_MS` 把该预算施加到每个内联 project([`coverageTestTimeoutOptions`](../../../../scripts/coverage-partitions.ts) 负责说明 CLI 标志为何无法承载它)。清理在第一次异步等待前取得其上下文、HTTP 夹具和临时根目录,因此超时钩子不能取走其他测试注册的资源。清理保留上下文释放、服务器关闭、目录删除的顺序,等待所有已取得的释放操作,并在拒绝后继续尝试其余清理阶段。收集的错误指出各自失败的阶段或路径并保留原始原因;只有全部已取得资源都尝试清理后才报告错误。 [原生 Windows CI 决策](../process/2026-08-08-native-windows-pull-request-ci.zh.md) 继续负责通道调度和预算。本次改动仅移除冲突的局部期限并加强资源生命周期断言;它并不证明 Windows 进程终止或文件系统存在缺陷。 diff --git a/.agents/notes/archived/testing/2026-09-08-ci-completion-observations.i18n.yaml b/.agents/notes/archived/testing/2026-09-08-ci-completion-observations.i18n.yaml new file mode 100644 index 0000000000..fb6ec305ff --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-08-ci-completion-observations.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-09-08-ci-completion-observations.md +2026-09-08-ci-completion-observations.md: c2d8fa0f0fe9e691cfa6e0d87c9fda0a8b5abdfe +2026-09-08-ci-completion-observations.zh.md: 97d64030ffa6f532904c440226c46e3d757a0f92 diff --git a/.agents/notes/implemented/testing/2026-09-08-ci-completion-observations.md b/.agents/notes/archived/testing/2026-09-08-ci-completion-observations.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-08-ci-completion-observations.md rename to .agents/notes/archived/testing/2026-09-08-ci-completion-observations.md index 30145f26fc..c2d8fa0f0f 100644 --- a/.agents/notes/implemented/testing/2026-09-08-ci-completion-observations.md +++ b/.agents/notes/archived/testing/2026-09-08-ci-completion-observations.md @@ -1,6 +1,7 @@ # Agent Note: CI fixture completion and isolation Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-08-ci-completion-observations.zh.md) diff --git a/.agents/notes/implemented/testing/2026-09-08-ci-completion-observations.zh.md b/.agents/notes/archived/testing/2026-09-08-ci-completion-observations.zh.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-08-ci-completion-observations.zh.md rename to .agents/notes/archived/testing/2026-09-08-ci-completion-observations.zh.md index a819d6ad45..97d64030ff 100644 --- a/.agents/notes/implemented/testing/2026-09-08-ci-completion-observations.zh.md +++ b/.agents/notes/archived/testing/2026-09-08-ci-completion-observations.zh.md @@ -1,6 +1,7 @@ # Agent Note: CI fixture 的完成与隔离 Status: implemented +Archived: 2026-09-30 [English](2026-09-08-ci-completion-observations.md) | 中文 diff --git a/.agents/notes/archived/testing/2026-09-08-ci-readiness-and-completion.i18n.yaml b/.agents/notes/archived/testing/2026-09-08-ci-readiness-and-completion.i18n.yaml new file mode 100644 index 0000000000..07c045bd3d --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-08-ci-readiness-and-completion.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-09-08-ci-readiness-and-completion.md +2026-09-08-ci-readiness-and-completion.md: 1abe3e2b2f655b0622ee0288800364a473f51c84 +2026-09-08-ci-readiness-and-completion.zh.md: 8bac86c815d3343129ae0294debe680a076514b6 diff --git a/.agents/notes/implemented/testing/2026-09-08-ci-readiness-and-completion.md b/.agents/notes/archived/testing/2026-09-08-ci-readiness-and-completion.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-08-ci-readiness-and-completion.md rename to .agents/notes/archived/testing/2026-09-08-ci-readiness-and-completion.md index 1bf4f701f1..1abe3e2b2f 100644 --- a/.agents/notes/implemented/testing/2026-09-08-ci-readiness-and-completion.md +++ b/.agents/notes/archived/testing/2026-09-08-ci-readiness-and-completion.md @@ -1,6 +1,7 @@ # Agent Note: CI assertions wait for owned completion Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-08-ci-readiness-and-completion.zh.md) diff --git a/.agents/notes/implemented/testing/2026-09-08-ci-readiness-and-completion.zh.md b/.agents/notes/archived/testing/2026-09-08-ci-readiness-and-completion.zh.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-08-ci-readiness-and-completion.zh.md rename to .agents/notes/archived/testing/2026-09-08-ci-readiness-and-completion.zh.md index ae6d4e0195..8bac86c815 100644 --- a/.agents/notes/implemented/testing/2026-09-08-ci-readiness-and-completion.zh.md +++ b/.agents/notes/archived/testing/2026-09-08-ci-readiness-and-completion.zh.md @@ -1,6 +1,7 @@ # Agent Note: CI 断言等待所属操作完成 Status: implemented +Archived: 2026-09-30 [English](2026-09-08-ci-readiness-and-completion.md) | 中文 diff --git a/.agents/notes/archived/testing/2026-09-09-user-patch-hmr-test-delivery.i18n.yaml b/.agents/notes/archived/testing/2026-09-09-user-patch-hmr-test-delivery.i18n.yaml new file mode 100644 index 0000000000..616cb322f2 --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-09-user-patch-hmr-test-delivery.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-09-09-user-patch-hmr-test-delivery.md +2026-09-09-user-patch-hmr-test-delivery.md: 0c395b86ecaf07fe0f75432428c1b2b4f19ca4c5 +2026-09-09-user-patch-hmr-test-delivery.zh.md: 1c479e29885c9e4c99c77891e597ec7e73362191 diff --git a/.agents/notes/implemented/testing/2026-09-09-user-patch-hmr-test-delivery.md b/.agents/notes/archived/testing/2026-09-09-user-patch-hmr-test-delivery.md similarity index 87% rename from .agents/notes/implemented/testing/2026-09-09-user-patch-hmr-test-delivery.md rename to .agents/notes/archived/testing/2026-09-09-user-patch-hmr-test-delivery.md index 32ee3073dc..0c395b86ec 100644 --- a/.agents/notes/implemented/testing/2026-09-09-user-patch-hmr-test-delivery.md +++ b/.agents/notes/archived/testing/2026-09-09-user-patch-hmr-test-delivery.md @@ -1,6 +1,7 @@ # Agent Note: User-patch tests control filesystem event delivery Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-09-user-patch-hmr-test-delivery.zh.md) @@ -12,7 +13,7 @@ The macOS Sandbox run (run 34238200206, job 102101292119) times out while waitin The [user-patch test](../../../../packages/boot/app-boot/tests/user-patches.spec.ts) writes real patch files and delivers their add, change, and unlink events through a Chokidar watcher without native watch handles. App-boot watcher registration, refresh serialization, Include recomposition, plugin activation, failure reporting, and recovery remain real; plugin rollback is absent under the [Loader policy](../simplification/2026-09-09-nontransactional-loader.md). The fixture restores its watcher factory and disposes the Context even when setup fails before the local cleanup block. -The separate [watcher tests](../../../../packages/boot/hmr/tests/watch-config.spec.ts) own native notification delivery, including add/change/unlink, initially absent parents, and filesystem aliases. The refresh test does not establish operating-system delivery guarantees. +The separate [watcher tests](../../../../packages/boot/hmr/tests/watch-config.spec.ts) own native notification delivery, including add/change/unlink, initially absent parents, and filesystem aliases. Before their first write they close a second `fs.watch` directory handle, which on darwin blocks until libuv has rebuilt the FSEvents stream that Chokidar readiness does not wait for, and their polling deadline is the case's effective budget. The refresh test does not establish operating-system delivery guarantees. ## Alternatives considered diff --git a/.agents/notes/implemented/testing/2026-09-09-user-patch-hmr-test-delivery.zh.md b/.agents/notes/archived/testing/2026-09-09-user-patch-hmr-test-delivery.zh.md similarity index 87% rename from .agents/notes/implemented/testing/2026-09-09-user-patch-hmr-test-delivery.zh.md rename to .agents/notes/archived/testing/2026-09-09-user-patch-hmr-test-delivery.zh.md index bcd6f261c0..1c479e2988 100644 --- a/.agents/notes/implemented/testing/2026-09-09-user-patch-hmr-test-delivery.zh.md +++ b/.agents/notes/archived/testing/2026-09-09-user-patch-hmr-test-delivery.zh.md @@ -1,6 +1,7 @@ # Agent Note: 用户 patch 测试控制文件系统事件投递 Status: implemented +Archived: 2026-09-30 [English](2026-09-09-user-patch-hmr-test-delivery.md) | 中文 @@ -12,7 +13,7 @@ macOS Sandbox 运行 (run 34238200206, job 102101292119) 在等待首次用户 p [用户 patch 测试](../../../../packages/boot/app-boot/tests/user-patches.spec.ts) 写入真实 patch 文件,并通过不持有原生监听句柄的 Chokidar watcher 投递 add、change 和 unlink 事件。应用启动监视器注册、刷新串行化、Include 重组、插件激活、失败报告与恢复仍使用真实实现;[Loader 策略](../simplification/2026-09-09-nontransactional-loader.zh.md) 不提供插件回滚。即使初始化在进入局部清理块前失败,夹具也会恢复 watcher 工厂并销毁 Context。 -独立的 [监视器测试](../../../../packages/boot/hmr/tests/watch-config.spec.ts) 负责原生通知投递,包括 add/change/unlink、初始不存在的父目录和文件系统别名。刷新测试不验证操作系统的投递保证。 +独立的 [监视器测试](../../../../packages/boot/hmr/tests/watch-config.spec.ts) 负责原生通知投递,包括 add/change/unlink、初始不存在的父目录和文件系统别名。它们在首次写入前关闭第二个 `fs.watch` 目录句柄,该操作在 darwin 上会阻塞到 libuv 重建 FSEvents 流为止(Chokidar 的就绪信号并不等待该流建立);它们的轮询截止时间取用例的有效预算。刷新测试不验证操作系统的投递保证。 ## 考虑过的替代方案 diff --git a/.agents/notes/archived/testing/2026-09-10-hosted-image-test-assumptions.i18n.yaml b/.agents/notes/archived/testing/2026-09-10-hosted-image-test-assumptions.i18n.yaml new file mode 100644 index 0000000000..9034f92d65 --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-10-hosted-image-test-assumptions.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-09-10-hosted-image-test-assumptions.md +2026-09-10-hosted-image-test-assumptions.md: 784d31b19f0cec2519fc335e7f5d3df89b855285 +2026-09-10-hosted-image-test-assumptions.zh.md: 6b605fe7d96e27f36af98cfbcc5ddf6fd9a6a4e9 diff --git a/.agents/notes/implemented/testing/2026-09-10-hosted-image-test-assumptions.md b/.agents/notes/archived/testing/2026-09-10-hosted-image-test-assumptions.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-10-hosted-image-test-assumptions.md rename to .agents/notes/archived/testing/2026-09-10-hosted-image-test-assumptions.md index e6fe4e3584..784d31b19f 100644 --- a/.agents/notes/implemented/testing/2026-09-10-hosted-image-test-assumptions.md +++ b/.agents/notes/archived/testing/2026-09-10-hosted-image-test-assumptions.md @@ -1,6 +1,7 @@ # Agent Note: Hosted-image assumptions in the coverage suite Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-10-hosted-image-test-assumptions.zh.md) diff --git a/.agents/notes/implemented/testing/2026-09-10-hosted-image-test-assumptions.zh.md b/.agents/notes/archived/testing/2026-09-10-hosted-image-test-assumptions.zh.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-10-hosted-image-test-assumptions.zh.md rename to .agents/notes/archived/testing/2026-09-10-hosted-image-test-assumptions.zh.md index 4fe8bf2a37..6b605fe7d9 100644 --- a/.agents/notes/implemented/testing/2026-09-10-hosted-image-test-assumptions.zh.md +++ b/.agents/notes/archived/testing/2026-09-10-hosted-image-test-assumptions.zh.md @@ -1,6 +1,7 @@ # Agent Note: coverage 套件里的托管镜像假设 Status: implemented +Archived: 2026-09-30 [English](2026-09-10-hosted-image-test-assumptions.md) | 中文 diff --git a/.agents/notes/archived/testing/2026-09-12-connection-and-compaction-fixture-preconditions.i18n.yaml b/.agents/notes/archived/testing/2026-09-12-connection-and-compaction-fixture-preconditions.i18n.yaml new file mode 100644 index 0000000000..d1df8805a6 --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-12-connection-and-compaction-fixture-preconditions.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-09-12-connection-and-compaction-fixture-preconditions.md +2026-09-12-connection-and-compaction-fixture-preconditions.md: ab7e0989db489e7f457a56061567e49886feb58a +2026-09-12-connection-and-compaction-fixture-preconditions.zh.md: 8810fc279955dcd7d0fb035960259e0824aec288 diff --git a/.agents/notes/implemented/testing/2026-09-12-connection-and-compaction-fixture-preconditions.md b/.agents/notes/archived/testing/2026-09-12-connection-and-compaction-fixture-preconditions.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-12-connection-and-compaction-fixture-preconditions.md rename to .agents/notes/archived/testing/2026-09-12-connection-and-compaction-fixture-preconditions.md index 9b97657c77..ab7e0989db 100644 --- a/.agents/notes/implemented/testing/2026-09-12-connection-and-compaction-fixture-preconditions.md +++ b/.agents/notes/archived/testing/2026-09-12-connection-and-compaction-fixture-preconditions.md @@ -1,6 +1,7 @@ # Agent Note: Connection and compaction fixture preconditions Status: implemented +Archived: 2026-09-30 English | [中文](2026-09-12-connection-and-compaction-fixture-preconditions.zh.md) diff --git a/.agents/notes/implemented/testing/2026-09-12-connection-and-compaction-fixture-preconditions.zh.md b/.agents/notes/archived/testing/2026-09-12-connection-and-compaction-fixture-preconditions.zh.md similarity index 99% rename from .agents/notes/implemented/testing/2026-09-12-connection-and-compaction-fixture-preconditions.zh.md rename to .agents/notes/archived/testing/2026-09-12-connection-and-compaction-fixture-preconditions.zh.md index bc73a0e84a..8810fc2799 100644 --- a/.agents/notes/implemented/testing/2026-09-12-connection-and-compaction-fixture-preconditions.zh.md +++ b/.agents/notes/archived/testing/2026-09-12-connection-and-compaction-fixture-preconditions.zh.md @@ -1,6 +1,7 @@ # Agent Note: 连接与压缩测试夹具的前置条件 Status: implemented +Archived: 2026-09-30 [English](2026-09-12-connection-and-compaction-fixture-preconditions.md) | 中文 diff --git a/.agents/notes/archived/testing/2026-09-26-web-conversation-clock-fixture-day.i18n.yaml b/.agents/notes/archived/testing/2026-09-26-web-conversation-clock-fixture-day.i18n.yaml new file mode 100644 index 0000000000..8c4e4c2cdb --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-26-web-conversation-clock-fixture-day.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-09-26-web-conversation-clock-fixture-day.md +2026-09-26-web-conversation-clock-fixture-day.md: 1984219fc0850ca59c64b4f2864f790a63164d84 +2026-09-26-web-conversation-clock-fixture-day.zh.md: 6ecdb4cfbefe49fbd15ebea1d5a59f2cc1595ef2 diff --git a/.agents/notes/archived/testing/2026-09-26-web-conversation-clock-fixture-day.md b/.agents/notes/archived/testing/2026-09-26-web-conversation-clock-fixture-day.md new file mode 100644 index 0000000000..1984219fc0 --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-26-web-conversation-clock-fixture-day.md @@ -0,0 +1,48 @@ +# Agent Note: Web conversation clocks on the fixture day + +Status: implemented +Archived: 2026-09-30 + +English | [中文](2026-09-26-web-conversation-clock-fixture-day.zh.md) + +## Problem + +Run 36157253018 (job 108144715986, `node 24 / snapshots and artifacts`) failed four browser scenarios in one pass — [steering](../../../../apps/web/tests/steering.e2e.ts), [markdown-images](../../../../apps/web/tests/markdown-images.e2e.ts), [message-actions](../../../../apps/web/tests/message-actions.e2e.ts), and [reference-composer](../../../../apps/web/tests/reference-composer.e2e.ts) — with one aria difference: a message rendered `… and stop. 9/25 23:58` where its golden records `… and stop. {{clock}}`. + +[`newEnglishPage`](../../../../apps/web/tests/support.ts) pins the browser to `Asia/Shanghai`, and [`formatMessageClock`](../../../../packages/client/ui-chat/src/client/chat/message-chrome.ts) prefixes `clock.md` / `clock.ymd` to the clock as soon as the message's local calendar day or year differs from the renderer's. These scenarios left both clocks on the wall clock, and their message times are stamped during the run: a live composer send by the Host, a seed whose fixture header carries `createdAt: 0` anchored at `Date.now() - 60_000` by `seedSession`. The failing job started at 15:54Z, six minutes before local midnight, so rows stamped before it were captured after it and rendered a date prefix; the next run of the same scenario passed minutes after midnight. + +The lane already carried the remedy — [`WEB_FIXTURE_TIME`](../../../../apps/web/tests/support.ts), documented as the same-day anchor for seeded event times and the `Asia/Shanghai` browser clock, and used by seven other scenarios — but these four scenarios never adopted it. + +## Decision + +The four scenarios read the fixture day on both clocks. + +Live-stamped scenarios pin the Host clock with `pinHostClock()`, a `Date.now` spy advancing from the anchor with real elapsed time, and the browser clock with [`pinBrowserClock(page)`](../../../../apps/web/tests/support.ts). Seeded scenarios anchor the seed through `seedSession`'s `createdAt` argument and pin the browser clock the same way. + +The seed anchor is not only the rendered clock: the sidebar's relative ages are computed against the browser clock, so a pinned browser with a live-anchored seed reads `8mo` where the [message-actions](../../../../apps/web/tests/message-actions.e2e.ts) fork golden asserts `now` and `1min`. + +`pinBrowserClock` re-applies one frozen instant from the anchor on an interval instead of leaving it at a single value, because product code reads two `Date.now()` values to decide how long a rendered value is held: the step process keeps its previous title for `PROCESS_TITLE_MINIMUM_MS` = 150 ms ([ChatGroupSeat](../../../../packages/client/ui-chat/src/client/chat/ChatGroupSeat.tsx)) and the composer keymap keeps a composition guard 10 ms past `compositionend` ([keymap](../../../../packages/client/ui-conversation/src/client/input/editor/keymap.ts)). Both compute the remaining hold as `Date.now() - previousReading`, which a permanently frozen clock never advances, so the hold never elapses and the golden's settled text stays unrendered. CI run 36179748541 (job 108218939163) caught exactly that on the first revision that froze the clock: `Preparing questions` where the steering mid golden records `Waiting for your action · Ready to continue?`. + +The steering mid capture waits for that settled question title before it captures, and the [whole-queue scenario](../../../../apps/web/tests/steering.e2e.ts) calls the queue gesture only after the running turn's Stop control appears, so Enter's queue decision always resolves against an agent that already reports busy. + +## Alternatives considered + +**Collapse the rendered date prefix in the aria normalizer.** Collapsing `9/25 23:58` to `{{clock}}` in `normalizeAria` fixes the four scenarios with a two-line change, and it was measured: it passed the four files and then failed `cordis-tool-round`, `stats-paged-history`, and `navigation-panes` in one `DSH_WEB_SNAPSHOT_WORKERS=16` lane run, because their goldens deliberately record the dated form (`9/1 {{clock}}` and the year form in the Timing pane), and `skill-tool-row` already tokenizes that form as `{{date}} {{clock}}`. The two renderings state different facts — this row is from another day, this row is from today — so collapsing them deletes assertions instead of stabilizing them. + +**Leave the browser clock frozen.** Pinning one instant for the whole scenario is simpler and passed the four files, but it removes elapsed time from every two-reading hold in the page, which is how the `Preparing questions` capture above happened. Re-applying the anchor keeps the calendar pinned without changing how long a held value is held. + +**Pin the clocks for the whole lane.** Pinning inside `launchWebScaffold` and `newEnglishPage` would cover every scenario at once, including the ones that fail this way in future. It loses on blast radius: 83 goldens carry a clock and session-tree goldens assert literal relative ages, so a lane-wide now moves every scenario away from its own session and fixture times simultaneously, and each would still need its own anchor to read the buckets it was recorded with. + +**Keep scenarios clear of local midnight.** Scheduling or refusing runs near the boundary leaves the dependency in place and fails the run instead of the code under test. The [CI test reliability workflow](../../../skills/dsh-ci-test-reliability/SKILL.md#reject-flake-masking-fixes) rejects budgets and retries as substitutes for a controlled observation. + +## Verification + +Two negative controls pin one clock and leave the other on the wall clock, reproducing the recorded signature exactly: `steering` with the browser clock pinned and the Host clock live fails its two golden tests with `… and stop. 9/26 {{clock}}`, and `message-actions` with the browser clock pinned and a live-anchored seed fails with `9/26 {{clock}}` on every clock line plus `now` where the fork golden asserts `1min`. Pinning both clocks passes both files, and their goldens are unchanged. + +The queue scenario's start race is measured, not inferred: with the clocks pinned and no busy observation it failed 10 times in 61 runs of `vitest run … -t "queues two messages"`, all at the same `2 queued messages` wait; `origin/master` without the pins failed 0 of 41; with the observation added, 20 of 20 passed. + +CI run 36179748541 (job 108218939163) shows the calendar fix holding under the lane's own topology: the prompt line matches `{{clock}}` where run 36157253018 rendered `9/25 {{clock}}`. + +## Consequences + +The four scenarios render the same aria line whenever they run, and their goldens keep asserting a clock without a date prefix. The calendar fact is owned per scenario: a scenario that types messages, or seeds a fixture whose header carries `createdAt: 0`, must read the fixture day on both clocks, or it inherits the midnight exposure. Product clock rendering, the `Asia/Shanghai` browser timezone, every committed golden, and the assertions of the scenarios not listed here are unchanged. diff --git a/.agents/notes/archived/testing/2026-09-26-web-conversation-clock-fixture-day.zh.md b/.agents/notes/archived/testing/2026-09-26-web-conversation-clock-fixture-day.zh.md new file mode 100644 index 0000000000..6ecdb4cfbe --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-26-web-conversation-clock-fixture-day.zh.md @@ -0,0 +1,48 @@ +# Agent Note: Web conversation clocks on the fixture day + +Status: implemented +Archived: 2026-09-30 + +[English](2026-09-26-web-conversation-clock-fixture-day.md) | 中文 + +## Problem + +运行 36157253018(作业 108144715986,`node 24 / snapshots and artifacts`)在一次执行中让四个浏览器场景失败——[steering](../../../../apps/web/tests/steering.e2e.ts)、[markdown-images](../../../../apps/web/tests/markdown-images.e2e.ts)、[message-actions](../../../../apps/web/tests/message-actions.e2e.ts) 与 [reference-composer](../../../../apps/web/tests/reference-composer.e2e.ts)——且是同一处 aria 差异:消息渲染为 `… and stop. 9/25 23:58`,而 golden 记录为 `… and stop. {{clock}}`。 + +[`newEnglishPage`](../../../../apps/web/tests/support.ts) 将浏览器时区固定为 `Asia/Shanghai`,而 [`formatMessageClock`](../../../../packages/client/ui-chat/src/client/chat/message-chrome.ts) 一旦消息的本地日历日或年份与渲染时不同,就会在时钟前拼接 `clock.md` / `clock.ymd`。这些场景把两个时钟都留在墙上时钟上,而它们的消息时间是在运行期盖章的:实时输入由 Host 盖章,fixture 头部为 `createdAt: 0` 的种子由 `seedSession` 以 `Date.now() - 60_000` 为锚点。失败的作业于 15:54Z 启动,距本地午夜还有六分钟,于是午夜前盖章的行在午夜后捕获并渲染出日期前缀;同一场景的下一次运行在午夜后数分钟通过。 + +通道本已具备对策——[`WEB_FIXTURE_TIME`](../../../../apps/web/tests/support.ts),其文档写明它是种子事件时间与 `Asia/Shanghai` 浏览器时钟的同日锚点,另有七个场景在使用它——但这四个场景从未采用。 + +## Decision + +这四个场景让两个时钟都读取 fixture 日。 + +实时盖章的场景用 `pinHostClock()` 固定 Host 时钟(一个从锚点起按真实流逝时间推进的 `Date.now` spy),并用 [`pinBrowserClock(page)`](../../../../apps/web/tests/support.ts) 固定浏览器时钟。种子场景通过 `seedSession` 的 `createdAt` 参数锚定种子,并用同样方式固定浏览器时钟。 + +种子锚点不只影响渲染出的时钟:侧边栏的相对时间也以浏览器时钟为基准计算,因此固定浏览器却用实时锚点的种子会读出 `8mo`,而 [message-actions](../../../../apps/web/tests/message-actions.e2e.ts) 的 fork golden 断言的是 `now` 与 `1min`。 + +`pinBrowserClock` 按固定间隔从锚点重新施加同一个冻结时刻,而不是让时钟停在单一数值上,因为产品代码要靠读取两个 `Date.now()` 值来决定一个已渲染值要保持多久:步骤进程会把上一个标题保持 `PROCESS_TITLE_MINIMUM_MS` = 150 ms([ChatGroupSeat](../../../../packages/client/ui-chat/src/client/chat/ChatGroupSeat.tsx)),输入框 keymap 会在 `compositionend` 后再保持 10 ms 的合成守卫([keymap](../../../../packages/client/ui-conversation/src/client/input/editor/keymap.ts))。两者都把剩余保持时间算作 `Date.now() - previousReading`,而永久冻结的时钟永远不会让它推进,于是保持期不会结束,golden 里那行稳定文案始终不出现。CI 运行 36179748541(作业 108218939163)在第一个冻结时钟的修订上正是抓到了这一点:steering 的 mid golden 记录的是 `Waiting for your action · Ready to continue?`,实际捕获到 `Preparing questions`。 + +steering 的 mid 捕获在截图前等待该稳定标题出现;[整队场景](../../../../apps/web/tests/steering.e2e.ts) 则只在运行中回合的停止控件出现后才做排队手势,因此 Enter 的排队判定总是相对一个已上报忙碌的 agent 解析。 + +## Alternatives considered + +**在 aria normalizer 中折叠渲染出的日期前缀。** 在 `normalizeAria` 中把 `9/25 23:58` 折叠为 `{{clock}}` 只需两行即可修好这四个场景,且已实测:它让四个文件通过,随后在一次 `DSH_WEB_SNAPSHOT_WORKERS=16` 的通道运行中让 `cordis-tool-round`、`stats-paged-history` 与 `navigation-panes` 失败,因为这些 golden 有意记录带日期的形式(`9/1 {{clock}}`,以及 Timing 面板中的年份形式),而 `skill-tool-row` 早已把该形式 token 化为 `{{date}} {{clock}}`。两种渲染陈述的是不同事实——此行来自另一天,此行来自今天——因此折叠它们是在删除断言,而不是在稳定断言。 + +**让浏览器时钟保持冻结。** 整个场景固定单一时刻更简单,也能让四个文件通过,但它抽掉了页面中所有“读两次”保持逻辑的时间流逝,上面的 `Preparing questions` 捕获就是这样发生的。重新施加锚点既保持日历固定,又不改变已渲染值的保持时长。 + +**为整条通道固定时钟。** 在 `launchWebScaffold` 与 `newEnglishPage` 内固定时钟可以一次覆盖所有场景,包括将来以同样方式失败的场景。它因影响面而落选:83 个 golden 带有时钟,且会话树 golden 断言字面相对时间,因此通道级的 now 会同时把所有场景移离各自的会话与 fixture 时间,而每个场景仍需自己的锚点才能读出录制时的分桶。 + +**让场景避开本地午夜。** 在边界附近调度或拒绝运行会把依赖留在原处,并让运行而非被测代码失败。[CI 测试可靠性工作流](../../../skills/dsh-ci-test-reliability/SKILL.md#reject-flake-masking-fixes)拒绝用预算或重试替代受控观察。 + +## Verification + +两个负向对照各固定一个时钟、把另一个留在墙上时钟,精确复现了记录到的特征:`steering` 固定浏览器时钟而 Host 时钟实时时,两个 golden 用例以 `… and stop. 9/26 {{clock}}` 失败;`message-actions` 固定浏览器时钟但仍用实时锚点的种子时,每行时钟都以 `9/26 {{clock}}` 失败,且本应断言 `1min` 的 fork golden 读出 `now`。两个时钟都固定后两个文件均通过,且它们的 golden 未改动。 + +排队场景的启动竞态是实测而非推断:固定时钟且不等待忙碌状态时,`vitest run … -t "queues two messages"` 在 61 次中失败 10 次,全部停在同一个 `2 queued messages` 等待上;未加固定时钟的 `origin/master` 在 41 次中失败 0 次;加上该观察后 20 次全部通过。 + +CI 运行 36179748541(作业 108218939163)显示日历修复在通道自身的拓扑下成立:提示行匹配 `{{clock}}`,而运行 36157253018 渲染的是 `9/25 {{clock}}`。 + +## Consequences + +这四个场景无论何时运行都渲染同一行 aria,其 golden 继续断言不带日期前缀的时钟。日历事实现在按场景归属:自行输入消息、或种子 fixture 头部为 `createdAt: 0` 的场景必须让两个时钟都读取 fixture 日,否则会继承午夜暴露。产品时钟渲染、`Asia/Shanghai` 浏览器时区、所有已提交的 golden,以及本说明未列出的场景的断言均不变。 diff --git a/.agents/notes/archived/testing/2026-09-27-oxlint-contract-spawn-case-budgets.i18n.yaml b/.agents/notes/archived/testing/2026-09-27-oxlint-contract-spawn-case-budgets.i18n.yaml new file mode 100644 index 0000000000..ab7c789c31 --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-27-oxlint-contract-spawn-case-budgets.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-09-27-oxlint-contract-spawn-case-budgets.md +2026-09-27-oxlint-contract-spawn-case-budgets.md: ccfaa054a5c201350e0c92ef75c9ae62ebe3013f +2026-09-27-oxlint-contract-spawn-case-budgets.zh.md: 7170e37ef876b595d57b27e28bf53849116102ef diff --git a/.agents/notes/archived/testing/2026-09-27-oxlint-contract-spawn-case-budgets.md b/.agents/notes/archived/testing/2026-09-27-oxlint-contract-spawn-case-budgets.md new file mode 100644 index 0000000000..ccfaa054a5 --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-27-oxlint-contract-spawn-case-budgets.md @@ -0,0 +1,28 @@ +# Agent Note: Oxlint contract cases that spawn a process carry a 90 s ceiling + +Status: implemented +Archived: 2026-09-30 + +English | [中文](2026-09-27-oxlint-contract-spawn-case-budgets.zh.md) + +## Problem + +Twelve of the fourteen cases in [`scripts/oxlint-contract.spec.ts`](../../../../scripts/oxlint-contract.spec.ts) spawn a real child process: `runOxlint` starts the oxlint CLI, and `runRepositoryOxlint` boots [`scripts/run-oxlint.ts`](../../../../scripts/run-oxlint.ts) under tsx, which runs oxlint and, after `--fix`, runs it once more. The root `vitest.config.ts` sets no `testTimeout`, so a case without its own budget inherits Vitest's 5000 ms default; the coverage lanes raise it through `DSH_COVERAGE_TEST_TIMEOUT_MS=90000` and the Windows native lane passes `--testTimeout 90000`, while the `unit tests (darwin parity, macos-latest)` job in `sandbox.yml` and a developer's `pnpm run test` run plain. Seven cases (five `it` declarations, one of them a three-way `it.each`) carried the explicit `90_000` that #3115 aligned the contended Windows spawn budgets to; the other seven ran on the default, and five of those spawn. Two runner classes exposed it: the self-hosted Windows pool, where process creation spikes to several seconds (#2581), and the hosted macos-latest runner of Sandbox run 36332053320, which ran the whole file 2.2× slower than the passing run 36320394290 and timed out `prints only the final diagnostics when a fix retry still fails` at 6309 ms, a case that took 1122 ms on the passing run. `Test timed out in 5000ms` names neither a contract violation nor the spawn that overran. + +## Decision + +Every case in the file that spawns oxlint or the repository lint entrypoint carries the same explicit per-case `90_000` ceiling. The two configuration-only cases, `keeps the complete stylistic contract in Oxlint` and `keeps repository lint workflows Oxlint-only`, spawn nothing and keep the default. The value is a completion ceiling for a hang, not a latency target: the slowest case on the slow darwin runner took 9507 ms, and the file under six-fold CPU oversubscription on a 12-core host peaked at 20767 ms, both under a quarter of the ceiling. Assertions, the absence of retries, and Vitest's global `testTimeout` are unchanged. + +## Alternatives considered + +**A `describe`-level `{ timeout: 90_000 }`.** Rejected: case-level values already bound seven cases and take precedence over a `describe` value, so a suite-level number would govern only the remaining seven, including the two configuration-only cases that spawn nothing, and the file would carry two budget styles. Per-case values keep one style, one place to read each case's ceiling, and the default on the cases that spawn nothing. Either form overrides the lane's `--testTimeout` rather than yielding to it (#2677). The archived [translation-pairing-merge](../../archived/testing/2026-08-27-translation-pairing-merge-budget.md) and [Lefthook budget](../../archived/testing/2026-08-29-windows-lane-hook-and-lefthook-budget.md) notes chose the `describe` form for files whose cases carried no constants of their own, because a case added later without an allowance inherits the default; this file already carried per-case constants, so that risk is accepted here and named under Consequences. + +**Passing `--testTimeout 90000` to the darwin parity job and letting the cases inherit the lane budget**, the form the [CI test reliability workflow](../../../skills/dsh-ci-test-reliability/SKILL.md#budget-timeouts-against-the-lane) prefers for suites bound by process creation. Rejected: the cost is the file's own tsx boot plus two oxlint runs, not a darwin property, so a developer's plain `pnpm run test` would keep the default; the parity job exists to run the same command developers run; and seven cases already carry constants, so a lane flag would split the file's budget between two sources. + +**Raising Vitest's global `testTimeout`.** Rejected: the whole unit inventory runs on the default; widening it to absorb one file's process spawns removes the hang detection the default provides everywhere else. + +**A tighter value sized to the observed 6.3 s.** Rejected: the Windows contention fires as multi-second spikes that rotated across cases under 15–30 s budgets before the 90 s alignment; a smaller number moves the flake rather than removing it. + +## Consequences + +A contract violation still fails through its own assertion well inside the ceiling; the five cases bounded here settle in 0.5–1.7 s on an idle host and no spawning case in the file exceeded 3.8 s there, so only a genuine hang waits the full 90 s. The Windows self-hosted lane, the Linux coverage lanes, the darwin parity job, and a local `pnpm run test` read the same ceiling for this file regardless of `DSH_COVERAGE_TEST_TIMEOUT_MS`. A spawning case added later without its own `90_000` runs on the default until the file's inventory is checked. Under 72 busy-loop processes on a 12-core host the unbounded fix-retry case reproduced `Test timed out in 5000ms` at 7084 ms before the change and passes with the ceiling after it. diff --git a/.agents/notes/archived/testing/2026-09-27-oxlint-contract-spawn-case-budgets.zh.md b/.agents/notes/archived/testing/2026-09-27-oxlint-contract-spawn-case-budgets.zh.md new file mode 100644 index 0000000000..7170e37ef8 --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-27-oxlint-contract-spawn-case-budgets.zh.md @@ -0,0 +1,28 @@ +# Agent Note: 会 spawn 进程的 Oxlint 契约用例携带 90 s 上限 + +Status: implemented +Archived: 2026-09-30 + +[English](2026-09-27-oxlint-contract-spawn-case-budgets.md) | 中文 + +## 问题 + +[`scripts/oxlint-contract.spec.ts`](../../../../scripts/oxlint-contract.spec.ts) 的 14 个用例中有 12 个会启动真实子进程:`runOxlint` 启动 oxlint CLI,`runRepositoryOxlint` 在 tsx 下引导 [`scripts/run-oxlint.ts`](../../../../scripts/run-oxlint.ts),后者运行 oxlint,并在 `--fix` 之后再运行一次。根 `vitest.config.ts` 没有设置 `testTimeout`,因此没有自带预算的用例继承 Vitest 的 5000 ms 默认值;coverage 通道通过 `DSH_COVERAGE_TEST_TIMEOUT_MS=90000` 抬高它,Windows 原生通道传入 `--testTimeout 90000`,而 `sandbox.yml` 中的 `unit tests (darwin parity, macos-latest)` job 与开发者本机的 `pnpm run test` 都直接运行。7 个用例(5 个 `it` 声明,其中一个是三路 `it.each`)携带 #3115 把有争抢的 Windows spawn 预算对齐到的显式 `90_000`;另外 7 个跑在默认值上,其中 5 个会 spawn。两类 runner 暴露了这一点:自托管 Windows 池,其进程创建会出现数秒尖峰(#2581);以及 Sandbox run 36332053320 的托管 macos-latest runner,它跑整个文件比通过的 run 36320394290 慢 2.2 倍,并让 `prints only the final diagnostics when a fix retry still fails` 在 6309 ms 时超时,而该用例在通过的 run 中耗时 1122 ms。`Test timed out in 5000ms` 既不指出契约违规,也不指出超时的那次 spawn。 + +## 决策 + +文件中每个会 spawn oxlint 或仓库 lint 入口的用例都携带同一个显式的用例级 `90_000` 上限。两个只检查配置的用例 `keeps the complete stylistic contract in Oxlint` 与 `keeps repository lint workflows Oxlint-only` 不 spawn 任何进程,保持默认值。该值是针对挂起的完成上限,不是延迟目标:慢 darwin runner 上最慢的用例耗时 9507 ms,12 核宿主机上六倍 CPU 超订下整个文件的峰值为 20767 ms,两者都不到上限的四分之一。断言、不加重试、以及 Vitest 全局 `testTimeout` 均不变。 + +## 曾考虑的替代方案 + +**`describe` 级 `{ timeout: 90_000 }`。** 拒绝:用例级取值已经约束 7 个用例并且优先于 `describe` 级取值,因此套件级数字只会作用于其余 7 个用例,包括两个不 spawn 的纯配置用例,而且文件会同时带两种预算风格。用例级取值保持一种风格,每个用例的上限只在一处可读,不 spawn 的用例保持默认值。两种形式都覆盖通道的 `--testTimeout` 而不是让位于它(#2677)。已归档的 [translation-pairing-merge](../../archived/testing/2026-08-27-translation-pairing-merge-budget.md) 与 [Lefthook 预算](../../archived/testing/2026-08-29-windows-lane-hook-and-lefthook-budget.md)两篇 Note 为用例本身不带常量的文件选择了 `describe` 形式,理由是之后新增而未带余量的用例会继承默认值;本文件已经带有用例级常量,因此这里接受该风险并在「后果」中点名。 + +**给 darwin parity job 传入 `--testTimeout 90000`,让用例继承通道预算**,这是 [CI 测试可靠性工作流](../../../skills/dsh-ci-test-reliability/SKILL.md#budget-timeouts-against-the-lane)对进程创建受限套件偏好的形式。拒绝:成本来自本文件自身的 tsx 引导加两次 oxlint 运行,不是 darwin 的属性,因此开发者直接运行的 `pnpm run test` 仍会停留在默认值;parity job 的存在意义就是运行与开发者相同的命令;而且 7 个用例已带常量,通道旗标会把本文件的预算拆到两个来源。 + +**抬高 Vitest 全局 `testTimeout`。** 拒绝:整个单元测试清单都跑在默认值上;为吸收一个文件的进程 spawn 而放宽它,会移除默认值在其他所有地方提供的挂起检测。 + +**按观测到的 6.3 s 收紧取值。** 拒绝:Windows 争抢表现为数秒尖峰,在对齐到 90 s 之前曾在 15–30 s 预算下于各用例间轮转出现;更小的数字只是移动 flake 而不是消除它。 + +## 后果 + +契约违规仍通过其自身断言在上限之内早早失败;本次加边界的 5 个用例在空载宿主机上 0.5–1.7 s 内结算,文件中任何会 spawn 的用例在那里都不超过 3.8 s,因此只有真正的挂起才会等满 90 s。Windows 自托管通道、Linux coverage 通道、darwin parity job 与本机 `pnpm run test` 对本文件读到同一个上限,与 `DSH_COVERAGE_TEST_TIMEOUT_MS` 无关。之后新增而未自带 `90_000` 的 spawn 用例会跑在默认值上,直到有人核对本文件的清单。在 12 核宿主机上以 72 个忙循环进程加载时,原本无边界的 fix-retry 用例在改动前于 7084 ms 复现 `Test timed out in 5000ms`,改动后在上限内通过。 diff --git a/.agents/notes/archived/testing/2026-09-27-plugin-install-interceptor-lifetime.i18n.yaml b/.agents/notes/archived/testing/2026-09-27-plugin-install-interceptor-lifetime.i18n.yaml new file mode 100644 index 0000000000..a5e0fb35d4 --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-27-plugin-install-interceptor-lifetime.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-09-27-plugin-install-interceptor-lifetime.md +2026-09-27-plugin-install-interceptor-lifetime.md: b1f1a5641d78483bc1954513ecfcf841951efe01 +2026-09-27-plugin-install-interceptor-lifetime.zh.md: 1e9ff9090086d08226f2bfd0b216610b27097b69 diff --git a/.agents/notes/archived/testing/2026-09-27-plugin-install-interceptor-lifetime.md b/.agents/notes/archived/testing/2026-09-27-plugin-install-interceptor-lifetime.md new file mode 100644 index 0000000000..b1f1a5641d --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-27-plugin-install-interceptor-lifetime.md @@ -0,0 +1,36 @@ +# Agent Note: Keep plugin-install interception for the page lifetime + +Status: implemented +Archived: 2026-09-30 + +English | [中文](2026-09-27-plugin-install-interceptor-lifetime.zh.md) + +## Problem + +The [plugin-install scenario](../../../../apps/web/tests/plugin-install-cancel.e2e.ts) can leave a directory read pending after cancelling an installation. The Host emits invalidations that trigger background reads while the scenario removes its Playwright routes between installation phases. A stalled read keeps the installed package out of the list, so enabling it closes the dialog but never exposes the highlighted card. + +## Decision + +The scenario registers its `installBundle` and `cancelInstall` interceptors before navigation and retains them until the browser closes. Each interceptor calls a typed handler that the scenario replaces when it changes phases. The delivery and cancellation barriers retain their ordering, and `activeReplySettled` joins the lost-response handler before the next installation starts. Ordinary requests still reach the real Host. + +The [scenario](../../../../apps/web/tests/plugin-install-cancel.e2e.ts) separately waits for the highlighted card's status to become `running`. Keeping interception active lets the directory read complete; polling its result still establishes the state the golden records. + +## Alternatives considered + +**Remove routes with `unrouteAll({ behavior: 'wait' })`.** Waiting for matched handlers does not settle unrelated browser requests. A captured Chromium protocol trace shows `Fetch.disable` immediately followed by a `pluginManager/listPlugins` request with no response or failure before teardown. The Host's inventory and plugin methods still answer direct calls. + +**Advance the browser clock or extend the locator timeout.** Advancing the paused clock does not release the stalled request. The 2.4-second highlight expiry is not responsible for a package that never reaches the directory. + +**Add a general route-switching helper.** Two endpoint handlers in one scenario do not need another fixture API. Their local delegates preserve the existing cancellation and lost-response cases without changing the browser's interception configuration. + +## Verification + +The unchanged scenario passes alone and fails at the same highlighted-card locator in one of four concurrent independent processes. Instrumented failures place the unanswered directory request inside the second `unrouteAll` interval; advancing the page clock leaves it unanswered, while direct Host reads complete. The protocol trace identifies the interception transition independently of the DOM assertion. + +`DSH_SNAPSHOT=replay pnpm exec vitest run --config vitest.web.config.ts apps/web/tests/plugin-install-cancel.e2e.ts` passes in four concurrent independent processes (1/1 each). One protocol capture observes one `Fetch.enable`, no `Fetch.disable`, and responses for all 33 directory requests. The existing goldens cover cancellation before delivery, cancellation of the running child, manifest and lockfile restoration, retry, enabled-card status, both themes and motion preferences, highlight expiry, and lost-result recovery. + +## Consequences + +The browser retains two narrowly matched interceptors for its lifetime. The scenario controls their behavior without interrupting concurrent directory reads, and browser closure owns their cleanup. Product code, goldens, test deadlines, and CI worker counts are unchanged. + +Live-page `unrouteAll` calls also remain in [sidebar-terminal](../../../../apps/web/tests/sidebar-terminal.e2e.ts), [queue-image](../../../../apps/web/tests/queue-image.e2e.ts), [subagent-conversation](../../../../apps/web/tests/subagent-conversation.e2e.ts), and [subagent-interrupt-ui](../../../../apps/web/tests/subagent-interrupt-ui.e2e.ts). These are candidates for separate overlap investigations; this scenario's reproduction does not establish the cause of failures in those tests. diff --git a/.agents/notes/archived/testing/2026-09-27-plugin-install-interceptor-lifetime.zh.md b/.agents/notes/archived/testing/2026-09-27-plugin-install-interceptor-lifetime.zh.md new file mode 100644 index 0000000000..1e9ff90900 --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-27-plugin-install-interceptor-lifetime.zh.md @@ -0,0 +1,36 @@ +# Agent Note: 让插件安装拦截器持续到页面关闭 + +Status: implemented +Archived: 2026-09-30 + +[English](2026-09-27-plugin-install-interceptor-lifetime.md) | 中文 + +## Problem + +[插件安装场景](../../../../apps/web/tests/plugin-install-cancel.e2e.ts) 在取消安装后,可能留下一次未结束的目录读取。场景在安装阶段之间移除 Playwright 路由时,Host 发出的失效通知仍会触发后台读取。停滞的读取使已安装的包无法进入列表,因此启用操作虽然关闭了对话框,却始终不显示高亮卡片。 + +## Decision + +场景在导航前注册 `installBundle` 和 `cancelInstall` 拦截器,并保留到浏览器关闭。每个拦截器调用一个带类型的处理函数,场景切换阶段时替换该函数。请求交付和取消屏障保持原有顺序,`activeReplySettled` 在下一次安装开始前等待丢失响应的处理函数结束。普通请求仍然到达真实 Host。 + +[该场景](../../../../apps/web/tests/plugin-install-cancel.e2e.ts)还会单独等待高亮卡片的状态变为 `running`。持续启用拦截使目录读取能够完成;轮询其结果仍负责确立预期输出记录的状态。 + +## Alternatives considered + +**用 `unrouteAll({ behavior: 'wait' })` 移除路由。** 等待匹配的处理函数结束并不意味着其他浏览器请求已结束。捕获的 Chromium 协议记录显示,`Fetch.disable` 后紧接着发出 `pluginManager/listPlugins` 请求,直到清理前都没有响应或失败事件。直接调用 Host 的目录和插件方法仍能得到答复。 + +**推进浏览器时钟或延长 locator 超时。** 推进已暂停的时钟不能释放停滞的请求。包始终未进入目录,不是 2.4 秒的高亮到期计时器造成的。 + +**增加通用路由切换辅助函数。** 一个场景中的两个端点处理函数不需要另一层 fixture(测试前置数据)API。局部委托函数保留了现有取消和丢失响应场景,也不改变浏览器的拦截配置。 + +## Verification + +未修改的场景单独运行通过,四个并发独立进程中有一个在同一高亮卡片 locator 处失败。插桩失败将未获响应的目录请求定位到第二次 `unrouteAll` 的执行区间内;推进页面时钟后请求仍未获响应,而直接读取 Host 可以完成。协议记录独立于 DOM 断言确认了拦截状态的切换。 + +`DSH_SNAPSHOT=replay pnpm exec vitest run --config vitest.web.config.ts apps/web/tests/plugin-install-cancel.e2e.ts` 在四个并发独立进程中全部通过,每个进程均为 1/1。一次协议记录观察到一次 `Fetch.enable`、零次 `Fetch.disable`,且全部 33 次目录请求均收到响应。现有预期输出覆盖取消先于请求交付、取消运行中的子进程、恢复 manifest(元数据清单)与 lockfile、重试、已启用卡片状态、两种主题与动画偏好、高亮到期,以及丢失结果恢复。 + +## Consequences + +浏览器在整个生命周期内保留两个精确匹配的拦截器。场景控制其行为时不会中断并发目录读取,浏览器关闭负责清理它们。产品代码、预期输出、测试超时和 CI worker 数保持不变。 + +[sidebar-terminal](../../../../apps/web/tests/sidebar-terminal.e2e.ts)、[queue-image](../../../../apps/web/tests/queue-image.e2e.ts)、[subagent-conversation](../../../../apps/web/tests/subagent-conversation.e2e.ts) 和 [subagent-interrupt-ui](../../../../apps/web/tests/subagent-interrupt-ui.e2e.ts) 中也仍有页面存续期间的 `unrouteAll` 调用。这些位置可分别调查请求重叠;本场景的复现并不能确定那些测试失败的原因。 diff --git a/.agents/notes/archived/testing/2026-09-27-web-lane-assertions-name-their-input-state.i18n.yaml b/.agents/notes/archived/testing/2026-09-27-web-lane-assertions-name-their-input-state.i18n.yaml new file mode 100644 index 0000000000..befb1f5dcd --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-27-web-lane-assertions-name-their-input-state.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-09-27-web-lane-assertions-name-their-input-state.md +2026-09-27-web-lane-assertions-name-their-input-state.md: 29c15d688ca18c7b0b05f934fd70b9984213d854 +2026-09-27-web-lane-assertions-name-their-input-state.zh.md: 9b95e99c8e5e023e5caeda7395c087a38f4a8a41 diff --git a/.agents/notes/archived/testing/2026-09-27-web-lane-assertions-name-their-input-state.md b/.agents/notes/archived/testing/2026-09-27-web-lane-assertions-name-their-input-state.md new file mode 100644 index 0000000000..29c15d688c --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-27-web-lane-assertions-name-their-input-state.md @@ -0,0 +1,52 @@ +# Agent Note: Web lane assertions name their input state + +Status: implemented +Archived: 2026-09-30 + +English | [中文](2026-09-27-web-lane-assertions-name-their-input-state.zh.md) + +## Problem + +Three browser-lane scenarios captured an aria region while a state the golden records was only implied by whatever the pointer, the keyboard, or an in-flight Host read happened to be doing at that instant, so each capture could land on the other state. + +[workspace-new-session-folding](../../../../apps/web/tests/workspace-new-session-folding.e2e.ts) captures two goldens of one sidebar. `sidebar.expected.md` records the Workspace row with its row-actions cell revealed, which [Rows.module.css](../../../../packages/client/ui-workspace/src/client/rows/Rows.module.css) does under `.projectRow:hover`; `first-batch.expected.md` records the sixth session that way under `.sessionRow:hover`, the first row the batch reveals. Both captures therefore depend on where the pointer sits, and the scenario's own "Show 11 more sessions" click reflows the list under a stationary pointer. The serial self-hosted master lane failed this scenario with both goldens' requirements unmet — `treeitem "{{workspace}}"` without the actions, and the golden's hovered row rendering its plain relative time — in every one of the nine failing runs observed between 2026-09-24 and 2026-09-27. + +[turn-tail-actions](../../../../apps/web/tests/turn-tail-actions.e2e.ts) captures the Copy footer focused twice: `running.expected.md` records a `tooltip "Copy"` beside it, `settled.expected.md` records none. [Tooltip](../../../../packages/client/ui-primitives/src/Tooltip.tsx) ignores focus while the last input came from a pointer, and only a keydown clears that flag, so whether the first capture shows the bubble depends on whether the harness pressed a key after the scenario's last click. + +[plugin-install-cancel](../../../../apps/web/tests/plugin-install-cancel.e2e.ts) read the enabled plugin card's `data-plugin-status` once after the highlighted card appeared. The store's `enableInstalled` marks the card and starts the directory reload the Host answers, so the highlight is observable before the reload commits the enabled bundle into the list: the status flipped `disabled` → `running` 61 ms after the highlight in three local runs, and the run that failed read it inside that window. + +## Decision + +Each capture names the state its golden records before it captures. + +The folding scenario hovers the Workspace row before the sidebar capture and the first row the batch reveals before the first-batch capture, so both hovered rows are established rather than inherited from the layout around the Show-more click. The goldens, the folding quota, and the row rendering are unchanged; the scenario now performs the hover a reader of the golden would perform. + +The turn-tail scenario clears the pointer flag with a key that moves nothing, focuses the Copy button, and waits for the tooltip the running golden records. The settled capture keeps the plain focus, which is what its golden records once the Stop click has left the pointer owning the last input. + +The install-cancel scenario polls the card's status instead of sampling it, so the assertion observes the directory reload that the highlight precedes. The highlight stays the locator that finds the card, because the later `2400 ms` clock advance still asserts the card detaches with it. + +## Alternatives considered + +**Collapse the hovered and unhovered renderings in the aria normalizer.** The two renderings state different facts — one row is hovered, the others are not — and both goldens deliberately record the row-actions cell and the relative time. Collapsing them would delete the assertion rather than stabilize it, the same trade every lane golden that deliberately records a dated or stateful form already rejects. + +**Deliver a blank event and keep the pointer where the click leaves it.** The button moves as the batch inserts, so the row under the pointer still follows layout: the folding negative control below reproduces the failure with the pointer inside the sidebar and no row hovered. + +**Disable hover styling or the tooltip modality rule in the scenario.** Both are shipped rendering and interaction behavior the goldens are the evidence for; a scenario-local override would test a page the product does not serve. + +**Raise the capture timeout or retry the comparison.** Neither establishes which state was captured; `captureStableAria` already waits for two equal consecutive snapshots, and it was satisfied by the wrong state — the limit the [CI completion decision](2026-09-08-ci-readiness-and-completion.md) and the [connection and compaction fixture preconditions](2026-09-12-connection-and-compaction-fixture-preconditions.md) already record. + +## Verification + +Two negative controls reproduce the recorded signatures with the shipped assertions. Hovering the New Session row instead of the Workspace row before the folding scenario's first capture fails `sidebar.expected.md` with `treeitem "{{workspace}}"` where the golden records `treeitem "{{workspace}} Workspace actions …"`. A bare mouse press with no key before the turn-tail scenario focuses the Copy button raises no bubble, and the running capture then fails with the missing `tooltip "Copy"` the serial lane recorded. Both controls pass after the change. + +Measured locally, one file at a time: `DSH_SNAPSHOT=replay pnpm exec vitest run --config vitest.web.config.ts apps/web/tests/.e2e.ts` → workspace-new-session-folding 15/15 before the change and 20/20 after, turn-tail-actions 8/8 before and 20/20 after, plugin-install-cancel 12/12 before and 20/20 after. The lane configuration `DSH_SNAPSHOT=replay DSH_WEB_SNAPSHOT_WORKERS=16 pnpm run test:web:ci` passes all three files in three consecutive local runs. + +The install-cancel scenario also recorded a separate 30 s highlighted-card wait after the enable click closed the dialog: twice on `node 24 / snapshots and artifacts`, and once locally with the pre-change file on the same lane command. The page clock was paused, excluding highlight expiry. The [interceptor-lifetime decision](2026-09-27-plugin-install-interceptor-lifetime.md) owns the diagnosed directory-request stall and its fixture fix. The status poll still covers the read after the card appears. + +The WebKit case the serial master lane also failed is not a scenario race and stays out of this change: `declared-reasoning.e2e.ts` launches Playwright's WebKit, the lane's step fetched that browser without its host libraries, and `browserType.launch` failed with "Host system is missing dependencies to run browsers". [ci.yml](../../../../.github/workflows/ci.yml) states the persistent VM image owns Playwright's Linux system packages and installs the dependency set only off the self-hosted pool, so repairing the image or the pool's ownership is a runner change, not a scenario one. Installing WebKit's libraries on a developer machine makes the file's 8 cases pass. + +## Consequences + +The three scenarios render the aria their goldens record whatever state the harness arrives in, and no golden, product surface, or timeout changed. The input state is now owned by each capture: a scenario that captures a hovered row, a focused Tooltip anchor, or a value published by a later Host read must establish that state itself. `document-preview.e2e.ts`'s spreadsheet-selection read has the same class of defect and stays with its own change. + +[The task-detail close note](2026-09-28-detail-close-waits-on-observed-state.md) records the same class in the client unit lane, where the sampled state arrived through a post-commit effect rather than through an unsettled input. diff --git a/.agents/notes/archived/testing/2026-09-27-web-lane-assertions-name-their-input-state.zh.md b/.agents/notes/archived/testing/2026-09-27-web-lane-assertions-name-their-input-state.zh.md new file mode 100644 index 0000000000..9b95e99c8e --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-27-web-lane-assertions-name-their-input-state.zh.md @@ -0,0 +1,52 @@ +# Agent Note: Web lane assertions name their input state + +Status: implemented +Archived: 2026-09-30 + +[English](2026-09-27-web-lane-assertions-name-their-input-state.md) | 中文 + +## Problem + +浏览器通道的三个场景在捕获 aria 区域时,golden 记录的状态只是被指针、键盘或一次进行中的 Host 读取所隐含,因此每次捕获都可能落到另一种状态上。 + +[workspace-new-session-folding](../../../../apps/web/tests/workspace-new-session-folding.e2e.ts) 捕获同一侧边栏的两份 golden。`sidebar.expected.md` 记录的是 Workspace 行显示出行操作单元格的状态,该行为由 [Rows.module.css](../../../../packages/client/ui-workspace/src/client/rows/Rows.module.css) 的 `.projectRow:hover` 提供;`first-batch.expected.md` 则以 `.sessionRow:hover` 记录第六个会话行,即该批次展开出的第一行。两次捕获因此都取决于指针所在位置,而场景自身的 “Show 11 more sessions” 点击会在指针静止时重排列表。串行自托管 master 通道在这个场景上失败时,两份 golden 的要求都没有满足——`treeitem "{{workspace}}"` 不带操作按钮,golden 记录为悬停的那一行渲染出普通的相对时间——2026-09-24 至 2026-09-27 观察到的九次失败运行全部如此。 + +[turn-tail-actions](../../../../apps/web/tests/turn-tail-actions.e2e.ts) 两次捕获聚焦后的 Copy 页脚:`running.expected.md` 记录其旁有一个 `tooltip "Copy"`,`settled.expected.md` 则不记录。只要最后一次输入来自指针,[Tooltip](../../../../packages/client/ui-primitives/src/Tooltip.tsx) 就忽略聚焦,而只有 keydown 会清除该标记,因此第一次捕获是否出现气泡,取决于场景最后一次点击之后测试框架是否按过键。 + +[plugin-install-cancel](../../../../apps/web/tests/plugin-install-cancel.e2e.ts) 在带高亮的插件卡片出现后只读一次 `data-plugin-status`。store 的 `enableInstalled` 先标记卡片,再启动由 Host 应答的目录重载,因此高亮先于重载把已启用的 bundle 写入列表即可观察:三次本地运行中状态在 `disabled` → `running` 之间用了 61 ms,失败的那次运行正是在这个窗口内读取的。 + +## Decision + +每次捕获都先确立其 golden 所记录的状态。 + +folding 场景在侧边栏捕获前悬停 Workspace 行,在 first-batch 捕获前悬停该批次展开出的第一行,两个被悬停的行都由场景确立,而不再继承 Show-more 点击周围的布局。golden、折叠配额与行渲染均不变;场景现在执行的是 golden 读者本会执行的那次悬停。 + +turn-tail 场景先用一个不移动焦点的按键清除指针标记,再聚焦 Copy 按钮,并等待 running golden 记录的气泡。settled 捕获保留普通聚焦,这正是 Stop 点击让指针拥有最后一次输入之后、其 golden 所记录的状态。 + +install-cancel 场景改为轮询卡片状态,而不再单次采样,因此该断言观察到的是高亮所先于的目录重载。高亮仍保留在定位卡片的 locator 中,因为随后推进 `2400 ms` 时钟的那步仍以它断言卡片会脱离。 + +## Alternatives considered + +**在 aria normalizer 中折叠悬停与非悬停两种渲染。** 两者陈述不同事实——一行被悬停,其余没有被悬停——且两份 golden 都在有意记录行操作单元格与相对时间。折叠它们是在删除断言而非稳定断言,这与通道中每一份有意记录带日期或带状态形式的 golden 所拒绝的取舍相同。 + +**投递空白事件并让指针停留在点击后的位置。** 批次插入时按钮随之移动,指针下的行仍由布局决定:下面的 folding 负向对照在指针位于侧边栏内、没有任何行被悬停时复现了该失败。 + +**在场景内禁用悬停样式或 tooltip 的模态规则。** 两者都是 golden 所证明的已发布渲染与交互行为;场景级覆盖将测试一个产品并不提供的页面。 + +**提高捕获超时或重试比较。** 两者都不能确立实际捕获到的是哪个状态;`captureStableAria` 本已等待连续两次快照相等,而错误的状态同样能满足它——这一限度已由 [CI 就绪与完成决策](2026-09-08-ci-readiness-and-completion.zh.md) 与 [连接与压缩 fixture(测试前置数据)前置条件](2026-09-12-connection-and-compaction-fixture-preconditions.zh.md) 记录。 + +## Verification + +两个负向对照用已发布的断言复现了记录到的特征。folding 场景第一次捕获前改为悬停 New Session 行而非 Workspace 行时,`sidebar.expected.md` 失败:golden 记录 `treeitem "{{workspace}} Workspace actions …"`,实际得到 `treeitem "{{workspace}}"`。turn-tail 场景在聚焦 Copy 按钮前只做一次鼠标按下而不按键时不会出现气泡,running 捕获随后失败并缺少串行通道记录到的 `tooltip "Copy"`。两个对照在改动之后均通过。 + +本地按文件实测:`DSH_SNAPSHOT=replay pnpm exec vitest run --config vitest.web.config.ts apps/web/tests/.e2e.ts` → workspace-new-session-folding 改动前 15/15、改动后 20/20,turn-tail-actions 改动前 8/8、改动后 20/20,plugin-install-cancel 改动前 12/12、改动后 20/20。通道配置 `DSH_SNAPSHOT=replay DSH_WEB_SNAPSHOT_WORKERS=16 pnpm run test:web:ci` 连续三次运行中三个文件全部通过。 + +install-cancel 场景还记录过独立的 30 s 高亮卡片等待:启用点击关闭对话框后,`node 24 / snapshots and artifacts` 上有两次、把该文件恢复到改动前版本后用同一通道命令运行的本地一次,都未能找到卡片。当时页面时钟已暂停,因此可排除高亮到期。[拦截器生命周期决策](2026-09-27-plugin-install-interceptor-lifetime.zh.md) 负责已定位的目录请求停滞及其 fixture 修复。状态轮询仍覆盖卡片出现之后的读取。 + +串行 master 通道同时失败的 WebKit 用例不是场景竞态,也不属于本次改动:`declared-reasoning.e2e.ts` 启动 Playwright 的 WebKit,通道的步骤只取浏览器本体而未安装宿主库,于是 `browserType.launch` 以 “Host system is missing dependencies to run browsers” 失败。[ci.yml](../../../../.github/workflows/ci.yml) 明确说明持久 VM 镜像拥有 Playwright 的 Linux 系统包,并且只在非自托管池随浏览器安装依赖集,因此修复镜像或该池的归属是 runner 侧的改动,而非场景改动。在开发者机器上安装 WebKit 依赖后该文件的 8 个用例全部通过。 + +## Consequences + +三个场景无论测试框架以何种状态进入,都渲染其 golden 记录的 aria,且没有任何 golden、产品界面或超时被改动。输入状态现在由每次捕获自己拥有:凡是捕获悬停行、聚焦的 Tooltip 锚点,或由后续 Host 读取发布的值的场景,都必须自行确立该状态。`document-preview.e2e.ts` 的电子表格选区读取属于同一类缺陷,仍留给它自己的改动。 + +[任务详情关闭断言](2026-09-28-detail-close-waits-on-observed-state.zh.md) 记录了同一类缺陷在客户端单测 lane 上的实例:被采样的状态来自一个提交后 effect,而不是来自尚未结算的输入。 diff --git a/.agents/notes/archived/testing/2026-09-28-detail-close-waits-on-observed-state.i18n.yaml b/.agents/notes/archived/testing/2026-09-28-detail-close-waits-on-observed-state.i18n.yaml new file mode 100644 index 0000000000..01aeb49b51 --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-28-detail-close-waits-on-observed-state.i18n.yaml @@ -0,0 +1,6 @@ +# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each +# side as of the last confirmed-consistent state. Both languages carry equal authority; +# after editing either side, bring the other along and re-record with: +# pnpm run verify-translation-pairing --write .agents/notes/archived/testing/2026-09-28-detail-close-waits-on-observed-state.md +2026-09-28-detail-close-waits-on-observed-state.md: d77fb560ab205e0663df3a8b20417368ec6c8988 +2026-09-28-detail-close-waits-on-observed-state.zh.md: 9c7d1524360b3d12d8fb37397c7da1581ade06a4 diff --git a/.agents/notes/archived/testing/2026-09-28-detail-close-waits-on-observed-state.md b/.agents/notes/archived/testing/2026-09-28-detail-close-waits-on-observed-state.md new file mode 100644 index 0000000000..d77fb560ab --- /dev/null +++ b/.agents/notes/archived/testing/2026-09-28-detail-close-waits-on-observed-state.md @@ -0,0 +1,45 @@ +# Agent Note: The task-detail close waits on the observed state + +Status: implemented +Archived: 2026-09-30 + +English | [中文](2026-09-28-detail-close-waits-on-observed-state.zh.md) + +## Problem + +`packages/client/ui-schedule/tests/task-manager-page.client.spec.tsx`, case "keeps details after a refresh failure and closes them after a successful retry", failed intermittently on the `node 24 / coverage` lane's `thread-safe` partition with `AssertionError: expected