Merge master into slash-command-i18n

This commit is contained in:
Kaige-Gao
2026-09-08 13:32:55 +08:00
4494 changed files with 95287 additions and 21236 deletions
+2 -2
View File
@@ -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/README.md
README.md: ae8e4724d610c97d74910d7dec5c95af69e93281
README.zh.md: 8cecc7068d9efc5e2ebb78d2301d03633f70f137
README.md: 8bf1adf875b54eb4580b4d189dfeed07c9f671c0
README.zh.md: ff9bdb358d584d4f4ad0aea295c31d8d8fff9376
+1 -1
View File
@@ -20,7 +20,7 @@ The active lifecycle tree is the working inventory: browse its lifecycle/class f
## Classification
Each Agent Note belongs to one path-encoded class from the closed set in `scripts/agent-note-tree.ts`; the classification gate rejects other folders. Adding a class requires updating the canonical set and this section. See the [classification Agent Note](implemented/process/2026-06-20-agent-note-classification.md).
Each Agent Note belongs to one path-encoded class from the closed set in `scripts/agent-note-tree.ts`; the classification gate rejects other folders. Adding a class requires updating the canonical set and this section.
| Class | What it covers |
|---|---|
+1 -1
View File
@@ -22,7 +22,7 @@
## 分类
每份 Agent Note 属于 `scripts/agent-note-tree.ts` 中封闭集合里的一个路径编码类别;分类门禁拒绝其他文件夹。新增类别需要同时更新规范集合与本节。见[分类 Agent Note](implemented/process/2026-06-20-agent-note-classification.zh.md)。
每份 Agent Note 属于 `scripts/agent-note-tree.ts` 中封闭集合里的一个路径编码类别;分类门禁拒绝其他文件夹。新增类别需要同时更新规范集合与本节。
| 类别 | 覆盖范围 |
|---|---|
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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-runtime-arg-validation.md
2026-06-11-runtime-arg-validation.md: 22283c76719a26f733a8125bf263810d53a92c3c
2026-06-11-runtime-arg-validation.zh.md: f748b7e01b233edb8b3303898cc339dfacd16967
@@ -1,6 +1,7 @@
# Agent Note: Runtime arg validation at the model boundary
Status: implemented
Archived: 2026-09-04
English | [中文](2026-06-11-runtime-arg-validation.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 模型边界处的运行时参数校验
Status: implemented
Archived: 2026-09-04
[English](2026-06-11-runtime-arg-validation.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-structured-error-taxonomy.md
2026-06-11-structured-error-taxonomy.md: a5c1c6e6120eefd3bc96090cfa4536fb83afa796
2026-06-11-structured-error-taxonomy.zh.md: 54a937c5595aa5645e4cc0f66a6d1a2efc232588
@@ -1,6 +1,7 @@
# Agent Note: Structured error taxonomy
Status: implemented
Archived: 2026-09-04
English | [中文](2026-06-11-structured-error-taxonomy.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 结构化错误分类体系
Status: implemented
Archived: 2026-09-04
[English](2026-06-11-structured-error-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-17-filesystem-capability-seam.md
2026-06-17-filesystem-capability-seam.md: a0c898c1d127a7828037b3a59d04ff73c82e31ba
2026-06-17-filesystem-capability-seam.zh.md: 0442333a0a7cbc4fcae0f4b02db1700ce6aafc9e
@@ -1,6 +1,7 @@
# Agent Note: Filesystem capability seam — ctx.fs, local backend, and model-facing filesystem tools
Status: implemented
Archived: 2026-09-04
English | [中文](2026-06-17-filesystem-capability-seam.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 文件系统能力 seam——ctx.fs、本地后端与面向模型的文件系统工具
Status: implemented
Archived: 2026-09-04
[English](2026-06-17-filesystem-capability-seam.md) | 中文
@@ -1,6 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-07-30-approval-panel-command-cap.md
2026-07-30-approval-panel-command-cap.md: 0bfdc2d00fa4a0f9fa9ee71400d6f3cc2350e617
2026-07-30-approval-panel-command-cap.zh.md: a086888b12c0164b931019f4d73102bd11bccf4b
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-06-18-agent-lifecycle-and-ownership-contracts.md
2026-06-18-agent-lifecycle-and-ownership-contracts.md: 012346d9e5b8bf4fd661423b3c398e93e513659d
2026-06-18-agent-lifecycle-and-ownership-contracts.zh.md: 4f8aaac32dfa3d84a449f12441c23371f1a3a27d
@@ -1,6 +1,7 @@
# Agent Note: Agent lifecycle and ownership contracts
Status: implemented
Archived: 2026-09-04
English | [中文](2026-06-18-agent-lifecycle-and-ownership-contracts.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: Agent 生命周期与所有权约定
Status: implemented
Archived: 2026-09-04
[English](2026-06-18-agent-lifecycle-and-ownership-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-06-20-branded-ids.md
2026-06-20-branded-ids.md: 3078ebc7035c8c5a86c7a743a0452b0ebddf6c7d
2026-06-20-branded-ids.zh.md: 3a7d7c319c9fc14724af306b8c601afa759a18e7
@@ -1,6 +1,7 @@
# Agent Note: Branded IDs everywhere they belong
Status: implemented
Archived: 2026-09-04
English | [中文](2026-06-20-branded-ids.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 在所有应有之处使用 branded ID
Status: implemented
Archived: 2026-09-04
[English](2026-06-20-branded-ids.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-30-bash-stdin-env-trusted-plugin-api.md
2026-06-30-bash-stdin-env-trusted-plugin-api.md: b9883c88d091e6e932da7c65b8b7fe4d107c0fa4
2026-06-30-bash-stdin-env-trusted-plugin-api.zh.md: 884b83de21243e27fa39f7840adfffebc398a9b0
@@ -1,6 +1,7 @@
# Agent Note: stdin + extra env on the bash seam
Status: implemented
Archived: 2026-09-04
English | [中文](2026-06-30-bash-stdin-env-trusted-plugin-api.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 在 bash seam 上支持 stdin 与额外 env
Status: implemented
Archived: 2026-09-04
[English](2026-06-30-bash-stdin-env-trusted-plugin-api.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-02-fs-per-session-cwd.md
2026-07-02-fs-per-session-cwd.md: 81dafda9ba71bd2746926e8baa0f4eaf76748429
2026-07-02-fs-per-session-cwd.zh.md: aa05ed41615f29d580595a66d4743d4baf02b1a9
@@ -1,6 +1,7 @@
# Agent Note: Resolve filesystem paths against the caller's session cwd
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-02-fs-per-session-cwd.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 相对文件系统路径按调用方的会话 cwd 解析
Status: implemented
Archived: 2026-09-04
[English](2026-07-02-fs-per-session-cwd.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-subagent-provider-lifecycle-events.md
2026-07-05-subagent-provider-lifecycle-events.md: a15c3e6faee993902547174fe9ea235d07d9ec2f
2026-07-05-subagent-provider-lifecycle-events.zh.md: 49e55a3b148775ed7e676b5f55058ef1427a86c6
@@ -1,6 +1,7 @@
# Agent Note: Subagent provider-lifecycle events — `subagent/provider-added` / `subagent/provider-removed`
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-05-subagent-provider-lifecycle-events.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: Subagent 提供方生命周期事件——`subagent/provider-added` / `subagent/provider-removed`
Status: implemented
Archived: 2026-09-04
[English](2026-07-05-subagent-provider-lifecycle-events.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-06-tool-result-retention-library.md
2026-07-06-tool-result-retention-library.md: 5ac8547036ed0b45ec6e55e6fb213a98b7c3df8f
2026-07-06-tool-result-retention-library.zh.md: b18fdd60f529f9e6df6b8fc7e3c90f9a39e65fc8
@@ -1,6 +1,7 @@
# Agent Note: Tool result retention library
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-06-tool-result-retention-library.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 工具结果保留库
Status: implemented
Archived: 2026-09-04
[English](2026-07-06-tool-result-retention-library.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-scoped-layers-store.md
2026-07-12-scoped-layers-store.md: d3060696ef54c8d06cd0724179dec49682c721e1
2026-07-12-scoped-layers-store.zh.md: f5482a5a76724128fb445fbd7c21a2f61b8634c1
@@ -1,6 +1,7 @@
# Agent Note: Shared scoped-layer storage
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-12-scoped-layers-store.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 共享作用域分层存储
Status: implemented
Archived: 2026-09-04
[English](2026-07-12-scoped-layers-store.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-15-llm-model-catalog-and-acp-selection.md
2026-07-15-llm-model-catalog-and-acp-selection.md: c5f6644d4746a8a962e7ab843493fda3862a8c0a
2026-07-15-llm-model-catalog-and-acp-selection.zh.md: 539f2f9a2f9d3d7b48b3ecabca4b401e32c5702c
@@ -1,6 +1,7 @@
# Agent Note: Advisory LLM catalogs and per-session ACP model selection
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-15-llm-model-catalog-and-acp-selection.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 建议性 LLM 目录与 ACP 会话级模型选择
Status: implemented
Archived: 2026-09-04
[English](2026-07-15-llm-model-catalog-and-acp-selection.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-15-lsp-capability-seam.md
2026-07-15-lsp-capability-seam.md: 3cce6eb3c7d8afef53aa675440c7eea1e990721d
2026-07-15-lsp-capability-seam.zh.md: c424a794a6662a655565dde6337c49543c5a8085
@@ -1,6 +1,7 @@
# Agent Note: LSP capability seam and model-facing query tool
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-15-lsp-capability-seam.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: LSP 能力 seam 与面向模型的查询工具
Status: implemented
Archived: 2026-09-04
[English](2026-07-15-lsp-capability-seam.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-15-replay-token-meter-service.md
2026-07-15-replay-token-meter-service.md: 1e6832f1bd049a9568b3af3b925211f0665de288
2026-07-15-replay-token-meter-service.zh.md: 6d00d5e1511aa66818689ccec7d4b023c291f9aa
@@ -1,6 +1,7 @@
# Agent Note: Replay token meter service
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-15-replay-token-meter-service.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 回放式 token 计量服务
Status: implemented
Archived: 2026-09-04
[English](2026-07-15-replay-token-meter-service.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-17-local-spill-startup-cleanup.md
2026-07-17-local-spill-startup-cleanup.md: c9567cab8b1193b9ea6dbc0ad3fae2bc18af9656
2026-07-17-local-spill-startup-cleanup.zh.md: 97f6d641ab7e09da401c5632804f6e27ad78d850
@@ -1,6 +1,7 @@
# Agent Note: One-shot startup cleanup for local spill files
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-17-local-spill-startup-cleanup.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 本地 spill 文件的一次性启动清理
Status: implemented
Archived: 2026-09-04
[English](2026-07-17-local-spill-startup-cleanup.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-owned-invariant-service.md
2026-07-19-package-owned-invariant-service.md: 6ebdd0edbe04766280fb9aae7067ba861b2ce010
2026-07-19-package-owned-invariant-service.zh.md: dde72faed7249d64b939aaca1bc5d452eeed7bde
@@ -1,6 +1,7 @@
# Agent Note: Package-owned invariant service contract
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-19-package-owned-invariant-service.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 包拥有的不变式服务约定
Status: implemented
Archived: 2026-09-04
[English](2026-07-19-package-owned-invariant-service.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-todo-event-ownership.md
2026-07-20-todo-event-ownership.md: 3dfcd604393d05265eb895fa50647338830bd38f
2026-07-20-todo-event-ownership.zh.md: 8dabf8f0cde4ad8af325b00eb1be9d7b7011233f
@@ -1,6 +1,7 @@
# Agent Note: todo event types belong to their producer
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-20-todo-event-ownership.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: todo 事件类型归其生产方所有
Status: implemented
Archived: 2026-09-04
[English](2026-07-20-todo-event-ownership.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-22-unified-send-and-coalesced-user-messages.md
2026-07-22-unified-send-and-coalesced-user-messages.md: d2e39f4efd122d9e0dbb45a082779afa2ff42941
2026-07-22-unified-send-and-coalesced-user-messages.zh.md: 37c43fcb7bfa81b177e8ed00876e913e3ddf6ad6
@@ -1,6 +1,7 @@
# Agent Note: Unify agent delivery on send(target × wakeup) and coalesce injected context into user/message
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-22-unified-send-and-coalesced-user-messages.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 将 agent 投递统一到 send(target × wakeup) 并把注入的上下文合并进 user/message
Status: implemented
Archived: 2026-09-04
[English](2026-07-22-unified-send-and-coalesced-user-messages.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-23-toolview-dissolution.md
2026-07-23-toolview-dissolution.md: d84255f697886556a46c0511aa89f2c4bfd886d8
2026-07-23-toolview-dissolution.zh.md: 9ae339361193a9b97f7bba44904af0c01e7f3fa0
@@ -1,6 +1,7 @@
# Agent Note: Toolview dissolution — tool rows are per-view keyed slots
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-23-toolview-dissolution.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: toolview 溶解——工具行即 per-view keyed slot
Status: implemented
Archived: 2026-09-04
[English](2026-07-23-toolview-dissolution.md) | 中文
@@ -1,6 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-04-credentials-yaml-and-user-environment-layer.md
2026-08-04-credentials-yaml-and-user-environment-layer.md: 44bdea243671093b34a6338ed1c95bf25bcc78f4
2026-08-04-credentials-yaml-and-user-environment-layer.zh.md: 4d2893c57bfdf8bbd1529cc0ba8336dbc3ecd233
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-24-adapter-owned-reasoning-effort-capabilities.md
2026-07-24-adapter-owned-reasoning-effort-capabilities.md: f5c240145dc7f405f8bc1f66b6b5f7f68991eb80
2026-07-24-adapter-owned-reasoning-effort-capabilities.zh.md: 81994d4908bd9531cc7db35634bf768372ace1d7
@@ -1,6 +1,7 @@
# Agent Note: Adapter-owned reasoning effort capabilities
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-24-adapter-owned-reasoning-effort-capabilities.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 适配器持有的推理强度能力
Status: implemented
Archived: 2026-09-04
[English](2026-07-24-adapter-owned-reasoning-effort-capabilities.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-command-surfaces-and-assembly.md
2026-07-25-web-command-surfaces-and-assembly.md: bfb7d2697a979efc8101581d42f4ab223d1b1e97
2026-07-25-web-command-surfaces-and-assembly.zh.md: d81f70403d22efb2203bbe221a45035fc3d6503f
@@ -1,6 +1,7 @@
# Agent Note: Web command business surfaces and assembly (ui-commands / ui-skill / ui-subagent)
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-25-web-command-surfaces-and-assembly.zh.md)
@@ -21,7 +22,7 @@ The pipeline was ready but command knowledge had no landing spot: host-side `ctx
- The `ClientSessionContext { sessionId }` projection is self-held in the ui-input-trigger contract (types.ts): sessions are always agent-backed, so session identity is the entire projection of command capability; the wire addresses by `{sessionId}` (both `command.list` and `command.execute`; the host resolves the Agent from the session header).
- The directory is compartmented by `SessionId`, with per-key single-flight + an epoch guard (an old pull never overwrites newer state); `commands/changed` soft-invalidates every key (the old snapshot keeps serving while the repull runs in the background), `connection/reset` hard-invalidates every key and rewarms, Enter strong-waits on the current key, and a failure keeps the draft with no downgrade. Prewarming hangs on the source's `warm` hook — once over the full roster at scope birth, which covers the entire session lifecycle (session capability is constant from birth).
- `register(contribution)` registers client commands (a localized description resolver + `available(projection)` + a popupSelect spec); candidate synthesis combines the host directory with available contributions, localizes the six first-party Host descriptions only when their command name and canonical English copy both match, then applies query/position filtering. Scoped or third-party Host descriptions remain verbatim, and a host/contribution name clash fails loud. A locale switch re-fetches every open trigger controller in place, while a source gate keeps each first-party Host registration aligned with the English dictionary and `HOST_DESCRIPTION_KEYS`.
- `register(contribution)` registers client commands (a descriptor + `available(projection)` + a popupSelect spec); candidate synthesis = the host directory + contribution availability filtering, then the query/position pass, and a host/contribution name clash fails loud.
- The three command kinds derive from the registration surfaces; developers never declare positions: a host descriptor with `input` = **leadingInput** (backfill `/name ␣` + claim, keep typing arguments, leading position only); a client-registered popupSelect spec = **popupSelect** (the official select-box shell, business ships zero components); neither = **execute** (run on selection, zero UI).
- The dispatch decision table: the menu can trigger all three kinds; Space recognizes only leadingInput (the misfire defense: irreversible side effects keep explicit entry points only); Enter runs execute / opens the shell only on a bare token, while leadingInput tolerates trailing arguments.
- The popup from `popupFor(actx)`: search filters locally, select is single-flight, the projection is captured at open, onSelect consumes the token through the consume-token event only on success, a failure is retained for retry, and a session switch merely hides it. The popup shell is a transient layer (never in the state machine): the box holds focus, Enter/↑↓/Escape belong to it, and clicking outside the box dismisses (clicking the textarea also returns focus).
@@ -58,5 +59,5 @@ The pipeline was ready but command knowledge had no landing spot: host-side `ctx
- Shipping a business command = a host registration plus one client `command.register` (popupSelect) or zero registration (execute/leadingInput derive automatically), with zero skeleton changes; the cost is that the three-kind semantics concentrate in ui-commands, and a hypothetical fourth kind means changing it.
- The resident directory cache plus push invalidation buys zero-latency menus and reliable enter adjudication; the cost is three invalidation paths (the change frame, reconnect, the epoch guard) that all need tests pinning them.
- sessionId addressing puts the host's per-agent effective directory (global + scoped shadows) straight on the wire. The client preserves command identity, input metadata, and noncanonical descriptions while resolving exact first-party description pairs through its current locale.
- sessionId addressing puts the host's per-agent effective directory (global + scoped shadows) straight on the wire, with the client presenting it as-is.
- Known gaps: the popupSelect shell has no shipped business consumer yet (model selection and its kin arrive with the host `selectModel` work in live-mutation shape, serving as the onboarding template then); the queue's second cut (per-item Inbox operations), rich result cards, and roster configurability sit in the ledger awaiting their triggers.
@@ -1,6 +1,7 @@
# Agent Note: Web 命令业务面与装配(ui-commands / ui-skill / ui-subagent
Status: implemented
Archived: 2026-09-04
[English](2026-07-25-web-command-surfaces-and-assembly.md) | 中文
@@ -21,7 +22,7 @@ Status: implemented
- 投影 `ClientSessionContext { sessionId }` 自持于 ui-input-trigger 约定(types.ts):会话恒 agent-backed,会话身份即命令能力的全部投影;wire 以 `{sessionId}` 寻址(`command.list` / `command.execute` 均是;host 从会话 header 解析 Agent)。
- 目录按 `SessionId` 分区,per-key single-flight + epoch guard(旧拉取永不覆盖新态),`commands/changed` 全 key 软失效(旧快照继续服务、后台重拉)、`connection/reset` 全 key 硬失效并预热,Enter 必须等待当前 key 就绪、失败留草稿不降级。预热挂 source 的 `warm` 钩子——scope 出生时对全 roster 一次,即覆盖整个会话生命周期(会话能力自出生恒定)。
- `register(contribution)` 注册 client 命令(本地化说明解析函数 + `available(projection)` + popupSelect spec);候选合成会合并 host 目录与可用 contribution,仅在命令名和规范英文文案都匹配时本地化六个第一方 Host 说明,再执行 query/position 过滤。会话作用域内或第三方的 Host 说明保持原样,host/contribution 重名 fail loud。切换语言会原地重新拉取每个已打开触发器 controller 的候选项;源码门禁则保持每个第一方 Host 注册与英语字典及 `HOST_DESCRIPTION_KEYS` 一致
- `register(contribution)` 注册 client 命令(descriptor + `available(projection)` + popupSelect spec);候选合成 = host 目录 + contribution 可用性过滤,再过 query/positionhost/contribution 重名 fail loud
- 命令三型按注册面派生,开发者不声明位置:host descriptor 带 `input` = **leadingInput**(回填 `/name ␣` + claim,继续打参数,仅限行首);client 注册 popupSelect spec = **popupSelect**(官方选择框壳,业务零组件);两者皆无 = **execute**(选中即执行,零 UI)。
- 派发决策表:菜单可触发三型;Space 只认 leadingInput(误触发防线:不可逆副作用只留显式入口);Enter 裸 token 才 execute/开壳、leadingInput 容忍尾随参数。
- `popupFor(actx)` 的 popupsearch 本地过滤、select single-flight、open 时捕获投影、onSelect 成功才经 consume-token 事件消 token、失败保留可重试、会话切换只隐藏。popup 壳是瞬态层(不进状态机):框持焦点、Enter/↑↓/Escape 归它、点框外即 dismiss(点 textarea 同时归还焦点)。
@@ -58,5 +59,5 @@ Status: implemented
- 业务命令上架 = host 注册 + client 一笔 `command.register`popupSelect)或零注册(execute/leadingInput 自动派生),零骨架改动;代价是三型语义集中在 ui-commands,假想的第四型意味着改它。
- 常驻目录缓存 + 推失效换来菜单零延迟与回车裁决可靠;代价是三条失效路径(change 帧、重连、epoch guard)都需测试钉住。
- sessionId 寻址让 host 的 per-agent 有效目录(全局 + scoped shadows)直接上 wireclient 保留命令身份、输入元数据与非规范说明,同时通过当前 locale 解析完全匹配的第一方说明
- sessionId 寻址让 host 的 per-agent 有效目录(全局 + scoped shadows)直接上 wireclient 原样呈现
- 已知欠账:popupSelect 壳暂无已上架业务消费方(模型选择等将随 host `selectModel` 工作以 live-mutation 形态到来,届时作接入样板);队列第二刀(逐项 Inbox 操作)、富结果卡、roster 可配置性入台账待触发。
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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-input-machine-and-slash-pipeline.md
2026-07-25-web-input-machine-and-slash-pipeline.md: b6d485d495717770ebb5148880b3c8c1cb23b948
2026-07-25-web-input-machine-and-slash-pipeline.zh.md: 69ed9a40f4dd9a316f147e3077c9167e1ee46eeb
@@ -1,6 +1,7 @@
# Agent Note: Web input state machine, composer slots, and the slash pipeline (ui-conversation input / ui-input-trigger)
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-25-web-input-machine-and-slash-pipeline.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: Web 输入状态机、composer slot 与 slash 流水线(ui-conversation input / ui-input-trigger
Status: implemented
Archived: 2026-09-04
[English](2026-07-25-web-input-machine-and-slash-pipeline.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-26-job-registry-seam.md
2026-07-26-job-registry-seam.md: d1a8cfb7bc4f1a8e313dfa8d59a5d0e5f8106190
2026-07-26-job-registry-seam.zh.md: 1624a410407d8e6ac8cc85a6fe1480e0867eef6d
@@ -1,6 +1,7 @@
# Agent Note: The job registry is a capability seam (`dsh-jobs` / `dsh-jobs-local`)
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-26-job-registry-seam.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 任务注册表是一个能力 seam(`dsh-jobs` / `dsh-jobs-local`
Status: implemented
Archived: 2026-09-04
[English](2026-07-26-job-registry-seam.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-26-subprocess-seam.md
2026-07-26-subprocess-seam.md: bd8cba2197a56acef2ab12e9b43e254fbc744ee5
2026-07-26-subprocess-seam.zh.md: ba23649e9e68f578bdc9ba26a026981d0afe981f
@@ -1,6 +1,7 @@
# Agent Note: The subprocess service is its own seam under the bash executors (`dsh-subprocess` / `dsh-subprocess-local`)
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-26-subprocess-seam.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 进程服务是 bash 执行器之下的独立 seam(`dsh-subprocess` / `dsh-subprocess-local`
Status: implemented
Archived: 2026-09-04
[English](2026-07-26-subprocess-seam.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-27-dispose-ladder-to-consumer.md
2026-07-27-dispose-ladder-to-consumer.md: 7e1b189c1d3a32c6f812bba5d5f06f7a6a89c29b
2026-07-27-dispose-ladder-to-consumer.zh.md: 6c61cad5d4a62c5c976894f72d0ff5e9c69184bc
@@ -1,6 +1,7 @@
# Agent Note: The dispose ladder belongs to its consumer, not the subprocess seam
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-27-dispose-ladder-to-consumer.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: dispose 阶梯归其消费方所有,而非 subprocess seam
Status: implemented
Archived: 2026-09-04
[English](2026-07-27-dispose-ladder-to-consumer.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-28-directory-picker-capability-seam.md
2026-07-28-directory-picker-capability-seam.md: e2f3312b7429078eb81cba62ab1727e71fe67b74
2026-07-28-directory-picker-capability-seam.zh.md: 41a05febe58c353242cc389e20bbf84b3620b7c9
@@ -1,6 +1,7 @@
# Agent Note: A capability-discriminated directory-picker seam for the web-GUI host
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-28-directory-picker-capability-seam.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: web GUI 宿主的能力可辨识目录选择 seam
Status: implemented
Archived: 2026-09-04
[English](2026-07-28-directory-picker-capability-seam.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-28-user-settings-seam.md
2026-07-28-user-settings-seam.md: 75fef5ed976d80acb4e26133c2b98d8504042121
2026-07-28-user-settings-seam.zh.md: 9797e5a3288a7709f3541784778c514890015410
@@ -1,6 +1,7 @@
# Agent Note: user-settings seam (`ctx.settings`) and the file provider
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-28-user-settings-seam.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 用户设置 seam`ctx.settings`)与文件提供方
Status: implemented
Archived: 2026-09-04
[English](2026-07-28-user-settings-seam.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-29-package-regrouping.md
2026-07-29-package-regrouping.md: 7073d868fe73f75477cf9a6fa2c5f7c425d014a8
2026-07-29-package-regrouping.zh.md: b33ecf1600ce9c9796e932c14c5df9782bb3a94b
@@ -1,6 +1,7 @@
# Agent Note: Regroup packages/ by measured clustering
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-29-package-regrouping.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 按实测聚类重新划分 packages/ 分组
Status: implemented
Archived: 2026-09-04
[English](2026-07-29-package-regrouping.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-29-request-level-llm-config-credentials.md
2026-07-29-request-level-llm-config-credentials.md: dda5cd6710ad432a25bce1214078098f4e797559
2026-07-29-request-level-llm-config-credentials.zh.md: e521920586c8fe9d3a498e0369d1693096562973
@@ -1,6 +1,7 @@
# Agent Note: request-level LLM configuration and the credential seam
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-29-request-level-llm-config-credentials.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 请求级 LLM 配置与凭据 seam
Status: implemented
Archived: 2026-09-04
[English](2026-07-29-request-level-llm-config-credentials.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-adapter-owned-max-token-defaults.md
2026-07-30-adapter-owned-max-token-defaults.md: 30b1840a9ff80092609698e63d061a7d82503e5d
2026-07-30-adapter-owned-max-token-defaults.zh.md: 770c61ce1514fa8e16d4cbabed4dd97b5b7b40fb
@@ -1,6 +1,7 @@
# Agent Note: Adapter-owned max-token defaults
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-30-adapter-owned-max-token-defaults.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 适配器持有的最大 token 默认值
Status: implemented
Archived: 2026-09-04
[English](2026-07-30-adapter-owned-max-token-defaults.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-client-locale-full-rollout.md
2026-07-30-client-locale-full-rollout.md: 381a0ed642d7452cb4be2c9a755bf33c120cba76
2026-07-30-client-locale-full-rollout.zh.md: 81ae013e86c6ecb608a15c3664c5203233e27e40
@@ -1,6 +1,7 @@
# Agent Note: Full client copy rollout onto the typed locale seat
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-30-client-locale-full-rollout.zh.md)
@@ -18,7 +19,7 @@ After the typed locale standard seat landed (`locale:` on register → framework
**Zero-Cordis atoms (ui-primitives) take copy as required props.** `HoverCard`, structured Tool blocks, JSON/Markdown renderers, `ConnectionIndicator`, and modal chrome remain runtime-independent; localized plugins pass complete dictionary-driven label objects from their own `t` seat and memoize cache-sensitive objects on the `t` identity. The removal of language-bearing defaults and the complete prop inventory are owned by the [locale-owned copy decision](2026-08-23-locale-owned-client-ui-copy.md).
**Every product-authored UI phrase is translated.** Client fallbacks, design labels, trajectory inspection, accessibility names, and formatter units are dictionary-owned under the [locale-owned copy decision](2026-08-23-locale-owned-client-ui-copy.md). User/model/provider text, externally authored plugin or wire text, and protocol or code tokens remain verbatim data. Wire transport does not make first-party product copy external: the command UI recognizes each built-in Host description by its exact command name and canonical English source before translating it. Framework-free boot markup still runs before the locale service; the localized application replaces its product copy after activation.
**Every product-authored UI phrase is translated.** Client fallbacks, design labels, trajectory inspection, accessibility names, and formatter units are dictionary-owned under the [locale-owned copy decision](2026-08-23-locale-owned-client-ui-copy.md). User/model/provider/wire text and protocol or code tokens remain verbatim data. Framework-free boot markup still runs before the locale service; the localized application replaces its product copy after activation.
**Derivation layers keep display text out of identity.** ui-workspace's `relativeTime` returns structured `{unit, n}` composed with dictionary templates by the renderer; blank session titles and the Ungrouped label derive from the `blank` flag / absent `workspaceId`, while internal values stay empty or stable; **blank rows are excluded from search entirely** (a bilingual display title cannot match a single-language query stably). Dates use no Intl: format templates live in the dictionaries (message clock `clock.md`/`clock.ymd`, workspace hover `date.ymd`) and the formatters take `t` as a parameter.
@@ -1,6 +1,7 @@
# Agent Note: client 文案全量接入 typed locale 席位
Status: implemented
Archived: 2026-09-04
[English](2026-07-30-client-locale-full-rollout.md) | 中文
@@ -18,7 +19,7 @@ typed locale 标准席位(`locale:` 注册声明 → 框架注入强类型 `t`
**zero-Cordis 原子组件(ui-primitives)通过必填 prop 接收文案。** `HoverCard`、结构化工具块、JSON/Markdown 渲染器、`ConnectionIndicator` 和 modal chrome 均保持运行时独立;已本地化插件从自己的 `t` 席位传入完整的字典驱动 label 对象,对缓存敏感的对象按 `t` 身份 memo。移除带语言默认值以及完整 prop 清单由 [locale 归属文案决策](2026-08-23-locale-owned-client-ui-copy.zh.md)负责。
**所有产品编写的 UI 短语都翻译。** client 兜底文案、设计 label、trajectory 检查面、无障碍名称和格式化单位均按 [locale 归属文案决策](2026-08-23-locale-owned-client-ui-copy.zh.md)进入字典。用户/模型/提供方文本、外部编写的插件或 wire 文本以及协议或代码 token 仍作为数据原样呈现。经 wire 传输不会使第一方产品文案变成外部文本:命令 UI 会先用确切命令名与规范英文原文识别每个内置 Host 说明,再进行翻译。不依赖框架的 boot 标记仍早于 locale 服务运行;本地化应用激活后会替换其中的产品文案。
**所有产品编写的 UI 短语都翻译。** client 兜底文案、设计 label、trajectory 检查面、无障碍名称和格式化单位均按 [locale 归属文案决策](2026-08-23-locale-owned-client-ui-copy.zh.md)进入字典。用户/模型/提供方/wire 文本以及协议或代码 token 仍作为数据原样呈现。不依赖框架的 boot 标记仍早于 locale 服务运行;本地化应用激活后会替换其中的产品文案。
**派生层不让展示文本承担身份。** ui-workspace 的 `relativeTime` 返回结构化 `{unit, n}`,由渲染组合字典模板;blank 会话标题和未分组 label 从 `blank` 标志/`workspaceId` 缺席派生,内部值保持为空或稳定;**搜索态 blank 行一律排除**(双语标题无法与单语查询稳定匹配)。日期不引 Intl:格式模板进字典(消息时钟 `clock.md`/`clock.ymd`workspace hover `date.ymd`),格式化函数接收 `t` 参数。
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages 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-command-row-copy-contract.md
2026-07-30-command-row-copy-contract.md: e5f1828e433015a1381ae4f7951c518bb6040107
2026-07-30-command-row-copy-contract.zh.md: 7efe1aa65ddd992e64807e229b1da682f5bc320b
@@ -1,6 +1,7 @@
# Agent Note: Command row copy is split between the row and the handler
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-30-command-row-copy-contract.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 命令条目文案分别由条目与 handler 负责
Status: implemented
Archived: 2026-09-04
[English](2026-07-30-command-row-copy-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-30-config-plane-boundaries.md
2026-07-30-config-plane-boundaries.md: 6c1f0c8643e9f1b1879b213e01bb8555b6980afe
2026-07-30-config-plane-boundaries.zh.md: 16b05a45afbb944e3ed9f1121e067d8d2bbf1f48
@@ -1,6 +1,7 @@
# Agent Note: what the configuration plane exposes, and who may overwrite what
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-30-config-plane-boundaries.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 配置面暴露什么,以及谁有权覆盖什么
Status: implemented
Archived: 2026-09-04
[English](2026-07-30-config-plane-boundaries.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-settings-write-path-integrity.md
2026-07-30-settings-write-path-integrity.md: 00e9639bc3f2bec8d4f10d3ba30611c822d3d966
2026-07-30-settings-write-path-integrity.zh.md: 887941a8bcfadc7f8745b77f2c650452df5df0b9

Some files were not shown because too many files have changed in this diff Show More