Merge master and preserve catalog-recursive subagent discovery
This commit is contained in:
commit
3254ed611d
5076 files changed
+226902
-51386
No files matched your search
@@ -1,6 +1,46 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/README.md
|
||||
README.md: 6872de0a1390fa5a1707b9f464c9e0edeb2da4be
|
||||
README.zh.md: ced81f77fa904ad0b5cb5219383ef651d87392b8
|
||||
/agent-notes:
|
||||
en: a10991a192c7b55d
|
||||
zh: c2e5b938ece4f366
|
||||
/agent-notes/layout-and-naming:
|
||||
en: 6b38cb0eb38c2baf
|
||||
zh: 535234fb23fc8921
|
||||
/agent-notes/classification:
|
||||
en: 055a5e49f9af3dc2
|
||||
zh: 9f7c78409cccfded
|
||||
/agent-notes/archiving-and-deletion:
|
||||
en: 57ccc5fec461ebb0
|
||||
zh: 69e8f9e79abc53aa
|
||||
/agent-notes/when-to-write-one:
|
||||
en: 2beb1b94d8fb633c
|
||||
zh: 889b5542bb771205
|
||||
/agent-notes/the-file-format:
|
||||
en: 601f85df49f80fc7
|
||||
zh: acbd0955d6543b13
|
||||
/agent-notes/the-file-format/the-header-block:
|
||||
en: 16fdaab0c74a5bb5
|
||||
zh: 2553f145a1eb878f
|
||||
/agent-notes/the-file-format/the-body-skeleton:
|
||||
en: 740b7e964b9aec37
|
||||
zh: 8551ddef1ffa776a
|
||||
/agent-notes/the-file-format/the-body-skeleton/proposed:
|
||||
en: acc0c035c5ca6fd7
|
||||
zh: 8a65816dfac9e580
|
||||
/agent-notes/the-file-format/the-body-skeleton/implemented:
|
||||
en: f3523d7e40cc4e2f
|
||||
zh: 574fa8959f8829a1
|
||||
/agent-notes/the-file-format/the-body-skeleton/rejected:
|
||||
en: f0ff5d05191f2315
|
||||
zh: 3f9df0dd01a5cbed
|
||||
/agent-notes/the-file-format/alternatives-considered-mandatory:
|
||||
en: fe1bf385aee54033
|
||||
zh: 37cb4ea86ec6d99d
|
||||
/agent-notes/the-file-format/moving-between-lifecycles:
|
||||
en: d3f18ba194dfb677
|
||||
zh: 3d202868deda2f31
|
||||
/agent-notes/the-file-format/chinese-counterparts:
|
||||
en: d72a33b7c63722b2
|
||||
zh: f8320c91b1f77ae6
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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) 记录了设计依据。
|
||||
|
||||
<a id="when-to-write-one"></a>
|
||||
|
||||
|
||||
@@ -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.
|
||||
+3
-3
@@ -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 packages/settings/settings-file/README.md
|
||||
README.md: ea578a1739e1bd5d7b7f47be596998b124337ed5
|
||||
README.zh.md: 668d771bd64738701de87ca28066234284941873
|
||||
# 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
|
||||
@@ -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.
|
||||
@@ -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 参数,一处组合改动即同时作用于所有界面。
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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。
|
||||
|
||||
## 验证
|
||||
|
||||
|
||||
@@ -376,6 +376,9 @@
|
||||
"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-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",
|
||||
@@ -754,12 +757,12 @@
|
||||
"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-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-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-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",
|
||||
"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",
|
||||
@@ -1264,9 +1267,9 @@
|
||||
"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",
|
||||
@@ -1561,6 +1564,9 @@
|
||||
"process/2026-08-08-api-remotes-generated-contract-build.i18n.yaml": "sha256:da10469121712bd6ac4fb1f665ca8bd59597a94b56324d2fe4bdef5235498b6e",
|
||||
"process/2026-08-08-api-remotes-generated-contract-build.md": "sha256:8c3d7712cce4913cd3c02d1ac2b87def3f7104a7503681afc3c755896ac45d1f",
|
||||
"process/2026-08-08-api-remotes-generated-contract-build.zh.md": "sha256:e32e1f53c763e769d152c8c41cf8f8977210e82a0d3f7cc7f0421da7e589e9ad",
|
||||
"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-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",
|
||||
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages 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-automatic-translation-pairing-merges.md
|
||||
2026-08-08-automatic-translation-pairing-merges.md: ed693e376d056378b27a8995a6f26fefcdba34b2
|
||||
2026-08-08-automatic-translation-pairing-merges.zh.md: 827475a92824c22ee6f4c558de81b645c3c2b8dc
|
||||
+1
@@ -1,6 +1,7 @@
|
||||
# Agent Note: Automatically compose translation pairing records
|
||||
|
||||
Status: implemented
|
||||
Archived: 2026-09-23
|
||||
|
||||
English | [中文](2026-08-08-automatic-translation-pairing-merges.zh.md)
|
||||
|
||||
+1
@@ -1,6 +1,7 @@
|
||||
# Agent Note: 自动组合翻译配对记录
|
||||
|
||||
Status: implemented
|
||||
Archived: 2026-09-23
|
||||
|
||||
[English](2026-08-08-automatic-translation-pairing-merges.md) | 中文
|
||||
|
||||
+18
-5
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-06-11-content-block-vocabulary.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.md
|
||||
2026-06-11-content-block-vocabulary.md: 917dd5225fdc4ab391e9e4629769abbb68095731
|
||||
2026-06-11-content-block-vocabulary.zh.md: 9d228eb34dafbdebab44b45dc3b290c9327d3b2b
|
||||
/agent-note-provider-neutral-content-block-vocabulary-owned-by-dsh-llm:
|
||||
en: 64935f5c8e315004
|
||||
zh: 6a9cbb4578eaa437
|
||||
/agent-note-provider-neutral-content-block-vocabulary-owned-by-dsh-llm/problem:
|
||||
en: 4e81df7bca1c1638
|
||||
zh: f7483d180a613237
|
||||
/agent-note-provider-neutral-content-block-vocabulary-owned-by-dsh-llm/decision:
|
||||
en: 9526dfcf4da1d000
|
||||
zh: ea2bf79a02b26b39
|
||||
/agent-note-provider-neutral-content-block-vocabulary-owned-by-dsh-llm/alternatives-considered:
|
||||
en: 1de2e19e711105e6
|
||||
zh: a2cd5a64cc4e9e73
|
||||
/agent-note-provider-neutral-content-block-vocabulary-owned-by-dsh-llm/consequences:
|
||||
en: 999d10e69e447e44
|
||||
zh: 38370da5b900ac30
|
||||
+36
-5
@@ -1,6 +1,37 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-06-11-dev-invariants-over-deep-readonly.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-11-dev-invariants-over-deep-readonly.md
|
||||
2026-06-11-dev-invariants-over-deep-readonly.md: 0784960397f4d198e136e284ef9232b4ed3e2c2c
|
||||
2026-06-11-dev-invariants-over-deep-readonly.zh.md: 7183813130560bf82426c8719570b668ba86b7e5
|
||||
/agent-note-source-owned-session-immutability-and-dev-mode-invariants:
|
||||
en: 052aa271e87074c0
|
||||
zh: 3ccffc50fc1a28d4
|
||||
/agent-note-source-owned-session-immutability-and-dev-mode-invariants/problem:
|
||||
en: 6ea85a4531d5e59f
|
||||
zh: b4b568eb347f016a
|
||||
/agent-note-source-owned-session-immutability-and-dev-mode-invariants/decision:
|
||||
en: 6e701ec64c3bbfae
|
||||
zh: b8ed0f1cb7a0477a
|
||||
/agent-note-source-owned-session-immutability-and-dev-mode-invariants/decision/session-owns-immutable-history:
|
||||
en: ff47e58c377a8dc0
|
||||
zh: 5edbe4f3642a3fe6
|
||||
/agent-note-source-owned-session-immutability-and-dev-mode-invariants/decision/derived-requests-remain-detached:
|
||||
en: 975df574ee6e6df8
|
||||
zh: 96d765058482835a
|
||||
/agent-note-source-owned-session-immutability-and-dev-mode-invariants/decision/package-owned-invariant-companions-check-relationships:
|
||||
en: a88e3a896eedca91
|
||||
zh: 03e96c7870cba932
|
||||
/agent-note-source-owned-session-immutability-and-dev-mode-invariants/alternatives-considered:
|
||||
en: 6119e2aff3b6be5a
|
||||
zh: 76136ef5249c23eb
|
||||
/agent-note-source-owned-session-immutability-and-dev-mode-invariants/alternatives-considered/pervasive-deep-readonly-types:
|
||||
en: ec54af2931616616
|
||||
zh: 5fd9bc469a6fd3a5
|
||||
/agent-note-source-owned-session-immutability-and-dev-mode-invariants/alternatives-considered/development-only-freezing:
|
||||
en: 85591197bb62eabf
|
||||
zh: ba69b9ccf596a6d7
|
||||
/agent-note-source-owned-session-immutability-and-dev-mode-invariants/alternatives-considered/clone-only-when-deriving-messages:
|
||||
en: a9848dec50664b92
|
||||
zh: 7c558550b054627b
|
||||
/agent-note-source-owned-session-immutability-and-dev-mode-invariants/consequences:
|
||||
en: bcccf7d464a070db
|
||||
zh: eccd442a21e2c99e
|
||||
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-06-11-event-sourced-sessions.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-11-event-sourced-sessions.md
|
||||
2026-06-11-event-sourced-sessions.md: b6d17d2db1d9b489f3d4224683b61e62be485014
|
||||
2026-06-11-event-sourced-sessions.zh.md: 11e5740dc2636fc002ed7158167b1dfbb39a971d
|
||||
/agent-note-event-sourced-sessions-with-derived-message-history:
|
||||
en: da3abc821101e4b3
|
||||
zh: c206fa4830920592
|
||||
/agent-note-event-sourced-sessions-with-derived-message-history/problem:
|
||||
en: 63b684d349a48a15
|
||||
zh: 7603f64b445db129
|
||||
/agent-note-event-sourced-sessions-with-derived-message-history/decision:
|
||||
en: d60f161037a10269
|
||||
zh: 799a15fae2534ec4
|
||||
/agent-note-event-sourced-sessions-with-derived-message-history/alternatives-considered:
|
||||
en: 73541e0833eb9559
|
||||
zh: ddca382d54e498e5
|
||||
/agent-note-event-sourced-sessions-with-derived-message-history/consequences:
|
||||
en: d2ea77a5c8e30949
|
||||
zh: 19dc61cb0d29315f
|
||||
+18
-5
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-06-11-microkernel-event-taxonomy.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-11-microkernel-event-taxonomy.md
|
||||
2026-06-11-microkernel-event-taxonomy.md: 6cacbc30f29c863de0f8ddfa4df7251a64bc80ca
|
||||
2026-06-11-microkernel-event-taxonomy.zh.md: 1c7919392b835c491b9dc606d46f638a708d2948
|
||||
/agent-note-microkernel-extension-via-cordis-event-taxonomy-one-concrete-loop:
|
||||
en: e5775d7ec6f1cdc3
|
||||
zh: a364697f860a545a
|
||||
/agent-note-microkernel-extension-via-cordis-event-taxonomy-one-concrete-loop/problem:
|
||||
en: 3bc74749db819441
|
||||
zh: 19b5497ed3a9378b
|
||||
/agent-note-microkernel-extension-via-cordis-event-taxonomy-one-concrete-loop/decision:
|
||||
en: 2153b0cb5773cb08
|
||||
zh: 82d7ad1b250cd52d
|
||||
/agent-note-microkernel-extension-via-cordis-event-taxonomy-one-concrete-loop/alternatives-considered:
|
||||
en: e528c5a20e0c55a3
|
||||
zh: 004d3bf06241cc26
|
||||
/agent-note-microkernel-extension-via-cordis-event-taxonomy-one-concrete-loop/consequences:
|
||||
en: 6acb80cdaa7c010f
|
||||
zh: acca672d8094d985
|
||||
@@ -1,6 +1,22 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-06-13-capability-seams.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-13-capability-seams.md
|
||||
2026-06-13-capability-seams.md: 798739b7ef203b10ea657f9e1c178ea7eab094ad
|
||||
2026-06-13-capability-seams.zh.md: c8f568aa569fe74146f1e7fcc46e00774a39fb84
|
||||
/agent-note-capability-seams-service-definition-service-provider-consumer-roles:
|
||||
en: 4c1875882be571bb
|
||||
zh: 90ef4d8b27587c6b
|
||||
/agent-note-capability-seams-service-definition-service-provider-consumer-roles/problem:
|
||||
en: 3215928333de66f7
|
||||
zh: 2c72fcacccf25741
|
||||
/agent-note-capability-seams-service-definition-service-provider-consumer-roles/decision:
|
||||
en: 774c54c0d3d9acad
|
||||
zh: 7dd4bfaf0ba2181b
|
||||
/agent-note-capability-seams-service-definition-service-provider-consumer-roles/terminology-seam-names-the-trio-not-the-interface:
|
||||
en: 8dca727800bea2f4
|
||||
zh: 4c4e028520967ca0
|
||||
/agent-note-capability-seams-service-definition-service-provider-consumer-roles/alternatives-considered:
|
||||
en: cf6e4b1f188d9e4a
|
||||
zh: bf2485a5f539746c
|
||||
/agent-note-capability-seams-service-definition-service-provider-consumer-roles/consequences:
|
||||
en: 941d8b343162edea
|
||||
zh: 70904b0716de151d
|
||||
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-06-13-twin-llm-adapters.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-13-twin-llm-adapters.md
|
||||
2026-06-13-twin-llm-adapters.md: fe8b0b55e0e027e29eb0920e64a1760d0dc35aee
|
||||
2026-06-13-twin-llm-adapters.zh.md: 4248b5afeb9f3fd4503914e53203c674e3a80dbf
|
||||
/agent-note-two-llm-adapters-as-a-design-verification-twin:
|
||||
en: dcb28a02ba26cb31
|
||||
zh: 096d0ab60a3ad638
|
||||
/agent-note-two-llm-adapters-as-a-design-verification-twin/problem:
|
||||
en: feb8f5213be03a5c
|
||||
zh: 5ca85048792db7d8
|
||||
/agent-note-two-llm-adapters-as-a-design-verification-twin/decision:
|
||||
en: 0dd6ebb29aebc164
|
||||
zh: 20065ae72f4d131d
|
||||
/agent-note-two-llm-adapters-as-a-design-verification-twin/alternatives-considered:
|
||||
en: c523a9b402588189
|
||||
zh: bced37eb1040360a
|
||||
/agent-note-two-llm-adapters-as-a-design-verification-twin/consequences:
|
||||
en: 71cc34560fc2e012
|
||||
zh: 91ea73e3e009a9a5
|
||||
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-06-14-session-persistence.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-14-session-persistence.md
|
||||
2026-06-14-session-persistence.md: d79975e1fedb6efcd0e4ea83bc799bb158082e41
|
||||
2026-06-14-session-persistence.zh.md: f70b8005a254cc6a9ea8ada31c32e5552ee0c8b2
|
||||
/agent-note-session-persistence-as-an-abstract-service-over-the-existing-sessionevent:
|
||||
en: d7cf18702f4ed830
|
||||
zh: 7e0cc6db7c90a7bd
|
||||
/agent-note-session-persistence-as-an-abstract-service-over-the-existing-sessionevent/problem:
|
||||
en: fa1ffb258aee90f6
|
||||
zh: c25cead52e72f97d
|
||||
/agent-note-session-persistence-as-an-abstract-service-over-the-existing-sessionevent/decision:
|
||||
en: a7076073971de601
|
||||
zh: 5ea9a87705340d91
|
||||
/agent-note-session-persistence-as-an-abstract-service-over-the-existing-sessionevent/alternatives-considered:
|
||||
en: e5c9929ca92cc12e
|
||||
zh: 3e0668f6a822577c
|
||||
/agent-note-session-persistence-as-an-abstract-service-over-the-existing-sessionevent/consequences:
|
||||
en: 4f00ed0b90442440
|
||||
zh: 994a5b03c862178b
|
||||
@@ -1,6 +1,37 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-06-18-session-surface.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-18-session-surface.md
|
||||
2026-06-18-session-surface.md: 26780d54a1ea12283900572c6fd0e8f740de5524
|
||||
2026-06-18-session-surface.zh.md: 328a9ee9f1bed9c52996cfd307549a7745e16d4b
|
||||
/agent-note-session-surface-an-ordered-projection-over-the-event-log:
|
||||
en: 9ea7a8765e7f3259
|
||||
zh: 17e0d51645f01edd
|
||||
/agent-note-session-surface-an-ordered-projection-over-the-event-log/problem:
|
||||
en: 4f7a9d20d71a6ab3
|
||||
zh: 958abbdfefec4f21
|
||||
/agent-note-session-surface-an-ordered-projection-over-the-event-log/decision:
|
||||
en: a9944b568ec51fad
|
||||
zh: 6717d30db31b81d7
|
||||
/agent-note-session-surface-an-ordered-projection-over-the-event-log/decision/top-level-surface-metadata-on-sessionevent:
|
||||
en: 788fc16ecdedc252
|
||||
zh: 14d05c2a1272de5d
|
||||
/agent-note-session-surface-an-ordered-projection-over-the-event-log/decision/surfaceop-two-operations:
|
||||
en: ff075eec0881094a
|
||||
zh: 1f7768f28b8996d5
|
||||
/agent-note-session-surface-an-ordered-projection-over-the-event-log/decision/surfacemanager-delta-based-not-full-rebuild:
|
||||
en: 0b10fd9c5166d17b
|
||||
zh: 02de01f70c03f70e
|
||||
/agent-note-session-surface-an-ordered-projection-over-the-event-log/decision/persistence:
|
||||
en: 9bb1f81b86b24760
|
||||
zh: fe4948645dd0c66d
|
||||
/agent-note-session-surface-an-ordered-projection-over-the-event-log/decision/crash-recovery:
|
||||
en: ee71f9c0f12b6a0e
|
||||
zh: 403b1723f808391d
|
||||
/agent-note-session-surface-an-ordered-projection-over-the-event-log/decision/invariants:
|
||||
en: 24b1342fb3b5be29
|
||||
zh: a62692b0250c072a
|
||||
/agent-note-session-surface-an-ordered-projection-over-the-event-log/alternatives-considered:
|
||||
en: 193157129e65e487
|
||||
zh: a0a73b8a9cbd78e6
|
||||
/agent-note-session-surface-an-ordered-projection-over-the-event-log/consequences:
|
||||
en: 801b67f8da564a22
|
||||
zh: 3c0433ed07083050
|
||||
+57
-5
@@ -1,6 +1,58 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-06-20-generic-long-running-tool-runtime.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-20-generic-long-running-tool-runtime.md
|
||||
2026-06-20-generic-long-running-tool-runtime.md: 5960eb268656d7e316c763631451db1c6d1c6e49
|
||||
2026-06-20-generic-long-running-tool-runtime.zh.md: ea63ae82962a735b3a96e1803708172a33f83e9d
|
||||
/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools:
|
||||
en: 56e269b2a2839796
|
||||
zh: 8fc971036985ac0d
|
||||
/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/problem:
|
||||
en: 70e26df62568c337
|
||||
zh: a9e6f5f8a5482d0a
|
||||
/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/decision:
|
||||
en: 277869395ad6f792
|
||||
zh: 93f13a97d52f10a5
|
||||
/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/runtime-contract:
|
||||
en: eeb7ed8eec13668a
|
||||
zh: 3f236f63c72fbba7
|
||||
/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/authorization-and-owner-lifecycle:
|
||||
en: 3819a73ca70ecdfd
|
||||
zh: c1a4f461a4e45978
|
||||
/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/service-api:
|
||||
en: a1a884816aac3d7f
|
||||
zh: b21129e5cd93b9a1
|
||||
/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/model-facing-control-api:
|
||||
en: dd3f4d85d0ec136f
|
||||
zh: ca4209cb856271dd
|
||||
/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/producer-opt-in:
|
||||
en: a39343bf6f655051
|
||||
zh: d9894d39e7f4d6e1
|
||||
/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/producer-integrations:
|
||||
en: ae4a6d6e0d83d3bd
|
||||
zh: 9072890ba9374426
|
||||
/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/alternatives-considered:
|
||||
en: 6119e2aff3b6be5a
|
||||
zh: e01a6c669a9ec6aa
|
||||
/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/alternatives-considered/per-capability-control-tools:
|
||||
en: 9781c302dc72fd8e
|
||||
zh: a78e1dd8da4d8ca8
|
||||
/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/alternatives-considered/an-immediate-abstract-task-runtime-backend:
|
||||
en: 404a5c7c45a71a55
|
||||
zh: 213621e4a9618a9c
|
||||
/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/alternatives-considered/consumer-owned-authorization-or-cleanup-events:
|
||||
en: d99de803718d9ca6
|
||||
zh: e03a97314851ed0f
|
||||
/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/alternatives-considered/blocking-output-or-a-separate-wait-tool:
|
||||
en: e3beca50b6a57ce0
|
||||
zh: a77663b817d33247
|
||||
/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/alternatives-considered/runtime-owned-output-sinks:
|
||||
en: 42eeeba9d84ae681
|
||||
zh: 1d540f9740675bee
|
||||
/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/alternatives-considered/random-ids-promotion-or-lifecycle-session-events:
|
||||
en: e706b1b57241d3d2
|
||||
zh: 1779b7fa05f48283
|
||||
/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/testing:
|
||||
en: e891db1723828da8
|
||||
zh: 657a62ed595bd081
|
||||
/agent-note-the-background-job-runtime-ctx-jobs-and-generic-task-control-tools/consequences:
|
||||
en: b95ecd6052465ad3
|
||||
zh: 1527c38d1b4631d6
|
||||
+42
-5
@@ -1,6 +1,43 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-06-21-bounded-llm-request-recovery.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-21-bounded-llm-request-recovery.md
|
||||
2026-06-21-bounded-llm-request-recovery.md: b0a4ebb11b76c4c0068490c9924a88b80a8bc99f
|
||||
2026-06-21-bounded-llm-request-recovery.zh.md: e8c25f9f6410dc12e34a0272e01e874431624c28
|
||||
/agent-note-bounded-recovery-for-transient-llm-request-failures:
|
||||
en: fb8e336ecd4bf571
|
||||
zh: 23e40e4cb224163f
|
||||
/agent-note-bounded-recovery-for-transient-llm-request-failures/problem:
|
||||
en: 83a361538a092dae
|
||||
zh: e8f33cb95d0d3e09
|
||||
/agent-note-bounded-recovery-for-transient-llm-request-failures/decision:
|
||||
en: a15c7c13f167e5ac
|
||||
zh: 63bcc2ef60c2f344
|
||||
/agent-note-bounded-recovery-for-transient-llm-request-failures/decision/preserve-failure-facts-without-embedding-policy:
|
||||
en: 943322e6cdbfa440
|
||||
zh: 82288531f6194ed2
|
||||
/agent-note-bounded-recovery-for-transient-llm-request-failures/decision/put-retry-policy-on-the-existing-failed-step-extension-point:
|
||||
en: ed4d295378d94a26
|
||||
zh: 1fee5ef4947bac8f
|
||||
/agent-note-bounded-recovery-for-transient-llm-request-failures/decision/make-one-layer-own-visible-attempts:
|
||||
en: 57dbdd385f48bb3e
|
||||
zh: 5e15463fae4be582
|
||||
/agent-note-bounded-recovery-for-transient-llm-request-failures/decision/bound-stalled-streams-where-they-can-be-stopped:
|
||||
en: f7369086e87192b9
|
||||
zh: e2839ed8cc5c23b8
|
||||
/agent-note-bounded-recovery-for-transient-llm-request-failures/decision/keep-attempts-separate-in-the-existing-log:
|
||||
en: 8f57db4bfd6e1c22
|
||||
zh: 67ac62217bb68570
|
||||
/agent-note-bounded-recovery-for-transient-llm-request-failures/out-of-scope:
|
||||
en: 985720529b56cda2
|
||||
zh: 8a649bfa9cd8d93f
|
||||
/agent-note-bounded-recovery-for-transient-llm-request-failures/alternatives-considered:
|
||||
en: a6d0306740d470ee
|
||||
zh: 700bd4b0aa58f3e8
|
||||
/agent-note-bounded-recovery-for-transient-llm-request-failures/verification:
|
||||
en: db343f335a9d7cad
|
||||
zh: 49b8300de55dcfeb
|
||||
/agent-note-bounded-recovery-for-transient-llm-request-failures/consequences:
|
||||
en: 08659e8606455ada
|
||||
zh: 862080f8df5f28ec
|
||||
/agent-note-bounded-recovery-for-transient-llm-request-failures/related:
|
||||
en: e85a6ad7387c881b
|
||||
zh: bb8fb4173ffe613d
|
||||
+24
-5
@@ -1,6 +1,25 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-06-21-mandatory-app-attribution-headers.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-21-mandatory-app-attribution-headers.md
|
||||
2026-06-21-mandatory-app-attribution-headers.md: 9e0c029dc03c722512680a563c24e470128ee322
|
||||
2026-06-21-mandatory-app-attribution-headers.zh.md: 1427daf8f6065ec2dee324075a8381a625d9e960
|
||||
/agent-note-mandatory-user-agent-attribution-for-provider-requests:
|
||||
en: 3f804e0236d13aba
|
||||
zh: ef8b1b7b9c3d8376
|
||||
/agent-note-mandatory-user-agent-attribution-for-provider-requests/problem:
|
||||
en: f65797760084b93a
|
||||
zh: d1fb36ef61a93003
|
||||
/agent-note-mandatory-user-agent-attribution-for-provider-requests/investigation:
|
||||
en: 5ea11f54f507ba64
|
||||
zh: 22a83a0714a2fda3
|
||||
/agent-note-mandatory-user-agent-attribution-for-provider-requests/decision:
|
||||
en: b3e29e609e3f0966
|
||||
zh: e3df0cb13df1cd5d
|
||||
/agent-note-mandatory-user-agent-attribution-for-provider-requests/verification:
|
||||
en: 567737dbccdb3a2a
|
||||
zh: be92a5303247b889
|
||||
/agent-note-mandatory-user-agent-attribution-for-provider-requests/alternatives-considered:
|
||||
en: 016678c52ef64e51
|
||||
zh: a113b57b9e9ddeb5
|
||||
/agent-note-mandatory-user-agent-attribution-for-provider-requests/consequences:
|
||||
en: a9010e68445a0008
|
||||
zh: 1ec6104ab2865919
|
||||
@@ -1,6 +1,76 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-06-24-web-capability-seam.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-24-web-capability-seam.md
|
||||
2026-06-24-web-capability-seam.md: 8c6c088ea5d7345f9955892b2d6054cfae518bbd
|
||||
2026-06-24-web-capability-seam.zh.md: 4921c4a4647d180dbb00e6493a19d38584f99bdc
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers:
|
||||
en: ca120635fc40431c
|
||||
zh: 6be7c5ae3c86cdcc
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/problem:
|
||||
en: c8b932b02a4e1c80
|
||||
zh: 96c466be1a521f3f
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/decision:
|
||||
en: b57eb0f268033ff1
|
||||
zh: 4143382a50181414
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/package-topology:
|
||||
en: 5ea3ddfae82df181
|
||||
zh: 2d05d95e51081696
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/ctx-web-contract:
|
||||
en: b432f80a424c3e49
|
||||
zh: faa26925fdd98387
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/provider-availability-and-selection:
|
||||
en: dff78c46432311a1
|
||||
zh: 58d5db4c3c85b886
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/search-request-and-result-schema:
|
||||
en: ec3703b7e7c6b23d
|
||||
zh: 325755e6e90092da
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/fetch-request-and-result-schema:
|
||||
en: f734fdc57a6546c9
|
||||
zh: 027c28cbc584a8c2
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/tool-consumer-behavior:
|
||||
en: 62127883453dd79c
|
||||
zh: 01503a8177a0ddab
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/errors:
|
||||
en: 3440f2b34b93f4a1
|
||||
zh: 57a8f784c7e26eff
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/testing:
|
||||
en: 7f73699ac4459432
|
||||
zh: c16be49ac50c34c8
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered:
|
||||
en: 6119e2aff3b6be5a
|
||||
zh: 76136ef5249c23eb
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered/let-each-provider-register-its-own-model-facing-tool:
|
||||
en: e0d84a9b1b9c2123
|
||||
zh: 9e116a7b96751563
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered/put-provider-dispatch-directly-in-dsh-tool-web:
|
||||
en: dc01d014d03b49d2
|
||||
zh: b956b02f41c62682
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered/split-search-and-fetch-into-two-seams-dsh-search-dsh-fetch:
|
||||
en: 3fb72ba3e554f20a
|
||||
zh: aff5f0add5773388
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered/choose-the-first-registered-provider:
|
||||
en: 1800706ea0f6b90b
|
||||
zh: ced985b7657e2d7f
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered/treat-firecrawl-exa-tavily-parallel-extraction-as-fetch:
|
||||
en: fc22e6a8bfaeaa20
|
||||
zh: 64032ea6ab61b836
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered/mirror-claude-code-s-url-prompt-webfetch-shape:
|
||||
en: 56a080de39e96056
|
||||
zh: ae4d070aa7657503
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered/validate-dns-and-then-call-an-ordinary-fetch:
|
||||
en: aa6c1e7e6374a875
|
||||
zh: 045c8af6cd44c3e1
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered/block-private-looking-hostname-strings-without-pinning-resolved-addresses:
|
||||
en: 3d906f3056733479
|
||||
zh: d652723eb5372007
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/alternatives-considered/require-per-call-approval-before-public-fetches:
|
||||
en: f8d1fc8e9c9659cf
|
||||
zh: da5792520e35cba0
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/consequences:
|
||||
en: 12fd20ba54818215
|
||||
zh: c1ca000b13666701
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/deferred-work:
|
||||
en: 48b7b8e7310cd56b
|
||||
zh: d406cd6a8a649e58
|
||||
/agent-note-web-capability-seam-stable-tools-over-multiple-providers/open-questions:
|
||||
en: 63848c6ef9a6ab44
|
||||
zh: 041b340802091e60
|
||||
+42
-5
@@ -1,6 +1,43 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-06-26-file-context-as-event-gate.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-26-file-context-as-event-gate.md
|
||||
2026-06-26-file-context-as-event-gate.md: 2943f11190533f84f3aebea0a25a88372d1204f1
|
||||
2026-06-26-file-context-as-event-gate.zh.md: 053f4269b13c8583def01c144badd17b10a5a41a
|
||||
/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface:
|
||||
en: 950d6bb4d83b39d8
|
||||
zh: b40458972583b12b
|
||||
/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/problem:
|
||||
en: 765a679e88ecda60
|
||||
zh: fccabc8ee516ea00
|
||||
/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/decision:
|
||||
en: eb8355d4b7a6c66b
|
||||
zh: 712c6f932f26a0d3
|
||||
/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/the-policy-is-enforced-by-provider-cas-not-by-dsh-fs-observation-policy-stat:
|
||||
en: 2edc42b8210c995b
|
||||
zh: 48f4354c9ec625ee
|
||||
/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/provider-contract-change-the-version-guard-is-optional:
|
||||
en: a282600f92568e07
|
||||
zh: 3e6b2bec22c170c6
|
||||
/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/event-vocabulary-owned-by-dsh-fs:
|
||||
en: f57494c21daf90ea
|
||||
zh: 1a1f8623dc0cbef3
|
||||
/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/tool-contract-dsh-tool-fs:
|
||||
en: c7f4457a83739520
|
||||
zh: f2d55d018c7dab4f
|
||||
/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/policy-plugin-contract-dsh-fs-observation-policy:
|
||||
en: a239deb5dde631df
|
||||
zh: 68cc6c954b247596
|
||||
/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/bare-provider-behavior-no-dsh-fs-observation-policy:
|
||||
en: 5aed537454b78157
|
||||
zh: 9e8e7108be6a9537
|
||||
/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/supersedes:
|
||||
en: 5cc21706fd0f00ad
|
||||
zh: 2b51da75a95f1777
|
||||
/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/verification:
|
||||
en: 1e3de2836160b4c2
|
||||
zh: a8af173d161f0949
|
||||
/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/alternatives-considered:
|
||||
en: 768c09662714cf25
|
||||
zh: cb641e8a77a2e32c
|
||||
/agent-note-make-dsh-fs-observation-policy-an-event-gate-plugin-not-a-method-interface/consequences:
|
||||
en: a1c00220fa5c6ce1
|
||||
zh: 4691374274aa8df9
|
||||
@@ -1,6 +1,16 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-06-30-event-domain-semantics.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-06-30-event-domain-semantics.md
|
||||
2026-06-30-event-domain-semantics.md: 7e0aee220a62777ebe1d8f6a5018aba0f5fa20ee
|
||||
2026-06-30-event-domain-semantics.zh.md: 14568c7a4660c42cecc47f094373d299380fa563
|
||||
/agent-note-event-domain-semantics-session-is-the-fact-log-agent-is-the-live-event-channel:
|
||||
en: e7cdaa7a6029c259
|
||||
zh: ed13f8158ee0eaeb
|
||||
/agent-note-event-domain-semantics-session-is-the-fact-log-agent-is-the-live-event-channel/problem:
|
||||
en: 1222c2b55882b1e5
|
||||
zh: f81f481f5eb9a684
|
||||
/agent-note-event-domain-semantics-session-is-the-fact-log-agent-is-the-live-event-channel/decision:
|
||||
en: ccc0fed9b7388112
|
||||
zh: 3cc527b11affd941
|
||||
/agent-note-event-domain-semantics-session-is-the-fact-log-agent-is-the-live-event-channel/consequences:
|
||||
en: e0c5aa60322e67a1
|
||||
zh: 7495550f0c863eda
|
||||
+36
-5
@@ -1,6 +1,37 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-02-tool-render-intent-union.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-02-tool-render-intent-union.md
|
||||
2026-07-02-tool-render-intent-union.md: 52626d3d9200146df95aee7836d37bbaf7e6a9ec
|
||||
2026-07-02-tool-render-intent-union.zh.md: bc91b89c53c3c43b6c483dc0d4876a00f5a936b7
|
||||
/agent-note-tagged-render-intent-union-for-tool-call-presentation:
|
||||
en: 599dd6f91059580e
|
||||
zh: b6a46767bb4198e6
|
||||
/agent-note-tagged-render-intent-union-for-tool-call-presentation/problem:
|
||||
en: 3a4b92dca651b979
|
||||
zh: 6b10ce7ba3681180
|
||||
/agent-note-tagged-render-intent-union-for-tool-call-presentation/decision:
|
||||
en: aff6d789bde63f17
|
||||
zh: 73782526b46a3ee5
|
||||
/agent-note-tagged-render-intent-union-for-tool-call-presentation/decision/why-a-tagged-union-beats-the-field-bag:
|
||||
en: ed7b15039050e65e
|
||||
zh: a719562b5fcdbd4e
|
||||
/agent-note-tagged-render-intent-union-for-tool-call-presentation/decision/producer-mapping:
|
||||
en: c87f22a29caef002
|
||||
zh: 7bfd28c1df80b8a1
|
||||
/agent-note-tagged-render-intent-union-for-tool-call-presentation/decision/terminal-fallback-ownership:
|
||||
en: 0bb2f60726afc4d9
|
||||
zh: 60040141447b4a2e
|
||||
/agent-note-tagged-render-intent-union-for-tool-call-presentation/decision/purity-preserved:
|
||||
en: 1ba6a480967c524d
|
||||
zh: 90535e843f346bcf
|
||||
/agent-note-tagged-render-intent-union-for-tool-call-presentation/alternatives-considered:
|
||||
en: 2cd4801f3162227b
|
||||
zh: 76afaa23bc2b9eb0
|
||||
/agent-note-tagged-render-intent-union-for-tool-call-presentation/consequences:
|
||||
en: 81d8366d826285c2
|
||||
zh: b437b862794c146e
|
||||
/agent-note-tagged-render-intent-union-for-tool-call-presentation/non-goals:
|
||||
en: e9d60967a9b3f9bd
|
||||
zh: 6dfa9ac30d847879
|
||||
/agent-note-tagged-render-intent-union-for-tool-call-presentation/related:
|
||||
en: fe27f777b3728fa4
|
||||
zh: 4b648dbf731ace00
|
||||
+39
-5
@@ -1,6 +1,40 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-05-prompt-variables-and-tool-guidance-ownership.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-05-prompt-variables-and-tool-guidance-ownership.md
|
||||
2026-07-05-prompt-variables-and-tool-guidance-ownership.md: 8f5542cb09930e62fd1e26960166fbdd6d3f6745
|
||||
2026-07-05-prompt-variables-and-tool-guidance-ownership.zh.md: 348ae36cf6549d412adab1d3cdb5cc03f0badd01
|
||||
/agent-note-prompt-variables-and-tool-guidance-ownership:
|
||||
en: 6f8b4a9d26ab3e50
|
||||
zh: 9741e5718e647f0a
|
||||
/agent-note-prompt-variables-and-tool-guidance-ownership/problem:
|
||||
en: 8ccef8fbd9260dfe
|
||||
zh: 106b2bafe969c676
|
||||
/agent-note-prompt-variables-and-tool-guidance-ownership/decision:
|
||||
en: c551d888282d9c73
|
||||
zh: 889b5ca3cdf25aff
|
||||
/agent-note-prompt-variables-and-tool-guidance-ownership/decision/assemble-context:
|
||||
en: 46e67248692e333a
|
||||
zh: 51c5f2c6152c94d7
|
||||
/agent-note-prompt-variables-and-tool-guidance-ownership/decision/prompt-variables:
|
||||
en: 04b623ed2879fdf1
|
||||
zh: c111be62834fda93
|
||||
/agent-note-prompt-variables-and-tool-guidance-ownership/decision/persona-as-the-order-0-section:
|
||||
en: c2d32c0ac5d28759
|
||||
zh: 59cd252ba6da6e59
|
||||
/agent-note-prompt-variables-and-tool-guidance-ownership/decision/tool-guidance-ownership:
|
||||
en: 308c0d2ef4e41f56
|
||||
zh: d38f84a517da20df
|
||||
/agent-note-prompt-variables-and-tool-guidance-ownership/decision/the-subagent-conversation-history-descriptor:
|
||||
en: 1cb9644f22918749
|
||||
zh: fb9fdee133159ab2
|
||||
/agent-note-prompt-variables-and-tool-guidance-ownership/alternatives-considered:
|
||||
en: 9a114359d2e8988b
|
||||
zh: ce39453408b2af7f
|
||||
/agent-note-prompt-variables-and-tool-guidance-ownership/out-of-scope:
|
||||
en: bbfecc70d0b457fe
|
||||
zh: 7f207a37a86484f4
|
||||
/agent-note-prompt-variables-and-tool-guidance-ownership/shipped-invariants:
|
||||
en: 31ba63101fca5790
|
||||
zh: af4ceefab2033142
|
||||
/agent-note-prompt-variables-and-tool-guidance-ownership/consequences:
|
||||
en: 993f17bf35f6a2e0
|
||||
zh: acb429176f0eebcc
|
||||
+27
-5
@@ -1,6 +1,28 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-05-reconstructable-requests.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-05-reconstructable-requests.md
|
||||
2026-07-05-reconstructable-requests.md: f47d0938b91edf6c9b544223ac44925f02dd8c1f
|
||||
2026-07-05-reconstructable-requests.zh.md: d2499a6264a3e6bebf31944d8eb056265e082c68
|
||||
/agent-note-every-llm-request-is-reconstructable-from-the-session-log:
|
||||
en: 115dd45f40b0d7d8
|
||||
zh: 536b5a0399e7d06a
|
||||
/agent-note-every-llm-request-is-reconstructable-from-the-session-log/problem:
|
||||
en: f8f31da854a5fe2e
|
||||
zh: ef88856c2c7bdfb8
|
||||
/agent-note-every-llm-request-is-reconstructable-from-the-session-log/decision:
|
||||
en: a15c7c13f167e5ac
|
||||
zh: 63bcc2ef60c2f344
|
||||
/agent-note-every-llm-request-is-reconstructable-from-the-session-log/decision/the-principle:
|
||||
en: 6da15cf986d59a91
|
||||
zh: 40282908b54295f9
|
||||
/agent-note-every-llm-request-is-reconstructable-from-the-session-log/decision/the-mechanism:
|
||||
en: 7d86e5058dbab2fb
|
||||
zh: 9a97481325c8eded
|
||||
/agent-note-every-llm-request-is-reconstructable-from-the-session-log/decision/the-minicode-shape-adopted-with-the-event-log-as-the-source:
|
||||
en: e5f2ffaa3d7de0cc
|
||||
zh: 5ba6b36787a0e189
|
||||
/agent-note-every-llm-request-is-reconstructable-from-the-session-log/alternatives-considered:
|
||||
en: 96f19ecf38fae991
|
||||
zh: 9692252135ef3476
|
||||
/agent-note-every-llm-request-is-reconstructable-from-the-session-log/consequences:
|
||||
en: 0d2e97bc421e67cc
|
||||
zh: 0a000a69b8cc4b4e
|
||||
+18
-5
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-05-windows-jsonl-durable-publish.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-05-windows-jsonl-durable-publish.md
|
||||
2026-07-05-windows-jsonl-durable-publish.md: 546cde6086f3c84e22b4d4de144a48bb3425cd4e
|
||||
2026-07-05-windows-jsonl-durable-publish.zh.md: b99032e9d7e72e2028f39c5af91659278fd81343
|
||||
/agent-note-windows-native-durable-jsonl-publication:
|
||||
en: db7fe80708911f2f
|
||||
zh: 42c6639defea2bde
|
||||
/agent-note-windows-native-durable-jsonl-publication/problem:
|
||||
en: dcc3c6238131d302
|
||||
zh: 4d4e8513a4069af3
|
||||
/agent-note-windows-native-durable-jsonl-publication/decision:
|
||||
en: 385565b209f1e739
|
||||
zh: 0eab0997c49a3c33
|
||||
/agent-note-windows-native-durable-jsonl-publication/alternatives-considered:
|
||||
en: 83d5bf5781f89e29
|
||||
zh: 068835993789e09d
|
||||
/agent-note-windows-native-durable-jsonl-publication/consequences:
|
||||
en: 4be0ad03a334c257
|
||||
zh: 95d473ed5b94e270
|
||||
+27
-5
@@ -1,6 +1,28 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-06-timeout-deadline-library.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-06-timeout-deadline-library.md
|
||||
2026-07-06-timeout-deadline-library.md: 6f726938731f18386105ff1180c79fef981c95bf
|
||||
2026-07-06-timeout-deadline-library.zh.md: 48bd7b4b91efd0045c03e3e1e1e9e37656b4dcf6
|
||||
/agent-note-a-shared-timeout-deadline-primitive-with-hard-kill-left-to-each-capability:
|
||||
en: 4a9921fef5e65cc8
|
||||
zh: 672cd27d68310cb1
|
||||
/agent-note-a-shared-timeout-deadline-primitive-with-hard-kill-left-to-each-capability/problem:
|
||||
en: 110ff68b35bd43cb
|
||||
zh: f1cea15fb29a9ae9
|
||||
/agent-note-a-shared-timeout-deadline-primitive-with-hard-kill-left-to-each-capability/decision:
|
||||
en: 18645d82d9e40107
|
||||
zh: 73e510f1ed1106e6
|
||||
/agent-note-a-shared-timeout-deadline-primitive-with-hard-kill-left-to-each-capability/decision/the-library-api:
|
||||
en: c62681afef60a0db
|
||||
zh: 69827b4b3165b3da
|
||||
/agent-note-a-shared-timeout-deadline-primitive-with-hard-kill-left-to-each-capability/decision/the-division-of-labor:
|
||||
en: 263c8e17bbc87ba0
|
||||
zh: d75a74f47713e79f
|
||||
/agent-note-a-shared-timeout-deadline-primitive-with-hard-kill-left-to-each-capability/decision/how-each-capability-consumes-it:
|
||||
en: 333eab4967d753ec
|
||||
zh: dd7537bb82cc717f
|
||||
/agent-note-a-shared-timeout-deadline-primitive-with-hard-kill-left-to-each-capability/consequences:
|
||||
en: 832f4dbd93a47f94
|
||||
zh: 65ada43f9f23a39b
|
||||
/agent-note-a-shared-timeout-deadline-primitive-with-hard-kill-left-to-each-capability/alternatives-considered:
|
||||
en: 7b3445622becbd36
|
||||
zh: bb358acf2ff28e26
|
||||
+27
-5
@@ -1,6 +1,28 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-07-tool-call-timeout-policy.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-07-tool-call-timeout-policy.md
|
||||
2026-07-07-tool-call-timeout-policy.md: 60d82c1d591f0a32350b1a21ed74e148c4c93576
|
||||
2026-07-07-tool-call-timeout-policy.zh.md: 49ca7f397d15c1a351cba4837d4d531e54120ea6
|
||||
/agent-note-tool-call-timeout-policy-as-a-plugin:
|
||||
en: 46fa7d1eac4fe061
|
||||
zh: 7a62f8f7b1c66722
|
||||
/agent-note-tool-call-timeout-policy-as-a-plugin/problem:
|
||||
en: b5fffa80b58fb184
|
||||
zh: aadf28f95924b1ad
|
||||
/agent-note-tool-call-timeout-policy-as-a-plugin/decision:
|
||||
en: 04889f664ab7657d
|
||||
zh: 2af5913f5e9c1927
|
||||
/agent-note-tool-call-timeout-policy-as-a-plugin/decision/the-tools-execute-around-dispatch-extension-point:
|
||||
en: 8c3b46fa8a48a863
|
||||
zh: 662eb09bb7542be8
|
||||
/agent-note-tool-call-timeout-policy-as-a-plugin/decision/the-timeout-policy-plugin:
|
||||
en: 96f5932514a33e41
|
||||
zh: 5951d9451ccef1bf
|
||||
/agent-note-tool-call-timeout-policy-as-a-plugin/decision/existing-tool-adaptation:
|
||||
en: 43add9b1f723ce89
|
||||
zh: f3ee56f97faa2e60
|
||||
/agent-note-tool-call-timeout-policy-as-a-plugin/alternatives-considered:
|
||||
en: dc6da8743b4266fb
|
||||
zh: 5c28667d952b230a
|
||||
/agent-note-tool-call-timeout-policy-as-a-plugin/consequences:
|
||||
en: f7429a5c1fe6b6a1
|
||||
zh: 748401be79f89b05
|
||||
@@ -1,6 +1,46 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-08-agent-scope-contexts.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-08-agent-scope-contexts.md
|
||||
2026-07-08-agent-scope-contexts.md: 45e635b7bc3138d4e90a25a06ff23b3b57a9415e
|
||||
2026-07-08-agent-scope-contexts.zh.md: aac860734e744843c3b9e7d55e5bc7a150763090
|
||||
/agent-note-the-agent-is-a-registration-scope:
|
||||
en: f767894b8308f1a0
|
||||
zh: 4ff0aead6ee4e27b
|
||||
/agent-note-the-agent-is-a-registration-scope/problem:
|
||||
en: 87634b46a5642328
|
||||
zh: 2adce8b041626437
|
||||
/agent-note-the-agent-is-a-registration-scope/decision:
|
||||
en: ac58e62f780b0879
|
||||
zh: 6b077226de04a8fa
|
||||
/agent-note-the-agent-is-a-registration-scope/decision/registration-origin-chooses-visibility-and-cleanup:
|
||||
en: 1ec8e54543272e1b
|
||||
zh: b5b1695a805574a2
|
||||
/agent-note-the-agent-is-a-registration-scope/decision/the-operation-chooses-the-view:
|
||||
en: 2e236d399efdc0b2
|
||||
zh: 00a7ba20f90862c6
|
||||
/agent-note-the-agent-is-a-registration-scope/decision/scoped-events-keep-routing-separate-from-event-data:
|
||||
en: df5f5e4c1de44474
|
||||
zh: d851c02959d02380
|
||||
/agent-note-the-agent-is-a-registration-scope/decision/creation-publishes-last-and-disposal-revokes-last:
|
||||
en: f46920b4945e0e6d
|
||||
zh: 870a157205883144
|
||||
/agent-note-the-agent-is-a-registration-scope/security-and-authority-are-non-goals:
|
||||
en: 5ffc5a8f65ce7dfe
|
||||
zh: 3362f236356a8033
|
||||
/agent-note-the-agent-is-a-registration-scope/alternatives-considered:
|
||||
en: bf43310538280f62
|
||||
zh: e4940ff47c5d47b5
|
||||
/agent-note-the-agent-is-a-registration-scope/alternatives-considered/pass-an-agent-option-to-every-registration:
|
||||
en: 37e7487b1f1eb87a
|
||||
zh: eeddbaf21eee7ebc
|
||||
/agent-note-the-agent-is-a-registration-scope/alternatives-considered/filter-events-while-keeping-registries-global:
|
||||
en: 7eb2628d51ea9ed0
|
||||
zh: e58f05faf0e95712
|
||||
/agent-note-the-agent-is-a-registration-scope/alternatives-considered/create-one-service-graph-per-agent:
|
||||
en: 2fd1c41c3d1bc6ca
|
||||
zh: cffad44a2c69330e
|
||||
/agent-note-the-agent-is-a-registration-scope/alternatives-considered/inherit-parent-registration-scopes:
|
||||
en: 01f989446aab1cf1
|
||||
zh: 8f5c9018b7b84c94
|
||||
/agent-note-the-agent-is-a-registration-scope/consequences:
|
||||
en: 65c8f47d1607b276
|
||||
zh: 950b86b4682f7a0e
|
||||
+39
-5
@@ -1,6 +1,40 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-08-tool-output-spill-files.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-08-tool-output-spill-files.md
|
||||
2026-07-08-tool-output-spill-files.md: fa6697aad63c97b0ef580fe1ca46e50541e3d682
|
||||
2026-07-08-tool-output-spill-files.zh.md: a995eafc7878b342a2164c5116da1f43ada791a5
|
||||
/agent-note-tool-output-spill-policy:
|
||||
en: 06b99197145a4080
|
||||
zh: 698a61dcd2385985
|
||||
/agent-note-tool-output-spill-policy/problem:
|
||||
en: 858cbb874e213697
|
||||
zh: 1693b618886ac42d
|
||||
/agent-note-tool-output-spill-policy/decision:
|
||||
en: 89536b0d2d7b4c92
|
||||
zh: 341240f445885549
|
||||
/agent-note-tool-output-spill-policy/decision/spill-seam:
|
||||
en: 1e92bc9a0548def9
|
||||
zh: c99cf6878981ba71
|
||||
/agent-note-tool-output-spill-policy/decision/spill-policy:
|
||||
en: 3c49c0246188c513
|
||||
zh: 4b6749c30726903d
|
||||
/agent-note-tool-output-spill-policy/showcase-web-fetch:
|
||||
en: d5c334b50f458925
|
||||
zh: 7631307b5d9fbc55
|
||||
/agent-note-tool-output-spill-policy/relationship-to-retention-and-early-spill:
|
||||
en: 7314ba8b0a03c0d9
|
||||
zh: 8429f79ff3a7bd1f
|
||||
/agent-note-tool-output-spill-policy/non-goals:
|
||||
en: f82b5399ecddd8a1
|
||||
zh: 9675b58631bb5c90
|
||||
/agent-note-tool-output-spill-policy/deferred:
|
||||
en: 094f8c71672ea726
|
||||
zh: 252dbe825d6e34ca
|
||||
/agent-note-tool-output-spill-policy/testing:
|
||||
en: c98759345e1aebfa
|
||||
zh: d1faeadb99bd748a
|
||||
/agent-note-tool-output-spill-policy/consequences:
|
||||
en: e023260e52a246d6
|
||||
zh: 2e49237e564a83da
|
||||
/agent-note-tool-output-spill-policy/alternatives-considered:
|
||||
en: d53fb144141de557
|
||||
zh: 1b851eb64c421803
|
||||
@@ -66,36 +66,7 @@ interface SpillRef {
|
||||
|
||||
### Spill policy
|
||||
|
||||
`dsh-spill-policy` is a `tools/post-execute` result transformer with one configuration knob:
|
||||
|
||||
```ts ignore-check
|
||||
interface Config {
|
||||
/** Omitted means no automatic spill policy. Present means apply to oversized plain text tool results. */
|
||||
maxInlineBytes?: number
|
||||
}
|
||||
```
|
||||
|
||||
When `maxInlineBytes` is omitted the plugin registers nothing (a true no-op). When set, it applies a default policy to final plain-text tool results:
|
||||
|
||||
1. Let the tool run normally, delegating via `next()` so a downstream listener settles the result first.
|
||||
2. Flatten the accepted final `ContentBlock[]` only when it is entirely plain text; a result with any non-text block is left untouched.
|
||||
3. If its UTF-8 byte size is at or below `maxInlineBytes`, leave it unchanged.
|
||||
4. If it is larger, call `ctx.spillStore.saveText()` with the full final text.
|
||||
5. Replace the model-facing result with a retained head/tail preview plus the spill reference.
|
||||
|
||||
The preview is an implementation default owned by the policy: a head/tail split of `maxInlineBytes` via the retention library's `TextRetainer`. Future config can expose preview sizing only after a second deployment needs it.
|
||||
|
||||
The replacement text is intentionally generic because the policy only knows the final formatted tool result, not the tool's internal resource:
|
||||
|
||||
```text
|
||||
<retained preview>
|
||||
|
||||
(Omitted N bytes. Full formatted result stored at: /.../session-.../....txt. Use read with offset/limit, or grep this path to search within it.)
|
||||
```
|
||||
|
||||
If `ctx.spillStore.saveText()` fails (permissions, ENOSPC, backend unavailable), or the call has no session owner, or no backend is loaded, the plugin logs the reason and returns the original result unchanged. Spill failure never turns a successful tool call into an `isError` result or hides the inline result.
|
||||
|
||||
The policy skips `read` to avoid a circular `read -> spill file -> read again` loop. Additional opt-out configuration is deferred until a real second tool needs it.
|
||||
`dsh-spill-policy` retains ordered text/image ends under `maxInlineTokens` after post-execute policy accepts the result. `saveText()` stores the complete result with readable image paths; image bytes remain in attachment storage. The [multimodal retention decision](../../implemented/bug-fix/2026-09-21-multimodal-tool-result-retention.md) owns image projection order, atomic image omission, and route pricing. An omitted budget installs no listeners, recovery failures keep the original result, and model-facing `read` results skip retention to avoid a read/spill loop.
|
||||
|
||||
## Showcase: web_fetch
|
||||
|
||||
@@ -129,7 +100,7 @@ With `dsh-spill-policy` configured, a large formatted fetch result is automatica
|
||||
- id: spill-policy
|
||||
name: '@deepseek-ai/dsh-spill-policy'
|
||||
config:
|
||||
maxInlineBytes: 50000
|
||||
maxInlineTokens: 12500
|
||||
```
|
||||
|
||||
This separation is important. `web-fetch-http` still owns resource caps (`maxResponseBytes`, `maxBodyChars`) to protect network, memory, and decoding work. `spill-policy` owns only the model-facing context cap after the result already exists. If the provider already returned `truncated: true`, the spill file contains the full formatted result the tool returned, not the full original webpage; the policy does not claim otherwise.
|
||||
@@ -186,11 +157,11 @@ The local-backend value proposition depends on the existing `read`/`grep` tools
|
||||
|
||||
**Snapshot gap.** No ACP snapshot scenario covers the transcript-visible `web_fetch` spill notice yet. The ACP snapshot harness replays keyless and cannot hit the live web, and a `web_fetch` spill requires a real over-cap HTTP body; a deterministic scenario would need a seeded loopback fetch target the replay tree does not currently wire (the examples do not load `tool-web` at all). The behavior is covered instead by the `dsh-tool-web` integration test against a loopback server. Closing the gap is follow-up work: wire `tool-web` + a seeded fetch target into the ACP example, then record a `web-fetch-spill` scenario.
|
||||
|
||||
The policy can become too large if it starts owning tool-specific semantics. It stays narrow: plain-text final results only. Tool-owned early spill remains future work.
|
||||
The policy can become too large if it starts owning tool-specific semantics. It handles accepted text/image sequences without interpreting tool-specific text. Tool-owned early spill remains future work.
|
||||
|
||||
## Alternatives considered
|
||||
|
||||
**Require each tool to opt in with a retention declaration.** Rejected: the goal is a default behavior similar to Claude Code's generic tool-result persistence. A single `maxInlineBytes` deployment knob is enough to prove the shape.
|
||||
**Require each tool to opt in with a retention declaration.** Rejected: the goal is a default behavior similar to Claude Code's generic tool-result persistence. A single `maxInlineTokens` deployment knob is enough to prove the shape.
|
||||
|
||||
**Make `tool-results` a broad tool-result platform.** Rejected: a broad package name invites retention policy, result replacement, preview wording, search, and early spill into one seam. The shared storage part is smaller: save text and return a locator plus retrieval hint.
|
||||
|
||||
|
||||
@@ -66,36 +66,7 @@ interface SpillRef {
|
||||
|
||||
### spill 策略
|
||||
|
||||
`dsh-spill-policy` 是一个 `tools/post-execute` 结果转换器,只提供一个配置项:
|
||||
|
||||
```ts ignore-check
|
||||
interface Config {
|
||||
/** Omitted means no automatic spill policy. Present means apply to oversized plain text tool results. */
|
||||
maxInlineBytes?: number
|
||||
}
|
||||
```
|
||||
|
||||
省略 `maxInlineBytes` 时,插件不会注册任何内容,是真正的无操作。设置该值后,它会对最终的纯文本工具结果应用默认策略:
|
||||
|
||||
1. 让工具正常运行,通过 `next()` 委托,使下游监听器先结算结果。
|
||||
2. 仅当已接受的最终 `ContentBlock[]` 全部是纯文本时,才将其展平;含任何非文本块的结果保持不变。
|
||||
3. 如果 UTF-8 字节大小不超过 `maxInlineBytes`,保持不变。
|
||||
4. 如果超出上限,使用完整的最终文本调用 `ctx.spillStore.saveText()`。
|
||||
5. 把模型可见结果替换为保留的首尾预览和 spill 引用。
|
||||
|
||||
预览属于策略所有的实现默认值:以 `maxInlineBytes` 为上限,使用保留库的 `TextRetainer` 进行首尾分割。只有第二个部署证明有此需求后,未来配置才会公开预览大小。
|
||||
|
||||
替换文本刻意保持通用,因为策略只知道最终格式化的工具结果,不了解工具的内部资源:
|
||||
|
||||
```text
|
||||
<retained preview>
|
||||
|
||||
(Omitted N bytes. Full formatted result stored at: /.../session-.../....txt. Use read with offset/limit, or grep this path to search within it.)
|
||||
```
|
||||
|
||||
如果 `ctx.spillStore.saveText()` 失败(权限、ENOSPC、后端不可用),或调用没有会话所有者,或未加载后端,插件会记录原因并原样返回结果。spill 失败绝不会把成功的工具调用变为 `isError` 结果,也不会隐藏内联结果。
|
||||
|
||||
策略跳过 `read`,以避免形成 `read -> spill file -> read again` 循环。额外的选择退出配置要等确实出现第二个有此需求的工具后再引入。
|
||||
`dsh-spill-policy` 在执行后策略接受结果之后,按 `maxInlineTokens` 对文字和图片共同计量并保留首尾。完整结果仍通过 `saveText()` 保存,图片本体留在附件存储,结果文件记录可读取路径。图片投影顺序、整图省略和模型计量由[图文结果保留决策](../../implemented/bug-fix/2026-09-21-multimodal-tool-result-retention.zh.md)负责。省略配置时不安装监听器,存储失败时保留原结果;`read` 的模型可见结果跳过自动省略,避免重复读取产生循环。
|
||||
|
||||
## 示例:web_fetch
|
||||
|
||||
@@ -129,7 +100,7 @@ ctx.tools.register(defineTool({
|
||||
- id: spill-policy
|
||||
name: '@deepseek-ai/dsh-spill-policy'
|
||||
config:
|
||||
maxInlineBytes: 50000
|
||||
maxInlineTokens: 12500
|
||||
```
|
||||
|
||||
这项分离很重要。`web-fetch-http` 仍负责资源上限(`maxResponseBytes`、`maxBodyChars`),用来保护网络、内存和解码工作。`spill-policy` 只负责结果已经存在后针对模型上下文的上限。如果提供方已经返回 `truncated: true`,spill 文件包含的是工具返回的完整格式化结果,而不是原始网页全文;策略不会做出其他承诺。
|
||||
@@ -186,11 +157,11 @@ ctx.tools.register(defineTool({
|
||||
|
||||
**快照缺口。** 目前没有 ACP 快照场景覆盖 transcript(文本记录)可见的 `web_fetch` spill 提示。ACP 快照 harness 在无密钥环境中回放,无法访问实时 web,而 `web_fetch` spill 需要一个真实的超上限 HTTP 正文;确定性场景需要一个预置的 loopback fetch 目标,但当前回放树尚未接线(示例根本没有加载 `tool-web`)。该行为改由 `dsh-tool-web` 针对 loopback server 的集成测试覆盖。弥补该缺口属于后续工作:把 `tool-web` 和预置 fetch 目标接入 ACP 示例,然后录制 `web-fetch-spill` 场景。
|
||||
|
||||
如果策略开始负责工具专用语义,就会膨胀得过大。它的范围保持狭窄:只处理纯文本最终结果。由工具负责的提前 spill 仍留作未来工作。
|
||||
如果策略开始负责工具专用语义,就会膨胀得过大。它处理已接受的图文序列,不解释工具专用的文字语义。由工具负责的提前 spill 仍留作未来工作。
|
||||
|
||||
## 考虑过的替代方案
|
||||
|
||||
**要求每个工具通过保留声明选择加入。**不予采纳,因为目标是实现类似 Claude Code 通用工具结果持久化的默认行为。只需一个 `maxInlineBytes` 部署配置项即可验证该形态。
|
||||
**要求每个工具通过保留声明选择加入。**不予采纳,因为目标是实现类似 Claude Code 通用工具结果持久化的默认行为。只需一个 `maxInlineTokens` 部署配置项即可验证该形态。
|
||||
|
||||
**把 `tool-results` 建成宽泛的工具结果平台。** 不予采纳:宽泛的包名会诱使系统把保留策略、结果替换、预览措辞、搜索和提前 spill 合并进一个 seam。可共享的存储部分更小:保存文本,并返回定位符与检索提示。
|
||||
|
||||
|
||||
+30
-5
@@ -1,6 +1,31 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-10-after-call-compaction-pressure-and-overflow-recovery.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.md
|
||||
2026-07-10-after-call-compaction-pressure-and-overflow-recovery.md: 89c8917484c11057ff2e6b55e2311e83f724f7ed
|
||||
2026-07-10-after-call-compaction-pressure-and-overflow-recovery.zh.md: 48f954f2c4720894548ecab387965d3a3d1799b0
|
||||
/agent-note-after-call-compaction-pressure-and-context-overflow-recovery:
|
||||
en: 8bfe0d8b79d9840f
|
||||
zh: 6921dc88e5ef9c83
|
||||
/agent-note-after-call-compaction-pressure-and-context-overflow-recovery/problem:
|
||||
en: 036da3e545debe29
|
||||
zh: 82e031a3120ca36c
|
||||
/agent-note-after-call-compaction-pressure-and-context-overflow-recovery/decision:
|
||||
en: a15c7c13f167e5ac
|
||||
zh: 63bcc2ef60c2f344
|
||||
/agent-note-after-call-compaction-pressure-and-context-overflow-recovery/decision/successful-pressure-runs-at-the-next-pre-step-boundary:
|
||||
en: 5f5a656b38730ec6
|
||||
zh: aece66b85cc610cf
|
||||
/agent-note-after-call-compaction-pressure-and-context-overflow-recovery/decision/request-recovery-is-limited-to-the-final-model-boundary:
|
||||
en: fb7da851bf6a020e
|
||||
zh: b40dc932d6c3101c
|
||||
/agent-note-after-call-compaction-pressure-and-context-overflow-recovery/decision/compactionengine-exposes-intent-not-token-accounting:
|
||||
en: be9505b3d73c7f6b
|
||||
zh: ed753f1afec2787a
|
||||
/agent-note-after-call-compaction-pressure-and-context-overflow-recovery/testing:
|
||||
en: b0e1704bd3724301
|
||||
zh: 2279353ff615f183
|
||||
/agent-note-after-call-compaction-pressure-and-context-overflow-recovery/alternatives-considered:
|
||||
en: 3cb5363732ef5758
|
||||
zh: 07746411cc80878f
|
||||
/agent-note-after-call-compaction-pressure-and-context-overflow-recovery/consequences:
|
||||
en: dfe515fb04127eb5
|
||||
zh: 1924b2e1e9997910
|
||||
+42
-5
@@ -1,6 +1,43 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-10-single-file-executable-sdk-runtime-distribution.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.md
|
||||
2026-07-10-single-file-executable-sdk-runtime-distribution.md: 7260d11c84f8fb07cf6c4691357f92e0d00fd8f3
|
||||
2026-07-10-single-file-executable-sdk-runtime-distribution.zh.md: 653fb3d9b782d9010f693e4af8ad94475abb9d94
|
||||
/agent-note-single-file-executable-sdk-runtime-distribution-single-exe:
|
||||
en: 00b5d91d3e44a9f8
|
||||
zh: eabd3c4b338249b3
|
||||
/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/problem:
|
||||
en: 112178b76e5209f6
|
||||
zh: 68726254ae530566
|
||||
/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/decision:
|
||||
en: a15c7c13f167e5ac
|
||||
zh: 63bcc2ef60c2f344
|
||||
/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/decision/packaging-route-yao-pkg-pkg-s-sea-mode:
|
||||
en: f1c2b60e9474111d
|
||||
zh: 5de398b5e8554429
|
||||
/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/decision/the-serving-interface-is-a-plugin-inside-the-dsh-application:
|
||||
en: 5fdde26e9e8c6108
|
||||
zh: 629559d733c1f0c5
|
||||
/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/decision/plugin-resolution-the-vfs-holds-a-real-package-tree-the-closure-manifest-is-the-deploy-root:
|
||||
en: c35ea4b858448b49
|
||||
zh: 1f8ff0a9f82ca881
|
||||
/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/decision/build-pipeline-and-artifacts:
|
||||
en: 53ba44431d2ce411
|
||||
zh: 4159475549273422
|
||||
/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/decision/python-sdk-distribution-two-carriers-exe-for-production-node-for-development:
|
||||
en: 9bd60549d4a52ec0
|
||||
zh: e2343b7210212ee0
|
||||
/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/decision/naming-lineage:
|
||||
en: 31a5aecb8bf828bb
|
||||
zh: 2dffb6fd2e0f8194
|
||||
/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/packaged-workflow-and-code-execution:
|
||||
en: 0426f598f3f44e64
|
||||
zh: fc66728e17f3bcfb
|
||||
/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/testing:
|
||||
en: b3c9820f4dc7c6c8
|
||||
zh: 3b5768ef1770bfcb
|
||||
/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/alternatives-considered:
|
||||
en: 50d965ca81a401ba
|
||||
zh: 0c6296245b97b9ac
|
||||
/agent-note-single-file-executable-sdk-runtime-distribution-single-exe/consequences:
|
||||
en: 601a72b3a7a91fe4
|
||||
zh: 5baaa866e789923e
|
||||
+156
-5
@@ -1,6 +1,157 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-12-agent-scope-runtime-design.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-12-agent-scope-runtime-design.md
|
||||
2026-07-12-agent-scope-runtime-design.md: b9b2c837f560c2b8b98da37e3656caf298b705e2
|
||||
2026-07-12-agent-scope-runtime-design.zh.md: 4b94d1b8449bd619c47f6bee0712ec8ed0b39593
|
||||
/agent-note-agent-scope-runtime-design-and-correctness:
|
||||
en: b63ecbd21fc1f427
|
||||
zh: 4990d96d76888802
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/problem:
|
||||
en: ae7b688bd991a6df
|
||||
zh: 73b6b28755852054
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/decision:
|
||||
en: cfd6abca8404c7d4
|
||||
zh: a9372aae85e49f55
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/cordis-model-context-fiber-effect-receiver-and-waterfall:
|
||||
en: 4d4bdb629a57139d
|
||||
zh: 7b4d21d9eb42d94b
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/cordis-model-context-fiber-effect-receiver-and-waterfall/a-context-is-an-ownership-path-through-one-service-graph:
|
||||
en: 201a1882518455e2
|
||||
zh: 830e25eab7ed37db
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/cordis-model-context-fiber-effect-receiver-and-waterfall/fibers-and-effects-make-cleanup-structural:
|
||||
en: d0ef6e1b5d453350
|
||||
zh: 4a774ac9daf20849
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/cordis-model-context-fiber-effect-receiver-and-waterfall/receivers-route-listeners-waterfalls-compose-decisions:
|
||||
en: 594e198a8b566049
|
||||
zh: 50378e7a2a533dff
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/scope-routing-one-opaque-key-selects-one-layer:
|
||||
en: fa59d22549e9e44a
|
||||
zh: 80904729042e87b3
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/scope-routing-one-opaque-key-selects-one-layer/scope-identity-uses-object-identity:
|
||||
en: 3a05a7bfb2197f58
|
||||
zh: fbb599031788b70b
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/scope-routing-one-opaque-key-selects-one-layer/registry-reads-overlay-one-exact-layer:
|
||||
en: 28636ae6d55935d7
|
||||
zh: 33a989f049de2f3e
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/scope-routing-one-opaque-key-selects-one-layer/fused-dispatch-helpers-prevent-subject-drift:
|
||||
en: 638e3711206e3c41
|
||||
zh: 61d370123d30c1ed
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/agent-creation-one-transaction-owns-the-complete-operation:
|
||||
en: ef58215c8554180b
|
||||
zh: 44571074148d2467
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/agent-creation-one-transaction-owns-the-complete-operation/registry-entries-are-the-only-live-identity-records:
|
||||
en: 092b49671e83df98
|
||||
zh: 330ea6e45c4deb99
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/agent-creation-one-transaction-owns-the-complete-operation/the-transaction-owns-preparation-before-awaiting-it:
|
||||
en: 3940920908ec6066
|
||||
zh: 888e36ca43611d30
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/agent-creation-one-transaction-owns-the-complete-operation/setup-is-trusted-composition-inside-a-private-world:
|
||||
en: 40a73b8eede856ee
|
||||
zh: 7dab8f2548cb92ea
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/agent-creation-one-transaction-owns-the-complete-operation/publication-has-one-ordered-commit-path:
|
||||
en: 227eff7a5adacd0e
|
||||
zh: b9ee423c2dd4212f
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/agent-creation-one-transaction-owns-the-complete-operation/teardown-preserves-work-before-revoking-registrations:
|
||||
en: 1cbe77cff192815d
|
||||
zh: 7f517936a8aa469e
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/session-append-materialize-validate-commit-notify:
|
||||
en: cc37e93081fea4cb
|
||||
zh: daf2234f84e4c9bf
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/session-append-materialize-validate-commit-notify/durable-data-is-materialized-once:
|
||||
en: d0a57b0ac227d84c
|
||||
zh: e9ae6ced0e65fe49
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/session-append-materialize-validate-commit-notify/pre-commit-listeners-can-veto-post-commit-observers-cannot:
|
||||
en: 15255d3d0b62fac0
|
||||
zh: c1995d5aa3c78f0a
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/trust-boundaries-copy-only-when-ownership-actually-changes:
|
||||
en: 22b381902fe903f3
|
||||
zh: 8a2efe9a8b458bba
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/tools-and-prompts-one-view-authoritative-assembly-committed-outcomes:
|
||||
en: 456ac0359d3c02f6
|
||||
zh: 9099e15d22139751
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/tools-and-prompts-one-view-authoritative-assembly-committed-outcomes/one-resolver-defines-the-tool-view:
|
||||
en: 120e1c79f0b99b1a
|
||||
zh: 1c21a5b1d6b08235
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/tools-and-prompts-one-view-authoritative-assembly-committed-outcomes/tool-execution-owns-identity-and-boundary-materialization:
|
||||
en: 41f1f2ad73d83d73
|
||||
zh: e6bff63958ede05e
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/tools-and-prompts-one-view-authoritative-assembly-committed-outcomes/the-assembly-waterfall-owns-the-final-model-visible-composition:
|
||||
en: 5c5880ccea139058
|
||||
zh: 3e5b7d10cb4c6ff8
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/tools-and-prompts-one-view-authoritative-assembly-committed-outcomes/structured-output-commits-only-authoritative-outcomes:
|
||||
en: a9a711cf31559765
|
||||
zh: e9083b000fc89128
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/tools-and-prompts-one-view-authoritative-assembly-committed-outcomes/three-execution-boundaries-are-deliberately-one-way:
|
||||
en: a109f3fadf338061
|
||||
zh: 12eb46fe775fa46a
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/tools-and-prompts-one-view-authoritative-assembly-committed-outcomes/skill-and-approval-services-trust-typed-callers:
|
||||
en: 9572833d47f779e6
|
||||
zh: 7ff491d309060030
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/subagents-publication-is-the-start-promise:
|
||||
en: b9216021f8f50bcc
|
||||
zh: fda52f9434cc8191
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/subagents-publication-is-the-start-promise/the-service-contract-has-one-cancellation-channel:
|
||||
en: 84a4be83b78c045b
|
||||
zh: 043e14cf628413cd
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/subagents-publication-is-the-start-promise/in-process-providers-reuse-the-core-transaction:
|
||||
en: b5e0b3dcf0dff750
|
||||
zh: 63905010383781b9
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/subagents-publication-is-the-start-promise/acp-providers-own-the-process-until-readiness-or-cleanup:
|
||||
en: aa0c00cee368c7e6
|
||||
zh: 767539b0f4d56f55
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/workflows-and-acp-processes-retain-only-independent-async-facts:
|
||||
en: effbb0acf7f66bed
|
||||
zh: e0cc9ad6ac0777de
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/workflows-and-acp-processes-retain-only-independent-async-facts/workflow-children-are-pending-starts-or-published-records:
|
||||
en: 9f05eed800f3413c
|
||||
zh: 8230a28a0f94bffa
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/workflows-and-acp-processes-retain-only-independent-async-facts/terminal-result-and-physical-cleanup-remain-separate:
|
||||
en: 5ad141c6df9f4fc3
|
||||
zh: 63effa4f14f3c530
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/workflows-and-acp-processes-retain-only-independent-async-facts/acp-prompt-settlement-does-not-depend-on-update-delivery:
|
||||
en: d39f73f50f0370bd
|
||||
zh: 3889c1db46de560e
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/correctness-enforcement:
|
||||
en: 840564e766d2f05c
|
||||
zh: 059243afea7eb9c0
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/correctness-enforcement/types-make-the-ordinary-path-hard-to-misuse:
|
||||
en: 9183eb29dddfd97f
|
||||
zh: e6ce13295e6c3e65
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/correctness-enforcement/runtime-invariants-cover-cross-service-facts:
|
||||
en: fabafbebc0ab4f95
|
||||
zh: 06d94a98ed5aa40c
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/correctness-enforcement/generated-artifacts-keep-public-contracts-aligned:
|
||||
en: d0ddc5f38289225d
|
||||
zh: 781d910228d5e334
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/alternatives-considered:
|
||||
en: 5eef7873a795c8f0
|
||||
zh: 3e8ba109a6e29ba5
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/alternatives-considered/use-a-transparent-proxy-as-the-scope-carrier:
|
||||
en: 199c7345a237e7e9
|
||||
zh: b262d5ad0c7cb562
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/alternatives-considered/reserve-agent-and-session-ids-before-setup:
|
||||
en: 3a8cb6969139dd84
|
||||
zh: 2913bb68433c9ec7
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/alternatives-considered/snapshot-every-typed-same-process-argument:
|
||||
en: 3e1f19f909f8d138
|
||||
zh: 0727777e34964afe
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/alternatives-considered/give-readiness-cancellation-and-disposal-separate-controllers:
|
||||
en: f2c6ecbd139bbdb0
|
||||
zh: 0ff5b1e192dcb376
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/alternatives-considered/keep-synchronous-subagent-start-plus-run-started:
|
||||
en: 7f5669933cb35c9c
|
||||
zh: c55e35d4c175af36
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/alternatives-considered/restore-selected-prompt-or-tool-contributions-after-assembly:
|
||||
en: a2b2e48d9ccda310
|
||||
zh: 3a4e925fde9d05b0
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/alternatives-considered/remove-worker-process-lifecycle-guards-with-same-process-hardening:
|
||||
en: 662e0904d90a3a94
|
||||
zh: 84c5e49f7cc59b32
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/consequences:
|
||||
en: 0d781b2dc4c41ddb
|
||||
zh: 844652a4aaac37aa
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/consequences/what-the-design-guarantees:
|
||||
en: eb2001592d7bd7b1
|
||||
zh: e534dbb6daa9af32
|
||||
/agent-note-agent-scope-runtime-design-and-correctness/consequences/costs-and-limits:
|
||||
en: e9383713d56b9e10
|
||||
zh: d3ab00aea8ecf4e0
|
||||
+36
-5
@@ -1,6 +1,37 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-14-provider-routed-llm-adapters.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-14-provider-routed-llm-adapters.md
|
||||
2026-07-14-provider-routed-llm-adapters.md: 1001b10e18837399b41578658ffe62065e294ba8
|
||||
2026-07-14-provider-routed-llm-adapters.zh.md: c5bff0ef407c8a2c22e8cad7e7d32c58c8b0e2da
|
||||
/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend:
|
||||
en: e57698907c40f783
|
||||
zh: 47004d8f68af1d7d
|
||||
/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/problem:
|
||||
en: 2e51f5fa703b0677
|
||||
zh: 385937219b88c447
|
||||
/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/decision:
|
||||
en: a15c7c13f167e5ac
|
||||
zh: 63bcc2ef60c2f344
|
||||
/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/decision/provider-is-the-adapter-registration-key:
|
||||
en: 4921a060c657b790
|
||||
zh: 2f9632469c6f0b60
|
||||
/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/decision/explicit-pi-ai-provider-profiles:
|
||||
en: 5461685553dac663
|
||||
zh: e5c7e0ad7ac84e29
|
||||
/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/decision/recorded-assistant-route-and-replay-state:
|
||||
en: 8439e90c9f6d7642
|
||||
zh: daeda3ce5146c9f5
|
||||
/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/decision/propagate-the-target-through-every-request-producer:
|
||||
en: ba1908bc1517ed23
|
||||
zh: 1c9353a422cf74e1
|
||||
/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/alternatives-considered:
|
||||
en: ad0d610ea92aa9b8
|
||||
zh: fe09d62762e73f01
|
||||
/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/consequences:
|
||||
en: a0c98bced8a5e6fb
|
||||
zh: 23caf082a08ba507
|
||||
/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/testing:
|
||||
en: 5a36121f12701d08
|
||||
zh: 90f0f8ed44f7234f
|
||||
/agent-note-provider-routed-llm-adapters-and-a-generic-pi-ai-backend/risks:
|
||||
en: 11db2a349f9f26c2
|
||||
zh: 550d6017d8639854
|
||||
@@ -1,6 +1,22 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-15-agent-initiator-scope.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-15-agent-initiator-scope.md
|
||||
2026-07-15-agent-initiator-scope.md: ab11da116a463cd706418e797eb58f1bc4ab9b1c
|
||||
2026-07-15-agent-initiator-scope.zh.md: 343acba5f99379b6d2c3af41368e8fbe90b20611
|
||||
/agent-note-initiating-agent-scope-over-asynclocalstorage:
|
||||
en: b0a59e3a34c41826
|
||||
zh: 7131428a14901d14
|
||||
/agent-note-initiating-agent-scope-over-asynclocalstorage/problem:
|
||||
en: a26991200892c735
|
||||
zh: 04a7dfaca64e3f0c
|
||||
/agent-note-initiating-agent-scope-over-asynclocalstorage/decision:
|
||||
en: 43a4f0c503b30d95
|
||||
zh: a6a780584f94ed73
|
||||
/agent-note-initiating-agent-scope-over-asynclocalstorage/verification:
|
||||
en: 312f5c4b843d515e
|
||||
zh: a8993e3b84844fab
|
||||
/agent-note-initiating-agent-scope-over-asynclocalstorage/alternatives-considered:
|
||||
en: fd2ae1369fb3fbc6
|
||||
zh: e2a3d7f9331fc8ac
|
||||
/agent-note-initiating-agent-scope-over-asynclocalstorage/consequences:
|
||||
en: 625c6afc49489e29
|
||||
zh: ed7e5c5e56c781fb
|
||||
+21
-5
@@ -1,6 +1,22 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-16-explicit-turn-cancellation.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-16-explicit-turn-cancellation.md
|
||||
2026-07-16-explicit-turn-cancellation.md: d59accf2dc3f894ffab226e5ddc9d2e746f4d93e
|
||||
2026-07-16-explicit-turn-cancellation.zh.md: 8fb0728eb2bbe8fa01dbefebe7e02aa8c836617a
|
||||
/agent-note-explicit-turn-cancellation-capability:
|
||||
en: 729ed6291e9d4d2c
|
||||
zh: 32ae526ef41199da
|
||||
/agent-note-explicit-turn-cancellation-capability/problem:
|
||||
en: 0a7826345be2a509
|
||||
zh: 430fccb5c4d6a5e2
|
||||
/agent-note-explicit-turn-cancellation-capability/decision:
|
||||
en: 2c15edb35f38e7e5
|
||||
zh: fa5145d26e3bff20
|
||||
/agent-note-explicit-turn-cancellation-capability/verification:
|
||||
en: a7ab1d06542be1c0
|
||||
zh: 1687979b7f2460fa
|
||||
/agent-note-explicit-turn-cancellation-capability/alternatives-considered:
|
||||
en: bf69bbf7eb280306
|
||||
zh: a434a0ecb5008b2b
|
||||
/agent-note-explicit-turn-cancellation-capability/consequences:
|
||||
en: 1066aff1aec4ed01
|
||||
zh: 31d6a60496e2e730
|
||||
+33
-5
@@ -1,6 +1,34 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-19-cooperative-tool-cancellation.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-19-cooperative-tool-cancellation.md
|
||||
2026-07-19-cooperative-tool-cancellation.md: 5ca2b44b24a4af189df27c6f724021a7bf290e2b
|
||||
2026-07-19-cooperative-tool-cancellation.zh.md: d6d49fb44c5d5629729a8b5b4bad07ea9b2f7ee9
|
||||
/agent-note-cooperative-tool-cancellation-at-the-registry-boundary:
|
||||
en: 84c827aa3baa331a
|
||||
zh: 10cad03e58b10e31
|
||||
/agent-note-cooperative-tool-cancellation-at-the-registry-boundary/problem:
|
||||
en: e386b22491b468c1
|
||||
zh: 82015f5145b679cd
|
||||
/agent-note-cooperative-tool-cancellation-at-the-registry-boundary/decision:
|
||||
en: ca66d3b6af50be10
|
||||
zh: f054b10d0c965e82
|
||||
/agent-note-cooperative-tool-cancellation-at-the-registry-boundary/decision/mutability-follows-the-pipeline-stage:
|
||||
en: 0e1399cad4151f87
|
||||
zh: 960fa0ccbe0f8fea
|
||||
/agent-note-cooperative-tool-cancellation-at-the-registry-boundary/decision/cancellation-codes-record-whether-dispatch-occurred:
|
||||
en: c787fba8731ac147
|
||||
zh: 21b5968ae6f8cd59
|
||||
/agent-note-cooperative-tool-cancellation-at-the-registry-boundary/decision/pre-aborted-entry-short-circuits-after-materialization:
|
||||
en: 53362db6a0c71698
|
||||
zh: 311de45ca26d3fdc
|
||||
/agent-note-cooperative-tool-cancellation-at-the-registry-boundary/decision/started-work-still-reaches-quiescence:
|
||||
en: 26e4b71366bebd1b
|
||||
zh: 10598e12b28c586e
|
||||
/agent-note-cooperative-tool-cancellation-at-the-registry-boundary/verification:
|
||||
en: fbd101d4576afa92
|
||||
zh: 35f5d3c2f6cad6a8
|
||||
/agent-note-cooperative-tool-cancellation-at-the-registry-boundary/alternatives-considered:
|
||||
en: 1f205f1a78d4fd5b
|
||||
zh: 6c17e35da2909302
|
||||
/agent-note-cooperative-tool-cancellation-at-the-registry-boundary/consequences:
|
||||
en: 24a9ad2c4c7c86b5
|
||||
zh: debdd29d272e07ea
|
||||
+39
-5
@@ -1,6 +1,40 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-19-gui-web-client-architecture.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-19-gui-web-client-architecture.md
|
||||
2026-07-19-gui-web-client-architecture.md: 4d62d7ddbeddd2d5c02e42194b035ee08b5cf041
|
||||
2026-07-19-gui-web-client-architecture.zh.md: aeb6c89e677d7b65daef03d5d31372f484ae3117
|
||||
/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer:
|
||||
en: e940be9ef95509ff
|
||||
zh: c06cea53bb49c718
|
||||
/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/problem:
|
||||
en: c5a3dda6ccd57c9e
|
||||
zh: 122307b113bb1c09
|
||||
/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/decision:
|
||||
en: 29742775aee9fbc3
|
||||
zh: 54a2df8816e2ea2e
|
||||
/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/the-client-cordis-tree-and-the-loading-chain:
|
||||
en: 23b0b6c3f29e4f5e
|
||||
zh: 53bf897b502c645b
|
||||
/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/the-slot-system-how-the-page-composes:
|
||||
en: 1661f3dd74dc9df6
|
||||
zh: 3152467c7dd8e6ef
|
||||
/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/services-and-scope-addressing:
|
||||
en: 9da9311f677c5da6
|
||||
zh: 9cb16a92cee87055
|
||||
/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/the-data-object-layer-packages-api-session-controller-src-client:
|
||||
en: 909682e20c0d23a1
|
||||
zh: ed1defbcf7745e8e
|
||||
/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/the-react-face-packages-client-ui-renderer:
|
||||
en: 0971d6196b5358fd
|
||||
zh: 26175d648feccfd9
|
||||
/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/directory-shape:
|
||||
en: 74c45680c8aab51c
|
||||
zh: fd431ae5d3656038
|
||||
/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/how-to-develop:
|
||||
en: cbc6abcd9f291868
|
||||
zh: 0078f15f2d08a02e
|
||||
/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/consequences:
|
||||
en: 56a9086da5783306
|
||||
zh: 8147576101d22aa0
|
||||
/agent-note-web-client-architecture-the-client-cordis-plugin-tree-the-slot-system-and-the-react-free-object-layer/alternatives-considered:
|
||||
en: 8bedf2e688b14322
|
||||
zh: 7cda12f7474832ee
|
||||
+27
-5
@@ -1,6 +1,28 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-19-package-invariant-runtime-contracts.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.md
|
||||
2026-07-19-package-invariant-runtime-contracts.md: a1b635cc40844f1846c04e203dbb842d1c7328ed
|
||||
2026-07-19-package-invariant-runtime-contracts.zh.md: d315c440f1c100911386f57d6f82d5f16be631ca
|
||||
/agent-note-meaningful-package-invariant-contracts:
|
||||
en: e5db3b3373f72761
|
||||
zh: 312b83d320d9aaab
|
||||
/agent-note-meaningful-package-invariant-contracts/problem:
|
||||
en: 220a4ceb3cd9b9c9
|
||||
zh: 9eac93e1762b2914
|
||||
/agent-note-meaningful-package-invariant-contracts/decision:
|
||||
en: a15c7c13f167e5ac
|
||||
zh: 63bcc2ef60c2f344
|
||||
/agent-note-meaningful-package-invariant-contracts/decision/published-assertions-must-be-meaningful:
|
||||
en: 11a1c080592def10
|
||||
zh: d1189de665f9e327
|
||||
/agent-note-meaningful-package-invariant-contracts/decision/representative-implemented-checks:
|
||||
en: 2f7ae4ed588d6de8
|
||||
zh: ed7ea9ccc6c54e87
|
||||
/agent-note-meaningful-package-invariant-contracts/decision/repository-gate-and-tests:
|
||||
en: 37e646754f13dd65
|
||||
zh: 355ebf3ce1403117
|
||||
/agent-note-meaningful-package-invariant-contracts/alternatives-considered:
|
||||
en: 74c6a5a0cfadbf88
|
||||
zh: e41356bb1a8c1fdf
|
||||
/agent-note-meaningful-package-invariant-contracts/consequences:
|
||||
en: 1f8d53063fb5903e
|
||||
zh: 5edd23739749b065
|
||||
+30
-5
@@ -1,6 +1,31 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-19-zstandard-jsonl-session-logs.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-19-zstandard-jsonl-session-logs.md
|
||||
2026-07-19-zstandard-jsonl-session-logs.md: 96b76febee1c8853f70d7e4897894ea26390f524
|
||||
2026-07-19-zstandard-jsonl-session-logs.zh.md: 4cf184ce107b9de6dbbf3f0e571d4009d50ca636
|
||||
/agent-note-zstandard-jsonl-session-logs:
|
||||
en: b46a6b48493de93e
|
||||
zh: 0e394abf1d11fd43
|
||||
/agent-note-zstandard-jsonl-session-logs/problem:
|
||||
en: da8b3d94d10b5bc4
|
||||
zh: da9c6d98a300b7bb
|
||||
/agent-note-zstandard-jsonl-session-logs/decision:
|
||||
en: a15c7c13f167e5ac
|
||||
zh: 63bcc2ef60c2f344
|
||||
/agent-note-zstandard-jsonl-session-logs/decision/configuration-and-suffix-ownership:
|
||||
en: 1f29970aecc71980
|
||||
zh: 94414765645bace0
|
||||
/agent-note-zstandard-jsonl-session-logs/decision/frame-and-write-path:
|
||||
en: da213ed32dfa6000
|
||||
zh: a0f3cd11684dbdc9
|
||||
/agent-note-zstandard-jsonl-session-logs/decision/read-listing-and-crash-recovery:
|
||||
en: 63d4fe7d9c2a0a8a
|
||||
zh: 2c4ef3e6aad73195
|
||||
/agent-note-zstandard-jsonl-session-logs/decision/consumers-and-verification:
|
||||
en: 6d9d16d610b80e55
|
||||
zh: efa083ffaa7301e0
|
||||
/agent-note-zstandard-jsonl-session-logs/alternatives-considered:
|
||||
en: c5f447029fb644f7
|
||||
zh: 5b84162e87bc6c86
|
||||
/agent-note-zstandard-jsonl-session-logs/consequences:
|
||||
en: e721552f16340e4c
|
||||
zh: d5be8c3ffd1c7cc2
|
||||
+18
-5
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-20-canonical-tool-output-contract.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-20-canonical-tool-output-contract.md
|
||||
2026-07-20-canonical-tool-output-contract.md: 4dbcac3da8381e69809b15a653cdb4987af4e0e7
|
||||
2026-07-20-canonical-tool-output-contract.zh.md: c2f4ebdfc7266495570766c69b3aa264f91172cc
|
||||
/agent-note-canonical-tool-output-contract:
|
||||
en: 01677f7875da9579
|
||||
zh: 41bae59177ba5125
|
||||
/agent-note-canonical-tool-output-contract/problem:
|
||||
en: d0bc9840998f0530
|
||||
zh: 2601671ec694a78d
|
||||
/agent-note-canonical-tool-output-contract/decision:
|
||||
en: db088b8225a4bf3d
|
||||
zh: bfb0caa015b2b7df
|
||||
/agent-note-canonical-tool-output-contract/alternatives-considered:
|
||||
en: d82a0ac0461ab120
|
||||
zh: bedea17fb4fb4f51
|
||||
/agent-note-canonical-tool-output-contract/consequences:
|
||||
en: 32724ff8f6b3b03f
|
||||
zh: bc7512ff05d00157
|
||||
+33
-5
@@ -1,6 +1,34 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-20-routed-model-context-and-compaction-policy.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-20-routed-model-context-and-compaction-policy.md
|
||||
2026-07-20-routed-model-context-and-compaction-policy.md: d276354cb21f45eaec1c4e3202c7be1770745efb
|
||||
2026-07-20-routed-model-context-and-compaction-policy.zh.md: b6e2a0b914f78e19675d80b86d8d962e8ba8c80f
|
||||
/agent-note-routed-model-context-and-compaction-policy:
|
||||
en: eca190695d4857f5
|
||||
zh: f9d6411b8a8612ae
|
||||
/agent-note-routed-model-context-and-compaction-policy/problem:
|
||||
en: f7d1f343e487d725
|
||||
zh: c7f736180e44d586
|
||||
/agent-note-routed-model-context-and-compaction-policy/decision:
|
||||
en: a15c7c13f167e5ac
|
||||
zh: 63bcc2ef60c2f344
|
||||
/agent-note-routed-model-context-and-compaction-policy/decision/adapters-own-exact-route-capacity:
|
||||
en: 7bcf0ae2c74a0eb7
|
||||
zh: bc0e04a25492d5ba
|
||||
/agent-note-routed-model-context-and-compaction-policy/decision/token-measurement-remains-model-agnostic:
|
||||
en: 51d1b39d06407320
|
||||
zh: 85c88f6b5d8508d6
|
||||
/agent-note-routed-model-context-and-compaction-policy/decision/compact-basic-resolves-a-target-spec:
|
||||
en: d8827f9fa70aa65f
|
||||
zh: a9d29e05dcb0cfdb
|
||||
/agent-note-routed-model-context-and-compaction-policy/decision/target-specific-pressure-failures-preserve-optional-composition:
|
||||
en: 1bd81ae0a1409e24
|
||||
zh: 635c2937d5a94df7
|
||||
/agent-note-routed-model-context-and-compaction-policy/testing:
|
||||
en: 1ac13596df50571f
|
||||
zh: 8605a6f0de049dfc
|
||||
/agent-note-routed-model-context-and-compaction-policy/alternatives-considered:
|
||||
en: 0ca0a4b1318188ec
|
||||
zh: de98cd4494a6c0d0
|
||||
/agent-note-routed-model-context-and-compaction-policy/consequences:
|
||||
en: d00f83e85ba5e431
|
||||
zh: 32665480f0cdc4ea
|
||||
+18
-5
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-20-unified-json-value-schema-dsl.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-20-unified-json-value-schema-dsl.md
|
||||
2026-07-20-unified-json-value-schema-dsl.md: 5de3523eab15a91ea32dc09e2e239146fadea6f1
|
||||
2026-07-20-unified-json-value-schema-dsl.zh.md: 0dc38dc289a32269c0f9e545ae53a8098ba02189
|
||||
/agent-note-unified-json-value-schema-dsl:
|
||||
en: 8ba380205c472f4e
|
||||
zh: de92e20dc90e8037
|
||||
/agent-note-unified-json-value-schema-dsl/problem:
|
||||
en: 5c7e79e37c007896
|
||||
zh: 759f5803141b0960
|
||||
/agent-note-unified-json-value-schema-dsl/decision:
|
||||
en: 8f08bbafc8939a46
|
||||
zh: 2ed8255c1e2b812b
|
||||
/agent-note-unified-json-value-schema-dsl/alternatives-considered:
|
||||
en: 1d32d6195d6fca08
|
||||
zh: ea3a30126dca95f7
|
||||
/agent-note-unified-json-value-schema-dsl/consequences:
|
||||
en: 14d0a6a337503e80
|
||||
zh: c7ffec8760a710af
|
||||
+45
-5
@@ -1,6 +1,46 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-22-slot-type-chain-implementation.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-22-slot-type-chain-implementation.md
|
||||
2026-07-22-slot-type-chain-implementation.md: 98585a42f71844594da4ada19d7438a7d8321702
|
||||
2026-07-22-slot-type-chain-implementation.zh.md: d1093537ccbc5ee5ff2dc18c234233ffca39879d
|
||||
/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat:
|
||||
en: 43ed5b2dfd8043fc
|
||||
zh: 04b6fdd0435a265a
|
||||
/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/problem:
|
||||
en: 4f8d6891a8ba7061
|
||||
zh: 5a619e562e00458d
|
||||
/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision:
|
||||
en: a81cddbebc1a97a3
|
||||
zh: aa57738c9f08c07e
|
||||
/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision/root-is-the-only-a-priori-slot:
|
||||
en: 43b856b4a8cf371f
|
||||
zh: cde298ab8b8a3815
|
||||
/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision/register-is-the-single-api-children-declaration-authorization-runtime-spec:
|
||||
en: ce28268021a38b89
|
||||
zh: 7802540e4ef04752
|
||||
/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision/component-props-four-shares-each-from-its-own-source-of-truth:
|
||||
en: f3fca569fa0c5168
|
||||
zh: 647a82662f6a887d
|
||||
/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision/the-chain-kind-entries-self-nominate-first-match-renders:
|
||||
en: 56278be7f3688805
|
||||
zh: 16602ffbf4baef85
|
||||
/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision/the-store-seat-framework-engine-registrant-schema:
|
||||
en: 2645acc9d29c20ec
|
||||
zh: a8a2fd293ef5da04
|
||||
/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision/inject-the-registrant-s-business-face-on-its-own-ctx:
|
||||
en: 66b311fad441400a
|
||||
zh: 34f031e7f04d29e6
|
||||
/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision/data-boundary-discipline:
|
||||
en: 07b919360c8f65be
|
||||
zh: 4c8a9915a2ed20af
|
||||
/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision/tree-context-and-the-renderer-contract:
|
||||
en: d77ebd3f6b166194
|
||||
zh: 57ba9fe864908d46
|
||||
/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/decision/type-chain-implementation-rulings:
|
||||
en: 752bc30428dad374
|
||||
zh: 3d729646468ecfde
|
||||
/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/consequences:
|
||||
en: 07228332f3d3c227
|
||||
zh: 32525e1972acf156
|
||||
/agent-note-the-slot-system-standard-single-register-four-props-shares-and-the-framework-store-seat/alternatives-considered:
|
||||
en: 2bd28715f741ac04
|
||||
zh: 8d6a0cb78a006533
|
||||
+39
-5
@@ -1,6 +1,40 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-23-client-plugin-loading-model.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-23-client-plugin-loading-model.md
|
||||
2026-07-23-client-plugin-loading-model.md: a8d016a70792ad4ac6a71083677ce5d82a30af0a
|
||||
2026-07-23-client-plugin-loading-model.zh.md: 1b94909c9611f01e5a6d7fcb50ec3f91ee88fab1
|
||||
/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload:
|
||||
en: 874618fd5ad1d06a
|
||||
zh: a5e4bfad490fab34
|
||||
/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/problem:
|
||||
en: 46c4b208707e024e
|
||||
zh: b6f86a6374b251da
|
||||
/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/decision:
|
||||
en: a15c7c13f167e5ac
|
||||
zh: a15c7c13f167e5ac
|
||||
/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/decision/package-membership-and-module-requests:
|
||||
en: 6af228b03e5e533f
|
||||
zh: 276a522af6be5d7a
|
||||
/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/decision/one-module-system-one-plugin-governor:
|
||||
en: 575aad62490f32e9
|
||||
zh: a6c18eb63965fc1e
|
||||
/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/decision/combo-external-script-arrival-and-source-maps:
|
||||
en: 0a4240d88cca240a
|
||||
zh: 8f5f1527caf571cd
|
||||
/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/decision/the-loading-flow-end-to-end:
|
||||
en: 7dac236d6add3c3c
|
||||
zh: 2a43a923a0646bb0
|
||||
/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/decision/live-graph-reconciliation:
|
||||
en: 37e2fa1fe5cb2b95
|
||||
zh: 80e513db87709cb4
|
||||
/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/decision/hot-reload-one-driver-plugin-self-watched-bundles:
|
||||
en: f8b591d4c41ef492
|
||||
zh: bc70f1cd540b7753
|
||||
/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/package-ownership:
|
||||
en: 94ca0d09e6fd1e3a
|
||||
zh: d5949a2bdec795ba
|
||||
/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/consequences:
|
||||
en: 6a96d9ac06c222e5
|
||||
zh: b2814ab58348e831
|
||||
/agent-note-client-plugin-loading-lazy-factories-cordis-lifecycle-and-hot-reload/alternatives-considered:
|
||||
en: b8f036f50cff7cd8
|
||||
zh: 6d623c4a1f4314b1
|
||||
@@ -46,7 +46,7 @@ A `require.async("./client.<name>.js")` call requests the exact revisioned `/plu
|
||||
|
||||
The shared tsdown preset emits a map for every plugin entry and chunk and rewrites first-party source paths into the browser-resolvable repository form `/packages/<group>/<package>/src/...`. The production Client pass consumes `lib/types`; the preset supplies each tsc map to Rolldown and fills `sourcesContent` from the original files, so the final map reaches TypeScript/TSX instead of stopping at emitted JavaScript. Other workspace sources inlined into a bundle likewise resolve to their `packages/` owner, while dependency paths remain unchanged. Combo generation strips each local debug directive, records its generated-line offset, resolves every authored source against the original per-plugin map URL, and emits an Indexed Source Map v3. An authored map supplies its section; otherwise an identity section embeds the generated bundle and uses the packer's `sourceURL` as its source name when present. The absolute combo map URL mirrors the script resource list by changing every `client.js` suffix to `client.js.map`, so `/plugins/??<package-a>/client.js,<package-b>/client.js&rev=<rev>` points to `/plugins/??<package-a>/client.js.map,<package-b>/client.js.map&rev=<rev>`. A chunk script likewise points to its own map URL. Source-map files are read and combined only when those map URLs receive `GET`; `HEAD` materializes neither script nor map bodies. The Vite shell also emits source maps, letting shell code and externally loaded plugins map stacks and performance profiles back to TypeScript/TSX.
|
||||
|
||||
The graph retains each row's revisioned one-resource combo URL for HMR and adds a revisioned descriptor for every startup combo request; several descriptors may carry the same scheduling phase. Initial row revisions are opaque process nonces rather than content hashes; they keep the snapshotted one-resource response immutable without hashing every plugin at startup. The shared preset stamps the entry after every package output is written. After the watcher observes that completed-build stamp, `rebuilt(id)` hashes the entry bytes together with its timestamp and publishes the resulting revision; a chunk-only build therefore advances the owner revision without a Host-side sibling scan. Startup combo revisions derive from the ordered row revisions. Script bodies are assembled on their first `GET`; source-map files are read and combined separately on their first map `GET`. `HEAD` materializes neither body. Versioned scripts and maps use immutable caching, and unrelated graph recomposition retains already-materialized chunk responses at the same revision. The Host serves only exact generated URLs; stale revisions and unadvertised resource lists return 404 instead of aliasing different bytes. An external script's `error` event exposes neither response status nor body, so failure diagnostics name only the URL; the same-origin Host and build-stamped registration id form the identity boundary, while the post-`load` factory-presence check rejects an artifact that did not register the expected id.
|
||||
The graph retains each row's revisioned one-resource combo URL for HMR and adds a revisioned descriptor for every startup combo request; several descriptors may carry the same scheduling phase. Initial publication and `rebuilt(id)` use the same hash of entry mtime, ctime, and size; artifact contents never enter the hash. Ctime distinguishes rewrites that preserve mtime and size. A Host restart over unchanged artifacts therefore retains every row revision, so the reconnecting SSE snapshot does not trigger browser plugin replacement. The shared preset stamps the entry after every package output is written; a chunk-only build therefore advances the owner revision without a Host-side sibling scan. Startup combo revisions derive from the ordered row revisions. Script bodies are assembled on their first `GET`; source-map files are read and combined separately on their first map `GET`. `HEAD` materializes neither body. Versioned scripts and maps use immutable caching, and unrelated graph recomposition retains already-materialized chunk responses at the same revision. The Host serves only exact generated URLs; stale revisions and unadvertised resource lists return 404 instead of aliasing different bytes. An external script's `error` event exposes neither response status nor body, so failure diagnostics name only the URL; the same-origin Host and build-stamped registration id form the identity boundary, while the post-`load` factory-presence check rejects an artifact that did not register the expected id.
|
||||
|
||||
### The loading flow, end to end
|
||||
|
||||
@@ -56,7 +56,7 @@ What happens between `dsh web` starting and the UI appearing? Three stages: the
|
||||
|
||||
1. The composing app (`apps/cli`) ships the roster as ordinary rows in its `cordis.yml` config tree — client plugin packages are entry rows like every host plugin, including the always-mounted `client-hmr` row. `auditStartupEntries` reports failed imports, activation errors with their original stacks, and pending dependencies; optional entries warn and required entries reject startup ([startup policy](2026-09-09-consumer-owned-startup-strictness.md)).
|
||||
2. The `dsh-client-modules` node half (the package is dual-face: its browser half is the module table) resolves each live Loader entry through the same `name` and owning-tree `baseUrl` inputs that imported its Host face, then reads the nearest owning package.json `dsh.client` declaration and composes `window.__DSH_BOOT__`: `{ rev, entries: [{ id, url, rev, inject?, immediately?, external? }], batches: [{ phase, url, rev, entries }] }`. The manifest package name is the browser module identity even when an overlay names a relative source or built entry file. Distinct active Loader sources resolving to one package name fail composition; after one source unloads, the surviving source supplies the row without a fiber restart. The row's three optional fields come from manifests, never hand-copied. Composition orders requested dynamic rows before their consumers, rejects synchronous request cycles, and assigns every row to exactly one initial batch. It refuses declared plugins without built `./client` bundles and groups their package/path rows under one required source-build instruction; malformed declaration fields also fail activation, and the Host audit reports either error from the FAILED fiber.
|
||||
3. Scanning is incremental per package — there is no full-rescan code path. Each cordis `internal/plugin` emission marks the fiber's entry name dirty (entry-less fibers drop O(1)); a microtask flush reconciles each dirty name against live loader entries, with package metadata (including the negative "not a client package" verdict) cached per entry name and owning-tree base URL for the process lifetime and bundle re-hashing reachable only through `rebuilt(id)`. The activation pass seeds the same dirty set from current entries and flushes synchronously, so first scan and steady state share one implementation. Initial rows receive an opaque process nonce plus sequence without hashing their artifacts; startup combo revisions hash the combined script inputs plus indexed map, and the rows plus batch descriptors hash into `graph.rev`. The graph types are single-sourced in the modules package's `./client` export — the webserver knows nothing about the graph, while modules registers the combo route and contributes structured index-injection rows.
|
||||
3. Scanning is incremental per package — there is no full-rescan code path. Each cordis `internal/plugin` emission marks the fiber's entry name dirty (entry-less fibers drop O(1)); a microtask flush reconciles each dirty name against live loader entries, with package metadata (including the negative "not a client package" verdict) cached per entry name and owning-tree base URL for the process lifetime and changed bundle publication reachable only through `rebuilt(id)`. The activation pass seeds the same dirty set from current entries and flushes synchronously, so first scan and steady state share one implementation. Initial rows hash their pre-read filesystem metadata; startup combo revisions hash the ordered row identities and revisions, and the rows plus batch descriptors hash into `graph.rev`. The graph types are single-sourced in the modules package's `./client` export — the webserver knows nothing about the graph, while modules registers the combo route and contributes structured index-injection rows.
|
||||
|
||||
Why is the roster yml rows and not a scan? Because which plugins compose into a deployment is a composition decision, not a package property — a package declaring `dsh.client` in the repo does not mean this deployment mounts it, so discovery-by-scan cannot make that call; the node half scans only what the tree actually mounted.
|
||||
|
||||
@@ -80,7 +80,7 @@ The Host SSE adapter forwards existing graph-change notifications and sends the
|
||||
|
||||
Hot reload is a composition decision: the web bundle mounts the `client-hmr` row (a normal plugin package) unconditionally; its node half brings the bundle watch and the SSE channel, and the chain stays idle until a rebuild watcher rewrites client bundles. A composition that must not expose it disables the row.
|
||||
|
||||
How does a rebuilt bundle become a reload signal? The hmr node half observes it itself — no builder tells it. Before reading each startup snapshot, the module host captures the entry stat baseline and exposes it through `ctx.clientModules.artifactBaseline(id)`. One HMR-owned interval compares every current graph row with that baseline. An unchanged row starts watching without a content read or hash; a write after baseline capture is already a stat delta and only that row enters `rebuilt(id)`. This avoids both an initial all-row re-hash and `fs.watchFile`, whose asynchronous first baseline can silently absorb a construction-time rebuild. Watch membership follows `onGraphChanged`; vanished rows drop out, and an entry missing at poll time keeps its row dirty so reappearance forces a new revision even with identical metadata. The shared tsdown preset stamps `client.js` after every sibling output has been written; on an entry mtime or size delta, or a dirty row, `rebuilt(id)` derives the revision from the entry bytes and completed-build timestamp. A chunk-only edit therefore changes the revision, and a partial write followed by the completion stamp supplies a later stat change that self-heals. When the `rev` changes, the node half broadcasts a `rebuilt` frame on `GET /plugins/events` — a system SSE channel that sends the full graph on connect and `rebuilt` frames on change, presentation-only wire that never enters the session log. Polling is deliberate because inotify does not fire on the weka network mount, the same reason the build-side watcher needs `--poll`; one entry stat per row and interval is sufficient, the interval is a validated config field (default 500ms), and disposal clears the one timer. Rebuilding artifacts is any process using the shared Client tsdown preset — `scripts/dev-web.ts` remains the watch-build entry point, discovering its package list through `dsh.client` while scanning `packages/*/*/package.json` at startup — and builder and host share no notification protocol.
|
||||
How does a rebuilt bundle become a reload signal? The hmr node half observes it itself — no builder tells it. Before reading each startup snapshot, the module host captures the entry stat baseline and exposes it through `ctx.clientModules.artifactBaseline(id)`. One HMR-owned interval compares every current graph row with that baseline. An unchanged row starts watching without a content read or hash; a write after baseline capture is already a stat delta and only that row enters `rebuilt(id)`. This avoids redundant reads when installing the watcher and avoids `fs.watchFile`, whose asynchronous first baseline can silently absorb a construction-time rebuild. Watch membership follows `onGraphChanged`; vanished rows drop out, and an entry missing at poll time keeps its row dirty so reappearance retries publication even when mtime and size match the baseline. The shared tsdown preset stamps `client.js` after every sibling output has been written; on an entry mtime, ctime, or size delta, or a dirty row, `rebuilt(id)` derives the revision from those three metadata values. It reads the new bundle snapshot only if the revision changes. A chunk-only edit therefore changes the revision, and a partial write followed by the completion stamp supplies a later stat change that self-heals. When the `rev` changes, the node half broadcasts a `rebuilt` frame on `GET /plugins/events` — a system SSE channel that sends the full graph on connect and `rebuilt` frames on change, presentation-only wire that never enters the session log. Polling is deliberate because inotify does not fire on the weka network mount, the same reason the build-side watcher needs `--poll`; one entry stat per row and interval is sufficient, the interval is a validated config field (default 500ms), and disposal clears the one timer. Rebuilding artifacts is any process using the shared Client tsdown preset — `scripts/dev-web.ts` remains the watch-build entry point, discovering its package list through `dsh.client` while scanning `packages/*/*/package.json` at startup — and builder and host share no notification protocol.
|
||||
|
||||
On the browser side, the transport delegates code replacement to the same modules controller that owns graph reconciliation:
|
||||
|
||||
@@ -120,4 +120,4 @@ Roster: it lives in the web bundle's config tree (`packages/bundle/web-app/cordi
|
||||
| Full ctx-ification now (React and libraries via services, no module table) | Static UI libraries still expose synchronous values, so removing the table would leave those imports without a shared identity |
|
||||
| Eager instantiation with a frozen table | Runs bundle side effects at script arrival; lazy registration keeps execution at Cordis import while recursive `require` materializes registered requests |
|
||||
| Fetch response text, then inject an inline `<script>` | Makes the module system buffer the complete source and maintain separate fetch/execute paths; dynamic source execution also breaks the browser-native association among the network resource, source map, and profile |
|
||||
| Builder-push rebuild channel (`POST /plugins/rebuilt` from the orchestrator's `onSuccess`) | Couples reload to one blessed builder process and a second wire protocol; the webserver already holds every bundle path, and stat polling covers the torn-write race (re-hash on every stat change) that once justified pushing |
|
||||
| Builder-push rebuild channel (`POST /plugins/rebuilt` from the orchestrator's `onSuccess`) | Couples reload to one blessed builder process and a second wire protocol; the webserver already holds every bundle path, and stat polling covers the torn-write race (publication on every stat change) that once justified pushing |
|
||||
@@ -46,7 +46,7 @@ Host 会快照每个已构建插件入口 bundle,并把每个调度阶段的
|
||||
|
||||
共享 tsdown 预设为每个插件入口与 chunk 产出 map,并把第一方源码路径重写成浏览器可识别的仓库形式 `/packages/<group>/<package>/src/...`。生产 Client 构建会消费 `lib/types`;预设把每份 tsc map 交给 Rolldown,并从原文件补齐 `sourcesContent`,使最终 map 回到 TypeScript/TSX,而不是停在编译后的 JavaScript。内联进 bundle 的其他 workspace 源码同样回到其 `packages/` 归属,依赖包路径保持原样。Combo 生成会移除每个局部调试指令、记录其生成行偏移、以原插件 map URL 解析每个自带 source,再产出 Indexed Source Map v3。插件有自带 map 时直接用于对应 section;没有时则生成 identity section,内嵌构建后 bundle,并在存在时把 packer 写入的 `sourceURL` 用作 source 名。绝对 combo map URL 会平行改写脚本资源列表中的每个 `client.js` 后缀,因此 `/plugins/??<package-a>/client.js,<package-b>/client.js&rev=<rev>` 指向 `/plugins/??<package-a>/client.js.map,<package-b>/client.js.map&rev=<rev>`。chunk 脚本同样指向自己的 map URL。只有在这些 map URL 收到 `GET` 后,source map 文件才会被读取和组合;`HEAD` 不会物化脚本或 map body。Vite 壳同样产出 sourcemap,使壳代码与经外部加载的插件都能从 stack 和性能 profile 回到 TypeScript/TSX。
|
||||
|
||||
图为 HMR 保留每个 row 带 revision 的单资源 combo URL,并为每个启动 combo 请求增加带 revision 的描述;多条描述可以使用同一调度阶段。初始 row revision 是进程级不透明 nonce,而不是内容哈希;它无需在启动时哈希每个插件,也能保证已快照的单资源响应不可变。共享预设会在每个包输出写完后标记入口。watcher 观察到该构建完成标记后,`rebuilt(id)` 会把入口字节与其时间戳一起哈希并发布所得 revision;因此只重建 chunk 也会推进 owner revision,无需 Host 扫描 sibling。启动 combo revision 从有序 row revision 派生。脚本 body 在首次 `GET` 时组合;source map 文件在首次 map `GET` 时单独读取并组合。`HEAD` 不会物化任一 body。版本化脚本与 map 使用 immutable 缓存,无关图重组会保留相同 revision 下已经物化的 chunk 响应。Host 只提供精确生成的 URL;陈旧 revision 与未发布资源列表返回 404,不会别名到其他字节。外部脚本的 `error` 事件不给响应状态与正文,因此失败诊断只报告 URL;同源 Host 与构建期写入的 registration id 是身份边界,`load` 后的 factory 存在性检查负责拒绝未登记预期 id 的产物。
|
||||
图为 HMR 保留每个 row 带 revision 的单资源 combo URL,并为每个启动 combo 请求增加带 revision 的描述;多条描述可以使用同一调度阶段。首次发布与 `rebuilt(id)` 使用相同的入口 mtime、ctime 和大小哈希;产物内容不参与求哈希。ctime 用于区分保留 mtime 和大小的重写。Host 重启时若产物未变,每个 row 的 revision 都保持不变,因此重连后的 SSE 快照不会触发浏览器插件替换。共享预设会在每个包输出写完后标记入口;因此只重建 chunk 也会推进 owner revision,无需 Host 扫描 sibling。启动 combo revision 从有序 row revision 派生。脚本 body 在首次 `GET` 时组合;source map 文件在首次 map `GET` 时单独读取并组合。`HEAD` 不会物化任一 body。版本化脚本与 map 使用 immutable 缓存,无关图重组会保留相同 revision 下已经物化的 chunk 响应。Host 只提供精确生成的 URL;陈旧 revision 与未发布资源列表返回 404,不会别名到其他字节。外部脚本的 `error` 事件不给响应状态与正文,因此失败诊断只报告 URL;同源 Host 与构建期写入的 registration id 是身份边界,`load` 后的 factory 存在性检查负责拒绝未登记预期 id 的产物。
|
||||
|
||||
### 装载流程,端到端
|
||||
|
||||
@@ -56,7 +56,7 @@ Host 会快照每个已构建插件入口 bundle,并把每个调度阶段的
|
||||
|
||||
1. 负责组合的 app(`apps/cli`)把名册作为普通行放进它的 `cordis.yml` 配置树——client 插件包与每个 host 插件一样是 entry 行,包括无条件挂载的 `client-hmr` 行。`auditStartupEntries` 报告 import 失败、带原始 stack 的激活错误,以及待满足的依赖;optional entry 输出 warning,required entry 则使启动失败([启动策略](2026-09-09-consumer-owned-startup-strictness.zh.md))。
|
||||
2. `dsh-client-modules` 的 node 半(该包是双面的:浏览器半就是模块表)使用 Host face import 时相同的 `name` 与所属 tree `baseUrl` 解析每个 live Loader entry,再读取最近归属 package.json 的 `dsh.client` 声明并组合出 `window.__DSH_BOOT__`:`{ rev, entries: [{ id, url, rev, inject?, immediately?, external? }], batches: [{ phase, url, rev, entries }] }`。即使 overlay 指向相对的 source 或 built entry 文件,manifest 包名仍是浏览器模块身份。若不同的 active Loader source 解析到同一包名,组合会失败;一个来源卸载后,仍存活的来源无需重启 fiber 即可提供该 row。Row 的三个可选字段都来自 manifest,永不人肉抄写。组合会把被请求的动态图 row 排到消费者之前、拒绝同步请求环,并把每个 row 恰好分配给一个初始批次。它会拒绝没有已构建 `./client` bundle 的已声明插件,并把它们的 package/path 行归到一条源码构建要求下;畸形声明字段同样会让激活失败,Host 检查会从 FAILED fiber 报告这两类错误。
|
||||
3. 扫描是单包增量——不存在全量重扫代码路径。每次 cordis `internal/plugin` 发射把该 fiber 的 entry 名标脏(无 entry 的 fiber O(1) 丢弃);微任务 flush 把每个脏名对账 live loader entries,包元数据(含「非 client 包」的否定结论)按 entry 名与所属 tree base URL 缓存至进程结束,bundle 重哈希只经 `rebuilt(id)` 可达。激活趟从当前 entries 灌同一脏集合并同步 flush,初扫与稳态共享一条实现。初始 row 使用不透明的进程 nonce 加序号,不对其产物求哈希;启动 combo revision 对合并脚本输入及 indexed map 求哈希,row 与批次描述再共同哈希进 `graph.rev`。图类型单源在 modules 包的 `./client` 出口——webserver 对图一无所知;modules 会注册 combo 路由并贡献结构化 index 注入行。
|
||||
3. 扫描是单包增量——不存在全量重扫代码路径。每次 cordis `internal/plugin` 发射把该 fiber 的 entry 名标脏(无 entry 的 fiber O(1) 丢弃);微任务 flush 把每个脏名对账 live loader entries,包元数据(含「非 client 包」的否定结论)按 entry 名与所属 tree base URL 缓存至进程结束,变化后 bundle 的发布只经 `rebuilt(id)` 可达。激活趟从当前 entries 灌同一脏集合并同步 flush,初扫与稳态共享一条实现。初始 row 对读取前的文件系统元数据求哈希;启动 combo revision 对有序 row 的身份与 revision 求哈希,row 与批次描述再共同哈希进 `graph.rev`。图类型单源在 modules 包的 `./client` 出口——webserver 对图一无所知;modules 会注册 combo 路由并贡献结构化 index 注入行。
|
||||
|
||||
为什么名册是 yml 行而不是扫描?因为哪些插件组合进一次部署是组合决策,不是包属性——一个在仓库中声明了 dsh.client 的包,不代表这次部署要挂载它,扫描发现无从替人做这个决定;node 半只扫描配置树实际挂载了的东西。
|
||||
|
||||
@@ -80,7 +80,7 @@ Host SSE 适配器转发现有图变化通知,并在连接时发送当前完
|
||||
|
||||
热重载是一项组合决策:web 组合包无条件挂载 `client-hmr` 行(一个常规的插件包),其 node 半带来 bundle 监视与 SSE(Server-Sent Events)通道;没有重建 watcher 改写客户端 bundle 时链路保持空闲。不应暴露它的组合可以禁用该行。
|
||||
|
||||
重建好的 bundle 怎么变成重载信号?hmr 的 node 半自己观察——没有构建器来通知它。模块 host 在读取每份启动快照前捕获入口 stat 基线,并通过 `ctx.clientModules.artifactBaseline(id)` 暴露它。HMR 自持的单个定时器把当前图的每个 row 与这份基线比较:未变化的 row 直接开始监视,不读取内容也不求哈希;基线捕获后的写入已经形成 stat 差异,只有该 row 会进入 `rebuilt(id)`。这同时消除了启动期的全量重哈希,并避开 `fs.watchFile` 以异步首次 stat 建立基线、可能静默吸收构造期重建的问题。监视集合的成员随 `onGraphChanged` 更新;消失的 row 撤下监视,轮询时缺失的入口则让对应 row 保持标脏状态,文件重现时即使元数据相同也强制生成新 revision。共享 tsdown 预设会在每个 sibling 输出写完后标记 `client.js`;入口 mtime 或 size 变化、或 row 处于标脏状态时,`rebuilt(id)` 从入口字节与构建完成时间戳派生 revision。只修改 chunk 因此也会更换 revision;部分写入之后的完成标记还会提供一次更晚的 stat 变化以完成自愈。`rev` 变化时,node 半在 `GET /plugins/events` 上广播 `rebuilt` 帧——这是一条系统级 SSE 通道,连接即发全量图,变更时发 `rebuilt` 帧,仅供呈现的 wire,永不进会话日志。轮询是刻意选择:inotify 在 weka 网络挂载上不触发,构建侧监视器需要 `--poll` 也是同一原因;每个 row 每个间隔只需一次入口 stat,轮询间隔是一个经校验的配置字段(默认 500ms),dispose(资源释放)会清掉那一个定时器。重建产物的进程必须使用共享 Client tsdown 预设;`scripts/dev-web.ts` 仍作为 watch 构建入口保留,其包清单在启动时扫描 `packages/*/*/package.json` 按 dsh.client 发现,构建器与 host 之间没有通知协议。
|
||||
重建好的 bundle 怎么变成重载信号?hmr 的 node 半自己观察——没有构建器来通知它。模块 host 在读取每份启动快照前捕获入口 stat 基线,并通过 `ctx.clientModules.artifactBaseline(id)` 暴露它。HMR 自持的单个定时器把当前图的每个 row 与这份基线比较:未变化的 row 直接开始监视,不读取内容也不求哈希;基线捕获后的写入已经形成 stat 差异,只有该 row 会进入 `rebuilt(id)`。这既避免安装 watcher 时重复读取,也避开 `fs.watchFile` 以异步首次 stat 建立基线、可能静默吸收构造期重建的问题。监视集合的成员随 `onGraphChanged` 更新;消失的 row 撤下监视,轮询时缺失的入口则让对应 row 保持标脏状态,文件重现时即使 mtime 和大小与基线相同也重试发布。共享 tsdown 预设会在每个 sibling 输出写完后标记 `client.js`;入口 mtime、ctime 或大小变化、或 row 处于标脏状态时,`rebuilt(id)` 从这三个元数据值派生 revision。只有 revision 变化时,它才读取新的 bundle 快照。只修改 chunk 因此也会更换 revision;部分写入之后的完成标记还会提供一次更晚的 stat 变化以完成自愈。`rev` 变化时,node 半在 `GET /plugins/events` 上广播 `rebuilt` 帧——这是一条系统级 SSE 通道,连接即发全量图,变更时发 `rebuilt` 帧,仅供呈现的 wire,永不进会话日志。轮询是刻意选择:inotify 在 weka 网络挂载上不触发,构建侧监视器需要 `--poll` 也是同一原因;每个 row 每个间隔只需一次入口 stat,轮询间隔是一个经校验的配置字段(默认 500ms),dispose(资源释放)会清掉那一个定时器。重建产物的进程必须使用共享 Client tsdown 预设;`scripts/dev-web.ts` 仍作为 watch 构建入口保留,其包清单在启动时扫描 `packages/*/*/package.json` 按 dsh.client 发现,构建器与 host 之间没有通知协议。
|
||||
|
||||
浏览器侧的传输把代码替换交给负责图对账的同一个 modules 控制器:
|
||||
|
||||
@@ -120,4 +120,4 @@ Wire 两侧运行同一份治理实现;浏览器特有层只包含一套模块
|
||||
| 现在就彻底 ctx 化(React 与库全走服务,不设模块表) | 静态 UI 库仍暴露同步实体,因此删除模块表会让这些 import 失去共享身份 |
|
||||
| 冻结表 + 到达即实例化 | 会在 script 到达时执行 bundle 副作用;惰性登记把执行推迟到 Cordis import,并由递归 `require` 物化已登记请求 |
|
||||
| fetch 响应文本后注入内联 `<script>` | 模块系统必须缓冲整份源码并维护 fetch/execute 两条路径;动态源码执行也切断浏览器网络资源、sourcemap 与 profile 的原生关联 |
|
||||
| 构建器推送重建通道(编排器在 `onSuccess` 里 POST `/plugins/rebuilt`) | 把重载耦合到一个钦定的构建器进程和第二套 wire 协议;webserver 本就握有每个 bundle 路径,stat 轮询(每次 stat 变化即重哈希)已兜住当年为推送辩护的撕裂写竞态 |
|
||||
| 构建器推送重建通道(编排器在 `onSuccess` 里 POST `/plugins/rebuilt`) | 把重载耦合到一个钦定的构建器进程和第二套 wire 协议;webserver 本就握有每个 bundle 路径,stat 轮询(每次 stat 变化即发布)已兜住当年为推送辩护的撕裂写竞态 |
|
||||
+18
-5
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-24-project-session-directories.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-24-project-session-directories.md
|
||||
2026-07-24-project-session-directories.md: 0074c8b31304e6a7d32199b7461575356e406448
|
||||
2026-07-24-project-session-directories.zh.md: 3a1d348255588fd120221dc277a2841359c0a038
|
||||
/agent-note-project-grouped-session-directories:
|
||||
en: c8960daf61fa50fa
|
||||
zh: d8c7c844180fcaae
|
||||
/agent-note-project-grouped-session-directories/problem:
|
||||
en: 7df6078347bd7176
|
||||
zh: bb769760d7abc903
|
||||
/agent-note-project-grouped-session-directories/decision:
|
||||
en: cdefd1f4d9d0a55a
|
||||
zh: 5916d456f3faab2b
|
||||
/agent-note-project-grouped-session-directories/alternatives-considered:
|
||||
en: ba4657ba95479806
|
||||
zh: 5c53c5c964efa932
|
||||
/agent-note-project-grouped-session-directories/consequences:
|
||||
en: 228c46a599899be1
|
||||
zh: 265a233cd41b5c05
|
||||
+27
-5
@@ -1,6 +1,28 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-24-separate-context-injection-from-turn-execution.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-24-separate-context-injection-from-turn-execution.md
|
||||
2026-07-24-separate-context-injection-from-turn-execution.md: d22d3966767ae9888f2140141b1c7743792184c0
|
||||
2026-07-24-separate-context-injection-from-turn-execution.zh.md: 2c567511b21891ada3e0027f666d1163861fb090
|
||||
/agent-note-separate-context-injection-from-turn-execution:
|
||||
en: f0090d5d271cbd9d
|
||||
zh: 7ff28e03f1273093
|
||||
/agent-note-separate-context-injection-from-turn-execution/problem:
|
||||
en: 2eefc25e17f62a90
|
||||
zh: 81bc7ff2649b2704
|
||||
/agent-note-separate-context-injection-from-turn-execution/decision:
|
||||
en: 83dba9117127cbb4
|
||||
zh: 2b6b428a1c97d3b1
|
||||
/agent-note-separate-context-injection-from-turn-execution/injection-lifecycle:
|
||||
en: 16005492be54cb4f
|
||||
zh: db460e0ebf838d54
|
||||
/agent-note-separate-context-injection-from-turn-execution/extension-and-caller-semantics:
|
||||
en: e184d8cd9676e24f
|
||||
zh: 22465b570ae35f59
|
||||
/agent-note-separate-context-injection-from-turn-execution/alternatives-considered:
|
||||
en: 0efad389c38dfe95
|
||||
zh: 13dd73de20226540
|
||||
/agent-note-separate-context-injection-from-turn-execution/verification:
|
||||
en: 3f3db450a3fc5848
|
||||
zh: b2027393d570339d
|
||||
/agent-note-separate-context-injection-from-turn-execution/consequences:
|
||||
en: 71079e4dede5e12f
|
||||
zh: deb46b5a4f151678
|
||||
+18
-5
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-24-single-harness-home-resolver.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-24-single-harness-home-resolver.md
|
||||
2026-07-24-single-harness-home-resolver.md: 1191c52bfa222b807e9aa301b250d2efcc8b0953
|
||||
2026-07-24-single-harness-home-resolver.zh.md: cefa124b7cb46bab92157af34576f59d3053da9f
|
||||
/agent-note-one-harness-home-resolver:
|
||||
en: 4177acbdd51411da
|
||||
zh: 53f10d4c54b431b2
|
||||
/agent-note-one-harness-home-resolver/problem:
|
||||
en: fa4d3622fb18dd58
|
||||
zh: 2b98640594c8344b
|
||||
/agent-note-one-harness-home-resolver/decision:
|
||||
en: bbab99c7a1aae2fc
|
||||
zh: 87453b98ca265699
|
||||
/agent-note-one-harness-home-resolver/alternatives-considered:
|
||||
en: b1c9535540171d47
|
||||
zh: 7df816d42945db94
|
||||
/agent-note-one-harness-home-resolver/consequences:
|
||||
en: 7d0f569b98feadf5
|
||||
zh: 5c84624e7cc8d1d4
|
||||
+18
-5
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-24-web-config-tree-boot-and-transport-layering.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-24-web-config-tree-boot-and-transport-layering.md
|
||||
2026-07-24-web-config-tree-boot-and-transport-layering.md: c8a1db3cd7bd715d8912b22a0b41a9ef660c1316
|
||||
2026-07-24-web-config-tree-boot-and-transport-layering.zh.md: 41fcf65b06829199c203faa806bd17a310b68bcf
|
||||
/agent-note-dsh-web-config-tree-boot-and-the-web-transport-layering:
|
||||
en: 2d06ffcaaeb373e7
|
||||
zh: 01822cfd7339167f
|
||||
/agent-note-dsh-web-config-tree-boot-and-the-web-transport-layering/problem:
|
||||
en: e5d603f77bff9dd7
|
||||
zh: c9e9a64f0a4db3c9
|
||||
/agent-note-dsh-web-config-tree-boot-and-the-web-transport-layering/decision:
|
||||
en: 866ebaaf4fe1e0d1
|
||||
zh: 8075a708c9042941
|
||||
/agent-note-dsh-web-config-tree-boot-and-the-web-transport-layering/consequences:
|
||||
en: 47f8a6beba1f320b
|
||||
zh: 5f444699dc52cabf
|
||||
/agent-note-dsh-web-config-tree-boot-and-the-web-transport-layering/alternatives-considered:
|
||||
en: bf6fbf972eab0700
|
||||
zh: 0f3449e5e6ace7e2
|
||||
+42
-5
@@ -1,6 +1,43 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-25-web-client-session-scope-and-provide-channel.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.md
|
||||
2026-07-25-web-client-session-scope-and-provide-channel.md: 76561bc0e330b3e3a26607569ae327217d0a0b67
|
||||
2026-07-25-web-client-session-scope-and-provide-channel.zh.md: d5d92b2ca53ba78929dd8591a6ded7028e4fed24
|
||||
/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide:
|
||||
en: 64d8701a9f2574bd
|
||||
zh: 938991d424943547
|
||||
/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/problem:
|
||||
en: 1738c071cb9824bc
|
||||
zh: 7af7770739d5430a
|
||||
/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/decision:
|
||||
en: a397a3f2e0bd7c21
|
||||
zh: a179a646c148ecc1
|
||||
/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/decision/the-parity-model-client-and-host-share-one-root-state-axis:
|
||||
en: e117f541a2f55c07
|
||||
zh: c6a5cf9c9d6b7692
|
||||
/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/decision/agent-scope-the-actx-is-the-sole-session-carrier-in-the-client-side-cordis-world:
|
||||
en: 6e6488b3eab757c2
|
||||
zh: 4ee3d1cc415234df
|
||||
/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/decision/scope-lifecycle-anchored-to-explicit-references:
|
||||
en: e2ed0052678a2b9b
|
||||
zh: e0fe1b87dc3766af
|
||||
/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/decision/the-blank-bit-the-empty-session-s-visible-projection-conversion-and-reuse:
|
||||
en: ee88908c085b80c5
|
||||
zh: 5ddb65bbac371f02
|
||||
/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/decision/connectworkspace-the-sole-entry-point-of-new-session:
|
||||
en: 833df42c5a87afbd
|
||||
zh: 82d789a99fd2b968
|
||||
/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/decision/per-session-provisioning-the-uisession-provide-standard-kit-channel:
|
||||
en: 3c739c21ea490f09
|
||||
zh: 5508153f313a86d9
|
||||
/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/decision/input-delivery:
|
||||
en: 2073e96f851d1e6e
|
||||
zh: f0433bf5dfd0a23d
|
||||
/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/decision/host-wire-smalls:
|
||||
en: 5d1339b5a243812a
|
||||
zh: a4be4d3c30056f42
|
||||
/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/alternatives-considered:
|
||||
en: 2a69d71f4bdf0f76
|
||||
zh: dd768c273728d354
|
||||
/agent-note-web-client-agent-scope-parity-model-and-the-provisioning-channel-agents-scope-blank-reuse-provide/consequences:
|
||||
en: 6750378aca400a75
|
||||
zh: 6eba20215ff255a1
|
||||
+21
-5
@@ -1,6 +1,22 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-27-compiler-independent-typert-model.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-27-compiler-independent-typert-model.md
|
||||
2026-07-27-compiler-independent-typert-model.md: 5083c55176b2f4d342d14d0c1cf2a7f0c2c14b3c
|
||||
2026-07-27-compiler-independent-typert-model.zh.md: 70d6954fae0fcb48e76137231168d5f2417668bf
|
||||
/agent-note-compiler-independent-typert-type-model:
|
||||
en: 6943b47c9de69922
|
||||
zh: 2fb08c1de4e6ea63
|
||||
/agent-note-compiler-independent-typert-type-model/problem:
|
||||
en: 77713a6c0d15207e
|
||||
zh: 2dc30d4c0182d8ba
|
||||
/agent-note-compiler-independent-typert-type-model/decision:
|
||||
en: 9ecb064f733f9f1b
|
||||
zh: 471aee71053174cd
|
||||
/agent-note-compiler-independent-typert-type-model/verification-contract:
|
||||
en: c02d3f09e54f9a32
|
||||
zh: c14c15ffb7316b07
|
||||
/agent-note-compiler-independent-typert-type-model/alternatives-considered:
|
||||
en: fa503dcfaa6f438f
|
||||
zh: 26052212a124e133
|
||||
/agent-note-compiler-independent-typert-type-model/consequences:
|
||||
en: 4a472acf377f8361
|
||||
zh: cb83602b123a4aae
|
||||
+18
-5
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-28-api-browser-trust-boundary.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-28-api-browser-trust-boundary.md
|
||||
2026-07-28-api-browser-trust-boundary.md: 397c93e084f84579ce3f90654f514428e696ffcd
|
||||
2026-07-28-api-browser-trust-boundary.zh.md: 6d3896fd2c1fd6c607b9d92376eee76ab03df3c7
|
||||
/agent-note-one-carrier-level-browser-trust-boundary-for-all-api-routes:
|
||||
en: 491d0faf230d0278
|
||||
zh: 40c8eef7719fe354
|
||||
/agent-note-one-carrier-level-browser-trust-boundary-for-all-api-routes/problem:
|
||||
en: c25db2ef111b2276
|
||||
zh: 557891ca9e030ae5
|
||||
/agent-note-one-carrier-level-browser-trust-boundary-for-all-api-routes/decision:
|
||||
en: 1a1af1e8125ba4b0
|
||||
zh: dd6c282651a06af5
|
||||
/agent-note-one-carrier-level-browser-trust-boundary-for-all-api-routes/alternatives-considered:
|
||||
en: 1a4b0ae8072e8e50
|
||||
zh: d469553ad3b5d112
|
||||
/agent-note-one-carrier-level-browser-trust-boundary-for-all-api-routes/consequences:
|
||||
en: 8acf5e6f55a747c2
|
||||
zh: bbd0b10927302965
|
||||
+21
-5
@@ -1,6 +1,22 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-28-identified-immutable-message-values.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-28-identified-immutable-message-values.md
|
||||
2026-07-28-identified-immutable-message-values.md: 73c9c14479117cf654d10b3da23d155cca77054d
|
||||
2026-07-28-identified-immutable-message-values.zh.md: 7a5b9d6524beff01ac8a9e2020f75093271b7ab3
|
||||
/agent-note-create-every-message-as-an-identified-immutable-value:
|
||||
en: 0bb4f6acecd9b6f1
|
||||
zh: 11e17fde272119f1
|
||||
/agent-note-create-every-message-as-an-identified-immutable-value/problem:
|
||||
en: 9334a7a325a88fda
|
||||
zh: c21c8cee318c6a35
|
||||
/agent-note-create-every-message-as-an-identified-immutable-value/decision:
|
||||
en: a4434de753a41d41
|
||||
zh: f16e5cd634245f0e
|
||||
/agent-note-create-every-message-as-an-identified-immutable-value/alternatives-considered:
|
||||
en: bf73901dd2b977ed
|
||||
zh: 5ba5d4d05051b1da
|
||||
/agent-note-create-every-message-as-an-identified-immutable-value/consequences:
|
||||
en: 9f2c40ccfcf03ee1
|
||||
zh: 0e8ba6c97f2e32af
|
||||
/agent-note-create-every-message-as-an-identified-immutable-value/related:
|
||||
en: 7c476f1a5195dff9
|
||||
zh: c878154dbf766e82
|
||||
+24
-5
@@ -1,6 +1,25 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-28-portable-execution-world-consumers.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-28-portable-execution-world-consumers.md
|
||||
2026-07-28-portable-execution-world-consumers.md: 5a687a552f322f3929b3f3937caf36c3373c05e7
|
||||
2026-07-28-portable-execution-world-consumers.zh.md: 6bc0e20bd29d0b0a01068c004655cc90ac3b6699
|
||||
/agent-note-portable-consumers-over-filesystem-and-subprocess-execution-worlds:
|
||||
en: 42609904ffe19d80
|
||||
zh: fcacbf7912df216c
|
||||
/agent-note-portable-consumers-over-filesystem-and-subprocess-execution-worlds/problem:
|
||||
en: 959a378a04f28e89
|
||||
zh: ff496169735b4d7b
|
||||
/agent-note-portable-consumers-over-filesystem-and-subprocess-execution-worlds/decision:
|
||||
en: 23eca65b89ae572a
|
||||
zh: 630d844a7c6438df
|
||||
/agent-note-portable-consumers-over-filesystem-and-subprocess-execution-worlds/remote-provider-ownership:
|
||||
en: bde2e1fa8f3aeee0
|
||||
zh: 42a13bb4cf540d6d
|
||||
/agent-note-portable-consumers-over-filesystem-and-subprocess-execution-worlds/verification:
|
||||
en: b34540c3548ea98f
|
||||
zh: 79e53bda3981802c
|
||||
/agent-note-portable-consumers-over-filesystem-and-subprocess-execution-worlds/alternatives-considered:
|
||||
en: a5f455ad35d0615c
|
||||
zh: df4f501a6d723838
|
||||
/agent-note-portable-consumers-over-filesystem-and-subprocess-execution-worlds/consequences:
|
||||
en: 3e8426e4a6788505
|
||||
zh: 143b8c07d21d95d1
|
||||
+18
-5
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-29-dsh-source-launch-tsx-esm.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-29-dsh-source-launch-tsx-esm.md
|
||||
2026-07-29-dsh-source-launch-tsx-esm.md: 700577cb9b137d67f20baeb639f99f4c0877011d
|
||||
2026-07-29-dsh-source-launch-tsx-esm.zh.md: 4d322d3dcf49442ee62f82203f17bd2ab16467fe
|
||||
/agent-note-dsh-source-launch-through-the-tsx-esm-hook:
|
||||
en: 55846ac57e07eeda
|
||||
zh: 3de03730d4b28863
|
||||
/agent-note-dsh-source-launch-through-the-tsx-esm-hook/problem:
|
||||
en: 68385f7e47d3ac1f
|
||||
zh: 285ca290832e2939
|
||||
/agent-note-dsh-source-launch-through-the-tsx-esm-hook/decision:
|
||||
en: 12adf8ed56b4d5c3
|
||||
zh: fbbb9add935730c0
|
||||
/agent-note-dsh-source-launch-through-the-tsx-esm-hook/alternatives-considered:
|
||||
en: c6eec3d899a61df1
|
||||
zh: 128edd753d49c0da
|
||||
/agent-note-dsh-source-launch-through-the-tsx-esm-hook/consequences:
|
||||
en: 7c8eb105520ccae3
|
||||
zh: 9dc85ecda408de5a
|
||||
+21
-5
@@ -1,6 +1,22 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-29-projected-token-usage-and-request-context.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-29-projected-token-usage-and-request-context.md
|
||||
2026-07-29-projected-token-usage-and-request-context.md: 10056ac8ef85562035d4fc4591e90aec603a7dd8
|
||||
2026-07-29-projected-token-usage-and-request-context.zh.md: 0e4cd68791f0ee65dd700b64493be3c33b78a920
|
||||
/agent-note-projected-token-usage-and-context-occupancy:
|
||||
en: 293fcae41011ed29
|
||||
zh: 9a018a07b6491173
|
||||
/agent-note-projected-token-usage-and-context-occupancy/problem:
|
||||
en: 081098cb08ca80aa
|
||||
zh: f829b6630a68fc3c
|
||||
/agent-note-projected-token-usage-and-context-occupancy/decision:
|
||||
en: 231a6f4a4c00dca6
|
||||
zh: e90c76e425826ca0
|
||||
/agent-note-projected-token-usage-and-context-occupancy/context-occupancy-is-approximate-and-that-is-the-decision:
|
||||
en: 9df83c0a48f462d2
|
||||
zh: 94c2ad19af4b13fc
|
||||
/agent-note-projected-token-usage-and-context-occupancy/alternatives-considered:
|
||||
en: 50272313b4f061cc
|
||||
zh: 1cfd7374e4bdfed9
|
||||
/agent-note-projected-token-usage-and-context-occupancy/consequences:
|
||||
en: c7a407dc3964fb9d
|
||||
zh: b1ac7c53abb5cb09
|
||||
+18
-5
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-29-terminal-llm-stream-failures.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-29-terminal-llm-stream-failures.md
|
||||
2026-07-29-terminal-llm-stream-failures.md: c5d160c5dffe6171dd79714f2402f3bd6ca4d3fc
|
||||
2026-07-29-terminal-llm-stream-failures.zh.md: 297898d8f94ae4f00ab1c5fef192ce633aee99cd
|
||||
/agent-note-terminal-llm-stream-failures:
|
||||
en: 6195cb1d9b4dd423
|
||||
zh: 0c93d3a39e2bc1f4
|
||||
/agent-note-terminal-llm-stream-failures/problem:
|
||||
en: 41363fca57ae20e6
|
||||
zh: 1d05eeeecaafa7f3
|
||||
/agent-note-terminal-llm-stream-failures/decision:
|
||||
en: c3bfde5f736f8b27
|
||||
zh: f51ebb4089df6406
|
||||
/agent-note-terminal-llm-stream-failures/alternatives-considered:
|
||||
en: 46153a92b2135aae
|
||||
zh: 0b8fdaf1f7edeb77
|
||||
/agent-note-terminal-llm-stream-failures/consequences:
|
||||
en: 9bf05473682c5cef
|
||||
zh: b93f32470eb08cf4
|
||||
+18
-5
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-30-credential-boundaries-and-atomic-registration.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-30-credential-boundaries-and-atomic-registration.md
|
||||
2026-07-30-credential-boundaries-and-atomic-registration.md: 0e65bb1093bb21c3a0dbee71b4e80ba4276b9d00
|
||||
2026-07-30-credential-boundaries-and-atomic-registration.zh.md: cbc66efa26065beb54ee1deea0f69221ebd92337
|
||||
/agent-note-credential-boundaries-whole-snapshot-requests-and-atomic-route-registration:
|
||||
en: 0b33f9d64be7149a
|
||||
zh: 365ea54cf9fd4924
|
||||
/agent-note-credential-boundaries-whole-snapshot-requests-and-atomic-route-registration/problem:
|
||||
en: 6228c81e4965b688
|
||||
zh: 04b702be0cfbf195
|
||||
/agent-note-credential-boundaries-whole-snapshot-requests-and-atomic-route-registration/decision:
|
||||
en: d2aa88cf1e9ec97b
|
||||
zh: da9422723fc9ac93
|
||||
/agent-note-credential-boundaries-whole-snapshot-requests-and-atomic-route-registration/alternatives-considered:
|
||||
en: 90c5883b247f7301
|
||||
zh: 6d2a660d8653f805
|
||||
/agent-note-credential-boundaries-whole-snapshot-requests-and-atomic-route-registration/consequences:
|
||||
en: 99b678779110e0d1
|
||||
zh: 5790590caab41e0c
|
||||
+21
-5
@@ -1,6 +1,22 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-30-followup-enqueue-and-owned-runs.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-30-followup-enqueue-and-owned-runs.md
|
||||
2026-07-30-followup-enqueue-and-owned-runs.md: c9b3b992dffb39c94b476cd6541b8ec9e2256047
|
||||
2026-07-30-followup-enqueue-and-owned-runs.zh.md: 7f272484cad4f9d0fd918e5c1b05fb8fcb0384c0
|
||||
/agent-note-follow-up-enqueue-and-owned-run-boundaries:
|
||||
en: 30b533c813f80a2c
|
||||
zh: 5f56ae990ca597f2
|
||||
/agent-note-follow-up-enqueue-and-owned-run-boundaries/problem:
|
||||
en: 33387f4ed29e967b
|
||||
zh: b61ab718327d4cc9
|
||||
/agent-note-follow-up-enqueue-and-owned-run-boundaries/decision:
|
||||
en: 9d68149d8090d355
|
||||
zh: d3efa8ac850603bf
|
||||
/agent-note-follow-up-enqueue-and-owned-run-boundaries/alternatives-considered:
|
||||
en: 70a57101ffa08e81
|
||||
zh: 36c3539ee9c759af
|
||||
/agent-note-follow-up-enqueue-and-owned-run-boundaries/verification:
|
||||
en: 4c65688fc0bc1f6c
|
||||
zh: 04f1fd160e38a69d
|
||||
/agent-note-follow-up-enqueue-and-owned-run-boundaries/consequences:
|
||||
en: 7de608183c0bd34d
|
||||
zh: 598eeb85cfd2993b
|
||||
+24
-5
@@ -1,6 +1,25 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-30-session-end-seed-log-boundary.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-30-session-end-seed-log-boundary.md
|
||||
2026-07-30-session-end-seed-log-boundary.md: 9cf7c7f20701688208e8b1c343904f2a9f2cab9e
|
||||
2026-07-30-session-end-seed-log-boundary.zh.md: fdf4ec9de610f17e792de98334dd5d37f5e4c355
|
||||
/agent-note-the-end-seed-log-boundary:
|
||||
en: 0f53ca9c0166d7ad
|
||||
zh: e16b2376c2afb1bc
|
||||
/agent-note-the-end-seed-log-boundary/problem:
|
||||
en: e7192f854b24129c
|
||||
zh: 74a38ee95988e338
|
||||
/agent-note-the-end-seed-log-boundary/decision:
|
||||
en: 519aa4faadd01960
|
||||
zh: 1430cc9bd81e7df9
|
||||
/agent-note-the-end-seed-log-boundary/persistence-needs-no-changes:
|
||||
en: 5df69ed0156e50c8
|
||||
zh: 9ad6caad6d33b183
|
||||
/agent-note-the-end-seed-log-boundary/scope-of-the-guarantee:
|
||||
en: 31c23e4e25640fb1
|
||||
zh: d207c2a8aa7d936c
|
||||
/agent-note-the-end-seed-log-boundary/alternatives-considered:
|
||||
en: cd1ed7dfa77722ae
|
||||
zh: 4ad834f3cf3b5443
|
||||
/agent-note-the-end-seed-log-boundary/consequences:
|
||||
en: 69eb86480b191135
|
||||
zh: 51ef88fb78701b1f
|
||||
+21
-5
@@ -1,6 +1,22 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-31-claimed-pre-step-inbox-lifecycle.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-31-claimed-pre-step-inbox-lifecycle.md
|
||||
2026-07-31-claimed-pre-step-inbox-lifecycle.md: 3ebb73279e49c2aaffa05bea647fa3f93ba6a36f
|
||||
2026-07-31-claimed-pre-step-inbox-lifecycle.zh.md: 809470e5b52b29cdcbe7b4d81bb584b476f5cfce
|
||||
/agent-note-claim-inbox-input-before-one-pre-step-decision:
|
||||
en: 4ee4c56f27c9bf27
|
||||
zh: 72321b4c735e106f
|
||||
/agent-note-claim-inbox-input-before-one-pre-step-decision/problem:
|
||||
en: f2a920b8770c2f99
|
||||
zh: 1c111f175131714e
|
||||
/agent-note-claim-inbox-input-before-one-pre-step-decision/decision:
|
||||
en: 2e58afbd8ffbce60
|
||||
zh: 40e0c0e3d24fc7ad
|
||||
/agent-note-claim-inbox-input-before-one-pre-step-decision/alternatives-considered:
|
||||
en: 03496db1c0547f71
|
||||
zh: c0932cfcb5d5d93b
|
||||
/agent-note-claim-inbox-input-before-one-pre-step-decision/verification:
|
||||
en: 007a79d6db18cbab
|
||||
zh: 611306fcb5edfda0
|
||||
/agent-note-claim-inbox-input-before-one-pre-step-decision/consequences:
|
||||
en: ba68c3ce7ed64bcc
|
||||
zh: 8fe29186526b258a
|
||||
+18
-5
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-31-goal-owned-durable-events.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-31-goal-owned-durable-events.md
|
||||
2026-07-31-goal-owned-durable-events.md: 0d3e632ba275f38e48fdf1f9ee6747f4bc460aab
|
||||
2026-07-31-goal-owned-durable-events.zh.md: fd29a6f36eed42f5ba26a46a32acb165d1e42873
|
||||
/agent-note-goal-owned-durable-events:
|
||||
en: a8fca44de335547c
|
||||
zh: e0cc7072f2247a19
|
||||
/agent-note-goal-owned-durable-events/problem:
|
||||
en: 882023626c792880
|
||||
zh: 1966501718e96f92
|
||||
/agent-note-goal-owned-durable-events/decision:
|
||||
en: cc99d9ce1f6ebb9a
|
||||
zh: 34e519f16d8d5e3e
|
||||
/agent-note-goal-owned-durable-events/alternatives-considered:
|
||||
en: 7d79dfa834d9168f
|
||||
zh: 0b3e82a7d0ef71b9
|
||||
/agent-note-goal-owned-durable-events/consequences:
|
||||
en: 0e4513ea5e3e1e2e
|
||||
zh: 69d81ba52ee2f4b6
|
||||
+24
-5
@@ -1,6 +1,25 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-07-31-ptc-runtime-python-fd3-protocol.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-07-31-ptc-runtime-python-fd3-protocol.md
|
||||
2026-07-31-ptc-runtime-python-fd3-protocol.md: 097bcfd55f333a0973084f378a6c97cb630a4bec
|
||||
2026-07-31-ptc-runtime-python-fd3-protocol.zh.md: ac656e421bd822994c50c33d0dfaf65ae46aa817
|
||||
/agent-note-the-ptc-runtime-python-fd-3-frame-protocol:
|
||||
en: fc43bcfc72cc4476
|
||||
zh: c81279cb0da1481c
|
||||
/agent-note-the-ptc-runtime-python-fd-3-frame-protocol/problem:
|
||||
en: 2c36946bbff637b7
|
||||
zh: f290de0866ba7caa
|
||||
/agent-note-the-ptc-runtime-python-fd-3-frame-protocol/decision:
|
||||
en: 1f93159850fc7f48
|
||||
zh: dcc2a4788e3254f7
|
||||
/agent-note-the-ptc-runtime-python-fd-3-frame-protocol/wire-contract:
|
||||
en: 913f9465320dc191
|
||||
zh: f8e0338645d6c204
|
||||
/agent-note-the-ptc-runtime-python-fd-3-frame-protocol/mirror-alignment:
|
||||
en: 26128b65f2763920
|
||||
zh: df24359faebcbfed
|
||||
/agent-note-the-ptc-runtime-python-fd-3-frame-protocol/alternatives-considered:
|
||||
en: cc42636bd7793305
|
||||
zh: e196f980daec3037
|
||||
/agent-note-the-ptc-runtime-python-fd-3-frame-protocol/consequences:
|
||||
en: 16df6efd46d71e85
|
||||
zh: 4062475bec04ab5f
|
||||
+75
-5
@@ -1,6 +1,76 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-02-typert-remote-method-calls.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-02-typert-remote-method-calls.md
|
||||
2026-08-02-typert-remote-method-calls.md: 2a12aaf78f638d8af786d2ca817a3fee07a2c614
|
||||
2026-08-02-typert-remote-method-calls.zh.md: bf4a7b0179b4dc878a0a53c7076c02e6f1bf0273
|
||||
/agent-note-typert-gateway-targeted-method-calls:
|
||||
en: 4d77bacdc36f246b
|
||||
zh: b884bf274df490af
|
||||
/agent-note-typert-gateway-targeted-method-calls/problem:
|
||||
en: 14a83a0440499136
|
||||
zh: 15587f8e821c5a17
|
||||
/agent-note-typert-gateway-targeted-method-calls/decision:
|
||||
en: 44d946b53496974c
|
||||
zh: 403447c25a5b2d7c
|
||||
/agent-note-typert-gateway-targeted-method-calls/components-and-cordis-services:
|
||||
en: aa7f509189ade32e
|
||||
zh: ef2841bc793f31b2
|
||||
/agent-note-typert-gateway-targeted-method-calls/business-declarations:
|
||||
en: c6b70d442b137d2e
|
||||
zh: 6d0dbefe89937ef1
|
||||
/agent-note-typert-gateway-targeted-method-calls/decorators-and-the-explicit-gateway-facet:
|
||||
en: 155afbe4b8af600b
|
||||
zh: 14705698a9cdbd84
|
||||
/agent-note-typert-gateway-targeted-method-calls/lookup-and-remote-scope-registration:
|
||||
en: 9f7448898cf5cadc
|
||||
zh: 419573c589ed6f7d
|
||||
/agent-note-typert-gateway-targeted-method-calls/invocationdescriptor:
|
||||
en: aad682229b400d49
|
||||
zh: 60c2857fca1f4b2b
|
||||
/agent-note-typert-gateway-targeted-method-calls/typert-runtime-registry:
|
||||
en: 14ad652e20e699ca
|
||||
zh: 9272bc04a35e3c6a
|
||||
/agent-note-typert-gateway-targeted-method-calls/canonical-types-symbols-and-zod:
|
||||
en: a244f6a88fdabf3d
|
||||
zh: e4feedb7297f4865
|
||||
/agent-note-typert-gateway-targeted-method-calls/three-artifact-kinds-and-two-typescript-programs:
|
||||
en: 6ea4bddcf35a834d
|
||||
zh: 4af474c6818b1cf0
|
||||
/agent-note-typert-gateway-targeted-method-calls/the-remote-package-entry:
|
||||
en: 75e977fe0fb71d59
|
||||
zh: 00760c79da173cb7
|
||||
/agent-note-typert-gateway-targeted-method-calls/strict-consumer-api-types:
|
||||
en: 983f55c0ed4a8edc
|
||||
zh: 5a736e00e4b57e6a
|
||||
/agent-note-typert-gateway-targeted-method-calls/client-typert-and-the-api-gateway-client-face:
|
||||
en: 9dc732c13ffaee63
|
||||
zh: 4977aaef0856956d
|
||||
/agent-note-typert-gateway-targeted-method-calls/cross-environment-isomorphism-constraints:
|
||||
en: 5d14e1b7afc53efb
|
||||
zh: e2f4b5814083738f
|
||||
/agent-note-typert-gateway-targeted-method-calls/src-and-lib-operating-modes:
|
||||
en: 1e366dcfab74831b
|
||||
zh: 14199f25f20a9352
|
||||
/agent-note-typert-gateway-targeted-method-calls/host-gateway-resolution:
|
||||
en: 88a95d7ab4621caf
|
||||
zh: 89b63fb6440fca79
|
||||
/agent-note-typert-gateway-targeted-method-calls/the-shared-api-call-chain:
|
||||
en: 391a59d0ba24cb34
|
||||
zh: b7294d6bb5f9d297
|
||||
/agent-note-typert-gateway-targeted-method-calls/connection-and-protocol-boundaries:
|
||||
en: e8f9d48c42e27fb6
|
||||
zh: 445bc192d67c71f1
|
||||
/agent-note-typert-gateway-targeted-method-calls/package-boundaries:
|
||||
en: df2c448d3a0680eb
|
||||
zh: 47327d4d26ec5887
|
||||
/agent-note-typert-gateway-targeted-method-calls/shipped-scope-and-deferred-work:
|
||||
en: b1c0c3dd77c56ce8
|
||||
zh: 769ffd4aeefd949c
|
||||
/agent-note-typert-gateway-targeted-method-calls/alternatives-considered:
|
||||
en: 0d68c499b7780f4f
|
||||
zh: bdd1e57232b996e2
|
||||
/agent-note-typert-gateway-targeted-method-calls/verification:
|
||||
en: 7433bdb522bb2083
|
||||
zh: 545c17613b636f00
|
||||
/agent-note-typert-gateway-targeted-method-calls/consequences:
|
||||
en: c3459afdb606cfbe
|
||||
zh: ec69f2bb39170a7c
|
||||
+18
-5
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-04-configuration-source-ownership.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# 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-configuration-source-ownership.md
|
||||
2026-08-04-configuration-source-ownership.md: 6dea1f08a9f2a0319f894a504082ff70bbe1118f
|
||||
2026-08-04-configuration-source-ownership.zh.md: 1ccf2c266c3e52f2f10d3bceb3b1505ae6266b15
|
||||
/agent-note-one-ordering-for-configuration-sources-and-what-a-discovered-file-may-not-decide:
|
||||
en: 1f6ee603f36c2e09
|
||||
zh: e08197958663219c
|
||||
/agent-note-one-ordering-for-configuration-sources-and-what-a-discovered-file-may-not-decide/problem:
|
||||
en: d94bb81479bfa4a1
|
||||
zh: af44ceaecf84ee51
|
||||
/agent-note-one-ordering-for-configuration-sources-and-what-a-discovered-file-may-not-decide/decision:
|
||||
en: aea80ece13f2905b
|
||||
zh: a880bc1a7839cf12
|
||||
/agent-note-one-ordering-for-configuration-sources-and-what-a-discovered-file-may-not-decide/consequences:
|
||||
en: 640b7ee4e8c57ed0
|
||||
zh: 1c17b3fba16861a8
|
||||
/agent-note-one-ordering-for-configuration-sources-and-what-a-discovered-file-may-not-decide/alternatives-considered:
|
||||
en: ac43499cfe7b8495
|
||||
zh: e5ab599e7d3ed753
|
||||
@@ -4,6 +4,8 @@ Status: implemented
|
||||
|
||||
English | [中文](2026-08-04-configuration-source-ownership.zh.md)
|
||||
|
||||
The non-secret settings tier below is superseded by [profile-owned live configuration](2026-09-19-profile-owned-live-configuration.md). Credential ordering and environment restrictions remain current.
|
||||
|
||||
## Problem
|
||||
|
||||
`$DSH_HOME/.env` had just [become an ordinary environment layer](../../archived/architecture/2026-08-04-credentials-yaml-and-user-environment-layer.md), which left the harness resolving user-facing values from a flattened `process.env` that could no longer say where a value came from. Three consequences followed.
|
||||
|
||||
@@ -4,6 +4,8 @@ Status: implemented
|
||||
|
||||
[English](2026-08-04-configuration-source-ownership.md) | 中文
|
||||
|
||||
下文的非秘密 settings 层已由 [profile 所属实时配置](2026-09-19-profile-owned-live-configuration.zh.md) 替代。凭据优先级与环境限制仍然适用。
|
||||
|
||||
## Problem
|
||||
|
||||
`$DSH_HOME/.env` 刚刚[变成普通环境层](../../archived/architecture/2026-08-04-credentials-yaml-and-user-environment-layer.md),这使得 harness 解析面向用户的值时面对的是一个压平的 `process.env`,再也说不清某个值来自哪里。由此产生三个后果。
|
||||
|
||||
+24
-5
@@ -1,6 +1,25 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-04-draft-provider-endpoint-interrogation.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# 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-draft-provider-endpoint-interrogation.md
|
||||
2026-08-04-draft-provider-endpoint-interrogation.md: 469ab38b0f5609808a9df03237d4d21c0080d843
|
||||
2026-08-04-draft-provider-endpoint-interrogation.zh.md: 74c6bc7ed73572d5e99ea973c9ea94d22319cbdf
|
||||
/agent-note-interrogating-a-draft-provider-endpoint:
|
||||
en: a465a218bbc2f74e
|
||||
zh: 60d1eae3c79337a0
|
||||
/agent-note-interrogating-a-draft-provider-endpoint/problem:
|
||||
en: c50e44492b4b30a2
|
||||
zh: 74a17b3d3ec6cf0d
|
||||
/agent-note-interrogating-a-draft-provider-endpoint/decision:
|
||||
en: dc323940d59008f4
|
||||
zh: fc94284fcda71542
|
||||
/agent-note-interrogating-a-draft-provider-endpoint/decision/why-not-pi-ai-s-own-refresh-machinery:
|
||||
en: a9654499e32c91b3
|
||||
zh: cfb5a76500b6fe1a
|
||||
/agent-note-interrogating-a-draft-provider-endpoint/alternatives-considered:
|
||||
en: 3b4b4c33401d862a
|
||||
zh: bb79062a431576f1
|
||||
/agent-note-interrogating-a-draft-provider-endpoint/consequences:
|
||||
en: a4911a205e713f60
|
||||
zh: 04adc6be1f4f34c7
|
||||
/agent-note-interrogating-a-draft-provider-endpoint/testing:
|
||||
en: 40cf0cf6141eba6e
|
||||
zh: 54a6097cf125b846
|
||||
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-05-profile-plugin-bundles.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-05-profile-plugin-bundles.md
|
||||
2026-08-05-profile-plugin-bundles.md: 0607f1c9a2414cc16515967b4520da8a325853fd
|
||||
2026-08-05-profile-plugin-bundles.zh.md: 9d25d3bea6337c472d161c721e44a66dca8470c9
|
||||
/agent-note-profile-plugin-bundles-replace-the-fixed-surface-overlays:
|
||||
en: 178252acff6e206f
|
||||
zh: 2e5785ca3485f1e7
|
||||
/agent-note-profile-plugin-bundles-replace-the-fixed-surface-overlays/problem:
|
||||
en: 504dd5f06475d707
|
||||
zh: 6557fd5649f48944
|
||||
/agent-note-profile-plugin-bundles-replace-the-fixed-surface-overlays/decision:
|
||||
en: 4c58d379cd59d879
|
||||
zh: a6b6322fe82d7b6a
|
||||
/agent-note-profile-plugin-bundles-replace-the-fixed-surface-overlays/alternatives-considered:
|
||||
en: d906d7a421c6b5c0
|
||||
zh: b230cd58c1b7ac79
|
||||
/agent-note-profile-plugin-bundles-replace-the-fixed-surface-overlays/consequences:
|
||||
en: 1aef147a0f31dfaf
|
||||
zh: f0a8c6cbb9f0506b
|
||||
+93
-5
@@ -1,6 +1,94 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-09-client-conversation-node-assembly.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-09-client-conversation-node-assembly.md
|
||||
2026-08-09-client-conversation-node-assembly.md: bb1d68cc045710d46a44ffb295c2307628338521
|
||||
2026-08-09-client-conversation-node-assembly.zh.md: 6291211d589b3389e7dc9a42d15fe6ac0d9e7ab9
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots:
|
||||
en: 32abbd757c29e1ee
|
||||
zh: ea0b9de97fd04196
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/problem:
|
||||
en: ebdd3ce57ca5b24d
|
||||
zh: 1aa034b4c3ed515f
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision:
|
||||
en: af502b4eb9c09d33
|
||||
zh: a20cd538e66d3a4b
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/responsibility-layers:
|
||||
en: 36b54ef989c331af
|
||||
zh: 58cad4e07a800ba9
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract:
|
||||
en: 74f17ca7ae05af83
|
||||
zh: 591fbc6c98f90262
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/kind-business-id-and-context-key:
|
||||
en: 3081736d55350c67
|
||||
zh: bfa89f127c16c59f
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/match-event:
|
||||
en: 5c97a2a4e91325a7
|
||||
zh: d29e52647b699810
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/conversationmatch:
|
||||
en: 616c50e24ab990d1
|
||||
zh: 2c4a6d129f491046
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/conversationnodecontext:
|
||||
en: 7d1ce8db92084e90
|
||||
zh: 7b7e6bf3840f6986
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/start-context-match-reader:
|
||||
en: 1167bbc860581e33
|
||||
zh: 549896c06507ce57
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/reader-previous-kind:
|
||||
en: 48e127652f2dab8d
|
||||
zh: 35f48d4cefc8ce52
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/update-context-match:
|
||||
en: 66bd752825ad2c41
|
||||
zh: 1cec352eb3d7ab28
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/publication-match:
|
||||
en: 43be4c019d79e37a
|
||||
zh: 54978ef8317e777b
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/buildlocationdata-context-scope:
|
||||
en: 8c2b8eab071f5f7b
|
||||
zh: d3207b1fcfff0a4b
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/buildviewnode-context-target:
|
||||
en: c8091375cf986eaa
|
||||
zh: 0c3226e3f42e51e4
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/overall-conversationnodedefinition-contract/no-generic-end:
|
||||
en: d5a57346207b0da3
|
||||
zh: cb4a4f22ce237c34
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/decision/location-is-a-first-class-engine-fact:
|
||||
en: c66d870529588ea6
|
||||
zh: c9af12feb1e3fae2
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/three-input-window-paths:
|
||||
en: cc8d60a4ceba6f41
|
||||
zh: 552220db9f839429
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/three-input-window-paths/initial-history-tail-and-logical-backward-scanning:
|
||||
en: a777deacfd73ed3f
|
||||
zh: 2a9c75dd0aeedcd5
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/three-input-window-paths/prepending-a-newly-loaded-older-page:
|
||||
en: 3aa4c0a9006b35e8
|
||||
zh: 9627f4aaa18c8066
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/three-input-window-paths/forward-live-append:
|
||||
en: 484172cce965aad7
|
||||
zh: 15fffdd32c66cc95
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/three-input-window-paths/consistency-across-replace-prepend-and-append:
|
||||
en: a9cf356610f46a53
|
||||
zh: abc1149bf06b230e
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/how-built-in-businesses-use-definitions:
|
||||
en: 2a7cae3607dcbc1a
|
||||
zh: 86f6d8eb7871e253
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/how-built-in-businesses-use-definitions/matching-id-and-state:
|
||||
en: 130f5db917574545
|
||||
zh: 9bf13c96abdc3a4e
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/how-built-in-businesses-use-definitions/chat-node-and-history-live-behavior:
|
||||
en: 0c52c9ae98f84a86
|
||||
zh: d1c7587ad427d8fc
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/view-builder-and-react-identity:
|
||||
en: ced7ab385e5a81a8
|
||||
zh: 5c319ed7ca40e5b8
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/runtime-and-render-path:
|
||||
en: 114ca8db361d22e5
|
||||
zh: 37b6d474e855c187
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/verification:
|
||||
en: cf36507c86d1139c
|
||||
zh: 1fcdd4e2c2cc106b
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/alternatives-considered:
|
||||
en: e150870d4e2525ed
|
||||
zh: 34eafb435036af9a
|
||||
/agent-note-client-conversation-business-node-assembly-and-keyed-chat-snapshots/consequences:
|
||||
en: 0da343d3b6b29da3
|
||||
zh: d7b3774a23be7311
|
||||
@@ -14,6 +14,8 @@ Business events also use different correlation models. Tool has call IDs, Assist
|
||||
|
||||
## Decision
|
||||
|
||||
The [three-stage Tool lifecycle](2026-09-22-tool-call-three-phases.md) owns transient initialization, repeated start matches for one ID, and tool preparation; this record's other node-assembly responsibilities remain applicable.
|
||||
|
||||
Client Runtime provides a target-neutral Conversation Node assembly engine. Business plugins register Event Definitions, and view plugins register per-Session View Builders. `ui-conversation` registers the first built-in Definitions and the `chat` builder; Session only submits the current contiguous `SessionEventLikeEntry` window to the engine and publishes its snapshot instead of interpreting individual conversation businesses. The entry's outer discriminator distinguishes standard and packed records, while both carry an aligned inner `SessionEventLike` for Definition dispatch.
|
||||
|
||||
This Note retains the derivation, business-by-business validation, responsibilities, algorithms, and trade-offs that remain relevant after implementation.
|
||||
|
||||
+2
@@ -14,6 +14,8 @@ Client Session 既维护传输窗口、连接状态和待处理交互,也在
|
||||
|
||||
## 决策
|
||||
|
||||
start 的瞬态创建入口、同 ID 多次 start 及工具准备阶段以[工具调用三阶段](2026-09-22-tool-call-three-phases.zh.md)为准;本记录的其他节点组装职责继续适用。
|
||||
|
||||
Client Runtime 提供 target-neutral 的 Conversation Node 组装引擎,业务插件注册 Event Definition,视图插件注册 per-Session View Builder。`ui-conversation` 注册第一批内建 Definition 和 `chat` builder;Session 只负责把当前连续 `SessionEventLikeEntry` window 送入引擎并发布它的 snapshot,且不解释具体 conversation 业务。entry 的外层 discriminator 区分标准与 packed record,两者都携带字段对齐的内部 `SessionEventLike`,供 Definition dispatch。
|
||||
|
||||
本 Note 保留实现后仍有价值的方案推导、逐业务适配、职责、算法和取舍。
|
||||
|
||||
+21
-5
@@ -1,6 +1,22 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-10-cancelled-stream-prefix-finalize.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-10-cancelled-stream-prefix-finalize.md
|
||||
2026-08-10-cancelled-stream-prefix-finalize.md: 1e6fe59bcc1b323941b69d0e9232f0bcf9e56f53
|
||||
2026-08-10-cancelled-stream-prefix-finalize.zh.md: 7aa81f179b80925ef47a8820f8a80c1ef37ec5ea
|
||||
/agent-note-cancelled-streams-finalize-their-delivered-prefix:
|
||||
en: d727a01958e5724c
|
||||
zh: b2d11741f70caf24
|
||||
/agent-note-cancelled-streams-finalize-their-delivered-prefix/problem:
|
||||
en: 142c716d174403a5
|
||||
zh: bbb906ca25d7c9f4
|
||||
/agent-note-cancelled-streams-finalize-their-delivered-prefix/decision:
|
||||
en: 28e166977c0dffde
|
||||
zh: d7c6b175984627fc
|
||||
/agent-note-cancelled-streams-finalize-their-delivered-prefix/alternatives-considered:
|
||||
en: ca4363e11e8eff48
|
||||
zh: 834152cbe57e1f3e
|
||||
/agent-note-cancelled-streams-finalize-their-delivered-prefix/consequences:
|
||||
en: 2d58504acfc4fffe
|
||||
zh: a6a7ca872c003099
|
||||
/agent-note-cancelled-streams-finalize-their-delivered-prefix/testing:
|
||||
en: 241507aff996c16a
|
||||
zh: 599eed3162f3ba8d
|
||||
+21
-5
@@ -1,6 +1,22 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-10-fork-children-stay-one-shot.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-10-fork-children-stay-one-shot.md
|
||||
2026-08-10-fork-children-stay-one-shot.md: 4b52122e86df712c4950f9034c1361ac8fee42a8
|
||||
2026-08-10-fork-children-stay-one-shot.zh.md: 2c426a1e7cb3bb33ee3b73675608bcaf726f5583
|
||||
/agent-note-forked-children-preserve-the-parent-request-prefix:
|
||||
en: 5254ea4573dedd96
|
||||
zh: ba4ab4517dad0d9f
|
||||
/agent-note-forked-children-preserve-the-parent-request-prefix/problem:
|
||||
en: 1fe344c95a0de36d
|
||||
zh: 656c3e0f1117f64e
|
||||
/agent-note-forked-children-preserve-the-parent-request-prefix/decision:
|
||||
en: b70aafc9ce30dd00
|
||||
zh: 74e3ff915bd968a9
|
||||
/agent-note-forked-children-preserve-the-parent-request-prefix/alternatives-considered:
|
||||
en: 80504ffd8331e6c5
|
||||
zh: 193261bdde24b4bb
|
||||
/agent-note-forked-children-preserve-the-parent-request-prefix/consequences:
|
||||
en: 0738d36f17c889b5
|
||||
zh: b71ee47f75d6d4e0
|
||||
/agent-note-forked-children-preserve-the-parent-request-prefix/consequences/accepted-risks:
|
||||
en: f634caa9973eaedb
|
||||
zh: 820291096c8e7352
|
||||
+21
-5
@@ -1,6 +1,22 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-10-host-plane-ownership-after-presets.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-10-host-plane-ownership-after-presets.md
|
||||
2026-08-10-host-plane-ownership-after-presets.md: daf48f27c2228b71319d6f5410e6cabe3bc02b39
|
||||
2026-08-10-host-plane-ownership-after-presets.zh.md: 56babf5e715584b4ee061a334158d46e59b0d350
|
||||
/agent-note-what-stays-host-plane-once-presets-own-the-agent-plane:
|
||||
en: 4b22d7def09af6eb
|
||||
zh: 89b43fb2761cb17b
|
||||
/agent-note-what-stays-host-plane-once-presets-own-the-agent-plane/problem:
|
||||
en: 5a5d4de7d40ed86b
|
||||
zh: abfae08f9c291c54
|
||||
/agent-note-what-stays-host-plane-once-presets-own-the-agent-plane/decision:
|
||||
en: 60be2f515ff5f46d
|
||||
zh: ee8514deadb08260
|
||||
/agent-note-what-stays-host-plane-once-presets-own-the-agent-plane/testing:
|
||||
en: a7b7ca354607dd21
|
||||
zh: f88356bfc7dc770e
|
||||
/agent-note-what-stays-host-plane-once-presets-own-the-agent-plane/alternatives-considered:
|
||||
en: eac46307265e647d
|
||||
zh: acfad02f8ca1dc3f
|
||||
/agent-note-what-stays-host-plane-once-presets-own-the-agent-plane/consequences:
|
||||
en: d8576d7db9dea547
|
||||
zh: 428bb5a7e609d170
|
||||
@@ -1,6 +1,40 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-10-remote-event-delivery.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-10-remote-event-delivery.md
|
||||
2026-08-10-remote-event-delivery.md: 3eaa26fb92c40b3a20cab11d4522bcf68b8a207f
|
||||
2026-08-10-remote-event-delivery.zh.md: d41589f1b800da98342210d2e429a2b67b6c61f2
|
||||
/agent-note-remote-event-delivery-ctx-remote-on:
|
||||
en: 4b64b9fab76b5185
|
||||
zh: 57a11b8a480a49dd
|
||||
/agent-note-remote-event-delivery-ctx-remote-on/problem:
|
||||
en: d3016e40cefe047f
|
||||
zh: 83e83c25a13383e5
|
||||
/agent-note-remote-event-delivery-ctx-remote-on/decision:
|
||||
en: 83f6f48ce1fc517b
|
||||
zh: abcfcd1c0eb777ea
|
||||
/agent-note-remote-event-delivery-ctx-remote-on/decision/consumer-contract-dsh-typert-protocol:
|
||||
en: 8f30b121dd59a3a3
|
||||
zh: 92a5e0e63936c393
|
||||
/agent-note-remote-event-delivery-ctx-remote-on/decision/the-allowlist-one-declaration-read-by-both-faces:
|
||||
en: ce8c2e030baf7049
|
||||
zh: bb6beb40228e40ae
|
||||
/agent-note-remote-event-delivery-ctx-remote-on/decision/wire-protocol-api-gateway-remote-mux:
|
||||
en: 5c89d238a469e79f
|
||||
zh: d0cf485f0d245e7d
|
||||
/agent-note-remote-event-delivery-ctx-remote-on/decision/the-apps-web-browser-e2e-belongs-to-the-host-face:
|
||||
en: a29e07b8013f7f9f
|
||||
zh: 4f066efa96f2d22f
|
||||
/agent-note-remote-event-delivery-ctx-remote-on/decision/change-inventory:
|
||||
en: 49fc44d242a87b69
|
||||
zh: 42c4c36296849a88
|
||||
/agent-note-remote-event-delivery-ctx-remote-on/alternatives-considered:
|
||||
en: b75743ab277c1557
|
||||
zh: e8e05f41ce1bc2f3
|
||||
/agent-note-remote-event-delivery-ctx-remote-on/verification:
|
||||
en: 4ec0e1c76da8d3b6
|
||||
zh: 23de66f8fc659c15
|
||||
/agent-note-remote-event-delivery-ctx-remote-on/consequences:
|
||||
en: c50a0968e3f65df7
|
||||
zh: 786f33cf1e95dae4
|
||||
/agent-note-remote-event-delivery-ctx-remote-on/related:
|
||||
en: b64e771dafa6c05b
|
||||
zh: 4c2f47884f5a2d19
|
||||
+21
-5
@@ -1,6 +1,22 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-10-session-log-version-mechanism.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-10-session-log-version-mechanism.md
|
||||
2026-08-10-session-log-version-mechanism.md: 9cb0940f767aa27d5a5106fb78b528c1e3e2695b
|
||||
2026-08-10-session-log-version-mechanism.zh.md: e1424f24e5dd74b243fe1f0aebceb5d420b9b8c3
|
||||
/agent-note-session-log-versioning-one-integer-an-upgrade-chain-and-a-per-event-ignorable-marker:
|
||||
en: a3c7418dfaa328a8
|
||||
zh: e702faa662f821ae
|
||||
/agent-note-session-log-versioning-one-integer-an-upgrade-chain-and-a-per-event-ignorable-marker/problem:
|
||||
en: c11f54e24be6cc3b
|
||||
zh: c1c274fbb161a57b
|
||||
/agent-note-session-log-versioning-one-integer-an-upgrade-chain-and-a-per-event-ignorable-marker/decision:
|
||||
en: 084bcb4de484ef32
|
||||
zh: 1edf1445913ac7b1
|
||||
/agent-note-session-log-versioning-one-integer-an-upgrade-chain-and-a-per-event-ignorable-marker/decision/writer-and-publication-authority:
|
||||
en: 461eaa03c6a4f441
|
||||
zh: 7e5b131326dc702c
|
||||
/agent-note-session-log-versioning-one-integer-an-upgrade-chain-and-a-per-event-ignorable-marker/consequences:
|
||||
en: 8ce6dcec183fab88
|
||||
zh: a43e9315ad147b15
|
||||
/agent-note-session-log-versioning-one-integer-an-upgrade-chain-and-a-per-event-ignorable-marker/alternatives-considered:
|
||||
en: 2a1580516406ae53
|
||||
zh: 7a650804eb520be0
|
||||
+24
-5
@@ -1,6 +1,25 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-13-credential-records-and-authorization-flows.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-13-credential-records-and-authorization-flows.md
|
||||
2026-08-13-credential-records-and-authorization-flows.md: 6bf65761c98689d62935d6e36a040e05c38aa653
|
||||
2026-08-13-credential-records-and-authorization-flows.zh.md: 72ec310c2ff0141f83096c805d5ccd60fe5cd57e
|
||||
/agent-note-credential-records-and-authorization-flows:
|
||||
en: f624412adde88819
|
||||
zh: ac1adbc505394ca2
|
||||
/agent-note-credential-records-and-authorization-flows/problem:
|
||||
en: 7be98011b76b2376
|
||||
zh: e01cd9f1039c7875
|
||||
/agent-note-credential-records-and-authorization-flows/decision:
|
||||
en: 57e30c6b56664fee
|
||||
zh: ab1c7354b47f503e
|
||||
/agent-note-credential-records-and-authorization-flows/decision/two-mechanisms-the-seams-needed-underneath:
|
||||
en: e4d5663533e566a2
|
||||
zh: 212a1722b78ee727
|
||||
/agent-note-credential-records-and-authorization-flows/alternatives-considered:
|
||||
en: bb484a8d612a43cd
|
||||
zh: 2a85ba010ed083e1
|
||||
/agent-note-credential-records-and-authorization-flows/consequences:
|
||||
en: ef7c5f6fa346c1d8
|
||||
zh: 439b0d8394015f1e
|
||||
/agent-note-credential-records-and-authorization-flows/testing:
|
||||
en: 6c8c01f75e6f916b
|
||||
zh: 7c5c7491f64f2936
|
||||
+30
-5
@@ -1,6 +1,31 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-15-client-shells-and-dynamic-packages.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-15-client-shells-and-dynamic-packages.md
|
||||
2026-08-15-client-shells-and-dynamic-packages.md: ad2bb26b84253e859e567775eec3b06d73b0003b
|
||||
2026-08-15-client-shells-and-dynamic-packages.zh.md: 70563962b3c613caa611c61a0c690d2e0e777def
|
||||
/agent-note-client-shell-layering-and-dynamic-package-boundaries:
|
||||
en: c8976de4e5547fdd
|
||||
zh: 3d1bcb3273993af4
|
||||
/agent-note-client-shell-layering-and-dynamic-package-boundaries/problem:
|
||||
en: bd5f38c7aba648dc
|
||||
zh: 3c28670556b3b34d
|
||||
/agent-note-client-shell-layering-and-dynamic-package-boundaries/decision:
|
||||
en: a15c7c13f167e5ac
|
||||
zh: a15c7c13f167e5ac
|
||||
/agent-note-client-shell-layering-and-dynamic-package-boundaries/decision/layers-and-build-forms:
|
||||
en: a1750de2d48551af
|
||||
zh: ffea0b75c292f186
|
||||
/agent-note-client-shell-layering-and-dynamic-package-boundaries/decision/shared-module-requests:
|
||||
en: cedddcca8a7bae6d
|
||||
zh: a568a1130229f48c
|
||||
/agent-note-client-shell-layering-and-dynamic-package-boundaries/decision/parser-preloading-and-react-handoff:
|
||||
en: 4b503618b271fc28
|
||||
zh: e2148f44efa769d2
|
||||
/agent-note-client-shell-layering-and-dynamic-package-boundaries/decision/dependency-declarations:
|
||||
en: 47c332b836c2933b
|
||||
zh: ed190dbb14b98911
|
||||
/agent-note-client-shell-layering-and-dynamic-package-boundaries/alternatives-considered:
|
||||
en: 2257178f8f474757
|
||||
zh: 7da85b5899b91520
|
||||
/agent-note-client-shell-layering-and-dynamic-package-boundaries/consequences:
|
||||
en: c7653b12059aebd7
|
||||
zh: a79b63f28d18f8c4
|
||||
+18
-5
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-18-experimental-agent-teams-packages.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-18-experimental-agent-teams-packages.md
|
||||
2026-08-18-experimental-agent-teams-packages.md: 92eba148b328135301b196c9a17e49ee23ddb3f6
|
||||
2026-08-18-experimental-agent-teams-packages.zh.md: 6f4d004a78e32e2c27ad65648c446b3cd54c07ad
|
||||
/agent-note-publish-agent-teams-under-experimental-package-names:
|
||||
en: 4c772309d60d4ccc
|
||||
zh: 91bf0acc208e5167
|
||||
/agent-note-publish-agent-teams-under-experimental-package-names/problem:
|
||||
en: e45938d278a6c12d
|
||||
zh: 93c790d466f7bd12
|
||||
/agent-note-publish-agent-teams-under-experimental-package-names/decision:
|
||||
en: a2555b0c5a6f6f53
|
||||
zh: f7082ceb8542b0fb
|
||||
/agent-note-publish-agent-teams-under-experimental-package-names/alternatives-considered:
|
||||
en: 869decdfbc7b3466
|
||||
zh: b51f5ab731d1a84a
|
||||
/agent-note-publish-agent-teams-under-experimental-package-names/consequences:
|
||||
en: f827547f976bf92b
|
||||
zh: d94e17b8fa2e8304
|
||||
+57
-5
@@ -1,6 +1,58 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-18-session-history-and-event-transport.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-18-session-history-and-event-transport.md
|
||||
2026-08-18-session-history-and-event-transport.md: db5c403562101bca76c0d39a037a199b2ca164f3
|
||||
2026-08-18-session-history-and-event-transport.zh.md: 41ff3ea2dd538edb457e0db3108a900bab220e47
|
||||
/agent-note-session-history-control-state-and-remote-event-transport:
|
||||
en: 79e15a9da0b4053b
|
||||
zh: fb9719cd520abf7b
|
||||
/agent-note-session-history-control-state-and-remote-event-transport/problem:
|
||||
en: b40a730a4cd03535
|
||||
zh: 10d5a61824b53443
|
||||
/agent-note-session-history-control-state-and-remote-event-transport/decision:
|
||||
en: bbe86a1833ab5547
|
||||
zh: 987a2ade8b4cb909
|
||||
/agent-note-session-history-control-state-and-remote-event-transport/decision/connection-generation-and-physical-connections:
|
||||
en: c4342f89bf96a63b
|
||||
zh: f8749f02bcfccc4e
|
||||
/agent-note-session-history-control-state-and-remote-event-transport/decision/general-remote-stream-model:
|
||||
en: fb2c7bcde3b1672a
|
||||
zh: a05bd30be07e5413
|
||||
/agent-note-session-history-control-state-and-remote-event-transport/decision/general-remote-stream-model/remotestream:
|
||||
en: d55c2ce88400e448
|
||||
zh: 344d510ab946bb9f
|
||||
/agent-note-session-history-control-state-and-remote-event-transport/decision/general-remote-stream-model/remotesnapshotstream:
|
||||
en: f2c1d2b00d9554fd
|
||||
zh: c3e85cf344f7ef24
|
||||
/agent-note-session-history-control-state-and-remote-event-transport/decision/general-remote-stream-model/remotejournalstream:
|
||||
en: d5d0d6a57a4fa581
|
||||
zh: 265973b157f957d9
|
||||
/agent-note-session-history-control-state-and-remote-event-transport/decision/session-controller:
|
||||
en: e338ac27490a380f
|
||||
zh: 12600011ec742e5b
|
||||
/agent-note-session-history-control-state-and-remote-event-transport/decision/session-controller/activation-policy:
|
||||
en: 534dcc62a26d305e
|
||||
zh: 03d64abc0a46bbec
|
||||
/agent-note-session-history-control-state-and-remote-event-transport/decision/session-controller/session-journal:
|
||||
en: bb710f8cf35f2028
|
||||
zh: aae2cfb8cd848069
|
||||
/agent-note-session-history-control-state-and-remote-event-transport/decision/session-controller/session-live-control:
|
||||
en: a11d627cd68650c3
|
||||
zh: 9aff565b9f712853
|
||||
/agent-note-session-history-control-state-and-remote-event-transport/decision/workspace-controller:
|
||||
en: ce0c3fcff169412d
|
||||
zh: 7076182817358dff
|
||||
/agent-note-session-history-control-state-and-remote-event-transport/decision/remote-event:
|
||||
en: c76291bf39999882
|
||||
zh: 76f032664fb91ead
|
||||
/agent-note-session-history-control-state-and-remote-event-transport/decision/api-proxy-s-remaining-boundary:
|
||||
en: 457408013eb78636
|
||||
zh: 126e9d263225d7c4
|
||||
/agent-note-session-history-control-state-and-remote-event-transport/alternatives-considered:
|
||||
en: 22a77c3afd4df0d6
|
||||
zh: 661cf8d02d741f1d
|
||||
/agent-note-session-history-control-state-and-remote-event-transport/verification:
|
||||
en: 7328f28ba3e32f4c
|
||||
zh: 2150f20437a473af
|
||||
/agent-note-session-history-control-state-and-remote-event-transport/consequences:
|
||||
en: 808ce6d1310876a2
|
||||
zh: d9e8fe2aa5cda617
|
||||
+18
-5
@@ -1,6 +1,19 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-19-session-projection-mandatory-seam.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-19-session-projection-mandatory-seam.md
|
||||
2026-08-19-session-projection-mandatory-seam.md: e1c6835311228fcaf7a22140f1db8da748603186
|
||||
2026-08-19-session-projection-mandatory-seam.zh.md: 5d6a5169a556febae3f5c960b2d519c324d99863
|
||||
/agent-note-session-projections-as-a-required-reader-seam:
|
||||
en: 41f30d473ff53ce2
|
||||
zh: 6851c4414f5331c1
|
||||
/agent-note-session-projections-as-a-required-reader-seam/problem:
|
||||
en: c0c779c717cad546
|
||||
zh: 5d2916ac86bf5d84
|
||||
/agent-note-session-projections-as-a-required-reader-seam/decision:
|
||||
en: a1c50d2f43334a88
|
||||
zh: d7736994733454b4
|
||||
/agent-note-session-projections-as-a-required-reader-seam/alternatives-considered:
|
||||
en: aea3da939c90d240
|
||||
zh: 21e91c481cdd23b7
|
||||
/agent-note-session-projections-as-a-required-reader-seam/consequences:
|
||||
en: 73325513ec70fbb2
|
||||
zh: 610bf34b9f9db420
|
||||
+150
-5
@@ -1,6 +1,151 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-20-client-session-conversation-ownership.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-20-client-session-conversation-ownership.md
|
||||
2026-08-20-client-session-conversation-ownership.md: 0d2f19cff1d4625d678a25c87bcc55fc3f2bfad4
|
||||
2026-08-20-client-session-conversation-ownership.zh.md: fdb2420efff88e0a5a33dba79bebf0d072280453
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers:
|
||||
en: 24e6b5894fbcdc97
|
||||
zh: 1fe37f9234be5ff4
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/problem:
|
||||
en: 87d3188b6f534c2a
|
||||
zh: e805eb702d3f0f7f
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/decision:
|
||||
en: 0db1b673e3486661
|
||||
zh: ce9fdf739a211943
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/layering-principles:
|
||||
en: 8fa111a6c0477c2c
|
||||
zh: 89bfc65c4986c521
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/layering-principles/controllers-are-react-free-logic-owners:
|
||||
en: 821989170ad76994
|
||||
zh: 0ed142bea166fc3a
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/layering-principles/ui-adapters-own-react-integration:
|
||||
en: 4d032e048364fb97
|
||||
zh: 82a435531efdaa78
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/layering-principles/slot-scopes-and-standard-props-are-separate:
|
||||
en: b6f585ca87e1fc6f
|
||||
zh: 53fd58c3e93cf17c
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/package-ownership:
|
||||
en: 2fc4b50a651b1847
|
||||
zh: 7dceeecb9c58e838
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/overall-data-flow:
|
||||
en: e7c11e82db080dd4
|
||||
zh: 5a8a501a128366d6
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/session-controller-client:
|
||||
en: b88f651b1bfb8b5e
|
||||
zh: b88f651b1bfb8b5e
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/session-controller-client/scope-of-sessionsnapshot:
|
||||
en: 0abb8da3074137f6
|
||||
zh: 92a0074930bb63b6
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/session-controller-client/three-read-faces:
|
||||
en: 87f83e04ee6bfe38
|
||||
zh: 9bf3548897e80e45
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/session-controller-client/sessioneventsource:
|
||||
en: 377ec73183b2e461
|
||||
zh: 6f24c1f723d20938
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/session-controller-client/session-binding-lifecycle:
|
||||
en: d03dd92afa683183
|
||||
zh: b9b7ae5d845bf472
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/ui-session:
|
||||
en: 860315b96703371d
|
||||
zh: 860315b96703371d
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/ui-session/service-responsibilities:
|
||||
en: d075ba28fd37bff2
|
||||
zh: e2d430d1f3e89b15
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/ui-session/standard-source-registration:
|
||||
en: e4be6d4b1d79b342
|
||||
zh: 7cb0e8c0f6358b50
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/ui-session/scope-binding:
|
||||
en: 84c20cce96035340
|
||||
zh: d1cc2a2e5f86f86b
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/ui-session/sessionprovider:
|
||||
en: 5d9bdb1f784f97f2
|
||||
zh: a4b3de7a21b84fce
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/ui-session/pending-interactions:
|
||||
en: 85e358a03ffac4ba
|
||||
zh: 54b1d5ed6197f2c2
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/workspace-controller-and-ui-workspace:
|
||||
en: 45e5f41550e62a3d
|
||||
zh: d4e6d8f5b397bb51
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/workspace-controller-and-ui-workspace/scope-of-workspacesnapshot:
|
||||
en: db0bb2a43bbdbbcc
|
||||
zh: a064d7ffc42bb4a1
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/workspace-controller-and-ui-workspace/ui-workspace-composition-responsibilities:
|
||||
en: cb73b43d8b485bd0
|
||||
zh: 134538a67bf6da0d
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/ui-conversation:
|
||||
en: b23aedfa06639f39
|
||||
zh: b23aedfa06639f39
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/ui-conversation/assembly-core:
|
||||
en: c004ba2b21b22344
|
||||
zh: ae66652c239ec213
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/ui-conversation/definition-and-view-registries:
|
||||
en: d35b868d88cff47d
|
||||
zh: 0e718ca3efdbf224
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/ui-conversation/conversation-react-adapter:
|
||||
en: 913a8f9b4f481bff
|
||||
zh: ca18aa731f15250f
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/ui-conversation/input-and-composer:
|
||||
en: 0a38e5b9f71f06f9
|
||||
zh: 40077352131fae48
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/chat-and-trajectory-targets:
|
||||
en: 8ad17fee25bef35f
|
||||
zh: b5e3d07111cdde7a
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/chat-and-trajectory-targets/chat-owner:
|
||||
en: 43a4a38d9500ebd4
|
||||
zh: 2df24d5530ab11a7
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/chat-and-trajectory-targets/trajectory-owner:
|
||||
en: c8d48f4e7ac3a6f2
|
||||
zh: a65f680c30f6123c
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/approval-and-question:
|
||||
en: 45e1a7d1a4f8b73a
|
||||
zh: 712e01e736199846
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/approval-and-question/stable-registration:
|
||||
en: 877881c5ae993245
|
||||
zh: 6098103c5414c6e9
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/approval-and-question/one-waterfall-request:
|
||||
en: b1ff0285ab378448
|
||||
zh: 9acc318381df9cce
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/approval-and-question/one-pending-projection:
|
||||
en: 4cbfb31b44db8d6e
|
||||
zh: 110e5067c82bbce3
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/ui-renderer-and-store:
|
||||
en: d8de1632a217da9f
|
||||
zh: 32e68fc042041f42
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/ui-renderer-and-store/ui-renderer:
|
||||
en: 928e5816ad6430ea
|
||||
zh: b3e658f276d4e572
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/ui-renderer-and-store/store:
|
||||
en: bf24926000a4fc38
|
||||
zh: 702ecdb4aab9dc12
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/ui-renderer-and-store/registration-and-release-order:
|
||||
en: 7f9a4b5da9c857a4
|
||||
zh: 6e5d5c870fcea214
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/composition-and-dependency-direction:
|
||||
en: 6ec1176913cdabab
|
||||
zh: b0a0c8f443e51d33
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/developer-guidance:
|
||||
en: 53c7e08a0e422d7e
|
||||
zh: 57a1417c0a4d5dd5
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/developer-guidance/choose-the-data-owner-first:
|
||||
en: e16f4903a20d477c
|
||||
zh: bfe217c7d93314ed
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/developer-guidance/add-session-scoped-data:
|
||||
en: e5e6831f726d1e68
|
||||
zh: 1a12311f64b7da5c
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/developer-guidance/add-a-conversation-target:
|
||||
en: a5ecfa4225fa559b
|
||||
zh: e1da4db4f80e246b
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/developer-guidance/add-a-pending-interaction-domain:
|
||||
en: 19985324015f1b4a
|
||||
zh: 3055d88e1173a2db
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/developer-guidance/review-checks:
|
||||
en: 2800c6393a75210d
|
||||
zh: 7bdf8911d3f0bb22
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/verification:
|
||||
en: 04c54874beafe7ff
|
||||
zh: e13dffa5d952069a
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/alternatives-considered:
|
||||
en: 83dce7fe89397a9f
|
||||
zh: 8076ebb1d61ba6bf
|
||||
/agent-note-client-session-conversation-and-ui-ownership-layers/consequences:
|
||||
en: 307497e3f0eb2158
|
||||
zh: c7189a9811edb4a2
|
||||
+36
-5
@@ -1,6 +1,37 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-21-deepseek-llm-api-request-extensions.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-21-deepseek-llm-api-request-extensions.md
|
||||
2026-08-21-deepseek-llm-api-request-extensions.md: 7a3609a3f7d8b2aa6edb634643ef234b7e3e8c07
|
||||
2026-08-21-deepseek-llm-api-request-extensions.zh.md: 69426df3cc85851e448b98dc51af79555b8cbafc
|
||||
/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages:
|
||||
en: bbb93b705960a21b
|
||||
zh: 0fc6fc150215f08f
|
||||
/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/problem:
|
||||
en: 4945ce54f66df55c
|
||||
zh: 9fbd833c1d8122a7
|
||||
/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/decision:
|
||||
en: 2388519a1afaac92
|
||||
zh: 6bf758f0560e29a5
|
||||
/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/incremental-session-log-field:
|
||||
en: 4e3138fbdd94259b
|
||||
zh: 8fda801522045b88
|
||||
/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/plugin-package-field:
|
||||
en: 0e51b8d8a1bd60fc
|
||||
zh: dd18fd176c3f101f
|
||||
/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/deferred-inventory-caching:
|
||||
en: eb69576e756f4aa1
|
||||
zh: 5c1923159da3f7a2
|
||||
/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/verification:
|
||||
en: 0bda0074b5e11b44
|
||||
zh: 4989c1bb840c78ce
|
||||
/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/alternatives-considered:
|
||||
en: 5faf7699272f99b4
|
||||
zh: 7a402e24c80131cf
|
||||
/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/alternatives-considered/why-not-request-relative-message-references:
|
||||
en: 3f03c2028adf5814
|
||||
zh: c50f7f7b0af04655
|
||||
/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/alternatives-considered/why-not-omit-assistant-chunks-or-overlapping-event-data:
|
||||
en: b6eff63f49220dcc
|
||||
zh: 8e4a6c785ed2256a
|
||||
/agent-note-deepseek-llm-api-request-extensions-for-session-logs-and-plugin-packages/consequences:
|
||||
en: 144fc01ad3b2b9bd
|
||||
zh: 0acff935bd7835de
|
||||
+3
-3
@@ -14,13 +14,13 @@ Both values belong only on the official DeepSeek adapter path. Adding them to `G
|
||||
|
||||
## Decision
|
||||
|
||||
`@deepseek-ai/dsh-deepseek-llm-api-extensions` registers `ctx.deepseekLlmApiExtensions`, an additive registry of top-level fields for `deepseek-official` request bodies. A contributor claims one declaration-merged field with `register()`. The adapter invokes `prepare()` after serializing the exact wire messages, passes the request cancellation signal, rejects preparation or base-field collision before HTTP, merges the detached fields, and calls the captured `accept()` transaction after HTTP 2xx. The registry stops awaiting preparation after cancellation even if a contributor ignores the signal. Acceptance failures remain request failures under `REQUEST_EXTENSION`; transport and non-2xx failures never accept a contribution. A composition without the registry retains the reusable base adapter. Shipped compositions mount the registry and both contributors: both package metadata and Session-log upload are enabled by default; `session-log-deepseek.enabled: false` disables log upload under the [default-upload decision](2026-09-14-session-log-upload-default.md). Keyless `deepseek-official` replay invokes preparation with a synthetic empty base body and the same acceptance transaction before its first recorded chunk, preserving post-2xx extension side effects rather than field bytes.
|
||||
`@deepseek-ai/dsh-deepseek-llm-api-extensions` registers `ctx.deepseekLlmApiExtensions`, an additive registry of top-level fields for `deepseek-official` request bodies. A contributor claims one declaration-merged field with `register()`. The adapter invokes `prepare()` after serializing the exact wire messages, passes the request cancellation signal, rejects preparation or base-field collision before HTTP, merges the detached fields, and calls the captured `accept()` transaction after HTTP 2xx. A merged body that fails to serialize is sent without extension fields or acceptance under the [bounded-upload decision](2026-09-24-bounded-session-log-upload.md). The registry stops awaiting preparation after cancellation even if a contributor ignores the signal. Acceptance failures remain request failures under `REQUEST_EXTENSION`; transport and non-2xx failures never accept a contribution. A composition without the registry retains the reusable base adapter. Shipped compositions mount the registry and both contributors: both package metadata and Session-log upload are enabled by default; `session-log-deepseek.enabled: false` disables log upload under the [default-upload decision](2026-09-14-session-log-upload-default.md). Keyless `deepseek-official` replay invokes preparation with a synthetic empty base body and the same acceptance transaction before its first recorded chunk, preserving post-2xx extension side effects rather than field bytes.
|
||||
|
||||
The provider-neutral `llm` package and `llm-pi-ai` contain no extension type, service lookup, field merge, or acceptance call.
|
||||
|
||||
## Incremental session-log field
|
||||
|
||||
`@deepseek-ai/dsh-session-log-deepseek` owns the default-on `dsh_session_log` field. When enabled, each request carrying a live Session id sends the contiguous canonical event suffix after the greatest durable `session-log-deepseek/delivery-accepted` watermark for that same Session identity. The field includes the immutable Session header and complete event envelopes. A 2xx appends a new watermark for the transmitted `throughSeq`; that event enters the following request's suffix. Forked logs retain parent watermark ids, so a child starts from sequence zero under its own identity. Concurrent acceptances may arrive out of order, and the maximum watermark remains authoritative. A process-local fold scans each Session event once and incrementally consumes later appends; a new Session object or HMR generation rebuilds the fold from durable history.
|
||||
`@deepseek-ai/dsh-session-log-deepseek` owns the default-on `dsh_session_log` field. When enabled, each request carrying a live Session id sends the longest contiguous canonical event run after the greatest durable `session-log-deepseek/delivery-accepted` watermark for that same Session identity that fits the `maxBytes` limit of the [bounded-upload decision](2026-09-24-bounded-session-log-upload.md). The field includes the immutable Session header and complete event envelopes. A 2xx appends a new watermark for the transmitted `throughSeq`; that event enters the following request's suffix. Forked logs retain parent watermark ids, so a child starts from sequence zero under its own identity. Concurrent acceptances may arrive out of order, and the maximum watermark remains authoritative. A process-local fold scans each Session event once and incrementally consumes later appends; a new Session object or HMR generation rebuilds the fold from durable history.
|
||||
|
||||
The failure direction is at least once. A transport or provider rejection records no watermark. A crash after remote acceptance but before the watermark persists causes replay after resume, never a skipped sequence. Existing session checkpoints persist the event; the upload plugin owns no second store.
|
||||
|
||||
@@ -85,7 +85,7 @@ About 98% of the measured v1 real-session events were `assistant/chunk`. Omittin
|
||||
|
||||
## Consequences
|
||||
|
||||
Official DeepSeek requests carry active package versions to their resolved `baseURL`, including configured gateways. Unless Session-log upload is disabled, each eligible request also carries the complete newly unaccepted Session suffix. The fields are model-hidden and add no prompt tokens or KV-cache changes, but can substantially increase HTTP body size. Manifest resolution, field collision, acceptance logging, or provider schema rejection fails the model request rather than silently dropping metadata.
|
||||
Official DeepSeek requests carry active package versions to their resolved `baseURL`, including configured gateways. Unless Session-log upload is disabled, each eligible request also carries newly unaccepted Session events, up to `maxBytes` per request. The fields are model-hidden and add no prompt tokens or KV-cache changes, but can substantially increase HTTP body size. Manifest resolution, field collision, acceptance logging, or provider schema rejection fails the model request rather than silently dropping metadata. A merged body that fails to serialize is the exception: the request proceeds without extension fields and logs a warning.
|
||||
|
||||
The `delivery-accepted` event becomes part of the canonical log and is itself delivered on a later request. Crash recovery can duplicate a suffix but does not infer acceptance from assistant output or create a second local cursor store. Direct calls without a live Session omit the session field; host package inventory remains available.
|
||||
|
||||
|
||||
+3
-3
@@ -14,13 +14,13 @@ Status: implemented
|
||||
|
||||
## 决策
|
||||
|
||||
`@deepseek-ai/dsh-deepseek-llm-api-extensions` 注册 `ctx.deepseekLlmApiExtensions`,即 `deepseek-official` 请求正文顶层字段的增量注册表。贡献方通过 `register()` 认领一个经声明合并的字段。适配器在序列化确切协议消息后调用 `prepare()`、传入请求取消信号,在 HTTP 前拒绝准备失败或基础字段冲突,合并分离字段,并在 HTTP 2xx 后调用捕获的 `accept()` 事务。即使贡献方忽略信号,注册表也会在取消后停止等待准备。接受失败仍以 `REQUEST_EXTENSION` 使请求失败;传输失败与非 2xx 失败绝不会接受贡献。未挂载注册表的组合会保留可复用基础适配器。随附组合会挂载注册表与两个贡献方:插件包元数据和会话日志上传均默认开启;按[默认上传决策](2026-09-14-session-log-upload-default.zh.md),设置 `session-log-deepseek.enabled: false` 可关闭日志上传。无密钥 `deepseek-official` 回放会使用合成的空基础正文执行准备,并在第一个已记录分片前调用同一接受事务;它保持的是 2xx 后扩展副作用,而非字段字节。
|
||||
`@deepseek-ai/dsh-deepseek-llm-api-extensions` 注册 `ctx.deepseekLlmApiExtensions`,即 `deepseek-official` 请求正文顶层字段的增量注册表。贡献方通过 `register()` 认领一个经声明合并的字段。适配器在序列化确切协议消息后调用 `prepare()`、传入请求取消信号,在 HTTP 前拒绝准备失败或基础字段冲突,合并分离字段,并在 HTTP 2xx 后调用捕获的 `accept()` 事务。合并后的正文无法序列化时,按[有上限上传决策](2026-09-24-bounded-session-log-upload.zh.md)不带扩展字段发送,也不执行接受。即使贡献方忽略信号,注册表也会在取消后停止等待准备。接受失败仍以 `REQUEST_EXTENSION` 使请求失败;传输失败与非 2xx 失败绝不会接受贡献。未挂载注册表的组合会保留可复用基础适配器。随附组合会挂载注册表与两个贡献方:插件包元数据和会话日志上传均默认开启;按[默认上传决策](2026-09-14-session-log-upload-default.zh.md),设置 `session-log-deepseek.enabled: false` 可关闭日志上传。无密钥 `deepseek-official` 回放会使用合成的空基础正文执行准备,并在第一个已记录分片前调用同一接受事务;它保持的是 2xx 后扩展副作用,而非字段字节。
|
||||
|
||||
提供方无关的 `llm` 包与 `llm-pi-ai` 不包含任何扩展类型、服务查找、字段合并或接受调用。
|
||||
|
||||
## 增量会话日志字段
|
||||
|
||||
`@deepseek-ai/dsh-session-log-deepseek` 拥有默认开启的 `dsh_session_log` 字段。启用后,每个携带存活会话 id 的请求都会发送该确切会话身份最大持久 `session-log-deepseek/delivery-accepted` 水位之后的连续权威事件后缀。该字段包含不可变会话 header 与完整事件信封。2xx 会为已发送的 `throughSeq` 追加新水位;该事件会进入下一次请求的后缀。Fork 日志会保留父级水位 id,因此子会话会在自己的身份下从序列零开始。并发接受可能乱序到达,最大水位仍保持权威。进程内 fold 会让每条会话事件只被扫描一次,并增量消费后续追加;新的会话对象或 HMR generation 会从持久历史重建该 fold。
|
||||
`@deepseek-ai/dsh-session-log-deepseek` 拥有默认开启的 `dsh_session_log` 字段。启用后,每个携带存活会话 id 的请求都会发送该确切会话身份最大持久 `session-log-deepseek/delivery-accepted` 水位之后、能放进[有上限上传决策](2026-09-24-bounded-session-log-upload.zh.md)中 `maxBytes` 上限的最长连续权威事件段。该字段包含不可变会话 header 与完整事件信封。2xx 会为已发送的 `throughSeq` 追加新水位;该事件会进入下一次请求的后缀。Fork 日志会保留父级水位 id,因此子会话会在自己的身份下从序列零开始。并发接受可能乱序到达,最大水位仍保持权威。进程内 fold 会让每条会话事件只被扫描一次,并增量消费后续追加;新的会话对象或 HMR generation 会从持久历史重建该 fold。
|
||||
|
||||
失败方向为至少一次。传输失败或提供方拒绝不会记录水位。远端接受后、水位持久化前发生崩溃,会在恢复后触发重放,绝不会跳过序列。现有会话检查点会持久化该事件;上传插件不拥有第二份存储。
|
||||
|
||||
@@ -85,7 +85,7 @@ Status: implemented
|
||||
|
||||
## 后果
|
||||
|
||||
DeepSeek 官方请求会把存活包版本发送到解析后的 `baseURL`,包括已配置 gateway。除非关闭会话日志上传,否则符合条件的请求还会携带完整的未接受会话新后缀。这些字段对模型不可见,不增加提示词 token,也不改变 KV Cache,但可能显著增大 HTTP 正文。Manifest 解析、字段冲突、接受记录或提供方 schema 拒绝会使模型请求失败,而不会静默丢弃元数据。
|
||||
DeepSeek 官方请求会把存活包版本发送到解析后的 `baseURL`,包括已配置 gateway。除非关闭会话日志上传,否则符合条件的请求还会携带新的未接受会话事件,每次最多 `maxBytes`。这些字段对模型不可见,不增加提示词 token,也不改变 KV Cache,但可能显著增大 HTTP 正文。Manifest 解析、字段冲突、接受记录或提供方 schema 拒绝会使模型请求失败,而不会静默丢弃元数据。合并后的正文无法序列化是例外:请求不带扩展字段继续发送,并记录一条告警。
|
||||
|
||||
`delivery-accepted` 事件会成为权威日志的一部分,并在后续请求中自行交付。崩溃恢复可能重复后缀,但不会根据 assistant 输出推断接受,也不会创建第二份本地游标存储。缺少存活会话的直接调用会省略会话字段;宿主包清单仍然可用。
|
||||
|
||||
|
||||
+39
-5
@@ -1,6 +1,40 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-22-single-dsh-application-launcher.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-22-single-dsh-application-launcher.md
|
||||
2026-08-22-single-dsh-application-launcher.md: 46a627eed652a0a0edaf7b900510b5d369efcdf0
|
||||
2026-08-22-single-dsh-application-launcher.zh.md: b7fa0f2b35c2fbf6c3a28f463b73170c84547a40
|
||||
/agent-note-one-dsh-launcher-for-application-profiles:
|
||||
en: c0b608af89f3a9b4
|
||||
zh: 2995eef6243889d5
|
||||
/agent-note-one-dsh-launcher-for-application-profiles/problem:
|
||||
en: 34b82725480cf15b
|
||||
zh: 83cff42d5a38e64f
|
||||
/agent-note-one-dsh-launcher-for-application-profiles/decision:
|
||||
en: a15c7c13f167e5ac
|
||||
zh: a15c7c13f167e5ac
|
||||
/agent-note-one-dsh-launcher-for-application-profiles/decision/launch-scope:
|
||||
en: 9cea027468d5d37c
|
||||
zh: 359c6cb7842b8b7f
|
||||
/agent-note-one-dsh-launcher-for-application-profiles/decision/profile-applications:
|
||||
en: 44028538e06420d3
|
||||
zh: 71cf992b7847d822
|
||||
/agent-note-one-dsh-launcher-for-application-profiles/decision/typescript-sdk-customization:
|
||||
en: 8ee88035cf64eeb3
|
||||
zh: 6184e50fc4d47348
|
||||
/agent-note-one-dsh-launcher-for-application-profiles/decision/python-runtime:
|
||||
en: e154533170f1cdb6
|
||||
zh: 20f8f0d5e111f447
|
||||
/agent-note-one-dsh-launcher-for-application-profiles/decision/enforcement:
|
||||
en: 9ce8d86b65064f38
|
||||
zh: 27b8ad426cb319a2
|
||||
/agent-note-one-dsh-launcher-for-application-profiles/existing-decisions-and-supersession:
|
||||
en: 71599a4df773fe78
|
||||
zh: d12ae1625d11cc9c
|
||||
/agent-note-one-dsh-launcher-for-application-profiles/alternatives-considered:
|
||||
en: 763d9f86e10af3db
|
||||
zh: e87b35f1f7425da7
|
||||
/agent-note-one-dsh-launcher-for-application-profiles/verification:
|
||||
en: 0b883651974d3ac3
|
||||
zh: 8ed0bb3ee97a25f8
|
||||
/agent-note-one-dsh-launcher-for-application-profiles/consequences:
|
||||
en: 8453d34835bf6ada
|
||||
zh: 86308a497c969b81
|
||||
+228
-5
@@ -1,6 +1,229 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-23-client-derived-tool-presentation.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-23-client-derived-tool-presentation.md
|
||||
2026-08-23-client-derived-tool-presentation.md: 931276fa6d4c0590746b6c59eeae9f998f05629c
|
||||
2026-08-23-client-derived-tool-presentation.zh.md: b930f98da17a1cb6ecbf605e3a9f37255ba75fc9
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events:
|
||||
en: de8d02e979715600
|
||||
zh: 1db4d0364c30a7e3
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/problem:
|
||||
en: 9f34c53e647c69ca
|
||||
zh: 551776c7cc9618b5
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/decision:
|
||||
en: 5c8de416b8fa0fb1
|
||||
zh: 1662926ba8e17405
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/decision/goals-and-non-goals:
|
||||
en: 4ff7b07cb79bc9de
|
||||
zh: a74ec6e7ebbede0a
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/terminology:
|
||||
en: 021106dd41176715
|
||||
zh: 131caff7bd37251b
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/architecture-and-ownership:
|
||||
en: 5cc496057205b298
|
||||
zh: 160158394dfa2df3
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/architecture-and-ownership/tool-execution-and-persistence:
|
||||
en: 675a1da36b918a3b
|
||||
zh: 88b8d338e9cfcd79
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/architecture-and-ownership/host-journal-reads:
|
||||
en: 36345a3eb5801cdf
|
||||
zh: 498fd14beaaadd9c
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/architecture-and-ownership/client-data-and-presentation:
|
||||
en: 72e14ba086d89e90
|
||||
zh: a451a63c3ab9e5d8
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/architecture-and-ownership/production-consumer-audit:
|
||||
en: 5351e75c1e417359
|
||||
zh: b14b28c44f723de5
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/data-flow:
|
||||
en: 357a34a2f7796545
|
||||
zh: 671b1ef7b2c64cec
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/data-flow/layer-responsibilities:
|
||||
en: f6c95424849ed9c8
|
||||
zh: 0c7ef9254d9f20c0
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/remote-and-durable-data-contracts:
|
||||
en: 6d865d0eb0c5e003
|
||||
zh: 1eb0fb7acfb30975
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/remote-and-durable-data-contracts/sessionevententry:
|
||||
en: 178513914d9c931c
|
||||
zh: 23b39e82c90a247e
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/remote-and-durable-data-contracts/durable-log:
|
||||
en: 6a0aa4dac1cf48d7
|
||||
zh: 23753410e5056612
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/remote-and-durable-data-contracts/presentationmeta:
|
||||
en: 51f99cfca9c4c808
|
||||
zh: ce95bab241d306f7
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/host-design:
|
||||
en: 16fd2b3e545ede21
|
||||
zh: 4d28f52132495441
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/host-design/performance-constraints:
|
||||
en: 102b14e3eb9367ff
|
||||
zh: d391099dbc41db24
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/client-session-and-conversation:
|
||||
en: 46a772ac51da43a2
|
||||
zh: 8709a7e3e6a872f1
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/client-session-and-conversation/root-and-ptc-dispatch-subcalls:
|
||||
en: 2c8ff511a5527a72
|
||||
zh: 3eeddc9686ff1709
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/client-session-and-conversation/missing-call-head:
|
||||
en: b9efc339173e546e
|
||||
zh: c7639861b3b96e83
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/client-session-and-conversation/argument-and-metadata-narrowing:
|
||||
en: 1ec566ca574374c7
|
||||
zh: 4bab6b7050a57afa
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/client-card-model-design:
|
||||
en: f40f0a8ee8c055c0
|
||||
zh: 6957b7372956113c
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/client-card-model-design/generic-tool-row:
|
||||
en: 20ff82b092325c5c
|
||||
zh: 1afd5441a9816117
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/client-card-model-design/terminal-card:
|
||||
en: eab7f366df331b6e
|
||||
zh: d82499e2a982206f
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/client-card-model-design/diff-card:
|
||||
en: ea384415c94f82da
|
||||
zh: 5f146c6cb534e1db
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/client-card-model-design/read-card:
|
||||
en: 0fd9413ae837a36d
|
||||
zh: 0e421eb162021983
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/client-card-model-design/search-card:
|
||||
en: 5a655646431ad75b
|
||||
zh: 67cafcbead983495
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/client-card-model-design/web-card:
|
||||
en: bc6415353d231ae0
|
||||
zh: a4614630b60d1dc1
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/client-card-model-design/renderers-already-using-raw-blocks:
|
||||
en: b8fc7a1a4dbdd45e
|
||||
zh: ea97490599b29481
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/deliverables:
|
||||
en: f1769a479af834d4
|
||||
zh: 083397eeed5263b8
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/fixtures-and-test-data:
|
||||
en: e5b42aa311079bd7
|
||||
zh: ec4cf97037ece7e0
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/presentation-equivalence-matrix:
|
||||
en: 30915c26728eeafe
|
||||
zh: eea04dea7b4604a5
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/client-extension-contract:
|
||||
en: 96619dfd5ef299cf
|
||||
zh: 253df98eb42ad75e
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/failures-and-fallback:
|
||||
en: 4cca3e16a9f2d13b
|
||||
zh: 6952abf98801837d
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/same-named-host-providers:
|
||||
en: 12b3304157f058ad
|
||||
zh: 497fa0defe1bd2cd
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/shipped-scope:
|
||||
en: 25ddd2f604230fd0
|
||||
zh: 7f3b1b5863252635
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/shipped-scope/session-controller:
|
||||
en: 23ff740eb2e5245f
|
||||
zh: 72c9907849e56656
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/shipped-scope/session-controller-client:
|
||||
en: 57d3babfb1ce3429
|
||||
zh: 80284ebf7ad31446
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/shipped-scope/ui-conversation-chat-and-trajectory:
|
||||
en: dafc7a3c08c1823a
|
||||
zh: 426ef3358597c64a
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/shipped-scope/ui-tool-and-deliverables:
|
||||
en: 9e090419d542afe8
|
||||
zh: 8e1b743d750bd402
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/shipped-scope/fixtures-documentation-and-generated-artifacts:
|
||||
en: 99f628433b484f98
|
||||
zh: 65536e9b4c3dacc4
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/verification-matrix:
|
||||
en: 5fae53c1eaed3f11
|
||||
zh: bbce23df01398151
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/verification-matrix/host:
|
||||
en: 0150b57068fef08a
|
||||
zh: 5fe2e638b0fd1aa8
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/verification-matrix/client-conversation:
|
||||
en: b04bf4f1c89917b5
|
||||
zh: 8757c90691c48712
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/verification-matrix/client-card-model:
|
||||
en: 7d57f2e54d287fce
|
||||
zh: 6b96d4fa8e4a6b0f
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/verification-matrix/deliverables:
|
||||
en: 434f4f269d9b0858
|
||||
zh: 3eeb8ac42364fb25
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/verification-matrix/assembly-and-browser:
|
||||
en: 5c43e9a729a57a4f
|
||||
zh: aef26f6ef83f1fe1
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/verification-matrix/static-and-documentation:
|
||||
en: d25ffb1f8f60e04c
|
||||
zh: 3a105c9669a9b978
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/verification-commands:
|
||||
en: f562776ceda2ac53
|
||||
zh: 24c833727dc5c260
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/shipped-invariants:
|
||||
en: 3377510eb7639807
|
||||
zh: 1d7cdf2a67cf9bde
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered:
|
||||
en: 6119e2aff3b6be5a
|
||||
zh: 6119e2aff3b6be5a
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/optimize-only-backscanargs-and-retain-views:
|
||||
en: a478eeddf0f47cf7
|
||||
zh: e9943194d90cf793
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/add-a-presenter-registry-to-the-client:
|
||||
en: 96a616a8296de2ad
|
||||
zh: 988b7f46698aed1c
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/have-the-conversation-tool-definition-produce-one-unified-view:
|
||||
en: 088a7896e8967523
|
||||
zh: da6f8ddaaf2923a7
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/delete-presentationmeta:
|
||||
en: 41c11f4e2c14917f
|
||||
zh: f06d53dbd7170557
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/persist-canonical-tool-results:
|
||||
en: a6b1064482cb48c5
|
||||
zh: 3fe58419d0aec36d
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/delete-host-presenter-apis:
|
||||
en: 6bfc4306addf18d4
|
||||
zh: f03c6460d4207e83
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/import-host-tool-implementations-into-the-client:
|
||||
en: d709f38059905c10
|
||||
zh: f216be6b8cb18938
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/query-presentation-from-the-host-per-result:
|
||||
en: bc8905288acaa820
|
||||
zh: ff551936bd5ea93f
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/allow-presentation-enhancements:
|
||||
en: fc270977e320fd0a
|
||||
zh: bb77a11ec6973d03
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/alternatives-considered/accept-temporary-generic-degradation:
|
||||
en: 1a8fd108d32bd199
|
||||
zh: 5cd1c7adf3fe824d
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences:
|
||||
en: fc74ce3d77d3f6f1
|
||||
zh: 5bf52b18d86ea925
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/client-and-host-logic-drift:
|
||||
en: 9314413ed5b41d10
|
||||
zh: 0cca0d80eb421b9c
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/same-named-providers-lack-stable-identity:
|
||||
en: 81e3e790bb32e2b2
|
||||
zh: 2b0f0194ee22e414
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/metadata-is-unknown-json:
|
||||
en: 631d7726c1bfb908
|
||||
zh: 52e58e2e0aae1610
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/preset-owned-projection-availability:
|
||||
en: c12c5a464eefe88a
|
||||
zh: d184c0cefbbabfee
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/two-targets-must-stay-synchronized:
|
||||
en: 9ee330e015d9b569
|
||||
zh: 11d50bce62b91298
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/deliverables-has-a-hidden-dependency:
|
||||
en: c9f4fc5ce7c0e6cc
|
||||
zh: bb1b73b7313112e2
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/fixtures-can-create-false-confidence:
|
||||
en: 5f21119c0a360eaa
|
||||
zh: f656f35d802ec74a
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/incorrectly-refreshing-snapshots:
|
||||
en: aeab59c94afe3c5f
|
||||
zh: 77378f5aa76e9056
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/documentation-drift:
|
||||
en: 4c724d879b27bd5d
|
||||
zh: 63b58c6ab26d7934
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/consequences/remote-protocol-narrowing:
|
||||
en: d7e581086940fafa
|
||||
zh: d452320fee6ef875
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/relationship-to-existing-decisions:
|
||||
en: f7501cfad1c94062
|
||||
zh: 2574582ee86c3c4a
|
||||
/agent-note-client-derived-presentation-from-raw-session-tool-events/deferred:
|
||||
en: dcd92bc33fbb1885
|
||||
zh: 3d1ea8a6b3f3f3a7
|
||||
+21
-5
@@ -1,6 +1,22 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-23-locale-owned-client-ui-copy.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-23-locale-owned-client-ui-copy.md
|
||||
2026-08-23-locale-owned-client-ui-copy.md: bc4d8efbce1f246f712e3afe6af40d1518e8cb17
|
||||
2026-08-23-locale-owned-client-ui-copy.zh.md: ce996a4aafc392e739bec2eccd8714cfeff7d8e9
|
||||
/agent-note-locale-owned-client-ui-copy:
|
||||
en: 048ebc19d489b40d
|
||||
zh: 681d1c4167f0101f
|
||||
/agent-note-locale-owned-client-ui-copy/problem:
|
||||
en: b007d31d9998b878
|
||||
zh: 857921e0d57288f9
|
||||
/agent-note-locale-owned-client-ui-copy/decision:
|
||||
en: 8a5e0abec93fcb91
|
||||
zh: bf9fe95e48fc7eb6
|
||||
/agent-note-locale-owned-client-ui-copy/verification:
|
||||
en: bc9daa07456e8496
|
||||
zh: 9edeae0d970cc6b2
|
||||
/agent-note-locale-owned-client-ui-copy/alternatives-considered:
|
||||
en: b04fd6aaa9b4fff5
|
||||
zh: 7551d86cad9a862a
|
||||
/agent-note-locale-owned-client-ui-copy/consequences:
|
||||
en: fd435e249b7409e1
|
||||
zh: e0b147cfcb565516
|
||||
+21
-5
@@ -1,6 +1,22 @@
|
||||
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# Bilingual-pair consistency record for 2026-08-24-browser-token-authentication.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-24-browser-token-authentication.md
|
||||
2026-08-24-browser-token-authentication.md: 47d6afe1bf4cd8169eb4e8ec92a30bf0fee32c8a
|
||||
2026-08-24-browser-token-authentication.zh.md: 13ecf55e41c7bb1455177bdd6a87a3a83d94ca6f
|
||||
/agent-note-browser-launch-token-authentication:
|
||||
en: 7ab4daa548c2b5a7
|
||||
zh: 33a76129efc2079a
|
||||
/agent-note-browser-launch-token-authentication/problem:
|
||||
en: 01293500639c9d79
|
||||
zh: 6d19e4843955c811
|
||||
/agent-note-browser-launch-token-authentication/decision:
|
||||
en: 063f9698b8a94287
|
||||
zh: 848b2c1134b7a100
|
||||
/agent-note-browser-launch-token-authentication/verification:
|
||||
en: 189b36d0fc5f3a17
|
||||
zh: 08993cb585204fc0
|
||||
/agent-note-browser-launch-token-authentication/alternatives-considered:
|
||||
en: 5275c87f19fe6eee
|
||||
zh: ccb922367c4bb3e2
|
||||
/agent-note-browser-launch-token-authentication/consequences:
|
||||
en: 0714a8a7cc74918a
|
||||
zh: 0f3878b09463ab2e
|
||||
Loaded 100 of 5076 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user