diff --git a/.agents/notes/implemented/architecture/2026-08-07-session-projection-mandatory-seam.i18n.yaml b/.agents/notes/implemented/architecture/2026-08-19-session-projection-mandatory-seam.i18n.yaml similarity index 56% rename from .agents/notes/implemented/architecture/2026-08-07-session-projection-mandatory-seam.i18n.yaml rename to .agents/notes/implemented/architecture/2026-08-19-session-projection-mandatory-seam.i18n.yaml index 78b8b2b683..5a3db3ae1f 100644 --- a/.agents/notes/implemented/architecture/2026-08-07-session-projection-mandatory-seam.i18n.yaml +++ b/.agents/notes/implemented/architecture/2026-08-19-session-projection-mandatory-seam.i18n.yaml @@ -1,6 +1,6 @@ # Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: -# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-07-session-projection-mandatory-seam.md -2026-08-07-session-projection-mandatory-seam.md: 6348ae9afdb1689cd4885e658651d1e5a1f44a4b -2026-08-07-session-projection-mandatory-seam.zh.md: 95f3489275f67fc18a030345e120e2cb8c88c191 +# 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: 9edbece131cdc014f2cdf2ed0199b492b46b3ed1 +2026-08-19-session-projection-mandatory-seam.zh.md: e49081759682315f3503ee3114bebbf60c2d82e9 diff --git a/.agents/notes/implemented/architecture/2026-08-07-session-projection-mandatory-seam.md b/.agents/notes/implemented/architecture/2026-08-19-session-projection-mandatory-seam.md similarity index 97% rename from .agents/notes/implemented/architecture/2026-08-07-session-projection-mandatory-seam.md rename to .agents/notes/implemented/architecture/2026-08-19-session-projection-mandatory-seam.md index 6348ae9afd..9edbece131 100644 --- a/.agents/notes/implemented/architecture/2026-08-07-session-projection-mandatory-seam.md +++ b/.agents/notes/implemented/architecture/2026-08-19-session-projection-mandatory-seam.md @@ -2,7 +2,7 @@ Status: implemented -English | [中文](2026-08-07-session-projection-mandatory-seam.zh.md) +English | [中文](2026-08-19-session-projection-mandatory-seam.zh.md) ## Problem diff --git a/.agents/notes/implemented/architecture/2026-08-07-session-projection-mandatory-seam.zh.md b/.agents/notes/implemented/architecture/2026-08-19-session-projection-mandatory-seam.zh.md similarity index 97% rename from .agents/notes/implemented/architecture/2026-08-07-session-projection-mandatory-seam.zh.md rename to .agents/notes/implemented/architecture/2026-08-19-session-projection-mandatory-seam.zh.md index 95f3489275..e490817596 100644 --- a/.agents/notes/implemented/architecture/2026-08-07-session-projection-mandatory-seam.zh.md +++ b/.agents/notes/implemented/architecture/2026-08-19-session-projection-mandatory-seam.zh.md @@ -2,7 +2,7 @@ Status: implemented -[English](2026-08-07-session-projection-mandatory-seam.md) | 中文 +[English](2026-08-19-session-projection-mandatory-seam.md) | 中文 ## 问题 diff --git a/docs/architecture.i18n.yaml b/docs/architecture.i18n.yaml index 33c813ae3f..da21ba42a0 100644 --- a/docs/architecture.i18n.yaml +++ b/docs/architecture.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write docs/architecture.md -architecture.md: 3ad9dec77f59af84594057e74602a1cc6c31dd18 -architecture.zh.md: e3e2128a71fd9b3abe915e9af2bfe1322f450661 +architecture.md: 764cc1a88fec2629689d7cece4943b2a9af4ab46 +architecture.zh.md: 88b2725a64bf05614453602c067379309d19e94f diff --git a/docs/architecture.md b/docs/architecture.md index 3ad9dec77f..764cc1a88f 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -95,7 +95,7 @@ The session log is the source of the context the model sees. `deriveMessages()` **Model-visible means logged.** Anything that reaches a model request must be reconstructable from the log, and a runtime invariant asserts it. This is why a new model-visible input requires a new session event: extend `SessionEventMap` and render from the log. -**Projection seam.** `dsh-session-projection` owns `ctx.sessionProjections`: registered units fold committed events incrementally, host consumers read one typed state with `stateOf()`, and carriers batch cropped client views with `snapshot()`. Projection contributors and readers require this service, so an incomplete composition fails during activation. The agent loop registers shared `turnBoundary` state instead of making each consumer scan the log ([decision](../.agents/notes/implemented/architecture/2026-08-07-session-projection-mandatory-seam.md)). +**Projection seam.** `dsh-session-projection` owns `ctx.sessionProjections`: registered units fold committed events incrementally, host consumers read one typed state with `stateOf()`, and carriers batch cropped client views with `snapshot()`. Projection contributors and readers require this service, so an incomplete composition fails during activation. The agent loop registers shared `turnBoundary` state instead of making each consumer scan the log ([decision](../.agents/notes/implemented/architecture/2026-08-19-session-projection-mandatory-seam.md)). ## Capability seams diff --git a/docs/architecture.zh.md b/docs/architecture.zh.md index e3e2128a71..88b2725a64 100644 --- a/docs/architecture.zh.md +++ b/docs/architecture.zh.md @@ -99,7 +99,7 @@ turn/end **模型可见即已记录。** 抵达模型请求的一切都必须能从日志重建,并由一项运行时不变量断言这一点。因此,新增一项模型可见输入就需要新增一个会话事件:扩展 `SessionEventMap` 并从日志渲染。 -**投影 seam。** `dsh-session-projection` 提供 `ctx.sessionProjections`:已注册单元增量折叠已提交事件,host 消费方通过 `stateOf()` 读取单个类型化状态,载体通过 `snapshot()` 批量取得裁剪后的客户端视图。投影贡献方和读取方都要求该服务,因此不完整的组合会在激活时失败。agent loop 注册共享的 `turnBoundary` 状态,避免每个消费方各自扫描日志([决策](../.agents/notes/implemented/architecture/2026-08-07-session-projection-mandatory-seam.md))。 +**投影 seam。** `dsh-session-projection` 提供 `ctx.sessionProjections`:已注册单元增量折叠已提交事件,host 消费方通过 `stateOf()` 读取单个类型化状态,载体通过 `snapshot()` 批量取得裁剪后的客户端视图。投影贡献方和读取方都要求该服务,因此不完整的组合会在激活时失败。agent loop 注册共享的 `turnBoundary` 状态,避免每个消费方各自扫描日志([决策](../.agents/notes/implemented/architecture/2026-08-19-session-projection-mandatory-seam.md))。 ## 能力 seam