Merge pull request #4100 from deepseek-harness/worktree/persistence-format-history

docs(session): backfill and require every persistence format reference
This commit is contained in:
Tianyi Cui authored and GitHub committed 2026-09-13 14:58:05 +08:00
commit e9a300f192
150 files changed
+189146 -1668

No files matched your search

@@ -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/implemented/process/2026-08-26-ban-ambiguous-origin-label.md
2026-08-26-ban-ambiguous-origin-label.md: fe06cf5d2dd43a09a2699a4dc48ff5791cffa65e
2026-08-26-ban-ambiguous-origin-label.zh.md: 1389d13992f5566d5b6091740e20433b06dd6e31
2026-08-26-ban-ambiguous-origin-label.md: b4c161a8a963e0aebdb3dcf24b8aac028429f349
2026-08-26-ban-ambiguous-origin-label.zh.md: 2d592f44429d8622b5a42c55c7f92eae6da96800
@@ -18,6 +18,8 @@ The rule applies to source, tests, documentation, active Agent Notes, prompts, s
`verify-concrete-terms` scans tracked filenames, symlink targets, and text case-insensitively after NFKC normalization. It runs as a quick leaf of `doc-sync`, and its tests prove rejection in prose, identifiers, and paths. Vendored sources and frozen archived Agent Notes remain excluded because their repository policies prohibit direct edits.
Historical persistence evidence retains identifiers from its selected source tree. The check excludes release schema JSON under `docs/persistence-changes/releases/` and `docs/persistence-changes/historical-formats/vN.schema.json`. In `vN.md` and `vN.zh.md`, only the schema content inside one valid pair of `persistence-format-schema` markers is exempt; `verify-persistence-formats` requires that content to match the generated historical schema. Authored prose, current catalogs, and current schemas remain checked. Renaming a captured identifier would misrepresent the historical declarations; the [persistence history decision](2026-09-11-persistence-type-history.md) owns that evidence.
This decision partially supersedes the earlier decision's rejection of fixed word bans and identifier renames for this one token. The earlier decision remains active for all other abstract language and for choosing each replacement according to its local meaning.
## Alternatives considered
@@ -26,7 +28,7 @@ This decision partially supersedes the earlier decision's rejection of fixed wor
**Replace every occurrence with one umbrella term such as `origin` or `source`.** Rejected because one new broad label would preserve the ambiguity between event references, model metadata, build identity, and recorded evidence.
**Exempt identifiers, durable fields, and generated files.** Rejected because callers and generated reference material would continue teaching the retired label. The pre-release policy permits coordinated renames, while the legacy parser can retain read compatibility without retaining the literal token.
**Exempt all identifiers, durable fields, and generated files.** Rejected because callers and current generated reference material would continue teaching the retired label. The pre-release policy permits coordinated renames, while the legacy parser can retain read compatibility without retaining the literal token. The narrow historical evidence exclusions preserve captured declarations without exempting current names or authored guidance.
**Scan vendored and archived sources.** Rejected because vendored content is updated through its synchronization procedure and archived Agent Notes are frozen records. Their explicit exclusions keep this policy consistent with those ownership rules.
@@ -34,4 +36,4 @@ This decision partially supersedes the earlier decision's rejection of fixed wor
Callers use more specific public names, and current recordings use provider metadata instead of the retired assistant field. Generated catalogs and recorded snapshots must be refreshed when an owning symbol changes. Compatibility code remains responsible for reading the retired durable field.
Future uses fail `doc-sync` with the matching path or line. Reviews still classify the intended meaning before choosing a replacement; passing the gate proves absence of the token, not that the replacement is precise.
Future uses outside the explicit exclusions fail `doc-sync` with the matching path or line. Reviews still classify the intended meaning before choosing a replacement; passing the gate proves absence of the token from checked content, not that the replacement is precise.
@@ -18,6 +18,8 @@ Status: implemented
`verify-concrete-terms` 会在 NFKC 规范化后,不区分大小写地扫描已跟踪文件名、符号链接目标和文本。它作为 `doc-sync` 的快速叶子门禁运行;对应测试证明行文、标识符和路径中的违规都会被拒绝。vendored 源码与冻结的 archived Agent Note 仍被排除,因为各自的仓库规则禁止直接编辑这些内容。
历史持久化证据保留选定源码树中的标识符。检查排除 `docs/persistence-changes/releases/` 下的发行版 schema JSON 和 `docs/persistence-changes/historical-formats/vN.schema.json`。在 `vN.md` 与 `vN.zh.md` 中,只有一组有效 `persistence-format-schema` 标记内的 schema 内容获得豁免;`verify-persistence-formats` 要求该内容匹配生成的历史 schema。人工说明、当前目录和当前 schema 仍接受检查。重命名已记录的标识符会歪曲历史声明;[持久化历史决策](2026-09-11-persistence-type-history.zh.md)负责这类证据。
本决策针对这一个术语,部分取代了旧决策中不采用固定禁词和标识符重命名的选择。旧决策仍适用于其他抽象语言,也仍负责要求根据每处使用的具体含义选择替代名称。
## 曾考虑的替代方案
@@ -26,7 +28,7 @@ Status: implemented
**用 `origin` 或 `source` 等单一总括术语替换所有位置。** 不予采纳:新的宽泛名称仍会混淆事件引用、模型元数据、构建身份和已记录证据。
**豁免标识符、持久字段和生成文件。** 不予采纳:调用方和生成的参考资料会继续传播已退役名称。预发布政策允许协调重命名,而旧格式解析器可以在不保留字面术语的情况下继续提供读取兼容性。
**豁免全部标识符、持久字段和生成文件。** 不予采纳:调用方和当前生成的参考资料会继续传播已退役名称。预发布政策允许协调重命名,而旧格式解析器可以在不保留字面术语的情况下继续提供读取兼容性。范围受限的历史证据豁免保留已记录声明,但不豁免当前名称或人工指引。
**扫描 vendored 与 archived 内容。** 不予采纳:vendored 内容通过同步流程更新,而 archived Agent Note 是冻结记录。明确排除两者,可以使本政策与对应的归属规则保持一致。
@@ -34,4 +36,4 @@ Status: implemented
调用方使用更具体的公开名称;当前录制使用提供方元数据,而不再使用已退役的 assistant 字段。归属符号变化后,生成目录和录制快照必须刷新。兼容代码仍负责读取已退役的持久字段。
以后新增的匹配项会使 `doc-sync` 失败,并报告对应路径或行号。审查仍需先判断预期含义再选择替代名称;通过门禁只能证明该术语不存在,不能证明替代名称足够精确。
以后在明确排除范围之外新增的匹配项会使 `doc-sync` 失败,并报告对应路径或行号。审查仍需先判断预期含义再选择替代名称;通过门禁只能证明受检查内容中不存在该术语,不能证明替代名称足够精确。
@@ -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/implemented/process/2026-09-11-persistence-type-history.md
2026-09-11-persistence-type-history.md: f82671f24b5a09050703493c35aaed82842f6399
2026-09-11-persistence-type-history.zh.md: b48c1bae3990ac41366e5347580b516704d07a32
2026-09-11-persistence-type-history.md: e51e9d565718a752ad4209010665f244725db102
2026-09-11-persistence-type-history.zh.md: 10dfd0565c710c2714c8f87dd290eb351c572a90
@@ -10,7 +10,7 @@ A persisted event can retain the same payload type expression while a referenced
## Decision
One normalized type model supplies the readable persistence catalog, the complete schema inventory, and transitive per-root digests. Roots identify the logical Session header, the physical JSONL header line, the event envelope, and every repository-declared event. Source locations, alias names, comments, and property order are presentation details outside the digest. Referenced and recursive types participate in structural comparison; opaque values retain explicit coverage limits.
One normalized type model supplies the readable persistence catalog, the complete schema inventory, and transitive per-root digests. Roots identify the logical Session header, the physical JSONL header line, the event envelope, and every repository-declared event. Source locations, alias names, comments, and property order are presentation details outside the digest. Historical records retain source file paths without line numbers because their selected source trees differ from the current checkout. Referenced and recursive types participate in structural comparison; opaque values retain explicit coverage limits.
The dedicated [persistence-change records](../../../../docs/persistence-changes/README.md) bind acknowledgement to the after digest of each affected root. A generated companion stores complete after schemas. The initial record covers all roots; later records name each root's predecessor. A predecessor's after schema supplies the next before schema. Verification rejects ambiguous history and requires current source to match the terminal recorded state without consulting Git history or remote services.
@@ -20,6 +20,8 @@ The new document kind preserves the compatibility reasoning and evidence for a h
Retrospective [release comparisons](../../../../docs/persistence-changes/releases/README.md) use a separate `persistence-release` kind and pinned tag manifest. They retain changed after schemas and reconstruct adjacent releases, including unchanged tags. Earlier releases predate these acknowledgement rules, so their classifications are informational and their observed versions are not rewritten to satisfy a modern version floor. Historical parsing preserves optional surface operations; the current parser and acknowledgement chain remain strict. This separation permits approximate backfills without turning them into authorization for current changes.
The [format references](../../../../docs/persistence-changes/historical-formats/README.md) preserve complete inventories for every historical integer below the writer constant. The current writer retains the existing generated catalog. Coverage is derived from the constant rather than a hand-maintained version manifest, so advancing the writer requires archiving its predecessor. The archive command copies the validated current inventory, retains its root-reachable definitions, removes source line numbers, and refuses to overwrite an existing snapshot. Source checkpoints remain explicit because event additions and optional payload changes can occur within one format; these snapshots do not authorize current changes or claim migration safety. Historical identifiers are retained in machine schemas and exactly generated schema regions, while current terminology checks still cover the surrounding authored prose.
Record commands generate the bilingual catalog and consistency records from repository-owned templates. Authors can supply the two languages' summary, compatibility reasoning, and actual verification evidence as structured input. Generation supplies identifiers, digests, and snapshots; it never invents a compatibility explanation or test result. Structured check output retains a nonzero failure exit status and reports stable change kinds independently of human-readable descriptions.
Explicit update refreshes an unaccepted terminal record without deleting its authored prose. It recomputes the transition against the remaining history and rejects the baseline or any record with dependants. Review acceptance is not a fact available from the tree, so authors preserve accepted records and add successors.
@@ -10,7 +10,7 @@ Status: implemented
## 决策
一个规范化类型模型提供可读持久化目录、完整 schema 清单和包含传递引用的逐根摘要。根标识逻辑会话头、物理 JSONL 头行、事件封装以及每个仓库内声明的事件。源码位置、别名名称、注释和属性顺序属于摘要之外的展示细节。被引用类型和递归类型参与结构比较;不透明值保留明确的覆盖限制。
一个规范化类型模型提供可读持久化目录、完整 schema 清单和包含传递引用的逐根摘要。根标识逻辑会话头、物理 JSONL 头行、事件封装以及每个仓库内声明的事件。源码位置、别名名称、注释和属性顺序属于摘要之外的展示细节。历史记录保留源码文件路径而不包含行号,因为其选定的源码树与当前工作树不同。被引用类型和递归类型参与结构比较;不透明值保留明确的覆盖限制。
专用的[持久化变更记录](../../../../docs/persistence-changes/README.zh.md)将确认绑定到每个受影响根的变更后摘要。生成的伴随文件保存完整的变更后 schema。初始记录覆盖所有根;后续记录为每个根指定前驱。前驱的变更后 schema 提供下一次的变更前 schema。验证拒绝有歧义的历史,并要求当前源码匹配最终记录状态,无需查询 Git 历史或远端服务。
@@ -20,6 +20,8 @@ Status: implemented
回溯性的[发行版本比较](../../../../docs/persistence-changes/releases/README.zh.md)使用独立的 `persistence-release` 类型和固定 tag 清单。它们保留变化后的 schema,并重建相邻版本,包括未变的 tag。早期版本先于这些确认规则,因此其分类只提供信息,观察到的版本号不会为满足当前最低版本要求而被改写。历史解析保留可选的 surface 操作;当前解析器和确认链仍保持严格。这一区分允许近似回填,同时不会将其变成当前变更的授权。
[格式参考](../../../../docs/persistence-changes/historical-formats/README.zh.md)为低于写入器常量的每个历史整数版本保留完整目录。当前写入器继续使用现有生成目录。覆盖范围由常量推导,而非手工维护的版本清单,因此推进写入器必须归档其前驱。归档命令复制已验证的当前目录,保留从根类型可达的定义,移除源码行号,并拒绝覆盖已有快照。同一格式内可能新增事件或改变可选载荷,因此来源检查点保持明确;这些快照不授权当前变更,也不声称迁移安全。机器 schema 与精确生成的 schema 区间保留历史标识符,当前术语检查仍覆盖周围的人工说明。
记录命令从仓库内模板生成双语目录和一致性记录。作者可以将两种语言的概述、兼容性说明和实际验证证据作为结构化输入。生成过程提供标识符、摘要和快照,不编造兼容性说明或测试结果。结构化检查输出保留非零失败退出码,并报告独立于可读描述的稳定变更种类。
显式更新可刷新尚未接受的末端记录,无需删除其人工说明。它根据剩余历史重新计算转换,并拒绝基线或已有依赖方的记录。审阅接受状态不是目录内可得的事实,因此作者保留已接受记录并添加后继。
+2 -1
View File
@@ -56,6 +56,7 @@ The `kind` frontmatter field selects exactly one README template. Every kind in
- `package-bundle` → [templates/package-bundle.md](templates/package-bundle.md): a package declaring `dsh.bundle.patch` — the verified `dsh plugin` install path, layer semantics, patch document.
- `persistence-change` → [templates/persistence-change.md](templates/persistence-change.md): a dated record in `docs/persistence-changes/` — acknowledge a detected type transition with per-root predecessors and generated after schemas.
- `persistence-release` → [templates/persistence-release.md](templates/persistence-release.md): a pinned tag in `docs/persistence-changes/releases/` — compare reconstructed historical types without claiming compatibility acknowledgement.
- `persistence-format` → [templates/persistence-format.md](templates/persistence-format.md): a historical Session format checkpoint in `docs/persistence-changes/historical-formats/`, with complete schemas; the current writer uses the existing catalog.
Open the template before writing and follow its skeleton and rules; it states what the kind is, how the page is structured, and the fact checks each section owes. Add a new kind only together with a distinct template file, a documented repository position or declared owner, and a focused check that maps documents to it.
@@ -66,7 +67,7 @@ These rules decide what a section may say. They apply to every authored human-fa
- **Summary says what the subject does.** The opening `Summary` and the user-facing sections describe what a user or agent can DO with the subject — outcomes, benefits, when to choose it, main cost — never its role, type, or internal identity. In a package Summary, “what it is” means only its reader-visible capability, not its Cordis role, registrations, or internal components. Omit source identifiers unless the reader directly uses them in configuration, a command, or a public API. "The seam registers `ctx.x` and appends `x/event` records" is identity narration; "you can save a note per message and it survives restarts" is what it does.
- **Developer sections explain, never enumerate.** Folded implementation content covers the overall design concept, architecture, and hand-waving dataflow — enough to understand how the package works — and links code for exact detail. No full API catalogs, exhaustive column lists, event-payload enumerations, or JSDoc restatement inside the folds.
- **Dev Note is the only slop zone.** Partial ideas, scratches, undecided directions, measured artifacts, and working hypotheses live only in the final Dev Note, marked explicitly non-authoritative. Every other section is polished, current-state prose.
- **Current state only.** Ordinary documentation describes the current codebase. Dedicated `persistence-change` and `persistence-release` records retain type-transition evidence; release comparisons describe observed history without asserting compatibility. Agent Notes and postmortems retain their own historical scope.
- **Current state only.** Ordinary documentation describes the current codebase. Dedicated `persistence-change`, `persistence-release`, and `persistence-format` records retain historical type evidence; release comparisons and format checkpoints describe observed history without asserting compatibility. Agent Notes and postmortems retain their own historical scope.
- **Use controlled technical English.** Give each sentence an explicit actor and one main action when ambiguity can change behavior. Reuse one term per concept, prefer direct verbs, split stacked instructions and conditions, and preserve modality and exceptions. Apply the non-certified, ASD-STE100-inspired discipline in [the page-style reference](references/style.md#controlled-technical-english). Do not force a shorter sentence when precision would fall.
## Quality criteria
@@ -29,7 +29,7 @@ kind: "package-reference"
## The kind system
`kind` selects the document template directly; every kind maps to exactly one template that exists in this skill, and no template exists without a kind. Files named `docs/persistence-changes/YYYY-MM-DD-slug.md` use `persistence-change`; files named `docs/persistence-changes/releases/dsh-v*.md` use `persistence-release`. Their Chinese siblings use the same kind. Folder READMEs are indexes, not records. Derive package README kinds mechanically, in this order:
`kind` selects the document template directly; every kind maps to exactly one template that exists in this skill, and no template exists without a kind. Files named `docs/persistence-changes/YYYY-MM-DD-slug.md` use `persistence-change`; files named `docs/persistence-changes/releases/dsh-v*.md` use `persistence-release`. Files named `docs/persistence-changes/historical-formats/vN.md` use `persistence-format`. Their Chinese siblings use the same kind. Folder READMEs are indexes, not records. Derive package README kinds mechanically, in this order:
1. The README is `packages/README.md` or `packages/<group>/README.md` → `package-group`.
2. The package manifest declares `dsh.bundle.patch` → `package-bundle`.
@@ -44,6 +44,7 @@ kind: "package-reference"
| `package-bundle` | `packages/<group>/<package>/README.md` declaring `dsh.bundle.patch` | [package-bundle.md](../templates/package-bundle.md) | Installable layer: the verified `dsh plugin` install path, layer semantics, and patch document. |
| `persistence-change` | `docs/persistence-changes/YYYY-MM-DD-slug.md` and its Chinese sibling | [persistence-change.md](../templates/persistence-change.md) | Historical acknowledgement: mechanically detected type changes, per-root predecessor references, compatibility decision, and generated after schemas. |
| `persistence-release` | `docs/persistence-changes/releases/dsh-v*.md` and its Chinese sibling | [persistence-release.md](../templates/persistence-release.md) | Retrospective observation: pinned tag, adjacent before/after digests, actual version constants, and changed after schemas; no compatibility acknowledgement. |
| `persistence-format` | `docs/persistence-changes/historical-formats/vN.md` and its Chinese sibling | [persistence-format.md](../templates/persistence-format.md) | Selected historical format: source evidence, complete root schemas and reachable types; the current writer uses the generated catalog. |
Before assigning `package-library` or `package-bundle`, inspect the facts: read `package.json` for `dsh.bundle.patch` and `src/index.ts` for the entry shape (`apply` export or a default service export is a plugin; a plain module API is a library). `dsh plugin --profile <name> add <package>` installs any npm dependency, but the profile reconcile activates a layer only for a package that declares `dsh.bundle`; never present that command as an install path for a library or a plain plugin. The documentation check derives the expected kind from these same facts, rejects another value, and rejects `name`, `audience`, `tags`, and README-local `i18n` metadata. Add a new kind only with a distinct template, an unambiguous repository position or declared owner, and a focused check that maps documents to it.
@@ -0,0 +1,25 @@
# Template: persistence-format
Use this kind for `docs/persistence-changes/historical-formats/vN.md` and its Chinese sibling. Each record describes one explicitly selected historical Session format checkpoint with complete declared types. It is a format reference, not a release record or compatibility acknowledgement. The checkout writer uses the existing current catalog.
## Frontmatter
```yaml
---
description: "The historical Session format, source checkpoint, and persistence types documented here."
kind: persistence-format
---
```
## Sections
1. **Summary:** identify the format and its distinguishing persisted fields.
2. **Table of Contents:** link subsequent sections with shared bilingual anchors.
3. **Source evidence:** name the tag or PR and enough context to select the source tree. A PR's intermediate tree must not be presented as its final merge or as a product release. Historical sources use file paths without line numbers and remain text unless linked to the exact source.
4. **Format characteristics:** explain header, event, and physical encoding distinctions; link codec owners for behavior beyond the declared-type inventory.
5. **Declaration:** include one identical `yaml persistence-format` block per language with `schemaVersion: 1`, numeric `sessionFormatVersion`, `source` containing exactly one `tag` or numeric `pullRequest`, and a `roots` mapping from every root key to its captured SHA-256 digest. Link the sibling `vN.schema.json`.
6. **Complete schemas:** keep one `persistence-format-schema:start` / `persistence-format-schema:end` comment region. The format verifier renders root digests and all reachable definitions here.
7. **Verification and limitations:** state actual extraction evidence, coverage limits, and the offline verifier. Preserve historical optional fields and opaque declarations without claiming codec admission or migration safety.
8. **Dev Note:** reserve non-authoritative working context, or write `None.`.
The [format index](../../../../docs/persistence-changes/historical-formats/README.md) owns coverage and maintenance. `pnpm run verify-persistence-formats --write` validates schemas before refreshing generated regions and pairing records. It cannot create historical evidence or repair machine data. Keep every older integer documented when the current writer advances; do not duplicate the current catalog under a historical filename.
+1
View File
@@ -16,3 +16,4 @@
docs/persistence-schema.json linguist-generated=true
docs/persistence-changes/*.schema.json linguist-generated=true
docs/persistence-changes/releases/*.schema.json linguist-generated=true
docs/persistence-changes/historical-formats/*.schema.json linguist-generated=true
+1 -1
View File
@@ -24,7 +24,7 @@ Each fact has one home: the tier whose job it is; elsewhere, link there.
| [subsystems/](subsystems/README.md) | One reference page per subsystem: type definitions, semantics, and the generated Cordis API | Behavior narration (→ architecture.md) |
| [Agent Notes](../.agents/notes/README.md) | Active decision records: the why, what-was-given-up, and required verification; `implemented/` notes describe shipped reality in present tense | Migration plans, acceptance-task checklists, fixture walkthroughs, and spec-speak ("should…") once the decision has shipped; archived notes are frozen history, never current authority |
| [postmortem/](postmortem/README.md) | Incident stories — the only tier where war-story narrative belongs | — |
| [persistence-changes/](persistence-changes/README.md) | Type-change acknowledgements and retrospective release comparisons, with schema companions | Behavior-only changes; current runtime contracts |
| [Persistence history](persistence-changes/README.md) and [format references](persistence-changes/historical-formats/README.md) | Type-change acknowledgements, release comparisons, and complete historical format schemas | Behavior-only changes; current runtime contracts |
| [cookbook/](cookbook/adding-a-package.md) | Step-by-step how-tos with numbered verify steps | Design rationale (→ the Agent Note each guide links) |
| [user/](user/index.md) | Product-facing guides published by the documentation website | Generated reference tables, contributor procedures, decision history |
| Package README | The per-package contract: config, semantics, limitations, extension points, and [Model Experience](cookbook/adding-a-package.md#4-write-the-package-readme) | JSDoc restatement, generated-catalog restatement (event/tool tables), other packages' concerns |
@@ -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/cookbook/adding-a-session-format-version.md
adding-a-session-format-version.md: 54af2806bf7193ce9d1f5cd6c75f92b809c4ed95
adding-a-session-format-version.zh.md: 4f7135b00aba37758343b8c17f2b4aff3146eeab
adding-a-session-format-version.md: 6ebc6bd2062acd88dab953bc227bc1046b13f083
adding-a-session-format-version.zh.md: c66a045303f96c2ef237cf3b1c1dc598e9c8f5f6
@@ -27,6 +27,8 @@ Released codecs and migration semantics remain frozen. Do not amend a released e
Use disposable, isolated Harness homes for unreleased N+1 integration testing. An interim N+1 file already has the target writer version, so a later edit to N→N+1 will not migrate that file again. Re-run from unchanged historical input in a fresh test home; never repair this by rewriting a committed generation or reusing a real user's home.
Before changing the writer, use the [archive command](../persistence-changes/historical-formats/README.md#maintenance) to preserve its complete persistence schema, then add the bilingual format reference under `docs/persistence-changes/historical-formats/vN.*`. Preserve all earlier records. The format coverage check requires every integer below the new writer to have its own document; the current generated catalog covers only the new writer.
<a id="add-an-identity-edge"></a>
## 2. Add an identity edge
@@ -27,6 +27,8 @@
未发布 N+1 的集成测试应使用可丢弃、相互隔离的 Harness home。中间版本产生的 N+1 文件已标为目标写入器版本,因此后续对 N→N+1 的修改不会再次迁移该文件。请在全新测试 home 中从未变更的历史输入重新运行;绝不通过改写已提交代际或复用真实用户 home 来修复这个问题。
变更写入器之前,使用[归档命令](../persistence-changes/historical-formats/README.zh.md#maintenance)保留其完整持久化 schema,再在 `docs/persistence-changes/historical-formats/vN.*` 下添加双语格式参考。保留所有更早的记录。格式覆盖检查要求低于新写入器的每个整数版本都有独立文档;当前生成的目录只覆盖新写入器。
<a id="add-an-identity-edge"></a>
## 2. 添加恒等迁移边
+2 -2
View File
@@ -2,5 +2,5 @@
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write docs/persistence-catalog.md
persistence-catalog.md: 7501b63b8e5fbf1cf7c97f1ac810244e534413fe
persistence-catalog.zh.md: 744ad917f280a58b13217cae79160f1c129a4c29
persistence-catalog.md: acb64b7be1715b58f9fbcdebfaaadf709865c15b
persistence-catalog.zh.md: fab7c7b9f4b8c3ef9edb97035d23accb6ae378b3
+1 -1
View File
@@ -13,7 +13,7 @@ The envelope carries `type`, `seq`, `time`, `data`, optional `ignorable`, and co
The [machine inventory](persistence-schema.json) contains every reachable normalized type and its SHA-256 digest. Root digests include referenced types. Comments, source locations, alias names, erased brands, readonly markers, and harmless field, union, or intersection reordering do not affect these fingerprints. Tuple order, property names, value types, and optionality do. Catalog text and source locations can still produce a diff when digests stay unchanged.
The [change records](persistence-changes/README.md) acknowledge exact transitions using snapshots kept in this tree. Follow the [review workflow](cookbook/reviewing-persistence-type-changes.md) to classify a change and record it. These checks cover declared type structure; opaque payload contents and behavior without type changes are outside their scope.
The [format references](persistence-changes/historical-formats/README.md) cover every historical Session format. The [change records](persistence-changes/README.md) acknowledge exact transitions using snapshots kept in this tree. Follow the [review workflow](cookbook/reviewing-persistence-type-changes.md) to classify a change and record it. These checks cover declared type structure; opaque payload contents and behavior without type changes are outside their scope.
| Root | Kind | SHA-256 | Resolved type |
|---|---|---|---|
+1 -1
View File
@@ -15,7 +15,7 @@
[机器可读目录](persistence-schema.json)包含所有可达的规范化类型及其 SHA-256 摘要。根类型的摘要涵盖引用类型。注释、源码位置、别名、擦除的品牌标记、readonly 标记以及无语义变化的字段、联合类型或交叉类型重排不影响摘要;元组顺序、属性名称、值类型和可选性会影响摘要。摘要不变时,目录文本和源码位置仍可能产生 diff。
[变更记录](persistence-changes/README.zh.md)通过保存在本源码树中的快照确认精确的类型转换。按照[评审流程](cookbook/reviewing-persistence-type-changes.zh.md)分类并记录变更。这些检查覆盖已声明的类型结构;不透明载荷的内部内容和未改变类型的行为变更不在检查范围内。
[格式参考](persistence-changes/historical-formats/README.zh.md)覆盖每个历史 Session 格式。[变更记录](persistence-changes/README.zh.md)通过保存在本源码树中的快照确认精确的类型转换。按照[评审流程](cookbook/reviewing-persistence-type-changes.zh.md)分类并记录变更。这些检查覆盖已声明的类型结构;不透明载荷的内部内容和未改变类型的行为变更不在检查范围内。
| 根类型 | 类别 | SHA-256 | 已解析类型 |
|---|---|---|---|
+2 -2
View File
@@ -2,5 +2,5 @@
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write docs/persistence-changes/README.md
README.md: de067440e9e1e0df2c980f00f485b71948e09647
README.zh.md: 45a88c131216fb174a5f96a6b74e1b97183221e9
README.md: 7eb46efe69e139c294ad76e1b584e2d7384151b5
README.zh.md: d91cfff9e5010bfff92b905ce0f075e7e419eb52
+2
View File
@@ -12,6 +12,8 @@ Use this reference to inspect an acknowledged Session persistence-type change an
For older tagged versions, use the [prerelease archive](releases/README.md). It reconstructs alpha/RC type differences for historical reading and format validation; its observations do not serve as current compatibility acknowledgements.
For complete schemas grouped by Session format, use the [format references](historical-formats/README.md). Their coverage follows the writer constant, including intermediate formats without a release tag.
## Table of Contents
- [Files and ownership](#files-and-ownership)
+2
View File
@@ -12,6 +12,8 @@ description: "审阅和维护已记录的会话持久化类型变更、对应 sc
较早的 tag 参见[预发行版本归档](releases/README.zh.md)。它重建 alpha/RC 类型差异,供历史阅读和格式校验使用;这些观察记录不作为当前兼容性确认。
按 Session 格式查看完整 schema 时,使用[格式参考](historical-formats/README.zh.md)。其覆盖范围由写入器常量决定,包括没有发布 tag 的中间格式。
## 目录
- [文件与职责](#files-and-ownership)
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent 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/persistence-changes/historical-formats/README.md
README.md: 8dc2caf4409e693c8b68c4e49db67b6c3234c238
README.zh.md: 36095f9872ed6a2bd72d348be280f6d4534aeea7
@@ -0,0 +1,74 @@
---
description: "Find the complete declared persistence types for every Session format from V0 through the checkout writer."
---
# Session persistence formats
English | [中文](README.zh.md)
## Summary
Use this reference to inspect a stored Session generation’s headers, event envelopes, and payload types. Every format below the checkout writer has a bilingual document and a complete schema snapshot. The current format uses the generated persistence catalog. The [version authority](../../session-format-status.md) owns the writer constant and release status.
## Table of Contents
- [Format references](#formats)
- [Scope and evidence](#scope)
- [Maintain coverage](#maintenance)
- [Dev Note](#dev-note)
-----
<a id="formats"></a>
## Format references
The index is generated from validated snapshots and the current writer constant. Each historical reference identifies its source checkpoint; a Session format number does not identify every event payload revision within that format.
<!-- persistence-format-index:start -->
| Format | Source | Reference | Machine schema | Roots / types |
|---|---|---|---|---|
| 0 | `dsh-v0.1.2-rc.1` | [V0](v0.md) | [JSON](v0.schema.json) | 54 / 415 |
| 1 | PR #3349 | [V1](v1.md) | [JSON](v1.schema.json) | 54 / 415 |
| 2 | `dsh-v0.1.3-alpha.2` | [V2](v2.md) | [JSON](v2.schema.json) | 56 / 435 |
| 3 | Current checkout | [Current catalog](../../persistence-catalog.md) | [JSON](../../persistence-schema.json) | 59 / 463 |
<!-- persistence-format-index:end -->
<a id="scope"></a>
## Scope and evidence
Each `vN.md` / `vN.zh.md` pair has `kind: persistence-format`, an identical `yaml persistence-format` declaration binding every root key to its captured digest, a pairing sidecar, and a complete `vN.schema.json`. The [template](../../../.agents/skills/dsh-doc/templates/persistence-format.md) defines these records. Roots cover the logical Session header, physical JSONL header, event envelope, and all first-party events at the selected checkpoint; each root includes every reachable declared type. Packed physical body records have separate codec owners linked from each page.
V0 and V2 use the latest matching tags in the [captured prerelease archive](../releases/README.md). V1 uses an intermediate source tree identified in its reference because the captured tags contain no V1 writer. Historical sources retain file paths without line numbers. Snapshots preserve historical optional fields and opaque values; they do not substitute current types into older formats. Historical identifiers remain intact only in schema JSON and the verified generated schema regions; authored prose follows current terminology rules.
These references describe selected schemas, not historical application replay or migration safety. Same-version event additions and optional payload changes can produce other valid inventories. The prerelease archive retains tag-by-tag differences; [change records](../README.md) retain current compatibility acknowledgements. Neither history is replaced by these format snapshots.
<a id="maintenance"></a>
## Maintain coverage
`verify-persistence-formats` derives the required integer range from `SESSION_FORMAT_VERSION`. Every older integer needs its own complete record. The current catalog and schema must exist and match the writer version. The check rejects missing, extra, misnumbered, incomplete, or inconsistent records and stale generated regions without fetching Git history or querying a service.
Before advancing the writer, verify the current catalog and archive the outgoing format. For a V3-to-V4 change, run these commands while the writer and current schema still describe V3:
```sh
pnpm run verify-persistence-catalog
pnpm run verify-persistence-formats --archive 3
```
Replace `3` with the outgoing writer version for other transitions. `--archive N` creates `vN.schema.json` from the current inventory, retains exactly the types reachable from its roots, and removes source line numbers. It refuses an existing destination, a version other than the current writer, invalid or incomplete schemas, and combination with `--write`. Add the snapshot’s bilingual record and source evidence using the [template](../../../.agents/skills/dsh-doc/templates/persistence-format.md). Retain all earlier records. The successor uses the current catalog; copying a new current catalog cannot satisfy the archived predecessor requirement. Follow the [format-version cookbook](../../cookbook/adding-a-session-format-version.md) for runtime changes.
The schema definitions and index inside comment markers are generated. After advancing the writer and completing the machine data and authored evidence, refresh their tables and pairing records, then verify:
```sh
pnpm run verify-persistence-formats --write
pnpm run verify-persistence-formats
pnpm run doc-sync
```
`--write` validates the machine data before updating generated Markdown and pairing records. It preserves authored explanations, machine declarations, and schemas. Default verification also rejects stale pairing records; the standard documentation checks validate translations and local links. Current catalog freshness remains owned by `verify-persistence-catalog`.
<a id="dev-note"></a>
## Dev Note
None.
@@ -0,0 +1,74 @@
---
description: "查找从 V0 到工作区写入器版本的每个 Session 格式的完整持久化类型声明。"
---
# Session 持久化格式
[English](README.md) | 中文
## 概述
本参考用于查阅已存储 Session 代际的 header、事件信封与载荷类型。低于工作区写入器版本的每个格式都有双语文档与完整 schema 快照。当前格式使用生成的持久化目录。[版本真源](../../session-format-status.zh.md)负责写入器常量与发布状态。
## 目录
- [格式参考](#formats)
- [范围与证据](#scope)
- [维护覆盖](#maintenance)
- [开发备注](#dev-note)
-----
<a id="formats"></a>
## 格式参考
索引由已验证的快照与当前写入器常量生成。每个历史参考标明其来源检查点;Session 格式编号不能标识该格式内的每次事件载荷修订。
<!-- persistence-format-index:start -->
| 格式 | 来源 | 参考文档 | 机器 schema | 根类型 / 类型 |
|---|---|---|---|---|
| 0 | `dsh-v0.1.2-rc.1` | [V0](v0.zh.md) | [JSON](v0.schema.json) | 54 / 415 |
| 1 | PR #3349 | [V1](v1.zh.md) | [JSON](v1.schema.json) | 54 / 415 |
| 2 | `dsh-v0.1.3-alpha.2` | [V2](v2.zh.md) | [JSON](v2.schema.json) | 56 / 435 |
| 3 | 当前工作树 | [当前目录](../../persistence-catalog.zh.md) | [JSON](../../persistence-schema.json) | 59 / 463 |
<!-- persistence-format-index:end -->
<a id="scope"></a>
## 范围与证据
每组 `vN.md` / `vN.zh.md` 文档包含 `kind: persistence-format`、将每个根类型键绑定到已记录摘要的相同 `yaml persistence-format` 声明、配对记录及完整的 `vN.schema.json`。[模板](../../../.agents/skills/dsh-doc/templates/persistence-format.md)定义这些记录。根类型覆盖所选检查点的逻辑 Session header、物理 JSONL header、事件信封与所有第一方事件;每个根包含所有可达的声明类型。打包的物理 body 记录由每页链接的独立 codec 负责。
V0 与 V2 使用[已收录预发布归档](../releases/README.zh.md)中最后一个对应 tag。由于收录的 tag 没有 V1 写入器,V1 使用其参考文档中标识的中间源码树。历史来源保留文件路径,不包含行号。快照保留历史可选字段与不透明值,不会将当前类型替换到旧格式中。历史标识符仅在 schema JSON 与已验证的生成 schema 区间中原样保留;人工说明遵循当前术语规则。
这些参考描述选定的 schema,不表示历史应用回放结果或迁移安全性。同版本内新增事件与可选载荷变更可以产生其他有效目录。预发布归档保留逐 tag 差异;[变更记录](../README.zh.md)保留当前兼容性确认。这些格式快照不替代任何一种历史。
<a id="maintenance"></a>
## 维护覆盖
`verify-persistence-formats` 从 `SESSION_FORMAT_VERSION` 推导所需的整数范围。每个更早的整数都需要独立的完整记录。当前目录与 schema 必须存在且匹配写入器版本。检查会拒绝缺失、多余、编号错误、不完整或不一致的记录及过期生成区间,无需获取 Git 历史或查询服务。
推进写入器之前,验证当前目录并归档原格式。对于 V3 到 V4 的变更,在写入器与当前 schema 仍描述 V3 时运行以下命令:
```sh
pnpm run verify-persistence-catalog
pnpm run verify-persistence-formats --archive 3
```
对于其他转换,将 `3` 替换为原写入器版本。`--archive N` 从当前目录创建 `vN.schema.json`,只保留从根类型可达的类型,并移除源码行号。它拒绝已存在的目标、与当前写入器不同的版本、无效或不完整的 schema,以及与 `--write` 的组合。使用[模板](../../../.agents/skills/dsh-doc/templates/persistence-format.md)添加该快照的双语记录与来源证据。保留所有更早的记录。后继格式使用当前目录;复制新的当前目录不能满足归档前驱的要求。运行时变更遵循[格式版本实操手册](../../cookbook/adding-a-session-format-version.zh.md)。
注释标记内的 schema 定义与索引由工具生成。推进写入器并完成机器数据与人工证据后,刷新其表格和配对记录,再执行验证:
```sh
pnpm run verify-persistence-formats --write
pnpm run verify-persistence-formats
pnpm run doc-sync
```
`--write` 先验证机器数据,再更新生成的 Markdown 与配对记录。它保留人工说明、机器声明和 schema。默认验证也会拒绝过期的配对记录;标准文档检查验证翻译与本地链接。当前目录的新鲜度仍由 `verify-persistence-catalog` 负责。
<a id="dev-note"></a>
## 开发备注
无。
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent 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/persistence-changes/historical-formats/v0.md
v0.md: 91b8c239307c2ac721aa4879a4cb9857cd0396ce
v0.zh.md: 735ac81c461e7dcb89aac05cf1ae3997e5e0fd25
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent 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/persistence-changes/historical-formats/v1.md
v1.md: 2cac9741d03659ef7afa80de4dae4e609b1b730e
v1.zh.md: 6eb7a5bc6fef32df2b6182f35272a9d237ffde16
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent 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/persistence-changes/historical-formats/v2.md
v2.md: e37a81da6c34dd5936898d9c87c7f1d31e0b03b9
v2.zh.md: c54170ff050f64c998a4ad3eeeeac216b0dfa913
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -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/persistence-changes/releases/README.md
README.md: fef1f0f3f8ce0de3b5118ad83524d30ac4c187f9
README.zh.md: 37c08007549c79df3230b4f8acee5fad4e01b1dc
README.md: c818f28d36e3f04c610a9180c7d2d7eb34ad09c5
README.zh.md: 92d4170717ccdcfd514e4971f03e3e1d35d58267
+1 -1
View File
@@ -63,7 +63,7 @@ The [manifest](manifest.json) records every DSH alpha/RC tag captured on 2026-09
Each tag has an English/Chinese record with `kind: persistence-release`, a pairing sidecar, and `.schema.json`. Its machine declaration contains the tag, immediate predecessor, observed writer version, and each changed root’s before/after digest. The first snapshot contains every root; later snapshots retain only changed roots that remain present and all their reachable types. Deletions use a null after value; unchanged releases retain empty changes and snapshots.
Snapshots cover the logical Session header, physical JSONL header, event envelope, and every first-party event and transitive reference at that tag. Type counts include only definitions reachable after normalization.
Snapshots cover the logical Session header, physical JSONL header, event envelope, and every first-party event and transitive reference at that tag. Type counts include only definitions reachable after normalization. Historical source references retain file paths without line numbers.
These retrospective records are validated separately from the current acknowledgement chain in the parent directory. Current-rule classifications of old changes are reading aids: historical version 0 did contain structural changes without version increases. A backfilled record cannot authorize a current PR to omit acknowledgement or a required version increase.
@@ -63,7 +63,7 @@ description: "浏览全部已捕获 DSH alpha/RC tag 之间的 Session 持久化
每个 tag 对应 `kind: persistence-release` 的中英记录、配对 sidecar 和 `.schema.json`。机器声明包含 tag、直接前驱、实际写入版本以及每个变化根的 before/after 摘要。首条快照包含全部根;后续快照只保存仍然存在的变化根及其所有可达类型。删除使用空 after,未变的版本保留空变化和空快照。
快照覆盖逻辑 Session header、物理 JSONL header、事件信封以及该 tag 的所有第一方事件及传递引用。类型数仅统计规范化后仍可达的定义。
快照覆盖逻辑 Session header、物理 JSONL header、事件信封以及该 tag 的所有第一方事件及传递引用。类型数仅统计规范化后仍可达的定义。历史源码引用仅保留文件路径,不包含行号。
这些回溯记录与上层目录的当前确认链分开校验。当前规则对旧变化的分类只是阅读提示:历史上的 version 0 确实出现过不升版本的结构变化。不得把回填记录作为当前 PR 省略确认或版本提升的依据。
@@ -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/persistence-changes/releases/dsh-v0.0.1-rc.1.md
dsh-v0.0.1-rc.1.md: 6a8a597b8a363eb7f665a9ea32e7dcda20fd4fb1
dsh-v0.0.1-rc.1.zh.md: ba0bf1925dcf4d4ec7fdee221ccd3131736a0516
dsh-v0.0.1-rc.1.md: 8ed626de6a6ea50e61a688d695e1bd8235d4ec9b
dsh-v0.0.1-rc.1.zh.md: d4c8ca5efca1b3ce51d93a58b1be1868b27f9780
@@ -38,7 +38,7 @@ This approximate backfill supports reading and format validation; it is not a co
Source evidence for the writer version constant at this tag:
- `packages/core/session/src/types.ts:36`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## Declaration
File diff suppressed because it is too large. Load diff
@@ -38,7 +38,7 @@ kind: persistence-release
写入版本常量在该 tag 中的源码证据:
- `packages/core/session/src/types.ts:36`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## 声明
@@ -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/persistence-changes/releases/dsh-v0.0.1-rc.2.md
dsh-v0.0.1-rc.2.md: f3cea3d71d575ad3c8f5e1a09c61cb4f14e33eae
dsh-v0.0.1-rc.2.zh.md: 65da0d51df3416afa607138d0ab42188d453de2c
dsh-v0.0.1-rc.2.md: f9deeccf24b617a76b87e5bf5cc3864f44878f04
dsh-v0.0.1-rc.2.zh.md: 32962d394e0c68503e4e43cf1b3f64aadc5528e3
@@ -38,7 +38,7 @@ This approximate backfill supports reading and format validation; it is not a co
Source evidence for the writer version constant at this tag:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## Declaration
File diff suppressed because it is too large. Load diff
@@ -38,7 +38,7 @@ kind: persistence-release
写入版本常量在该 tag 中的源码证据:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## 声明
@@ -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/persistence-changes/releases/dsh-v0.0.1-rc.3.md
dsh-v0.0.1-rc.3.md: ef1ccfaac6d74556401ec965840b5fa9b649a1e0
dsh-v0.0.1-rc.3.zh.md: 4de93261de37201fd0f48fd5bc3d91f4768f2407
dsh-v0.0.1-rc.3.md: 7201966f5e932d52531f54b842fb3961a423087e
dsh-v0.0.1-rc.3.zh.md: a59d39a86fc45e8d11664ec189412e013fa217e8
@@ -38,7 +38,7 @@ This approximate backfill supports reading and format validation; it is not a co
Source evidence for the writer version constant at this tag:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## Declaration
+62 -67
View File
@@ -4916,7 +4916,7 @@
"packages/session/session-title/src/index.ts#SessionTitleModelProvenance"
],
"sources": [
"packages/session/session-title/src/index.ts:40"
"packages/session/session-title/src/index.ts"
]
},
{
@@ -5034,7 +5034,7 @@
"event:hook/invoked[0].data"
],
"sources": [
"packages/hooks/hook-protocol/src/types.ts:19"
"packages/hooks/hook-protocol/src/types.ts"
]
},
{
@@ -6381,7 +6381,7 @@
"packages/session/session-title-llm/src/index.ts#SessionTitleLlmRequestEventData"
],
"sources": [
"packages/session/session-title-llm/src/index.ts:25"
"packages/session/session-title-llm/src/index.ts"
]
},
{
@@ -6488,7 +6488,7 @@
"event:agent/inbox/spliced[0].data.inserted[0].source[16].references[0]"
],
"sources": [
"packages/context/session-reference/src/types.ts:12"
"packages/context/session-reference/src/types.ts"
]
},
{
@@ -7825,7 +7825,7 @@
"packages/llm/llm/src/types.ts#TokenUsage"
],
"sources": [
"packages/llm/llm/src/types.ts:135"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -8003,7 +8003,7 @@
"packages/attachment/attachment/src/types.ts#ImageMediaType"
],
"sources": [
"packages/attachment/attachment/src/types.ts:8"
"packages/attachment/attachment/src/types.ts"
]
},
{
@@ -8581,7 +8581,7 @@
"event:compaction/start[0].data"
],
"sources": [
"packages/compaction/compaction/src/types.ts:23"
"packages/compaction/compaction/src/types.ts"
]
},
{
@@ -8627,21 +8627,18 @@
"packages/workflow/workflow/src/types.ts#WorkflowRunId"
],
"sources": [
"packages/attachment/attachment/src/brand.ts:6",
"packages/compaction/compaction/src/brand.ts:4",
"packages/core/session/src/types.ts:22",
"packages/goal/goal/src/types.ts:16",
"packages/host/apiproxy/src/api/rpc.ts:18",
"packages/interaction/commands/src/brand.ts:20",
"packages/interaction/user-approval/src/types.ts:14",
"packages/llm/llm-retry/src/brand.ts:4",
"packages/llm/llm/src/brand.ts:16",
"packages/llm/llm/src/brand.ts:31",
"packages/llm/llm/src/brand.ts:43",
"packages/llm/llm/src/brand.ts:55",
"packages/schedule/schedule/src/types.ts:10",
"packages/session/session-title/src/index.ts:28",
"packages/workflow/workflow/src/types.ts:13"
"packages/attachment/attachment/src/brand.ts",
"packages/compaction/compaction/src/brand.ts",
"packages/core/session/src/types.ts",
"packages/goal/goal/src/types.ts",
"packages/host/apiproxy/src/api/rpc.ts",
"packages/interaction/commands/src/brand.ts",
"packages/interaction/user-approval/src/types.ts",
"packages/llm/llm-retry/src/brand.ts",
"packages/llm/llm/src/brand.ts",
"packages/schedule/schedule/src/types.ts",
"packages/session/session-title/src/index.ts",
"packages/workflow/workflow/src/types.ts"
]
},
{
@@ -8694,8 +8691,8 @@
"packages/llm/llm/src/types.ts#TextBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:54",
"packages/web/web-search-deepseek/src/provider.ts:67"
"packages/llm/llm/src/types.ts",
"packages/web/web-search-deepseek/src/provider.ts"
]
},
{
@@ -8747,7 +8744,7 @@
"packages/subagent/subagent/src/continuation.ts#SubagentSettledMessageSource"
],
"sources": [
"packages/subagent/subagent/src/continuation.ts:82"
"packages/subagent/subagent/src/continuation.ts"
]
},
{
@@ -8792,7 +8789,7 @@
"SessionEventEnvelope[6].surfaceOp[1]"
],
"sources": [
"packages/core/session/src/types.ts:374"
"packages/core/session/src/types.ts"
]
},
{
@@ -8909,7 +8906,7 @@
"event:compaction/prune[0].data"
],
"sources": [
"packages/compaction/compaction/src/types.ts:81"
"packages/compaction/compaction/src/types.ts"
]
},
{
@@ -8970,7 +8967,7 @@
"packages/skill/skill/src/index.ts#SkillInvocationSource"
],
"sources": [
"packages/skill/skill/src/index.ts:147"
"packages/skill/skill/src/index.ts"
]
},
{
@@ -9416,7 +9413,7 @@
"event:compaction/summary[0]"
],
"sources": [
"packages/core/session/src/types.ts:405"
"packages/core/session/src/types.ts"
]
},
{
@@ -9473,7 +9470,7 @@
"event:agent/inbox/spliced[0].data.inserted[0].source[10]"
],
"sources": [
"packages/host/apiproxy/src/api/sessions.ts:40"
"packages/host/apiproxy/src/api/sessions.ts"
]
},
{
@@ -9598,7 +9595,7 @@
"packages/context/agent-instructions/src/state.ts#AgentInstructionSource"
],
"sources": [
"packages/context/agent-instructions/src/state.ts:37"
"packages/context/agent-instructions/src/state.ts"
]
},
{
@@ -9664,7 +9661,7 @@
"packages/llm/llm/src/message.ts#ModelMessageSource"
],
"sources": [
"packages/llm/llm/src/message.ts:22"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -10730,7 +10727,7 @@
"event:session/title-llm-request[0]"
],
"sources": [
"packages/core/session/src/types.ts:405"
"packages/core/session/src/types.ts"
]
},
{
@@ -10843,7 +10840,7 @@
"event:compaction/prune[0]"
],
"sources": [
"packages/core/session/src/types.ts:405"
"packages/core/session/src/types.ts"
]
},
{
@@ -10895,7 +10892,7 @@
"packages/goal/goal/src/domain.ts#GoalMessageSource"
],
"sources": [
"packages/goal/goal/src/domain.ts:47"
"packages/goal/goal/src/domain.ts"
]
},
{
@@ -10933,7 +10930,7 @@
"packages/llm/llm/src/types.ts#ReasoningBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:60"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -10981,7 +10978,7 @@
"event:agent/inbox/spliced[0].data.inserted[0].source[17].entries[0]"
],
"sources": [
"packages/skill/tool-skill/src/index.ts:40"
"packages/skill/tool-skill/src/index.ts"
]
},
{
@@ -11045,7 +11042,7 @@
"packages/context/agent-instructions/src/render.ts#AgentInstructionChange"
],
"sources": [
"packages/context/agent-instructions/src/render.ts:47"
"packages/context/agent-instructions/src/render.ts"
]
},
{
@@ -12046,7 +12043,7 @@
"packages/llm/llm/src/message.ts#Message"
],
"sources": [
"packages/llm/llm/src/message.ts:129"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -12080,7 +12077,7 @@
"packages/llm/llm/src/message.ts#ContextSnapshotSection"
],
"sources": [
"packages/llm/llm/src/message.ts:63"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -12301,7 +12298,7 @@
"packages/llm/llm/src/types.ts#ContentBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:110"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -12409,7 +12406,7 @@
"event:hook/invoked[0]"
],
"sources": [
"packages/core/session/src/types.ts:405"
"packages/core/session/src/types.ts"
]
},
{
@@ -13174,7 +13171,7 @@
"packages/llm/llm/src/message.ts#MessageSource"
],
"sources": [
"packages/llm/llm/src/message.ts:126"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -14189,7 +14186,7 @@
"packages/core/agent/src/types.ts#InboxTarget"
],
"sources": [
"packages/core/agent/src/types.ts:10"
"packages/core/agent/src/types.ts"
]
},
{
@@ -14236,7 +14233,7 @@
"packages/subagent/subagent/src/continuation.ts#SubagentReportMessageSource"
],
"sources": [
"packages/subagent/subagent/src/continuation.ts:67"
"packages/subagent/subagent/src/continuation.ts"
]
},
{
@@ -14272,8 +14269,7 @@
"event:compaction/summary[0].data[1].shadowedRange"
],
"sources": [
"packages/compaction/compaction/src/types.ts:37",
"packages/compaction/compaction/src/types.ts:83"
"packages/compaction/compaction/src/types.ts"
]
},
{
@@ -14411,7 +14407,7 @@
"packages/hooks/hook-protocol/src/types.ts#HookDialect"
],
"sources": [
"packages/hooks/hook-protocol/src/types.ts:48"
"packages/hooks/hook-protocol/src/types.ts"
]
},
{
@@ -14854,7 +14850,7 @@
"packages/llm/llm/src/types.ts#ImageBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:71"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -15848,7 +15844,7 @@
"event:agent/inbox/spliced[0].data"
],
"sources": [
"packages/core/agent/src/types.ts:19"
"packages/core/agent/src/types.ts"
]
},
{
@@ -16802,7 +16798,7 @@
"packages/llm/llm/src/message.ts#UserMessage"
],
"sources": [
"packages/llm/llm/src/message.ts:141"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -16902,11 +16898,10 @@
"packages/interaction/commands/src/types.ts#CommandSource"
],
"sources": [
"packages/core/session/src/types.ts:144",
"packages/interaction/commands/src/types.ts:58",
"packages/interaction/commands/src/types.ts:62",
"packages/llm/llm/src/message.ts:101",
"packages/session/session-title/src/index.ts:55"
"packages/core/session/src/types.ts",
"packages/interaction/commands/src/types.ts",
"packages/llm/llm/src/message.ts",
"packages/session/session-title/src/index.ts"
]
},
{
@@ -17033,7 +17028,7 @@
"event:compaction/end[0]"
],
"sources": [
"packages/core/session/src/types.ts:405"
"packages/core/session/src/types.ts"
]
},
{
@@ -17116,7 +17111,7 @@
"packages/attachment/attachment/src/types.ts#ImageAttachmentRef"
],
"sources": [
"packages/attachment/attachment/src/types.ts:11"
"packages/attachment/attachment/src/types.ts"
]
},
{
@@ -17251,7 +17246,7 @@
"packages/context/session-reference/src/types.ts#SessionReferenceSource"
],
"sources": [
"packages/context/session-reference/src/types.ts:7"
"packages/context/session-reference/src/types.ts"
]
},
{
@@ -17410,7 +17405,7 @@
"packages/subagent/subagent/src/continuation.ts#CoordinatorMessageSource"
],
"sources": [
"packages/subagent/subagent/src/continuation.ts:58"
"packages/subagent/subagent/src/continuation.ts"
]
},
{
@@ -17486,7 +17481,7 @@
"packages/llm/llm/src/types.ts#ToolCallBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:78"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -17581,7 +17576,7 @@
"event:compaction/end[0].data"
],
"sources": [
"packages/compaction/compaction/src/types.ts:71"
"packages/compaction/compaction/src/types.ts"
]
},
{
@@ -17633,7 +17628,7 @@
"packages/llm/llm/src/message.ts#ToolMessageSource"
],
"sources": [
"packages/llm/llm/src/message.ts:27"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -17741,7 +17736,7 @@
"event:compaction/start[0]"
],
"sources": [
"packages/core/session/src/types.ts:405"
"packages/core/session/src/types.ts"
]
},
{
@@ -18901,7 +18896,7 @@
"event:agent/inbox/spliced[0]"
],
"sources": [
"packages/core/session/src/types.ts:405"
"packages/core/session/src/types.ts"
]
},
{
@@ -19318,7 +19313,7 @@
"packages/llm/llm/src/types.ts#ToolResultBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:88"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -19436,7 +19431,7 @@
"packages/skill/tool-skill/src/index.ts#SkillCatalogSource"
],
"sources": [
"packages/skill/tool-skill/src/index.ts:34"
"packages/skill/tool-skill/src/index.ts"
]
},
{
@@ -38,7 +38,7 @@ kind: persistence-release
写入版本常量在该 tag 中的源码证据:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## 声明
@@ -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/persistence-changes/releases/dsh-v0.0.1-rc.4.md
dsh-v0.0.1-rc.4.md: 0ce12ebe3b518aa9c5d8e87a7b11d80bff828473
dsh-v0.0.1-rc.4.zh.md: ffcfe4e46fda565571f53fcfb36fff6ab5fb81d4
dsh-v0.0.1-rc.4.md: 9c7da78e7c41f2cc6f3943f4dbe90c54e58bac18
dsh-v0.0.1-rc.4.zh.md: 143c524d05414b15317fae8e805dfaf5073fcd9d
@@ -38,7 +38,7 @@ This approximate backfill supports reading and format validation; it is not a co
Source evidence for the writer version constant at this tag:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## Declaration
@@ -38,7 +38,7 @@ kind: persistence-release
写入版本常量在该 tag 中的源码证据:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## 声明
@@ -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/persistence-changes/releases/dsh-v0.0.1-rc.5.md
dsh-v0.0.1-rc.5.md: f36c541168bc9abf735c73f3df2702bb0d690e96
dsh-v0.0.1-rc.5.zh.md: 0364bc284b4156072e8bd608186345fa1a0f8d5d
dsh-v0.0.1-rc.5.md: 1afd6e7fe971ce1765bafdde9ae276da6111fe13
dsh-v0.0.1-rc.5.zh.md: 6c445d83df0196b4c3e90e08f6d628b5ddd9e10c
@@ -38,7 +38,7 @@ This approximate backfill supports reading and format validation; it is not a co
Source evidence for the writer version constant at this tag:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## Declaration
@@ -38,7 +38,7 @@ kind: persistence-release
写入版本常量在该 tag 中的源码证据:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## 声明
@@ -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/persistence-changes/releases/dsh-v0.1.0-rc.1.md
dsh-v0.1.0-rc.1.md: faeb7d1e9c10474a3d22f527752b02bcd4e47f4b
dsh-v0.1.0-rc.1.zh.md: 0b866adf5805e7ce4e6780ffce018046acfd1aca
dsh-v0.1.0-rc.1.md: 2a00fea9945cce56ac3c13013dc154432a6dd3cd
dsh-v0.1.0-rc.1.zh.md: 3d6444fb438b594aec120fbe1fe9f57ccf4d1f0d
@@ -38,7 +38,7 @@ This approximate backfill supports reading and format validation; it is not a co
Source evidence for the writer version constant at this tag:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## Declaration
@@ -38,7 +38,7 @@ kind: persistence-release
写入版本常量在该 tag 中的源码证据:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## 声明
@@ -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/persistence-changes/releases/dsh-v0.1.0-rc.2.md
dsh-v0.1.0-rc.2.md: 0217947256c62261fc4c0e3914d4611281507364
dsh-v0.1.0-rc.2.zh.md: d8743a74f48d6a903f746275f0f59ef06845c6d4
dsh-v0.1.0-rc.2.md: 71764d9bf8b5862f46f503b01538c255ba546d58
dsh-v0.1.0-rc.2.zh.md: 6939f57c3836fb9fc7638a1832cbc04be09d843c
@@ -38,7 +38,7 @@ This approximate backfill supports reading and format validation; it is not a co
Source evidence for the writer version constant at this tag:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## Declaration
@@ -38,7 +38,7 @@ kind: persistence-release
写入版本常量在该 tag 中的源码证据:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## 声明
@@ -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/persistence-changes/releases/dsh-v0.1.0-rc.3.md
dsh-v0.1.0-rc.3.md: 5cc00deedb1d6f6639105880641d7804de3fa2e9
dsh-v0.1.0-rc.3.zh.md: 8c607fd2f14b9f6d7dd717f0913491d1f3f0030a
dsh-v0.1.0-rc.3.md: 5e6d42c63e16204835c4dc21e9dc404323382f6c
dsh-v0.1.0-rc.3.zh.md: 26e9763c44e010dbf20b91eecb2567b1cca9f8f5
@@ -38,7 +38,7 @@ This approximate backfill supports reading and format validation; it is not a co
Source evidence for the writer version constant at this tag:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## Declaration
@@ -38,7 +38,7 @@ kind: persistence-release
写入版本常量在该 tag 中的源码证据:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## 声明
@@ -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/persistence-changes/releases/dsh-v0.1.0-rc.5.md
dsh-v0.1.0-rc.5.md: c92270852fa0634430da1410f013120a8f09063b
dsh-v0.1.0-rc.5.zh.md: 2b16670b6057365c93d1caa5cf4bb43d9966ceeb
dsh-v0.1.0-rc.5.md: c7ef42e5f1373754b453db96fa87b17d63eaa256
dsh-v0.1.0-rc.5.zh.md: beeaecb89161317750ac719d4626c6e26bdd727a
@@ -38,7 +38,7 @@ This approximate backfill supports reading and format validation; it is not a co
Source evidence for the writer version constant at this tag:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## Declaration
@@ -38,7 +38,7 @@ kind: persistence-release
写入版本常量在该 tag 中的源码证据:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## 声明
@@ -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/persistence-changes/releases/dsh-v0.1.0-rc.6.md
dsh-v0.1.0-rc.6.md: 0fea7055fd2d3e65b23e0a42ebf63aa67a353d62
dsh-v0.1.0-rc.6.zh.md: ea0198770e8f288387e9b2745211f3ea0cee4a2c
dsh-v0.1.0-rc.6.md: c674b5208ef42d67f88b31a33ed63d8d83e5a5af
dsh-v0.1.0-rc.6.zh.md: cfd49c4c3d6d6d054c37c0322ccf43f3e5d6a289
@@ -38,7 +38,7 @@ This approximate backfill supports reading and format validation; it is not a co
Source evidence for the writer version constant at this tag:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## Declaration
@@ -38,7 +38,7 @@ kind: persistence-release
写入版本常量在该 tag 中的源码证据:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## 声明
@@ -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/persistence-changes/releases/dsh-v0.1.0-rc.7.md
dsh-v0.1.0-rc.7.md: b9894c9141a446178b7a7bd59cbbb9fd20523b1e
dsh-v0.1.0-rc.7.zh.md: 08741228a21e46e41b1ac24431f1229c2634c6d1
dsh-v0.1.0-rc.7.md: 6427da5c4656e96a5df273923340b86d341ef54c
dsh-v0.1.0-rc.7.zh.md: 91ae3f106109c2731efa9b07cc39764c720382a5
@@ -38,7 +38,7 @@ This approximate backfill supports reading and format validation; it is not a co
Source evidence for the writer version constant at this tag:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## Declaration
+42 -45
View File
@@ -745,7 +745,7 @@
"event:assistant/chunk[0].data.chunk[5]"
],
"sources": [
"packages/llm/llm/src/types.ts:318"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -783,7 +783,7 @@
"packages/llm/llm/src/types.ts#ReplayEnvelope"
],
"sources": [
"packages/llm/llm/src/types.ts:290"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -1073,7 +1073,7 @@
"packages/llm/llm/src/types.ts#TokenUsage"
],
"sources": [
"packages/llm/llm/src/types.ts:135"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -1102,7 +1102,7 @@
"event:assistant/chunk[0].data.chunk[6].reason[3]"
],
"sources": [
"packages/llm/llm/src/types.ts:117"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -1174,7 +1174,7 @@
"packages/llm/llm/src/types.ts#ContentBlockType"
],
"sources": [
"packages/llm/llm/src/types.ts:108"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -1227,7 +1227,7 @@
"packages/llm/llm/src/types.ts#LlmFailure"
],
"sources": [
"packages/llm/llm/src/types.ts:40"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -1256,7 +1256,7 @@
"event:assistant/chunk[0].data.chunk[6].reason[4]"
],
"sources": [
"packages/llm/llm/src/types.ts:118"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -1303,7 +1303,7 @@
"event:assistant/chunk[0].data.chunk[2]"
],
"sources": [
"packages/llm/llm/src/types.ts:315"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -1356,7 +1356,7 @@
"packages/attachment/attachment/src/types.ts#ImageMediaType"
],
"sources": [
"packages/attachment/attachment/src/types.ts:8"
"packages/attachment/attachment/src/types.ts"
]
},
{
@@ -1416,21 +1416,18 @@
"packages/workflow/workflow/src/types.ts#WorkflowRunId"
],
"sources": [
"packages/attachment/attachment/src/brand.ts:6",
"packages/compaction/compaction/src/brand.ts:4",
"packages/core/session/src/types.ts:22",
"packages/goal/goal/src/types.ts:16",
"packages/host/apiproxy/src/api/rpc.ts:18",
"packages/interaction/commands/src/brand.ts:20",
"packages/interaction/user-approval/src/types.ts:14",
"packages/llm/llm-retry/src/brand.ts:4",
"packages/llm/llm/src/brand.ts:16",
"packages/llm/llm/src/brand.ts:31",
"packages/llm/llm/src/brand.ts:43",
"packages/llm/llm/src/brand.ts:55",
"packages/schedule/schedule/src/types.ts:10",
"packages/session/session-title/src/index.ts:28",
"packages/workflow/workflow/src/types.ts:13"
"packages/attachment/attachment/src/brand.ts",
"packages/compaction/compaction/src/brand.ts",
"packages/core/session/src/types.ts",
"packages/goal/goal/src/types.ts",
"packages/host/apiproxy/src/api/rpc.ts",
"packages/interaction/commands/src/brand.ts",
"packages/interaction/user-approval/src/types.ts",
"packages/llm/llm-retry/src/brand.ts",
"packages/llm/llm/src/brand.ts",
"packages/schedule/schedule/src/types.ts",
"packages/session/session-title/src/index.ts",
"packages/workflow/workflow/src/types.ts"
]
},
{
@@ -1483,8 +1480,8 @@
"packages/llm/llm/src/types.ts#TextBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:54",
"packages/web/web-search-deepseek/src/provider.ts:67"
"packages/llm/llm/src/types.ts",
"packages/web/web-search-deepseek/src/provider.ts"
]
},
{
@@ -1674,7 +1671,7 @@
"packages/llm/llm/src/types.ts#FinishReason"
],
"sources": [
"packages/llm/llm/src/types.ts:125"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -1747,7 +1744,7 @@
"event:assistant/chunk[0].data.chunk[6].reason[0]"
],
"sources": [
"packages/llm/llm/src/types.ts:120"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -2007,7 +2004,7 @@
"event:assistant/chunk[0].data.chunk[4]"
],
"sources": [
"packages/llm/llm/src/types.ts:317"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -2073,7 +2070,7 @@
"packages/llm/llm/src/types.ts#ReasoningBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:60"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -2294,7 +2291,7 @@
"packages/llm/llm/src/types.ts#ContentBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:110"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -2351,7 +2348,7 @@
"event:assistant/chunk[0].data.chunk[3]"
],
"sources": [
"packages/llm/llm/src/types.ts:316"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -2398,7 +2395,7 @@
"event:assistant/chunk[0].data.chunk[1]"
],
"sources": [
"packages/llm/llm/src/types.ts:314"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -2623,7 +2620,7 @@
"event:assistant/chunk[0].data.chunk[6]"
],
"sources": [
"packages/llm/llm/src/types.ts:319"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -2696,7 +2693,7 @@
"event:assistant/chunk[0].data.chunk[0]"
],
"sources": [
"packages/llm/llm/src/types.ts:313"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -2799,7 +2796,7 @@
"packages/llm/llm/src/types.ts#ImageBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:71"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -2843,8 +2840,8 @@
"event:turn/end[0].data.reason[4]"
],
"sources": [
"packages/core/session/src/types.ts:168",
"packages/llm/llm/src/types.ts:119"
"packages/core/session/src/types.ts",
"packages/llm/llm/src/types.ts"
]
},
{
@@ -2927,7 +2924,7 @@
"packages/attachment/attachment/src/types.ts#ImageAttachmentRef"
],
"sources": [
"packages/attachment/attachment/src/types.ts:11"
"packages/attachment/attachment/src/types.ts"
]
},
{
@@ -3572,7 +3569,7 @@
"event:assistant/chunk[0].data"
],
"sources": [
"packages/core/session/src/types.ts:266"
"packages/core/session/src/types.ts"
]
},
{
@@ -3655,7 +3652,7 @@
"packages/llm/llm/src/types.ts#ToolCallBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:78"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -4259,7 +4256,7 @@
"packages/llm/llm/src/types.ts#StreamChunk"
],
"sources": [
"packages/llm/llm/src/types.ts:312"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -4332,7 +4329,7 @@
"event:assistant/chunk[0].data.chunk[6].reason[1]"
],
"sources": [
"packages/llm/llm/src/types.ts:121"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -5025,7 +5022,7 @@
"event:assistant/chunk[0]"
],
"sources": [
"packages/core/session/src/types.ts:405"
"packages/core/session/src/types.ts"
]
},
{
@@ -5302,7 +5299,7 @@
"packages/llm/llm/src/types.ts#ToolResultBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:88"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -38,7 +38,7 @@ assistant/chunk 的 replayState 从 unknown 改为包含必需字段 response
写入版本常量在该 tag 中的源码证据:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## 声明
@@ -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/persistence-changes/releases/dsh-v0.1.0-rc.8.md
dsh-v0.1.0-rc.8.md: a8725d448a971d94d0d8be0d170ec22a5d478c94
dsh-v0.1.0-rc.8.zh.md: 3acadf86de7dd5f84107023a03bd7c7979494623
dsh-v0.1.0-rc.8.md: c52f050b820b08ce96230e6a92042801a1f0bccc
dsh-v0.1.0-rc.8.zh.md: b4fd283ede61a70ad2e0d95981439801f68c3670
@@ -38,7 +38,7 @@ This approximate backfill supports reading and format validation; it is not a co
Source evidence for the writer version constant at this tag:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## Declaration
+68 -74
View File
@@ -4676,7 +4676,7 @@
"event:team/message/queued[0].data"
],
"sources": [
"packages/experimental/agent-team/src/types.ts:210"
"packages/experimental/agent-team/src/types.ts"
]
},
{
@@ -4724,7 +4724,7 @@
"packages/session/session-title/src/index.ts#SessionTitleModelProvenance"
],
"sources": [
"packages/session/session-title/src/index.ts:40"
"packages/session/session-title/src/index.ts"
]
},
{
@@ -4922,7 +4922,7 @@
"event:team/task[0]"
],
"sources": [
"packages/core/session/src/types.ts:409"
"packages/core/session/src/types.ts"
]
},
{
@@ -5015,7 +5015,7 @@
"event:agent/inbox/spliced[0].data.inserted[0].source[16].references[0]"
],
"sources": [
"packages/context/session-reference/src/types.ts:18"
"packages/context/session-reference/src/types.ts"
]
},
{
@@ -5334,7 +5334,7 @@
"packages/llm/llm/src/types.ts#TokenUsage"
],
"sources": [
"packages/llm/llm/src/types.ts:135"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -5415,7 +5415,7 @@
"packages/experimental/agent-team/src/types.ts#TeamMessageSource"
],
"sources": [
"packages/experimental/agent-team/src/types.ts:110"
"packages/experimental/agent-team/src/types.ts"
]
},
{
@@ -6558,7 +6558,7 @@
"packages/llm/llm/src/message.ts#UserMessage"
],
"sources": [
"packages/llm/llm/src/message.ts:141"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -6597,7 +6597,7 @@
"packages/attachment/attachment/src/types.ts#ImageMediaType"
],
"sources": [
"packages/attachment/attachment/src/types.ts:8"
"packages/attachment/attachment/src/types.ts"
]
},
{
@@ -6805,7 +6805,7 @@
"event:team/member[0]"
],
"sources": [
"packages/core/session/src/types.ts:409"
"packages/core/session/src/types.ts"
]
},
{
@@ -7162,7 +7162,7 @@
"packages/experimental/agent-team/src/types.ts#TeamMessageSnapshot"
],
"sources": [
"packages/experimental/agent-team/src/types.ts:100"
"packages/experimental/agent-team/src/types.ts"
]
},
{
@@ -7197,24 +7197,19 @@
"packages/workflow/workflow/src/types.ts#WorkflowRunId"
],
"sources": [
"packages/attachment/attachment/src/brand.ts:6",
"packages/compaction/compaction/src/brand.ts:4",
"packages/core/session/src/types.ts:22",
"packages/experimental/agent-team/src/types.ts:20",
"packages/experimental/agent-team/src/types.ts:32",
"packages/experimental/agent-team/src/types.ts:8",
"packages/goal/goal/src/types.ts:16",
"packages/host/apiproxy/src/api/rpc.ts:18",
"packages/interaction/commands/src/brand.ts:20",
"packages/interaction/user-approval/src/types.ts:14",
"packages/llm/llm-retry/src/brand.ts:4",
"packages/llm/llm/src/brand.ts:16",
"packages/llm/llm/src/brand.ts:31",
"packages/llm/llm/src/brand.ts:43",
"packages/llm/llm/src/brand.ts:55",
"packages/schedule/schedule/src/types.ts:10",
"packages/session/session-title/src/index.ts:28",
"packages/workflow/workflow/src/types.ts:13"
"packages/attachment/attachment/src/brand.ts",
"packages/compaction/compaction/src/brand.ts",
"packages/core/session/src/types.ts",
"packages/experimental/agent-team/src/types.ts",
"packages/goal/goal/src/types.ts",
"packages/host/apiproxy/src/api/rpc.ts",
"packages/interaction/commands/src/brand.ts",
"packages/interaction/user-approval/src/types.ts",
"packages/llm/llm-retry/src/brand.ts",
"packages/llm/llm/src/brand.ts",
"packages/schedule/schedule/src/types.ts",
"packages/session/session-title/src/index.ts",
"packages/workflow/workflow/src/types.ts"
]
},
{
@@ -7281,8 +7276,8 @@
"packages/llm/llm/src/types.ts#TextBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:54",
"packages/web/web-search-deepseek/src/provider.ts:67"
"packages/llm/llm/src/types.ts",
"packages/web/web-search-deepseek/src/provider.ts"
]
},
{
@@ -7334,7 +7329,7 @@
"packages/subagent/subagent/src/continuation.ts#SubagentSettledMessageSource"
],
"sources": [
"packages/subagent/subagent/src/continuation.ts:82"
"packages/subagent/subagent/src/continuation.ts"
]
},
{
@@ -7458,7 +7453,7 @@
"packages/experimental/agent-team/src/types.ts#TeamTaskSnapshot"
],
"sources": [
"packages/experimental/agent-team/src/types.ts:74"
"packages/experimental/agent-team/src/types.ts"
]
},
{
@@ -8510,7 +8505,7 @@
"packages/session/session-title-llm/src/index.ts#SessionTitleLlmRequestEventData"
],
"sources": [
"packages/session/session-title-llm/src/index.ts:25"
"packages/session/session-title-llm/src/index.ts"
]
},
{
@@ -8861,7 +8856,7 @@
"event:assistant/message.data"
],
"sources": [
"packages/core/session/src/types.ts:277"
"packages/core/session/src/types.ts"
]
},
{
@@ -9198,7 +9193,7 @@
"event:team/message/queued[0]"
],
"sources": [
"packages/core/session/src/types.ts:409"
"packages/core/session/src/types.ts"
]
},
{
@@ -9243,7 +9238,7 @@
"SessionEventEnvelope[6].surfaceOp[1]"
],
"sources": [
"packages/core/session/src/types.ts:378"
"packages/core/session/src/types.ts"
]
},
{
@@ -10070,7 +10065,7 @@
"packages/llm/llm/src/message.ts#MessageSource"
],
"sources": [
"packages/llm/llm/src/message.ts:126"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -10164,7 +10159,7 @@
"packages/experimental/agent-team/src/types.ts#TeamMemberSnapshot"
],
"sources": [
"packages/experimental/agent-team/src/types.ts:47"
"packages/experimental/agent-team/src/types.ts"
]
},
{
@@ -10211,7 +10206,7 @@
"packages/skill/skill/src/index.ts#SkillInvocationSource"
],
"sources": [
"packages/skill/skill/src/index.ts:147"
"packages/skill/skill/src/index.ts"
]
},
{
@@ -11246,7 +11241,7 @@
"event:agent/inbox/spliced[0].data.inserted[0].source[10]"
],
"sources": [
"packages/host/apiproxy/src/api/sessions.ts:55"
"packages/host/apiproxy/src/api/sessions.ts"
]
},
{
@@ -11385,7 +11380,7 @@
"packages/context/agent-instructions/src/state.ts#AgentInstructionSource"
],
"sources": [
"packages/context/agent-instructions/src/state.ts:37"
"packages/context/agent-instructions/src/state.ts"
]
},
{
@@ -11451,7 +11446,7 @@
"packages/llm/llm/src/message.ts#ModelMessageSource"
],
"sources": [
"packages/llm/llm/src/message.ts:22"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -12495,7 +12490,7 @@
"event:agent/inbox/spliced[0].data"
],
"sources": [
"packages/core/agent/src/types.ts:19"
"packages/core/agent/src/types.ts"
]
},
{
@@ -13561,7 +13556,7 @@
"event:agent/inbox/spliced[0]"
],
"sources": [
"packages/core/session/src/types.ts:409"
"packages/core/session/src/types.ts"
]
},
{
@@ -13609,7 +13604,7 @@
"event:team/message/delivered[0].data"
],
"sources": [
"packages/experimental/agent-team/src/types.ts:212"
"packages/experimental/agent-team/src/types.ts"
]
},
{
@@ -13675,7 +13670,7 @@
"packages/goal/goal/src/domain.ts#GoalMessageSource"
],
"sources": [
"packages/goal/goal/src/domain.ts:47"
"packages/goal/goal/src/domain.ts"
]
},
{
@@ -13713,7 +13708,7 @@
"packages/llm/llm/src/types.ts#ReasoningBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:60"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -13775,7 +13770,7 @@
"event:agent/inbox/spliced[0].data.inserted[0].source[17].entries[0]"
],
"sources": [
"packages/skill/tool-skill/src/index.ts:40"
"packages/skill/tool-skill/src/index.ts"
]
},
{
@@ -14833,7 +14828,7 @@
"packages/context/agent-instructions/src/render.ts#AgentInstructionChange"
],
"sources": [
"packages/context/agent-instructions/src/render.ts:47"
"packages/context/agent-instructions/src/render.ts"
]
},
{
@@ -14912,7 +14907,7 @@
"packages/llm/llm/src/message.ts#ContextSnapshotSection"
],
"sources": [
"packages/llm/llm/src/message.ts:63"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -15147,7 +15142,7 @@
"packages/llm/llm/src/types.ts#ContentBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:110"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -15315,7 +15310,7 @@
"packages/core/agent/src/types.ts#InboxTarget"
],
"sources": [
"packages/core/agent/src/types.ts:10"
"packages/core/agent/src/types.ts"
]
},
{
@@ -15362,7 +15357,7 @@
"packages/subagent/subagent/src/continuation.ts#SubagentReportMessageSource"
],
"sources": [
"packages/subagent/subagent/src/continuation.ts:67"
"packages/subagent/subagent/src/continuation.ts"
]
},
{
@@ -15574,7 +15569,7 @@
"packages/llm/llm/src/types.ts#ImageBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:71"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -15702,11 +15697,10 @@
"packages/interaction/commands/src/types.ts#CommandSource"
],
"sources": [
"packages/core/session/src/types.ts:144",
"packages/interaction/commands/src/types.ts:66",
"packages/interaction/commands/src/types.ts:70",
"packages/llm/llm/src/message.ts:101",
"packages/session/session-title/src/index.ts:55"
"packages/core/session/src/types.ts",
"packages/interaction/commands/src/types.ts",
"packages/llm/llm/src/message.ts",
"packages/session/session-title/src/index.ts"
]
},
{
@@ -15803,7 +15797,7 @@
"packages/attachment/attachment/src/types.ts#ImageAttachmentRef"
],
"sources": [
"packages/attachment/attachment/src/types.ts:11"
"packages/attachment/attachment/src/types.ts"
]
},
{
@@ -15842,7 +15836,7 @@
"packages/experimental/agent-team/src/types.ts#TeamTaskStatus"
],
"sources": [
"packages/experimental/agent-team/src/types.ts:71"
"packages/experimental/agent-team/src/types.ts"
]
},
{
@@ -15977,7 +15971,7 @@
"packages/context/session-reference/src/types.ts#SessionReferenceSource"
],
"sources": [
"packages/context/session-reference/src/types.ts:13"
"packages/context/session-reference/src/types.ts"
]
},
{
@@ -16174,7 +16168,7 @@
"event:team/member[0].data"
],
"sources": [
"packages/experimental/agent-team/src/types.ts:206"
"packages/experimental/agent-team/src/types.ts"
]
},
{
@@ -16270,7 +16264,7 @@
"packages/subagent/subagent/src/continuation.ts#CoordinatorMessageSource"
],
"sources": [
"packages/subagent/subagent/src/continuation.ts:58"
"packages/subagent/subagent/src/continuation.ts"
]
},
{
@@ -16346,7 +16340,7 @@
"packages/llm/llm/src/types.ts#ToolCallBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:78"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -16438,7 +16432,7 @@
"event:team/message/delivered[0]"
],
"sources": [
"packages/core/session/src/types.ts:409"
"packages/core/session/src/types.ts"
]
},
{
@@ -16787,7 +16781,7 @@
"packages/llm/llm/src/message.ts#AssistantMessage"
],
"sources": [
"packages/llm/llm/src/message.ts:146"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -16825,7 +16819,7 @@
"packages/llm/llm/src/message.ts#ToolMessageSource"
],
"sources": [
"packages/llm/llm/src/message.ts:27"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -17031,7 +17025,7 @@
"packages/experimental/agent-team/src/types.ts#TeamMemberPhase"
],
"sources": [
"packages/experimental/agent-team/src/types.ts:44"
"packages/experimental/agent-team/src/types.ts"
]
},
{
@@ -18023,7 +18017,7 @@
"packages/llm/llm/src/message.ts#Message"
],
"sources": [
"packages/llm/llm/src/message.ts:129"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -19270,7 +19264,7 @@
"event:team/task[0].data"
],
"sources": [
"packages/experimental/agent-team/src/types.ts:208"
"packages/experimental/agent-team/src/types.ts"
]
},
{
@@ -20456,7 +20450,7 @@
"event:session/title-llm-request[0]"
],
"sources": [
"packages/core/session/src/types.ts:409"
"packages/core/session/src/types.ts"
]
},
{
@@ -20691,7 +20685,7 @@
"packages/llm/llm/src/types.ts#ToolResultBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:88"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -21243,7 +21237,7 @@
"packages/skill/tool-skill/src/index.ts#SkillCatalogSource"
],
"sources": [
"packages/skill/tool-skill/src/index.ts:34"
"packages/skill/tool-skill/src/index.ts"
]
},
{
@@ -38,7 +38,7 @@ kind: persistence-release
写入版本常量在该 tag 中的源码证据:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## 声明
@@ -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/persistence-changes/releases/dsh-v0.1.1-rc.1.md
dsh-v0.1.1-rc.1.md: cf47ee2445a20c85d655ad11f0e2a665ee527987
dsh-v0.1.1-rc.1.zh.md: 0195c04c9e1929b29a31aba85834450f522f08e8
dsh-v0.1.1-rc.1.md: 6b598f1c614e7538d0687e68b7397b362bd9f801
dsh-v0.1.1-rc.1.zh.md: eca10c509ef0bd0c64433ee62200ae6a4bbd161e
@@ -38,7 +38,7 @@ This approximate backfill supports reading and format validation; it is not a co
Source evidence for the writer version constant at this tag:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## Declaration
+15 -20
View File
@@ -158,24 +158,19 @@
"packages/workflow/workflow/src/types.ts#WorkflowRunId"
],
"sources": [
"packages/attachment/attachment/src/brand.ts:6",
"packages/compaction/compaction/src/brand.ts:4",
"packages/core/session/src/types.ts:22",
"packages/experimental/agent-team/src/types.ts:20",
"packages/experimental/agent-team/src/types.ts:32",
"packages/experimental/agent-team/src/types.ts:8",
"packages/goal/goal/src/types.ts:16",
"packages/host/apiproxy/src/api/rpc.ts:18",
"packages/interaction/commands/src/brand.ts:20",
"packages/interaction/user-approval/src/types.ts:14",
"packages/llm/llm-retry/src/brand.ts:4",
"packages/llm/llm/src/brand.ts:16",
"packages/llm/llm/src/brand.ts:31",
"packages/llm/llm/src/brand.ts:43",
"packages/llm/llm/src/brand.ts:55",
"packages/schedule/schedule/src/types.ts:10",
"packages/session/session-title/src/index.ts:28",
"packages/workflow/workflow/src/types.ts:13"
"packages/attachment/attachment/src/brand.ts",
"packages/compaction/compaction/src/brand.ts",
"packages/core/session/src/types.ts",
"packages/experimental/agent-team/src/types.ts",
"packages/goal/goal/src/types.ts",
"packages/host/apiproxy/src/api/rpc.ts",
"packages/interaction/commands/src/brand.ts",
"packages/interaction/user-approval/src/types.ts",
"packages/llm/llm-retry/src/brand.ts",
"packages/llm/llm/src/brand.ts",
"packages/schedule/schedule/src/types.ts",
"packages/session/session-title/src/index.ts",
"packages/workflow/workflow/src/types.ts"
]
},
{
@@ -305,7 +300,7 @@
"event:permission/preset[0]"
],
"sources": [
"packages/core/session/src/types.ts:409"
"packages/core/session/src/types.ts"
]
},
{
@@ -415,7 +410,7 @@
"event:permission/preset[0].data"
],
"sources": [
"packages/interaction/permission-presets/src/index.ts:53"
"packages/interaction/permission-presets/src/index.ts"
]
}
]
@@ -38,7 +38,7 @@ permission/preset 新增可选字段 origin,可取 default、selection 或 inf
写入版本常量在该 tag 中的源码证据:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## 声明
@@ -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/persistence-changes/releases/dsh-v0.1.1-rc.2.md
dsh-v0.1.1-rc.2.md: f2f08c817d804127d2a62389dadb591b52256b2b
dsh-v0.1.1-rc.2.zh.md: 6204ae387ee4b4f7ba5f65ff43a9d6490cc3b6ef
dsh-v0.1.1-rc.2.md: 41cc4f0a3953c30bbbfde36fb6efeac2739c3d9a
dsh-v0.1.1-rc.2.zh.md: 5ab22efd5dcf257dba7ca517ac371e0f8cbae3fd
@@ -38,7 +38,7 @@ This approximate backfill supports reading and format validation; it is not a co
Source evidence for the writer version constant at this tag:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## Declaration
+90 -97
View File
@@ -6324,7 +6324,7 @@
"packages/llm/llm/src/types.ts#ToolResultBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:88"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -6372,7 +6372,7 @@
"packages/session/session-title/src/index.ts#SessionTitleModelProvenance"
],
"sources": [
"packages/session/session-title/src/index.ts:40"
"packages/session/session-title/src/index.ts"
]
},
{
@@ -6441,7 +6441,7 @@
"event:assistant/chunk[0].data.chunk[5]"
],
"sources": [
"packages/llm/llm/src/types.ts:318"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -6479,7 +6479,7 @@
"packages/llm/llm/src/types.ts#ReplayEnvelope"
],
"sources": [
"packages/llm/llm/src/types.ts:290"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -6563,7 +6563,7 @@
"event:agent/inbox/spliced[0].data.inserted[0].content[0][2].attachment.originalDimensions"
],
"sources": [
"packages/attachment/attachment/src/types.ts:28"
"packages/attachment/attachment/src/types.ts"
]
},
{
@@ -6869,7 +6869,7 @@
"packages/llm/llm/src/message.ts#AssistantMessage"
],
"sources": [
"packages/llm/llm/src/message.ts:146"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -6962,7 +6962,7 @@
"event:agent/inbox/spliced[0].data.inserted[0].source[16].references[0]"
],
"sources": [
"packages/context/session-reference/src/types.ts:18"
"packages/context/session-reference/src/types.ts"
]
},
{
@@ -7039,7 +7039,7 @@
"packages/llm/llm/src/types.ts#TokenUsage"
],
"sources": [
"packages/llm/llm/src/types.ts:135"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -7068,7 +7068,7 @@
"event:assistant/chunk[0].data.chunk[6].reason[3]"
],
"sources": [
"packages/llm/llm/src/types.ts:117"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -7140,7 +7140,7 @@
"packages/llm/llm/src/types.ts#ContentBlockType"
],
"sources": [
"packages/llm/llm/src/types.ts:108"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -7193,7 +7193,7 @@
"packages/experimental/agent-team/src/types.ts#TeamMessageSource"
],
"sources": [
"packages/experimental/agent-team/src/types.ts:110"
"packages/experimental/agent-team/src/types.ts"
]
},
{
@@ -7260,7 +7260,7 @@
"packages/llm/llm/src/types.ts#LlmFailure"
],
"sources": [
"packages/llm/llm/src/types.ts:40"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -7289,7 +7289,7 @@
"event:assistant/chunk[0].data.chunk[6].reason[4]"
],
"sources": [
"packages/llm/llm/src/types.ts:118"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -7402,7 +7402,7 @@
"event:assistant/chunk[0].data.chunk[2]"
],
"sources": [
"packages/llm/llm/src/types.ts:315"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -8488,7 +8488,7 @@
"packages/llm/llm/src/message.ts#Message"
],
"sources": [
"packages/llm/llm/src/message.ts:129"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -8527,7 +8527,7 @@
"packages/attachment/attachment/src/types.ts#ImageMediaType"
],
"sources": [
"packages/attachment/attachment/src/types.ts:8"
"packages/attachment/attachment/src/types.ts"
]
},
{
@@ -9197,7 +9197,7 @@
"packages/llm/llm/src/types.ts#StreamChunk"
],
"sources": [
"packages/llm/llm/src/types.ts:312"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -11839,7 +11839,7 @@
"event:agent/inbox/spliced[0]"
],
"sources": [
"packages/core/session/src/types.ts:409"
"packages/core/session/src/types.ts"
]
},
{
@@ -11874,24 +11874,19 @@
"packages/workflow/workflow/src/types.ts#WorkflowRunId"
],
"sources": [
"packages/attachment/attachment/src/brand.ts:6",
"packages/compaction/compaction/src/brand.ts:4",
"packages/core/session/src/types.ts:22",
"packages/experimental/agent-team/src/types.ts:20",
"packages/experimental/agent-team/src/types.ts:32",
"packages/experimental/agent-team/src/types.ts:8",
"packages/goal/goal/src/types.ts:16",
"packages/host/apiproxy/src/api/rpc.ts:18",
"packages/interaction/commands/src/brand.ts:20",
"packages/interaction/user-approval/src/types.ts:14",
"packages/llm/llm-retry/src/brand.ts:4",
"packages/llm/llm/src/brand.ts:16",
"packages/llm/llm/src/brand.ts:31",
"packages/llm/llm/src/brand.ts:43",
"packages/llm/llm/src/brand.ts:55",
"packages/schedule/schedule/src/types.ts:10",
"packages/session/session-title/src/index.ts:28",
"packages/workflow/workflow/src/types.ts:13"
"packages/attachment/attachment/src/brand.ts",
"packages/compaction/compaction/src/brand.ts",
"packages/core/session/src/types.ts",
"packages/experimental/agent-team/src/types.ts",
"packages/goal/goal/src/types.ts",
"packages/host/apiproxy/src/api/rpc.ts",
"packages/interaction/commands/src/brand.ts",
"packages/interaction/user-approval/src/types.ts",
"packages/llm/llm-retry/src/brand.ts",
"packages/llm/llm/src/brand.ts",
"packages/schedule/schedule/src/types.ts",
"packages/session/session-title/src/index.ts",
"packages/workflow/workflow/src/types.ts"
]
},
{
@@ -11958,8 +11953,8 @@
"packages/llm/llm/src/types.ts#TextBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:54",
"packages/web/web-search-deepseek/src/provider.ts:67"
"packages/llm/llm/src/types.ts",
"packages/web/web-search-deepseek/src/provider.ts"
]
},
{
@@ -12011,7 +12006,7 @@
"packages/subagent/subagent/src/continuation.ts#SubagentSettledMessageSource"
],
"sources": [
"packages/subagent/subagent/src/continuation.ts:82"
"packages/subagent/subagent/src/continuation.ts"
]
},
{
@@ -12697,7 +12692,7 @@
"event:assistant/chunk[0]"
],
"sources": [
"packages/core/session/src/types.ts:409"
"packages/core/session/src/types.ts"
]
},
{
@@ -12753,7 +12748,7 @@
"event:tool/result.data.meta[6]"
],
"sources": [
"packages/core/session/src/json.ts:13"
"packages/core/session/src/json.ts"
]
},
{
@@ -12787,7 +12782,7 @@
"event:tool/result.data.error"
],
"sources": [
"packages/core/session/src/types.ts:299"
"packages/core/session/src/types.ts"
]
},
{
@@ -12860,7 +12855,7 @@
"SessionEventEnvelope[6].surfaceOp[1]"
],
"sources": [
"packages/core/session/src/types.ts:378"
"packages/core/session/src/types.ts"
]
},
{
@@ -12975,7 +12970,7 @@
"event:permission/preset[0]"
],
"sources": [
"packages/core/session/src/types.ts:409"
"packages/core/session/src/types.ts"
]
},
{
@@ -13153,7 +13148,7 @@
"packages/llm/llm/src/types.ts#FinishReason"
],
"sources": [
"packages/llm/llm/src/types.ts:125"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -13922,7 +13917,7 @@
"packages/llm/llm/src/message.ts#MessageSource"
],
"sources": [
"packages/llm/llm/src/message.ts:126"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -14995,7 +14990,7 @@
"packages/session/session-title-llm/src/index.ts#SessionTitleLlmRequestEventData"
],
"sources": [
"packages/session/session-title-llm/src/index.ts:25"
"packages/session/session-title-llm/src/index.ts"
]
},
{
@@ -15068,7 +15063,7 @@
"event:assistant/chunk[0].data.chunk[6].reason[0]"
],
"sources": [
"packages/llm/llm/src/types.ts:120"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -15115,7 +15110,7 @@
"packages/skill/skill/src/index.ts#SkillInvocationSource"
],
"sources": [
"packages/skill/skill/src/index.ts:147"
"packages/skill/skill/src/index.ts"
]
},
{
@@ -15186,7 +15181,7 @@
"event:agent/inbox/spliced[0].data.inserted[0].source[10]"
],
"sources": [
"packages/host/apiproxy/src/api/sessions.ts:59"
"packages/host/apiproxy/src/api/sessions.ts"
]
},
{
@@ -15353,7 +15348,7 @@
"packages/context/agent-instructions/src/state.ts#AgentInstructionSource"
],
"sources": [
"packages/context/agent-instructions/src/state.ts:37"
"packages/context/agent-instructions/src/state.ts"
]
},
{
@@ -16495,7 +16490,7 @@
"packages/llm/llm/src/message.ts#ModelMessageSource"
],
"sources": [
"packages/llm/llm/src/message.ts:22"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -17259,7 +17254,7 @@
"event:assistant/chunk[0].data.chunk[4]"
],
"sources": [
"packages/llm/llm/src/types.ts:317"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -18310,7 +18305,7 @@
"event:agent/inbox/spliced[0].data"
],
"sources": [
"packages/core/agent/src/types.ts:19"
"packages/core/agent/src/types.ts"
]
},
{
@@ -18617,7 +18612,7 @@
"packages/experimental/agent-team/src/types.ts#TeamMessageSnapshot"
],
"sources": [
"packages/experimental/agent-team/src/types.ts:100"
"packages/experimental/agent-team/src/types.ts"
]
},
{
@@ -18669,7 +18664,7 @@
"packages/goal/goal/src/domain.ts#GoalMessageSource"
],
"sources": [
"packages/goal/goal/src/domain.ts:47"
"packages/goal/goal/src/domain.ts"
]
},
{
@@ -19136,7 +19131,7 @@
"event:compaction/summary[0]"
],
"sources": [
"packages/core/session/src/types.ts:409"
"packages/core/session/src/types.ts"
]
},
{
@@ -19174,7 +19169,7 @@
"packages/llm/llm/src/types.ts#ReasoningBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:60"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -19236,7 +19231,7 @@
"event:agent/inbox/spliced[0].data.inserted[0].source[17].entries[0]"
],
"sources": [
"packages/skill/tool-skill/src/index.ts:40"
"packages/skill/tool-skill/src/index.ts"
]
},
{
@@ -19300,7 +19295,7 @@
"packages/context/agent-instructions/src/render.ts#AgentInstructionChange"
],
"sources": [
"packages/context/agent-instructions/src/render.ts:47"
"packages/context/agent-instructions/src/render.ts"
]
},
{
@@ -19379,7 +19374,7 @@
"packages/llm/llm/src/message.ts#ContextSnapshotSection"
],
"sources": [
"packages/llm/llm/src/message.ts:63"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -19681,7 +19676,7 @@
"packages/llm/llm/src/message.ts#ToolResultMessage"
],
"sources": [
"packages/llm/llm/src/message.ts:152"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -19738,7 +19733,7 @@
"event:assistant/chunk[0].data.chunk[3]"
],
"sources": [
"packages/llm/llm/src/types.ts:316"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -19767,7 +19762,7 @@
"event:permission/preset[0].data"
],
"sources": [
"packages/interaction/permission-presets/src/index.ts:50"
"packages/interaction/permission-presets/src/index.ts"
]
},
{
@@ -20427,7 +20422,7 @@
"event:assistant/chunk[0].data"
],
"sources": [
"packages/core/session/src/types.ts:266"
"packages/core/session/src/types.ts"
]
},
{
@@ -20551,7 +20546,7 @@
"packages/llm/llm/src/types.ts#ImageBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:71"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -20942,7 +20937,7 @@
"event:team/message/queued[0].data"
],
"sources": [
"packages/experimental/agent-team/src/types.ts:210"
"packages/experimental/agent-team/src/types.ts"
]
},
{
@@ -20989,7 +20984,7 @@
"event:assistant/chunk[0].data.chunk[1]"
],
"sources": [
"packages/llm/llm/src/types.ts:314"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -21032,7 +21027,7 @@
"packages/core/agent/src/types.ts#InboxTarget"
],
"sources": [
"packages/core/agent/src/types.ts:10"
"packages/core/agent/src/types.ts"
]
},
{
@@ -21079,7 +21074,7 @@
"packages/subagent/subagent/src/continuation.ts#SubagentReportMessageSource"
],
"sources": [
"packages/subagent/subagent/src/continuation.ts:67"
"packages/subagent/subagent/src/continuation.ts"
]
},
{
@@ -22202,7 +22197,7 @@
"event:session/title-llm-request[0]"
],
"sources": [
"packages/core/session/src/types.ts:409"
"packages/core/session/src/types.ts"
]
},
{
@@ -22238,8 +22233,7 @@
"event:compaction/summary[0].data[1].shadowedRange"
],
"sources": [
"packages/compaction/compaction/src/types.ts:37",
"packages/compaction/compaction/src/types.ts:83"
"packages/compaction/compaction/src/types.ts"
]
},
{
@@ -22509,7 +22503,7 @@
"packages/llm/llm/src/types.ts#ContentBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:110"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -22801,7 +22795,7 @@
"event:assistant/chunk[0].data.chunk[6]"
],
"sources": [
"packages/llm/llm/src/types.ts:319"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -22874,7 +22868,7 @@
"event:assistant/chunk[0].data.chunk[0]"
],
"sources": [
"packages/llm/llm/src/types.ts:313"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -23232,7 +23226,7 @@
"event:team/message/queued[0]"
],
"sources": [
"packages/core/session/src/types.ts:409"
"packages/core/session/src/types.ts"
]
},
{
@@ -23741,8 +23735,8 @@
"event:turn/end[0].data.reason[4]"
],
"sources": [
"packages/core/session/src/types.ts:168",
"packages/llm/llm/src/types.ts:119"
"packages/core/session/src/types.ts",
"packages/llm/llm/src/types.ts"
]
},
{
@@ -23842,11 +23836,10 @@
"packages/interaction/commands/src/types.ts#CommandSource"
],
"sources": [
"packages/core/session/src/types.ts:144",
"packages/interaction/commands/src/types.ts:66",
"packages/interaction/commands/src/types.ts:70",
"packages/llm/llm/src/message.ts:101",
"packages/session/session-title/src/index.ts:55"
"packages/core/session/src/types.ts",
"packages/interaction/commands/src/types.ts",
"packages/llm/llm/src/message.ts",
"packages/session/session-title/src/index.ts"
]
},
{
@@ -23978,7 +23971,7 @@
"packages/attachment/attachment/src/types.ts#ImageAttachmentRef"
],
"sources": [
"packages/attachment/attachment/src/types.ts:11"
"packages/attachment/attachment/src/types.ts"
]
},
{
@@ -24133,7 +24126,7 @@
"packages/context/session-reference/src/types.ts#SessionReferenceSource"
],
"sources": [
"packages/context/session-reference/src/types.ts:13"
"packages/context/session-reference/src/types.ts"
]
},
{
@@ -25569,7 +25562,7 @@
"packages/llm/llm/src/message.ts#UserMessage"
],
"sources": [
"packages/llm/llm/src/message.ts:141"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -26239,7 +26232,7 @@
"packages/subagent/subagent/src/continuation.ts#CoordinatorMessageSource"
],
"sources": [
"packages/subagent/subagent/src/continuation.ts:58"
"packages/subagent/subagent/src/continuation.ts"
]
},
{
@@ -26608,7 +26601,7 @@
"event:tool/code-dispatch[0]"
],
"sources": [
"packages/core/session/src/types.ts:409"
"packages/core/session/src/types.ts"
]
},
{
@@ -26656,7 +26649,7 @@
"packages/llm/llm/src/types.ts#ToolCallBlock"
],
"sources": [
"packages/llm/llm/src/types.ts:78"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -26961,7 +26954,7 @@
"packages/core/session/src/json.ts#JsonValue"
],
"sources": [
"packages/core/session/src/json.ts:13"
"packages/core/session/src/json.ts"
]
},
{
@@ -27070,7 +27063,7 @@
"event:assistant/chunk[0].data.chunk[6].reason[1]"
],
"sources": [
"packages/llm/llm/src/types.ts:121"
"packages/llm/llm/src/types.ts"
]
},
{
@@ -27150,7 +27143,7 @@
"packages/llm/llm/src/message.ts#ToolMessageSource"
],
"sources": [
"packages/llm/llm/src/message.ts:27"
"packages/llm/llm/src/message.ts"
]
},
{
@@ -27728,7 +27721,7 @@
"event:tool/result.data"
],
"sources": [
"packages/core/session/src/types.ts:295"
"packages/core/session/src/types.ts"
]
},
{
@@ -29239,7 +29232,7 @@
"event:assistant/message.data"
],
"sources": [
"packages/core/session/src/types.ts:277"
"packages/core/session/src/types.ts"
]
},
{
@@ -29554,7 +29547,7 @@
"packages/core/tools/src/types.ts#CodeDispatchEventData"
],
"sources": [
"packages/core/tools/src/types.ts:20"
"packages/core/tools/src/types.ts"
]
},
{
@@ -29658,7 +29651,7 @@
"packages/skill/tool-skill/src/index.ts#SkillCatalogSource"
],
"sources": [
"packages/skill/tool-skill/src/index.ts:34"
"packages/skill/tool-skill/src/index.ts"
]
},
{
@@ -38,7 +38,7 @@ permission/preset 删除 origin;附件记录新增可选字段 originalDimensi
写入版本常量在该 tag 中的源码证据:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## 声明
@@ -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/persistence-changes/releases/dsh-v0.1.2-alpha.1.md
dsh-v0.1.2-alpha.1.md: e81e562fda85b9002a9127e926a9bcfc4bdc899e
dsh-v0.1.2-alpha.1.zh.md: eeb662e8dad0a6c65a05075f78b32833d7c0691d
dsh-v0.1.2-alpha.1.md: 3ed00447e4c99722e3eeb04e5dcfa52b582df916
dsh-v0.1.2-alpha.1.zh.md: 09a6bf3df1654b412809cef5cd296a37500a93bd
@@ -38,7 +38,7 @@ This approximate backfill supports reading and format validation; it is not a co
Source evidence for the writer version constant at this tag:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## Declaration
File diff suppressed because it is too large. Load diff
@@ -38,7 +38,7 @@ kind: persistence-release
写入版本常量在该 tag 中的源码证据:
- `packages/core/session/src/types.ts:56`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## 声明
@@ -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/persistence-changes/releases/dsh-v0.1.2-alpha.2.md
dsh-v0.1.2-alpha.2.md: 3c2fbba0389330f4d91d1618193eb215b1c20d9b
dsh-v0.1.2-alpha.2.zh.md: b75873c19dd240ed17cc20cd5dd707aa914f9ae5
dsh-v0.1.2-alpha.2.md: 8d4830f4b4b912b92977bfa836eaee3f56ce820a
dsh-v0.1.2-alpha.2.zh.md: b68ea098410e7b024d55122ef155183a3b51a11f
@@ -38,7 +38,7 @@ This approximate backfill supports reading and format validation; it is not a co
Source evidence for the writer version constant at this tag:
- `packages/core/session/src/types.ts:51`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## Declaration
File diff suppressed because it is too large. Load diff
@@ -38,7 +38,7 @@ kind: persistence-release
写入版本常量在该 tag 中的源码证据:
- `packages/core/session/src/types.ts:51`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## 声明
@@ -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/persistence-changes/releases/dsh-v0.1.2-alpha.3.md
dsh-v0.1.2-alpha.3.md: aed9535e0b18fd91fe1cc0a1b932cc9f9364c89e
dsh-v0.1.2-alpha.3.zh.md: 314bee920af17a7ded9710299784642188187ce3
dsh-v0.1.2-alpha.3.md: 109aeef57811cc389a8d1902d23fa1481acaf131
dsh-v0.1.2-alpha.3.zh.md: c54594cd106df6f5a2b75d856daa8513da9759dd
@@ -38,7 +38,7 @@ This approximate backfill supports reading and format validation; it is not a co
Source evidence for the writer version constant at this tag:
- `packages/core/session/src/types.ts:51`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## Declaration
@@ -38,7 +38,7 @@ kind: persistence-release
写入版本常量在该 tag 中的源码证据:
- `packages/core/session/src/types.ts:51`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## 声明
@@ -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/persistence-changes/releases/dsh-v0.1.2-alpha.4.md
dsh-v0.1.2-alpha.4.md: 82ce5ae9968bb16850c24fed015b927bb143a497
dsh-v0.1.2-alpha.4.zh.md: d6dc87ac190a68666c893f4c34d673af2c142abc
dsh-v0.1.2-alpha.4.md: 9a6be5072c8a25ef83c855fbb4e2ec65da7817c0
dsh-v0.1.2-alpha.4.zh.md: a279aebe89da2010f327efea909cd7e964cd7da9
@@ -38,7 +38,7 @@ This approximate backfill supports reading and format validation; it is not a co
Source evidence for the writer version constant at this tag:
- `packages/core/session/src/types.ts:87`: `export const SESSION_FORMAT_VERSION = 0`
- `packages/core/session/src/types.ts`: `export const SESSION_FORMAT_VERSION = 0`
<a id="declaration"></a>
## Declaration
Loaded 100 of 150 files, more files were not shown because too many files have changed in this diff. Show more