Merge master into unified subagent activations

Integrate master 78ae4fc2d4d8ecaebb4b674028f781a358b92cc9 after the four
independent review fixes. Keep this base update separate from those fixes
and from subsequent review changes so the integration is independently
reviewable and the observed-master checkpoint remains preserved.

Retain activation-owned execution, caller-independent local discovery,
and unconditional parent final-answer delivery. Preserve master's preset
scoped scheduling tools and all delegated-child schedule deny rules. Move
the new scheduling regression from the removed driver package into the
surviving subagent package and run it through a real Spawn activation.

Preserve master's removal of runtime invariant plugins, dependencies,
exports, and test mounts. Keep context disposal before fixture directory
cleanup. Combine Python workflow ordering with activation/catalog events
without inventing unsupported source-plane import paths.

Keep all frozen Agent Note archives byte-for-byte identical to master;
do not accept Git's automatic edits to renamed archived notes. Retain
current lifecycle and delivery facts in active documentation, repair its
links, and regenerate catalogs/persistence schemas from merged source.
All 62 master persistence roots remain; only subagent/catalog gains the
PR's external membership extension. Keep master's third-party lock graph
and update only workspace dependency changes.

Validation before this checkpoint: 683 focused tests passed, seven
Windows-only cases skipped; 2,772 archived artifacts verified. Generated
catalog and active-pair checks passed. Fresh artifact build and remaining
build-dependent documentation checks continue before publication.
This commit is contained in:
Tianyi Cui committed 2026-10-05 23:49:47 +08:00
commit 9dcc8fa985
4943 files changed
+102223 -113486

No files matched your search

+4 -4
View File
@@ -6,8 +6,8 @@
en: a10991a192c7b55d
zh: c2e5b938ece4f366
/agent-notes/layout-and-naming:
en: 6b38cb0eb38c2baf
zh: 535234fb23fc8921
en: 0a517dfc15d4af0a
zh: 324bd9e13a0295e3
/agent-notes/classification:
en: 055a5e49f9af3dc2
zh: 9f7c78409cccfded
@@ -18,8 +18,8 @@
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
+2 -2
View File
@@ -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
@@ -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
+2 -2
View File
@@ -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) 目录树。
<a id="classification"></a>
@@ -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)。归档记录保留封存时的格式,并增加上述归档日期行。
### 头部块
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: 由 dsh-llm 拥有的提供方无关内容块词汇
Status: implemented
Archived: 2026-09-30
[English](2026-06-11-content-block-vocabulary.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: 微内核——通过 Cordis 事件分类体系实现扩展,唯一具体循环
Status: implemented
Archived: 2026-09-30
[English](2026-06-11-microkernel-event-taxonomy.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: 会话持久化作为基于现有 `SessionEvent` 的抽象服务
Status: implemented
Archived: 2026-09-30
[English](2026-06-14-session-persistence.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: 后台任务运行时(`ctx.jobs`)与通用任务控制工具
Status: implemented
Archived: 2026-09-30
[English](2026-06-20-generic-long-running-tool-runtime.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: 对提供方请求强制携带 `User-Agent` 归属标识
Status: implemented
Archived: 2026-09-30
[English](2026-06-21-mandatory-app-attribution-headers.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -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) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: Windows 原生持久 JSONL 发布
Status: implemented
Archived: 2026-09-30
[English](2026-07-05-windows-jsonl-durable-publish.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: agent 即注册作用域
Status: implemented
Archived: 2026-09-30
[English](2026-07-08-agent-scope-contexts.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: 调用后压缩压力与上下文溢出恢复
Status: implemented
Archived: 2026-09-30
[English](2026-07-10-after-call-compaction-pressure-and-overflow-recovery.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: Agent 作用域运行时设计与正确性
Status: implemented
Archived: 2026-09-30
[English](2026-07-12-agent-scope-runtime-design.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: 显式轮次取消能力
Status: implemented
Archived: 2026-09-30
[English](2026-07-16-explicit-turn-cancellation.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -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) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: 有意义的包不变量约定
Status: implemented
Archived: 2026-09-30
[English](2026-07-19-package-invariant-runtime-contracts.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: Zstandard JSONL 会话日志
Status: implemented
Archived: 2026-09-30
[English](2026-07-19-zstandard-jsonl-session-logs.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: 规范工具输出约定
Status: implemented
Archived: 2026-09-30
[English](2026-07-20-canonical-tool-output-contract.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -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) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: 按项目分组的会话目录
Status: implemented
Archived: 2026-09-30
[English](2026-07-24-project-session-directories.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -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) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -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) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: 种子结束日志边界
Status: implemented
Archived: 2026-09-30
[English](2026-07-30-session-end-seed-log-boundary.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -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) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: 询问草稿中的提供方端点
Status: implemented
Archived: 2026-09-30
[English](2026-08-04-draft-provider-endpoint-interrogation.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: Remote 事件投递(ctx.remote.$on)
Status: implemented
Archived: 2026-09-30
[English](2026-08-10-remote-event-delivery.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: 以实验性包名发布 Agent Teams
Status: implemented
Archived: 2026-09-30
[English](2026-08-18-experimental-agent-teams-packages.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: 原生 owner 收容逃逸的 subprocess 后代
Status: implemented
Archived: 2026-09-30
[English](2026-08-28-subprocess-native-containment.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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.
@@ -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` 的论证仍然成立。
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -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) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: Package manifest 声明归属
Status: implemented
Archived: 2026-09-30
[English](2026-09-05-package-manifest-types.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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<K>` 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://<kind>`: 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.
@@ -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>` 接受为 `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://<kind>` 之外的导航协议:页内子路由、点名实现、以及面向生态的其它导航 scheme 规则。
- 从公开面往屏上会话之外的会话里打开;公开面只作用于已挂载的会话,而 tab 自己的动作已作用于其所在会话。
- 从公开面往屏上会话之外的会话里打开;公开面只作用于屏上会话,而 tab 自己的动作已作用于其所在会话。
- 从会话区打开失败时的本地化提示;目前是抛错文本本身。
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: 内嵌 Assistant 流的消费方直接读取紧凑记录
Status: implemented
Archived: 2026-09-30
[English](2026-09-06-embedded-stream-record-readers.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: 响应式 Sidebar 与注入的标签信息
Status: implemented
Archived: 2026-09-30
[English](2026-09-07-sidebar-responsive-tab-info.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
@@ -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)
@@ -1,6 +1,7 @@
# Agent Note: 工作区文件统一为 API 双面包
Status: implemented
Archived: 2026-09-30
[English](2026-09-07-workspace-files-dual-face-package.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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
Loaded 100 of 4943 files, more files were not shown because too many files have changed in this diff. Show more