dsh-plugin-guide 0.3.21 → 0.3.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README-es.md +15 -12
- package/README-hi.md +15 -12
- package/README-pt.md +15 -12
- package/README-zh.md +15 -12
- package/README.md +290 -280
- package/SKILL.md +36 -19
- package/dist/dsh-plugin-dev.js +113 -9
- package/guide/choosing-a-plugin.md +412 -0
- package/guide/choosing-a-plugin.zh-CN.md +414 -0
- package/guide/links.md +20 -2
- package/guide/migration-0.2.md +219 -0
- package/guide/plugin-dev-guide.md +99 -24
- package/guide/quick-reference.es.md +14 -8
- package/guide/quick-reference.hi.md +15 -9
- package/guide/quick-reference.md +18 -10
- package/guide/quick-reference.pt.md +15 -9
- package/guide/quick-reference.zh-CN.md +19 -11
- package/guide/release-engineering.md +2 -2
- package/guide/release-engineering.zh-CN.md +2 -2
- package/guide/unfixed-issues.md +117 -82
- package/guide/when-to-retire-a-plugin.md +127 -0
- package/guide/when-to-retire-a-plugin.zh-CN.md +127 -0
- package/icon.svg +5 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +8 -4
- package/references/official-docs/AGENTS.md +8 -5
- package/references/official-docs/CONTRIBUTING.i18n.yaml +6 -5
- package/references/official-docs/README.i18n.yaml +33 -5
- package/references/official-docs/README.zh.md +3 -3
- package/references/official-docs/SNAPSHOT.md +3 -3
- package/references/official-docs/THIRD_PARTY_NOTICES.md +34 -6
- package/references/official-docs/docs/AGENTS.md +4 -4
- package/references/official-docs/docs/agent-lifecycle.i18n.yaml +9 -5
- package/references/official-docs/docs/api-gateway.i18n.yaml +27 -5
- package/references/official-docs/docs/api-gateway.md +10 -9
- package/references/official-docs/docs/api-gateway.zh.md +10 -9
- package/references/official-docs/docs/architecture.i18n.yaml +36 -5
- package/references/official-docs/docs/architecture.md +10 -8
- package/references/official-docs/docs/architecture.zh.md +10 -8
- package/references/official-docs/docs/capability-seams.i18n.yaml +9 -5
- package/references/official-docs/docs/capability-seams.md +76 -32
- package/references/official-docs/docs/capability-seams.zh.md +76 -32
- package/references/official-docs/docs/config-catalog.i18n.yaml +18 -5
- package/references/official-docs/docs/config-catalog.md +1360 -765
- package/references/official-docs/docs/config-catalog.zh.md +1363 -767
- package/references/official-docs/docs/cookbook/adding-a-package.i18n.yaml +27 -5
- package/references/official-docs/docs/cookbook/adding-a-package.md +56 -3
- package/references/official-docs/docs/cookbook/adding-a-package.zh.md +54 -3
- package/references/official-docs/docs/cookbook/adding-a-remote-api.i18n.yaml +24 -5
- package/references/official-docs/docs/cookbook/adding-a-remote-api.md +2 -2
- package/references/official-docs/docs/cookbook/adding-a-remote-api.zh.md +2 -2
- package/references/official-docs/docs/cookbook/adding-a-session-format-version.i18n.yaml +39 -5
- package/references/official-docs/docs/cookbook/adding-a-session-format-version.md +46 -6
- package/references/official-docs/docs/cookbook/adding-a-session-format-version.zh.md +46 -6
- package/references/official-docs/docs/cookbook/adding-a-settings-card.i18n.yaml +21 -5
- package/references/official-docs/docs/cookbook/adding-a-settings-card.md +34 -64
- package/references/official-docs/docs/cookbook/adding-a-settings-card.zh.md +34 -64
- package/references/official-docs/docs/cookbook/adding-a-tool.i18n.yaml +30 -5
- package/references/official-docs/docs/cookbook/adding-a-tool.md +2 -2
- package/references/official-docs/docs/cookbook/adding-a-tool.zh.md +2 -2
- package/references/official-docs/docs/cookbook/adding-a-vendored-package.i18n.yaml +18 -5
- package/references/official-docs/docs/cookbook/adding-an-llm-adapter.i18n.yaml +18 -5
- package/references/official-docs/docs/cookbook/extension-cookbook.i18n.yaml +24 -5
- package/references/official-docs/docs/cookbook/extension-cookbook.md +3 -3
- package/references/official-docs/docs/cookbook/extension-cookbook.zh.md +3 -3
- package/references/official-docs/docs/cookbook/maintaining-dsh-code-review.i18n.yaml +21 -5
- package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.i18n.yaml +15 -5
- package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.i18n.yaml +30 -5
- package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.md +13 -1
- package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.zh.md +13 -1
- package/references/official-docs/docs/cordis-api/context.i18n.yaml +72 -5
- package/references/official-docs/docs/cordis-api/events.i18n.yaml +36 -5
- package/references/official-docs/docs/cordis-api/fiber.i18n.yaml +75 -5
- package/references/official-docs/docs/cordis-api/inherited.md +15 -13
- package/references/official-docs/docs/cordis-api/registry.i18n.yaml +21 -5
- package/references/official-docs/docs/cordis-api/service.i18n.yaml +36 -5
- package/references/official-docs/docs/cordis-primer.i18n.yaml +21 -5
- package/references/official-docs/docs/cordis-tutorial/01-first-plugin.i18n.yaml +21 -5
- package/references/official-docs/docs/cordis-tutorial/02-lifecycle-and-effects.i18n.yaml +15 -5
- package/references/official-docs/docs/cordis-tutorial/03-services.i18n.yaml +21 -5
- package/references/official-docs/docs/cordis-tutorial/04-events.i18n.yaml +15 -5
- package/references/official-docs/docs/cordis-tutorial/05-config.i18n.yaml +18 -5
- package/references/official-docs/docs/cordis-tutorial/05-config.md +27 -0
- package/references/official-docs/docs/cordis-tutorial/05-config.zh.md +27 -0
- package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.i18n.yaml +15 -5
- package/references/official-docs/docs/cordis-tutorial/07-into-the-harness.i18n.yaml +18 -5
- package/references/official-docs/docs/cordis-tutorial/index.i18n.yaml +15 -5
- package/references/official-docs/docs/deepseek-llm-api-wire-extensions.i18n.yaml +33 -5
- package/references/official-docs/docs/deepseek-llm-api-wire-extensions.md +7 -7
- package/references/official-docs/docs/deepseek-llm-api-wire-extensions.zh.md +7 -7
- package/references/official-docs/docs/defensive-patterns.i18n.yaml +27 -5
- package/references/official-docs/docs/dependency-catalog.json +2 -2
- package/references/official-docs/docs/development.i18n.yaml +48 -5
- package/references/official-docs/docs/development.md +27 -10
- package/references/official-docs/docs/development.zh.md +27 -10
- package/references/official-docs/docs/event-producer-consumer.i18n.yaml +12 -5
- package/references/official-docs/docs/event-producer-consumer.md +78 -66
- package/references/official-docs/docs/event-producer-consumer.zh.md +78 -66
- package/references/official-docs/docs/glossary.i18n.yaml +24 -5
- package/references/official-docs/docs/graph-atlas.i18n.yaml +9 -5
- package/references/official-docs/docs/i18n/README.i18n.yaml +18 -5
- package/references/official-docs/docs/i18n/README.md +12 -8
- package/references/official-docs/docs/i18n/README.zh.md +12 -8
- package/references/official-docs/docs/i18n/terminology.md +4 -4
- package/references/official-docs/docs/i18n/translation-prompt.md +2 -2
- package/references/official-docs/docs/i18n/translation-rules.i18n.yaml +27 -5
- package/references/official-docs/docs/module-graph.i18n.yaml +9 -5
- package/references/official-docs/docs/module-graph.md +348 -245
- package/references/official-docs/docs/module-graph.zh.md +348 -245
- package/references/official-docs/docs/persistence-catalog.i18n.yaml +2064 -5
- package/references/official-docs/docs/persistence-catalog.md +5275 -3205
- package/references/official-docs/docs/persistence-catalog.zh.md +5275 -3205
- package/references/official-docs/docs/persistence-changes/2026-09-11-initial.i18n.yaml +27 -5
- package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.i18n.yaml +27 -5
- package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.i18n.yaml +27 -5
- package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.i18n.yaml +27 -5
- package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.i18n.yaml +28 -0
- package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.md +120 -0
- package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.schema.json +16212 -0
- package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.zh.md +120 -0
- package/references/official-docs/docs/persistence-changes/2026-09-18-schedule-optional-title.i18n.yaml +28 -0
- package/references/official-docs/docs/persistence-changes/2026-09-18-schedule-optional-title.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-09-18-schedule-optional-title.schema.json +302 -0
- package/references/official-docs/docs/persistence-changes/2026-09-18-schedule-optional-title.zh.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-09-20-unknown-child-catalog.i18n.yaml +28 -0
- package/references/official-docs/docs/persistence-changes/2026-09-20-unknown-child-catalog.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-09-20-unknown-child-catalog.schema.json +250 -0
- package/references/official-docs/docs/persistence-changes/2026-09-20-unknown-child-catalog.zh.md +48 -0
- package/references/official-docs/docs/persistence-changes/2026-09-21-user-question-reply.i18n.yaml +28 -0
- package/references/official-docs/docs/persistence-changes/2026-09-21-user-question-reply.md +60 -0
- package/references/official-docs/docs/persistence-changes/2026-09-21-user-question-reply.schema.json +11405 -0
- package/references/official-docs/docs/persistence-changes/2026-09-21-user-question-reply.zh.md +60 -0
- package/references/official-docs/docs/persistence-changes/README.i18n.yaml +27 -5
- package/references/official-docs/docs/persistence-changes/README.md +17 -3
- package/references/official-docs/docs/persistence-changes/README.zh.md +17 -3
- package/references/official-docs/docs/persistence-changes/finalized/v4.json +379 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/README.i18n.yaml +27 -5
- package/references/official-docs/docs/persistence-changes/historical-formats/README.md +3 -2
- package/references/official-docs/docs/persistence-changes/historical-formats/README.zh.md +3 -2
- package/references/official-docs/docs/persistence-changes/historical-formats/v0.i18n.yaml +1284 -5
- package/references/official-docs/docs/persistence-changes/historical-formats/v1.i18n.yaml +1284 -5
- package/references/official-docs/docs/persistence-changes/historical-formats/v2.i18n.yaml +1344 -5
- package/references/official-docs/docs/persistence-changes/historical-formats/v3.i18n.yaml +1441 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v3.md +5634 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v3.schema.json +61307 -0
- package/references/official-docs/docs/persistence-changes/historical-formats/v3.zh.md +5634 -0
- package/references/official-docs/docs/persistence-changes/releases/README.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.schema.json +3 -3
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.i18n.yaml +30 -5
- package/references/official-docs/docs/persistence-schema.json +12692 -48753
- package/references/official-docs/docs/postmortem/0001-acp-default-export-drops-inject.i18n.yaml +33 -5
- package/references/official-docs/docs/postmortem/0002-js-expression-disabled-filesystem-tools.i18n.yaml +27 -5
- package/references/official-docs/docs/postmortem/0003-web-agent-gui-feedback-loop.i18n.yaml +27 -5
- package/references/official-docs/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.i18n.yaml +27 -5
- package/references/official-docs/docs/postmortem/README.i18n.yaml +6 -5
- package/references/official-docs/docs/rescope.i18n.yaml +18 -5
- package/references/official-docs/docs/rescope.md +1 -1
- package/references/official-docs/docs/rescope.zh.md +1 -1
- package/references/official-docs/docs/session-format-status.i18n.yaml +27 -5
- package/references/official-docs/docs/session-format-status.md +17 -3
- package/references/official-docs/docs/session-format-status.zh.md +17 -3
- package/references/official-docs/docs/subsystems/README.i18n.yaml +6 -5
- package/references/official-docs/docs/subsystems/README.md +6 -3
- package/references/official-docs/docs/subsystems/README.zh.md +6 -3
- package/references/official-docs/docs/subsystems/agent-team.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/agent-team.md +52 -28
- package/references/official-docs/docs/subsystems/agent-team.zh.md +52 -28
- package/references/official-docs/docs/subsystems/approval.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/approval.md +1 -1
- package/references/official-docs/docs/subsystems/approval.zh.md +1 -1
- package/references/official-docs/docs/subsystems/attachment.i18n.yaml +12 -5
- package/references/official-docs/docs/subsystems/attachment.md +2 -2
- package/references/official-docs/docs/subsystems/attachment.zh.md +2 -2
- package/references/official-docs/docs/subsystems/boot.i18n.yaml +9 -5
- package/references/official-docs/docs/subsystems/boot.md +117 -17
- package/references/official-docs/docs/subsystems/boot.zh.md +117 -17
- package/references/official-docs/docs/subsystems/browser-use.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/claude-code-mods.i18n.yaml +28 -0
- package/references/official-docs/docs/subsystems/claude-code-mods.md +146 -0
- package/references/official-docs/docs/subsystems/claude-code-mods.zh.md +146 -0
- package/references/official-docs/docs/subsystems/client-modules.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/client-modules.md +13 -7
- package/references/official-docs/docs/subsystems/client-modules.zh.md +13 -7
- package/references/official-docs/docs/subsystems/client-resources.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/commands.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/commands.md +1 -1
- package/references/official-docs/docs/subsystems/commands.zh.md +1 -1
- package/references/official-docs/docs/subsystems/compaction.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/compaction.md +2 -2
- package/references/official-docs/docs/subsystems/compaction.zh.md +2 -2
- package/references/official-docs/docs/subsystems/computer-use.i18n.yaml +15 -5
- package/references/official-docs/docs/subsystems/conversation.i18n.yaml +30 -5
- package/references/official-docs/docs/subsystems/conversation.md +35 -6
- package/references/official-docs/docs/subsystems/conversation.zh.md +34 -5
- package/references/official-docs/docs/subsystems/core.i18n.yaml +36 -5
- package/references/official-docs/docs/subsystems/core.md +70 -214
- package/references/official-docs/docs/subsystems/core.zh.md +70 -214
- package/references/official-docs/docs/subsystems/credentials.i18n.yaml +24 -5
- package/references/official-docs/docs/subsystems/credentials.md +168 -5
- package/references/official-docs/docs/subsystems/credentials.zh.md +168 -5
- package/references/official-docs/docs/subsystems/deliverables.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/extensions.i18n.yaml +6 -5
- package/references/official-docs/docs/subsystems/extensions.md +6 -4
- package/references/official-docs/docs/subsystems/extensions.zh.md +6 -4
- package/references/official-docs/docs/subsystems/feedback.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/filesystem.i18n.yaml +33 -5
- package/references/official-docs/docs/subsystems/filesystem.md +10 -0
- package/references/official-docs/docs/subsystems/filesystem.zh.md +10 -0
- package/references/official-docs/docs/subsystems/goal.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/goal.md +1 -1
- package/references/official-docs/docs/subsystems/goal.zh.md +1 -1
- package/references/official-docs/docs/subsystems/jobs.i18n.yaml +24 -5
- package/references/official-docs/docs/subsystems/jobs.md +335 -126
- package/references/official-docs/docs/subsystems/jobs.zh.md +335 -126
- package/references/official-docs/docs/subsystems/llm-streaming.i18n.yaml +48 -5
- package/references/official-docs/docs/subsystems/llm-streaming.md +60 -31
- package/references/official-docs/docs/subsystems/llm-streaming.zh.md +60 -31
- package/references/official-docs/docs/subsystems/lsp.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/mcp.i18n.yaml +33 -5
- package/references/official-docs/docs/subsystems/mcp.md +2 -2
- package/references/official-docs/docs/subsystems/mcp.zh.md +2 -2
- package/references/official-docs/docs/subsystems/office-to-pdf.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/office-to-pdf.md +4 -4
- package/references/official-docs/docs/subsystems/office-to-pdf.zh.md +4 -4
- package/references/official-docs/docs/subsystems/otel.i18n.yaml +7 -0
- package/references/official-docs/docs/subsystems/otel.md +44 -0
- package/references/official-docs/docs/subsystems/otel.zh.md +44 -0
- package/references/official-docs/docs/subsystems/permission-presets.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/permission-presets.md +7 -6
- package/references/official-docs/docs/subsystems/permission-presets.zh.md +7 -6
- package/references/official-docs/docs/subsystems/persistence.i18n.yaml +36 -5
- package/references/official-docs/docs/subsystems/persistence.md +3 -3
- package/references/official-docs/docs/subsystems/persistence.zh.md +3 -3
- package/references/official-docs/docs/subsystems/plan.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/plan.md +1 -1
- package/references/official-docs/docs/subsystems/plan.zh.md +1 -1
- package/references/official-docs/docs/subsystems/product-telemetry.i18n.yaml +10 -0
- package/references/official-docs/docs/subsystems/product-telemetry.md +79 -0
- package/references/official-docs/docs/subsystems/product-telemetry.zh.md +79 -0
- package/references/official-docs/docs/subsystems/ptc-runtime.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/sandbox.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/sandbox.md +1 -1
- package/references/official-docs/docs/subsystems/sandbox.zh.md +1 -1
- package/references/official-docs/docs/subsystems/schedule.i18n.yaml +39 -5
- package/references/official-docs/docs/subsystems/schedule.md +391 -33
- package/references/official-docs/docs/subsystems/schedule.zh.md +391 -33
- package/references/official-docs/docs/subsystems/scope.i18n.yaml +15 -5
- package/references/official-docs/docs/subsystems/scope.md +1 -1
- package/references/official-docs/docs/subsystems/scope.zh.md +1 -1
- package/references/official-docs/docs/subsystems/session-projection.i18n.yaml +15 -5
- package/references/official-docs/docs/subsystems/session-projection.md +20 -18
- package/references/official-docs/docs/subsystems/session-projection.zh.md +20 -18
- package/references/official-docs/docs/subsystems/session-query.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/session-reference.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/session-telemetry.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/session-telemetry.md +6 -4
- package/references/official-docs/docs/subsystems/session-telemetry.zh.md +6 -4
- package/references/official-docs/docs/subsystems/session-title.i18n.yaml +15 -5
- package/references/official-docs/docs/subsystems/session.i18n.yaml +66 -5
- package/references/official-docs/docs/subsystems/session.md +113 -62
- package/references/official-docs/docs/subsystems/session.zh.md +113 -62
- package/references/official-docs/docs/subsystems/settings.i18n.yaml +12 -5
- package/references/official-docs/docs/subsystems/settings.md +42 -292
- package/references/official-docs/docs/subsystems/settings.zh.md +42 -292
- package/references/official-docs/docs/subsystems/shell.i18n.yaml +24 -5
- package/references/official-docs/docs/subsystems/shell.md +29 -22
- package/references/official-docs/docs/subsystems/shell.zh.md +29 -22
- package/references/official-docs/docs/subsystems/sidebar-right.i18n.yaml +36 -5
- package/references/official-docs/docs/subsystems/sidebar-right.md +14 -9
- package/references/official-docs/docs/subsystems/sidebar-right.zh.md +14 -9
- package/references/official-docs/docs/subsystems/skills.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/skills.md +2 -2
- package/references/official-docs/docs/subsystems/skills.zh.md +2 -2
- package/references/official-docs/docs/subsystems/slots.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/slots.md +21 -7
- package/references/official-docs/docs/subsystems/slots.zh.md +21 -7
- package/references/official-docs/docs/subsystems/spill.i18n.yaml +15 -5
- package/references/official-docs/docs/subsystems/spill.md +1 -1
- package/references/official-docs/docs/subsystems/spill.zh.md +1 -1
- package/references/official-docs/docs/subsystems/ssh.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/storage.i18n.yaml +24 -5
- package/references/official-docs/docs/subsystems/storage.md +1 -2
- package/references/official-docs/docs/subsystems/storage.zh.md +1 -2
- package/references/official-docs/docs/subsystems/subagent.i18n.yaml +30 -5
- package/references/official-docs/docs/subsystems/subagent.md +35 -60
- package/references/official-docs/docs/subsystems/subagent.zh.md +35 -60
- package/references/official-docs/docs/subsystems/subprocess.i18n.yaml +30 -5
- package/references/official-docs/docs/subsystems/system-prompt.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/terminal.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/todo.i18n.yaml +12 -5
- package/references/official-docs/docs/subsystems/todo.md +3 -3
- package/references/official-docs/docs/subsystems/todo.zh.md +3 -3
- package/references/official-docs/docs/subsystems/token-meter.i18n.yaml +12 -5
- package/references/official-docs/docs/subsystems/tools.i18n.yaml +24 -5
- package/references/official-docs/docs/subsystems/tools.md +15 -4
- package/references/official-docs/docs/subsystems/tools.zh.md +15 -4
- package/references/official-docs/docs/subsystems/typert.i18n.yaml +21 -5
- package/references/official-docs/docs/subsystems/typert.md +147 -6
- package/references/official-docs/docs/subsystems/typert.zh.md +147 -6
- package/references/official-docs/docs/subsystems/user-questions.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/user-questions.md +128 -1
- package/references/official-docs/docs/subsystems/user-questions.zh.md +129 -2
- package/references/official-docs/docs/subsystems/voice-input.i18n.yaml +19 -0
- package/references/official-docs/docs/subsystems/voice-input.md +164 -0
- package/references/official-docs/docs/subsystems/voice-input.zh.md +164 -0
- package/references/official-docs/docs/subsystems/web-client.i18n.yaml +36 -5
- package/references/official-docs/docs/subsystems/web-client.md +10 -5
- package/references/official-docs/docs/subsystems/web-client.zh.md +10 -5
- package/references/official-docs/docs/subsystems/web-server.i18n.yaml +15 -5
- package/references/official-docs/docs/subsystems/web-server.md +12 -4
- package/references/official-docs/docs/subsystems/web-server.zh.md +12 -4
- package/references/official-docs/docs/subsystems/web.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/webhook.i18n.yaml +18 -5
- package/references/official-docs/docs/subsystems/webhook.md +1 -1
- package/references/official-docs/docs/subsystems/webhook.zh.md +1 -1
- package/references/official-docs/docs/subsystems/workflow.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/workflow.md +2 -2
- package/references/official-docs/docs/subsystems/workflow.zh.md +2 -2
- package/references/official-docs/docs/subsystems/workspace.i18n.yaml +27 -5
- package/references/official-docs/docs/subsystems/workspace.md +175 -35
- package/references/official-docs/docs/subsystems/workspace.zh.md +175 -35
- package/references/official-docs/docs/testing.i18n.yaml +33 -5
- package/references/official-docs/docs/testing.md +2 -2
- package/references/official-docs/docs/testing.zh.md +2 -2
- package/references/official-docs/docs/tool-catalog.i18n.yaml +312 -5
- package/references/official-docs/docs/tool-catalog.md +321 -92
- package/references/official-docs/docs/tool-catalog.zh.md +321 -92
- package/references/official-docs/docs/tool-execution-pipeline.i18n.yaml +9 -5
- package/references/official-docs/docs/tool-execution-pipeline.md +6 -3
- package/references/official-docs/docs/tool-execution-pipeline.zh.md +6 -3
- package/references/official-docs/docs/ui-radius.i18n.yaml +31 -0
- package/references/official-docs/docs/ui-radius.md +115 -0
- package/references/official-docs/docs/ui-radius.zh.md +115 -0
- package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/schedule-optional-bundle/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/schedule-optional-bundle/guide.md +22 -0
- package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/schedule-optional-bundle/guide.zh.md +22 -0
- package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/transcript-view-legacy-normal/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/transcript-view-legacy-normal/guide.md +25 -0
- package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/transcript-view-legacy-normal/guide.zh.md +25 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/account-sign-in-errors/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/account-sign-in-errors/guide.md +18 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/account-sign-in-errors/guide.zh.md +18 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/remove-runtime-invariants/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/remove-runtime-invariants/guide.md +23 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/remove-runtime-invariants/guide.zh.md +23 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/schedule-bundle-retired/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/schedule-bundle-retired/guide.md +22 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/schedule-bundle-retired/guide.zh.md +22 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/subpath-plugin-display-manifest/guide.i18n.yaml +16 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/subpath-plugin-display-manifest/guide.md +27 -0
- package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/subpath-plugin-display-manifest/guide.zh.md +27 -0
- package/references/official-docs/docs/user/develop/basic/config.i18n.yaml +27 -5
- package/references/official-docs/docs/user/develop/basic/index.i18n.yaml +36 -5
- package/references/official-docs/docs/user/develop/basic/publish.i18n.yaml +30 -5
- package/references/official-docs/docs/user/develop/basic/publish.md +7 -1
- package/references/official-docs/docs/user/develop/basic/publish.zh.md +7 -1
- package/references/official-docs/docs/user/develop/basic/tool.i18n.yaml +15 -5
- package/references/official-docs/docs/user/develop/framework/events.i18n.yaml +45 -5
- package/references/official-docs/docs/user/develop/framework/index.i18n.yaml +30 -5
- package/references/official-docs/docs/user/develop/framework/service.i18n.yaml +39 -5
- package/references/official-docs/docs/user/develop/practice/dynamic-cordis.i18n.yaml +9 -5
- package/references/official-docs/docs/user/develop/practice/index.i18n.yaml +45 -5
- package/references/official-docs/docs/user/develop/practice/llm-adapter.i18n.yaml +33 -5
- package/references/official-docs/docs/user/develop/practice/llm-adapter.md +1 -1
- package/references/official-docs/docs/user/develop/practice/llm-adapter.zh.md +1 -1
- package/references/official-docs/docs/user/guide/github-review.i18n.yaml +24 -5
- package/references/official-docs/docs/user/guide/index.i18n.yaml +18 -5
- package/references/official-docs/docs/user/guide/index.md +1 -0
- package/references/official-docs/docs/user/guide/index.zh.md +1 -0
- package/references/official-docs/docs/user/guide/mcp-memory.i18n.yaml +36 -5
- package/references/official-docs/docs/user/guide/network-proxy.i18n.yaml +24 -5
- package/references/official-docs/docs/user/guide/providers-custom-form.png +0 -0
- package/references/official-docs/docs/user/guide/providers-custom-form.zh.png +0 -0
- package/references/official-docs/docs/user/guide/providers-models-page.png +0 -0
- package/references/official-docs/docs/user/guide/providers-models-page.zh.png +0 -0
- package/references/official-docs/docs/user/guide/providers.i18n.yaml +36 -5
- package/references/official-docs/docs/user/guide/providers.md +88 -78
- package/references/official-docs/docs/user/guide/providers.zh.md +102 -92
- package/references/official-docs/docs/user/guide/public-deployments.i18n.yaml +19 -0
- package/references/official-docs/docs/user/guide/public-deployments.md +33 -0
- package/references/official-docs/docs/user/guide/public-deployments.zh.md +33 -0
- package/references/official-docs/docs/user/guide/python-sdk.i18n.yaml +27 -5
- package/references/official-docs/docs/user/guide/python-sdk.md +1 -1
- package/references/official-docs/docs/user/guide/python-sdk.zh.md +1 -1
- package/references/official-docs/docs/user/guide/schedule.i18n.yaml +30 -5
- package/references/official-docs/docs/user/guide/schedule.md +69 -11
- package/references/official-docs/docs/user/guide/schedule.zh.md +69 -11
- package/references/official-docs/docs/user/index.i18n.yaml +9 -5
- package/references/official-docs/docs/web-styling.i18n.yaml +18 -5
- package/references/official-docs/docs/web-styling.md +12 -3
- package/references/official-docs/docs/web-styling.zh.md +12 -3
- package/references/official-docs/packages/AGENTS.md +1 -2
- package/references/official-docs/packages/README.md +5 -5
- package/references/official-docs/vendor/README.md +6 -2
- package/references/official-docs/website-docs.ts +10 -3
- package/references/official-plugin-dev-skill.md +124 -0
- package/references/sources.md +10 -5
- package/scripts/archive-discussions.ps1 +9 -1
- package/scripts/build-llms-full.mjs +64 -0
- package/scripts/check-docs-drift.ps1 +1 -1
- package/scripts/sync-official-docs.ps1 +1 -1
- package/templates/js/icon.svg +4 -0
- package/templates/js/locale/en.json +6 -0
- package/templates/js/locale/zh.json +6 -0
- package/templates/js/package.json +9 -1
- package/templates/ts/icon.svg +4 -0
- package/templates/ts/locale/en.json +6 -0
- package/templates/ts/locale/zh.json +6 -0
- package/templates/ts/package.json +9 -1
- package/references/official-docs/docs/subsystems/invariants.i18n.yaml +0 -6
- package/references/official-docs/docs/subsystems/invariants.md +0 -88
- package/references/official-docs/docs/subsystems/invariants.zh.md +0 -88
package/references/official-docs/docs/persistence-changes/2026-09-21-user-question-reply.zh.md
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "记录持久化类型更改及其兼容性确认。"
|
|
3
|
+
kind: persistence-change
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 2026-09-21-user-question-reply
|
|
7
|
+
|
|
8
|
+
[English](2026-09-21-user-question-reply.md) | 中文
|
|
9
|
+
|
|
10
|
+
## 概述
|
|
11
|
+
|
|
12
|
+
新增受限定的 user-question-reply 消息来源,将已继续的 ask_user_question 调用的迟到回答送入 agent inbox。
|
|
13
|
+
|
|
14
|
+
## 目录
|
|
15
|
+
|
|
16
|
+
- [声明](#declaration)
|
|
17
|
+
- [兼容性](#compatibility)
|
|
18
|
+
- [验证](#verification)
|
|
19
|
+
- [开发备注](#dev-note)
|
|
20
|
+
|
|
21
|
+
<a id="declaration"></a>
|
|
22
|
+
## 声明
|
|
23
|
+
|
|
24
|
+
```yaml persistence-change
|
|
25
|
+
schemaVersion: 1
|
|
26
|
+
id: 2026-09-21-user-question-reply
|
|
27
|
+
baseline: false
|
|
28
|
+
changes:
|
|
29
|
+
- root: "event:agent/inbox/spliced"
|
|
30
|
+
previous: "2026-09-16-session-format-v4"
|
|
31
|
+
after: "6178f1edcb23f361f2a6cb2c859b1c2187220d5695ece4a3400e0d92845a7178"
|
|
32
|
+
decision: same-version
|
|
33
|
+
- root: "event:developer/message"
|
|
34
|
+
previous: "2026-09-16-session-format-v4"
|
|
35
|
+
after: "186159f5f6f67a0b8cd095b8fe55bef42d4f25ca1a1c248f859867af2ece0467"
|
|
36
|
+
decision: same-version
|
|
37
|
+
- root: "event:session/title-llm-request"
|
|
38
|
+
previous: "2026-09-16-session-format-v4"
|
|
39
|
+
after: "ae84c5e493f94acc63cfb70389073ba616ed7ae7aa4fadde048bdcc64d49bb46"
|
|
40
|
+
decision: same-version
|
|
41
|
+
- root: "event:user/message"
|
|
42
|
+
previous: "2026-09-16-session-format-v4"
|
|
43
|
+
after: "b83ed1b1cfffbd7bd5cca06ea72e44be57beb68b39e5a96660ce42a9e21aa411"
|
|
44
|
+
decision: same-version
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
<a id="compatibility"></a>
|
|
48
|
+
## 兼容性
|
|
49
|
+
|
|
50
|
+
已有日志不含该来源,仍然有效。新来源是普通用户消息上的受限定归属;没有 dsh-user-questions 的读取方保留消息,并从内容推导历史。只有 userQuestions projection 读取该来源,关闭指定的问题并记录答案。answer RPC 是唯一生产方,只写入 outcome answered;关闭 Client 面板不会持久化回复。不新增事件类型,也不改变 Session header。
|
|
51
|
+
|
|
52
|
+
<a id="verification"></a>
|
|
53
|
+
## 验证
|
|
54
|
+
|
|
55
|
+
pnpm exec vitest run packages/interaction/user-questions/tests packages/interaction/tool-ask-user/tests:81 个测试通过。projection、reply、view 和 process-group 的定向测试共 70 个通过。pnpm run typecheck 通过。pnpm run doc-sync 的 42 项检查全部通过,包括持久化历史和翻译配对。
|
|
56
|
+
|
|
57
|
+
<a id="dev-note"></a>
|
|
58
|
+
## 开发备注
|
|
59
|
+
|
|
60
|
+
无。
|
|
@@ -1,6 +1,28 @@
|
|
|
1
|
-
# Bilingual-pair consistency record (docs/i18n/README.md):
|
|
2
|
-
#
|
|
3
|
-
#
|
|
1
|
+
# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading
|
|
2
|
+
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
|
3
|
+
# After editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm run verify-translation-pairing --write docs/persistence-changes/README.md
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
/:
|
|
6
|
+
en: 10d173d8956e12a0
|
|
7
|
+
zh: 3c32dcdb66727fed
|
|
8
|
+
/persistence-type-change-records:
|
|
9
|
+
en: 9054f01380aa9207
|
|
10
|
+
zh: 10e27fb51600cd08
|
|
11
|
+
/persistence-type-change-records/summary:
|
|
12
|
+
en: 272d85bc8ddda7b6
|
|
13
|
+
zh: 01614508fc8f332e
|
|
14
|
+
/persistence-type-change-records/table-of-contents:
|
|
15
|
+
en: 1ba6efaa0b5d6e47
|
|
16
|
+
zh: 6e216391ad24c541
|
|
17
|
+
/persistence-type-change-records/files-and-ownership:
|
|
18
|
+
en: 6cd0f79a9455bdf2
|
|
19
|
+
zh: a5978b7834c0802b
|
|
20
|
+
/persistence-type-change-records/compatibility-rules:
|
|
21
|
+
en: 7d5ce8c14e387922
|
|
22
|
+
zh: 9106c78283ad932c
|
|
23
|
+
/persistence-type-change-records/history-and-limitations:
|
|
24
|
+
en: 10a426d36c41548b
|
|
25
|
+
zh: ef03b693d9d9be26
|
|
26
|
+
/persistence-type-change-records/dev-note:
|
|
27
|
+
en: 5de1d6304e00c58f
|
|
28
|
+
zh: 8d8225361cfa29e5
|
|
@@ -37,6 +37,10 @@ Each dated record has four sibling files:
|
|
|
37
37
|
| `YYYY-MM-DD-slug.i18n.yaml` | Generated bilingual consistency record |
|
|
38
38
|
| `YYYY-MM-DD-slug.schema.json` | Generated complete after schemas for the affected roots that remain present |
|
|
39
39
|
|
|
40
|
+
`finalized/vN.json` records the complete root classifications/digests of an accepted compatibility baseline and semantic hashes of its accepted records. The [finalization record](../session-format-status.md#finalization-record) requires its checkpoint. Current V4 schemas may evolve compatibly; the checkpoint protects accepted machine declarations and after schemas even after the writer advances, while excluding prose, aliases, and source locations from record hashes.
|
|
41
|
+
|
|
42
|
+
A maintainer captures an agreed format with [`createPersistenceFinalizationCheckpoint`](../../scripts/persistence-finalization.ts), writes a new version-named checkpoint without replacing an earlier one, and advances the paired `latestFinalizedVersion`. The helper requires current schemas to match complete acknowledged history. Run the ordinary verifier before committing.
|
|
43
|
+
|
|
40
44
|
The [record template](../../.agents/skills/dsh-doc/templates/persistence-change.md) defines the authored format. Record creation accepts a bilingual prose input and generates the machine declaration, snapshots, catalog pair, and consistency records. The verifier reads the machine declaration once from the English file and checks the Chinese declaration for equality. A declaration names each affected root, its predecessor record, its after digest, and its compatibility decision. A new root has no predecessor; a deletion has no after schema and retains an explicit tombstone.
|
|
41
45
|
|
|
42
46
|
<a id="compatibility-rules"></a>
|
|
@@ -49,19 +53,29 @@ Every detected structural change requires an acknowledgement. Record creation an
|
|
|
49
53
|
| Add an optional event-body property, including its complete subtree | `same-version` |
|
|
50
54
|
| Make a required event-body property optional | `same-version` |
|
|
51
55
|
| Add an ordinary event type | `same-version` |
|
|
56
|
+
| Add a higher numeric `data.version` to an ordinary event while retaining every old payload alternative unchanged | `same-version` |
|
|
57
|
+
| Add an explicitly qualified attribution kind to a user/developer source slot whose before and after schemas carry the same supported policy | `same-version` |
|
|
52
58
|
| Make an optional property required, add a required property, change an existing type, or remove/rename a property or event | `version-bump` |
|
|
53
59
|
| Change the Session header or event envelope | `version-bump` |
|
|
54
60
|
|
|
55
|
-
A
|
|
61
|
+
A finalized checkpoint protects the accepted baseline without replacing these compatibility rules. At V4, optional additions, ordinary events, and qualified attribution additions can receive new same-version records. Breaking differences require a higher writer version and an acknowledgement containing its own header increase. The accepted V4 record cannot be updated to reuse its original 3→4 transition.
|
|
62
|
+
|
|
63
|
+
An ordinary event may add payload alternatives with a required, nonnegative integer `data.version` greater than every existing payload version, provided all existing alternatives remain structurally unchanged. The reader must retain support for the old payloads; adding variants at an existing version, dropping old versions, and changing the Session header or envelope remain breaking. Older readers may reject the new payload version. The [catalog acknowledgement](2026-09-20-unknown-child-catalog.md) records one such transition.
|
|
64
|
+
|
|
65
|
+
The extractor accepts an explicit `@persistenceSource` binding for a core-owned source property on a literal user or developer role; it does not infer a binding from an unannotated type. A producer qualifies its `MessageSourceMap` entry with `@persistenceAttribution`. Qualification promises that an unknown kind and its JSON metadata survive reading without the producer, and that the kind imposes no validation, replay, or authority requirement. A producer may inspect its own kind to resume duplicate suppression; other readers must preserve and derive the recorded messages without that projection. The recorded schema retains the binding, policy version, literal `kind` discriminator, preservation promise, and qualified kind set. Inventory format 2 stores those promises; extraction without a bound policy retains format 1. Session format versions are independent. Both compared snapshots must carry compatible policy state. Existing kind groups still receive ordinary structural comparison; removals, unmarked additions, policy changes, and unrelated breaking changes remain strict. Multiple context-form alternatives with the same wire kind form one group.
|
|
66
|
+
|
|
67
|
+
A same-version explanation states how old records remain readable and how older readers handle new records. Optional additions explain why older readers can ignore them without changing replay; a new payload version records the older-reader rejection. For required-to-optional changes, it explains how readers handle an absent value. The checker validates the type classification; reviewers assess the explanation. A version-bump record includes the increasing header version in the same transition and follows the [Session-format procedure](../cookbook/adding-a-session-format-version.md).
|
|
68
|
+
|
|
69
|
+
When a reader rejects a JSON property by name, declare the property as optional `never` and mark it with argument-free `@persistenceReserved`. The extractor retains the forbidden field, so allowing a JSON value later requires an existing-field type change. Required or JSON-valued properties cannot carry this marker. Unmarked optional `never` and `undefined` properties retain their existing omission behavior.
|
|
56
70
|
|
|
57
71
|
<a id="history-and-limitations"></a>
|
|
58
72
|
## History and limitations
|
|
59
73
|
|
|
60
74
|
One baseline records the complete initial inventory. Later records use their predecessor's after schema as the before schema. The verifier rejects missing predecessors, cycles, duplicate successors for one root, digest mismatches, and current roots that disagree with their latest records. Independent roots can advance independently. Two changes to the same predecessor require a single ordered history after integration.
|
|
61
75
|
|
|
62
|
-
Accepted records describe historical transitions; preserve their machine declarations and schema snapshots when adding a successor. An unaccepted terminal record can be refreshed explicitly; the command rejects baselines
|
|
76
|
+
Accepted records describe historical transitions; preserve their machine declarations and schema snapshots when adding a successor. An unaccepted terminal record can be refreshed explicitly; the command rejects baselines, records with dependants, and checkpoint-locked records before producing artifacts. Verification checks retained checkpoint hashes; it does not prove that the checkpoints and their authority record were never edited together. No Git ref, remote service, or released checkout supplies the baseline.
|
|
63
77
|
|
|
64
|
-
Digests describe declared persistence types, not runtime validation or behavior.
|
|
78
|
+
Digests describe declared persistence types, not runtime validation or behavior. Ordinary comments, source locations, alias names, and harmless declaration reordering do not affect them. Compatibility annotations are recorded policy data and do affect digests. Unannotated version-1 snapshots retain their original normalization, fingerprints, and strict classification; policy-bearing graphs use a separate fingerprint domain. Object fields, union alternatives, intersection operands, and index signatures can be reordered when their resolved types stay the same; tuple positions and numeric enum values remain significant. Catalog text and source locations may still change, so regenerate stale artifacts without adding an acknowledgement for an unchanged digest. Opaque types such as `unknown` expose no hidden structure to compare. Behavior-only changes and structures hidden inside opaque values are outside this mechanism's scope. The [decision](../../.agents/notes/implemented/process/2026-09-11-persistence-type-history.md) records these trade-offs.
|
|
65
79
|
|
|
66
80
|
<a id="dev-note"></a>
|
|
67
81
|
## Dev Note
|
|
@@ -37,6 +37,10 @@ description: "审阅和维护已记录的会话持久化类型变更、对应 sc
|
|
|
37
37
|
| `YYYY-MM-DD-slug.i18n.yaml` | 生成的双语一致性记录 |
|
|
38
38
|
| `YYYY-MM-DD-slug.schema.json` | 生成的完整变更后 schema,覆盖受影响且仍然存在的根 |
|
|
39
39
|
|
|
40
|
+
`finalized/vN.json` 记录已接受兼容性基线的完整根分类/摘要,以及对应已接受记录的语义哈希。[定稿记录](../session-format-status.zh.md#finalization-record)要求检查点存在。当前 V4 schema 可以兼容演进;即使写入器已推进,检查点仍保护已接受的机器声明和变更后 schema,而记录哈希不包含说明文字、别名和源码位置。
|
|
41
|
+
|
|
42
|
+
维护者通过 [`createPersistenceFinalizationCheckpoint`](../../scripts/persistence-finalization.ts) 捕获已确认格式,写入按版本命名的新检查点而不替换旧文件,并推进双语 `latestFinalizedVersion`。该函数要求当前 schema 与完整确认历史一致。提交前运行常规验证器。
|
|
43
|
+
|
|
40
44
|
[记录模板](../../.agents/skills/dsh-doc/templates/persistence-change.md)定义人工编写的格式。创建记录时可以提供双语说明输入,由命令生成机器声明、快照、目录对和一致性记录。验证器从英文文件读取一次机器声明,并检查中文声明是否相同。声明列出每个受影响的根、其前驱记录、变更后摘要和兼容性决策。新根没有前驱;删除操作没有变更后 schema,并保留显式删除标记。
|
|
41
45
|
|
|
42
46
|
<a id="compatibility-rules"></a>
|
|
@@ -49,19 +53,29 @@ description: "审阅和维护已记录的会话持久化类型变更、对应 sc
|
|
|
49
53
|
| 添加可选事件体属性,包括其完整子树 | `same-version` |
|
|
50
54
|
| 将必选事件体属性改为可选 | `same-version` |
|
|
51
55
|
| 添加普通事件类型 | `same-version` |
|
|
56
|
+
| 为普通事件增加更高的数字 `data.version`,并原样保留所有旧载荷分支 | `same-version` |
|
|
57
|
+
| 在前后 schema 均带有相同受支持策略的 user/developer 消息源字段中,添加显式声明为归属信息的 kind | `same-version` |
|
|
52
58
|
| 将可选属性改为必选、添加必选属性、更改已有类型,或删除/重命名属性或事件 | `version-bump` |
|
|
53
59
|
| 更改会话头或事件封装 | `version-bump` |
|
|
54
60
|
|
|
55
|
-
|
|
61
|
+
定稿检查点保护已接受基线,不替换这些兼容性规则。在 V4 中,可选新增、普通事件及符合条件的归属 kind 新增可以使用新的同版本记录。破坏性差异要求更高的写入器版本,以及包含自身头版本递增的确认记录。不能更新已接受 V4 记录以复用其原有 3→4 转换。
|
|
62
|
+
|
|
63
|
+
普通事件可增加具有必选、非负整数 `data.version` 的载荷分支,新版本必须高于所有已有载荷版本,且所有已有分支结构保持不变。读取器必须保留旧载荷支持;在已有版本中增加分支、移除旧版本,以及修改 Session header 或事件封装仍属于破坏性变更。旧读取器可能拒绝新载荷版本。[Catalog 确认记录](2026-09-20-unknown-child-catalog.zh.md) 记录了此类演进。
|
|
64
|
+
|
|
65
|
+
提取器接受核心拥有的 source 属性上针对 user 或 developer 字面量角色的显式 `@persistenceSource` 绑定,不会从未标记类型中推断绑定。生产者用 `@persistenceAttribution` 标记其 `MessageSourceMap` 成员。该标记承诺:读取器无需生产者即可保留未知 kind 及其 JSON 元数据,且该 kind 不引入校验、回放或权限要求。生产者可以检查自身 kind 来恢复去重状态;其他读取器必须无需该投影也能保留并派生已记录的消息。记录的 schema 保存绑定、策略版本、字面量 `kind` 判别字段、保留承诺及符合条件的 kind 集合。Inventory format 2 保存这些承诺;没有绑定策略的提取仍使用 format 1。Session 格式版本独立于此。比较双方的快照必须带有兼容的策略状态。已有 kind 分组仍进行常规结构比较;删除、未标记的添加、策略更改及无关破坏性变更继续采用严格规则。同一 wire kind 的多个上下文形式分支归为一组。
|
|
66
|
+
|
|
67
|
+
同版本说明须解释旧记录如何保持可读,以及旧读取器如何处理新记录。可选新增须说明旧读取器为何可以忽略它而不改变回放;新增载荷版本须记录旧读取器的拒绝行为。对于必选改可选的变更,说明须解释读取器如何处理缺失值。检查器验证类型分类;审阅者判断说明是否成立。升版本记录在同一转换中包含递增的头部版本,并遵循[会话格式流程](../cookbook/adding-a-session-format-version.zh.md)。
|
|
68
|
+
|
|
69
|
+
当读取器按属性名拒绝 JSON 字段时,将该属性声明为可选 `never`,并添加无参数的 `@persistenceReserved` 标记。提取器保留这一禁止字段,因此后续允许 JSON 值属于已有字段类型变更。必选属性或允许 JSON 值的属性不能携带该标记。未标记的可选 `never` 和 `undefined` 属性保留现有省略行为。
|
|
56
70
|
|
|
57
71
|
<a id="history-and-limitations"></a>
|
|
58
72
|
## 历史与限制
|
|
59
73
|
|
|
60
74
|
一条基线记录完整的初始清单。后续记录使用前驱的变更后 schema 作为变更前 schema。验证器拒绝缺失前驱、环、同一根的重复后继、摘要不匹配,以及当前根与最新记录不一致的情况。独立的根可以独立演进。同一前驱上的两个变更在集成后需要形成一条有序历史。
|
|
61
75
|
|
|
62
|
-
已接受记录描述历史转换;添加后继时须保留其机器声明和 schema
|
|
76
|
+
已接受记录描述历史转换;添加后继时须保留其机器声明和 schema 快照。尚未接受的末端记录可以显式刷新;命令在生成产物前拒绝基线、被依赖的记录和被检查点锁定的记录。验证检查所保留检查点的哈希,但不证明检查点及其真源记录从未被一起修改。基线不依赖 Git 引用、远端服务或已发布版本的检出目录。
|
|
63
77
|
|
|
64
|
-
|
|
78
|
+
摘要描述声明的持久化类型,不描述运行时验证或行为。普通注释、源码位置、别名名称和无语义变化的声明重排不影响摘要。兼容性标记是记录的策略数据,会影响摘要。不带标记的版本 1 快照保留原有规范化、指纹和严格分类;包含策略的图使用独立的指纹域。对象字段、联合类型分支、交叉类型操作数和索引签名可以在解析类型不变时重排;元组位置和数字枚举值仍然影响摘要。目录文本和源码位置仍可能变化,因此应重新生成陈旧产物,无需为未变的摘要添加确认记录。`unknown` 等不透明类型不提供可比较的内部结构。纯行为变更以及不透明值中隐藏的结构不在本机制范围内。[决策记录](../../.agents/notes/implemented/process/2026-09-11-persistence-type-history.zh.md)说明这些取舍。
|
|
65
79
|
|
|
66
80
|
<a id="dev-note"></a>
|
|
67
81
|
## 开发备注
|
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"sessionFormatVersion": 4,
|
|
4
|
+
"roots": {
|
|
5
|
+
"JsonlHeaderLine": {
|
|
6
|
+
"kind": "header",
|
|
7
|
+
"digest": "18ee62b8900a4c3d046700f05d7a4d49d6cab2a660a020c87481d1603dd8bd4f"
|
|
8
|
+
},
|
|
9
|
+
"SessionEventEnvelope": {
|
|
10
|
+
"kind": "envelope",
|
|
11
|
+
"digest": "5776e5553ff2dfe3f5bc202dbb1e7c9f93e35a531aebb7764c23b2b6153b2ccc"
|
|
12
|
+
},
|
|
13
|
+
"SessionHeader": {
|
|
14
|
+
"kind": "header",
|
|
15
|
+
"digest": "1a3440e3577382704d42a6263aa463504eb74c566734a55e9503a63efcd02445"
|
|
16
|
+
},
|
|
17
|
+
"event:agent-preset/selected": {
|
|
18
|
+
"kind": "event",
|
|
19
|
+
"digest": "a10c17474eaf2ddab7095a099e0fe3d046fc18e56c3e344fc8894c05ff9ef97b",
|
|
20
|
+
"event": "agent-preset/selected",
|
|
21
|
+
"surface": false
|
|
22
|
+
},
|
|
23
|
+
"event:agent/inbox/spliced": {
|
|
24
|
+
"kind": "event",
|
|
25
|
+
"digest": "1506a9b8224986c83015ae99d2cb5ede705538c58c063d6a48ef6d761a31ba6c",
|
|
26
|
+
"event": "agent/inbox/spliced",
|
|
27
|
+
"surface": false
|
|
28
|
+
},
|
|
29
|
+
"event:approval/asked": {
|
|
30
|
+
"kind": "event",
|
|
31
|
+
"digest": "3bfeb47b58606f4661904bc723da612782214c463d01e6d61cd6d6193d7374e1",
|
|
32
|
+
"event": "approval/asked",
|
|
33
|
+
"surface": false
|
|
34
|
+
},
|
|
35
|
+
"event:approval/decided": {
|
|
36
|
+
"kind": "event",
|
|
37
|
+
"digest": "bb1ab3d08f49a9f3b265f844cd78d5c49813062a7b34b54904b426f85d0ff6e3",
|
|
38
|
+
"event": "approval/decided",
|
|
39
|
+
"surface": false
|
|
40
|
+
},
|
|
41
|
+
"event:approval/policy": {
|
|
42
|
+
"kind": "event",
|
|
43
|
+
"digest": "26718e15e7e395bce9642dba5bbe09b3b1a4ce2213d20d566cd9207d7fc5fb78",
|
|
44
|
+
"event": "approval/policy",
|
|
45
|
+
"surface": false
|
|
46
|
+
},
|
|
47
|
+
"event:assistant/attempt": {
|
|
48
|
+
"kind": "event",
|
|
49
|
+
"digest": "15d5dfdd822aa35e115afd74a8982825a493880457774e6850bc1520b50875e4",
|
|
50
|
+
"event": "assistant/attempt",
|
|
51
|
+
"surface": false
|
|
52
|
+
},
|
|
53
|
+
"event:assistant/message": {
|
|
54
|
+
"kind": "event",
|
|
55
|
+
"digest": "1033093edd0db80ff410e00830b523405e00bb0c7684948e531ff65095799625",
|
|
56
|
+
"event": "assistant/message",
|
|
57
|
+
"surface": true
|
|
58
|
+
},
|
|
59
|
+
"event:command/done": {
|
|
60
|
+
"kind": "event",
|
|
61
|
+
"digest": "15196447222782e773eb943c92b18316ce96b9af0f0cfddb6e57ba8274ecc5ff",
|
|
62
|
+
"event": "command/done",
|
|
63
|
+
"surface": false
|
|
64
|
+
},
|
|
65
|
+
"event:command/run": {
|
|
66
|
+
"kind": "event",
|
|
67
|
+
"digest": "37184378c6439257d105c4e2022d80fc9c3a3f7c7f6ac661b00bc9f18d871006",
|
|
68
|
+
"event": "command/run",
|
|
69
|
+
"surface": false
|
|
70
|
+
},
|
|
71
|
+
"event:compaction/end": {
|
|
72
|
+
"kind": "event",
|
|
73
|
+
"digest": "b0127044ab31a702bddfd785d345f5abd7a70876746e895ce443afa3e60ddf2d",
|
|
74
|
+
"event": "compaction/end",
|
|
75
|
+
"surface": false
|
|
76
|
+
},
|
|
77
|
+
"event:compaction/prune": {
|
|
78
|
+
"kind": "event",
|
|
79
|
+
"digest": "7f7fd5a6b0064f597534b29ff62ef26e786dffccf5e14f654a7d4fcea2c35f04",
|
|
80
|
+
"event": "compaction/prune",
|
|
81
|
+
"surface": false
|
|
82
|
+
},
|
|
83
|
+
"event:compaction/start": {
|
|
84
|
+
"kind": "event",
|
|
85
|
+
"digest": "db874d463b0fdec77e9da1c4568f37cb70bd6596781eb93800db44fb8a116965",
|
|
86
|
+
"event": "compaction/start",
|
|
87
|
+
"surface": false
|
|
88
|
+
},
|
|
89
|
+
"event:compaction/summary": {
|
|
90
|
+
"kind": "event",
|
|
91
|
+
"digest": "e2f9a41e0989f54ed8cee80f8db2bcf9d60a5c810dc9d45b83fa050b9dce7602",
|
|
92
|
+
"event": "compaction/summary",
|
|
93
|
+
"surface": false
|
|
94
|
+
},
|
|
95
|
+
"event:deliverables/presented": {
|
|
96
|
+
"kind": "event",
|
|
97
|
+
"digest": "13d3d180f977bf78081d487ffa0ecb75857349bcab29a5a3fb48189fca2a6176",
|
|
98
|
+
"event": "deliverables/presented",
|
|
99
|
+
"surface": false
|
|
100
|
+
},
|
|
101
|
+
"event:developer/message": {
|
|
102
|
+
"kind": "event",
|
|
103
|
+
"digest": "eef4ef54dc7a133d47448a4ee822e45a351314923ef5f66db34c8b24e4b32d80",
|
|
104
|
+
"event": "developer/message",
|
|
105
|
+
"surface": true
|
|
106
|
+
},
|
|
107
|
+
"event:feedback/message-delete": {
|
|
108
|
+
"kind": "event",
|
|
109
|
+
"digest": "3ee93b06f3a125850337602bcdf155d2538c43a5c944ec55b1b3c365152d6796",
|
|
110
|
+
"event": "feedback/message-delete",
|
|
111
|
+
"surface": false
|
|
112
|
+
},
|
|
113
|
+
"event:feedback/message-put": {
|
|
114
|
+
"kind": "event",
|
|
115
|
+
"digest": "b5086d249e8502e9ead1d39156bb8d559bde7951cac0f14ce150345b4e42a2bf",
|
|
116
|
+
"event": "feedback/message-put",
|
|
117
|
+
"surface": false
|
|
118
|
+
},
|
|
119
|
+
"event:feedback/record": {
|
|
120
|
+
"kind": "event",
|
|
121
|
+
"digest": "b54940ff095c17e874c5be03815f4c2145a256cf3a1d34dae4ab2f7769dfffe8",
|
|
122
|
+
"event": "feedback/record",
|
|
123
|
+
"surface": false
|
|
124
|
+
},
|
|
125
|
+
"event:goal/change": {
|
|
126
|
+
"kind": "event",
|
|
127
|
+
"digest": "763c8a20af487263a0080548274f7437ef4a86e0ba8769127d1ced10a72c664d",
|
|
128
|
+
"event": "goal/change",
|
|
129
|
+
"surface": false
|
|
130
|
+
},
|
|
131
|
+
"event:hook/invoked": {
|
|
132
|
+
"kind": "event",
|
|
133
|
+
"digest": "8a6e1ec9e8db346b0e02f027db73c07a94f067a26d40c1aef1abd09c47ce7ba0",
|
|
134
|
+
"event": "hook/invoked",
|
|
135
|
+
"surface": false
|
|
136
|
+
},
|
|
137
|
+
"event:hook/result": {
|
|
138
|
+
"kind": "event",
|
|
139
|
+
"digest": "e75916628f3f10c2d50658bd143052a46285fbf1a9a700ba54947614603d26b4",
|
|
140
|
+
"event": "hook/result",
|
|
141
|
+
"surface": false
|
|
142
|
+
},
|
|
143
|
+
"event:image/offload": {
|
|
144
|
+
"kind": "event",
|
|
145
|
+
"digest": "b222069eea2d768065161c1147b1f2c78c1b54328c84b3586ae5c8f91b8ed35e",
|
|
146
|
+
"event": "image/offload",
|
|
147
|
+
"surface": false
|
|
148
|
+
},
|
|
149
|
+
"event:llm/retry": {
|
|
150
|
+
"kind": "event",
|
|
151
|
+
"digest": "525254db03b1d1e6b74cf55aced52817568331ac1f96c0818728910b6692e336",
|
|
152
|
+
"event": "llm/retry",
|
|
153
|
+
"surface": false
|
|
154
|
+
},
|
|
155
|
+
"event:llm/retry-started": {
|
|
156
|
+
"kind": "event",
|
|
157
|
+
"digest": "48e5c9861f16ac07e78cb7b5ae9dabdf7bb85c58baed5a51b4ad275050ea58e3",
|
|
158
|
+
"event": "llm/retry-started",
|
|
159
|
+
"surface": false
|
|
160
|
+
},
|
|
161
|
+
"event:model/selection": {
|
|
162
|
+
"kind": "event",
|
|
163
|
+
"digest": "35203ba7ad5ef6f97d556b85df20ae98f04f09c65748cecdf8eefdb8b6405ffc",
|
|
164
|
+
"event": "model/selection",
|
|
165
|
+
"surface": false
|
|
166
|
+
},
|
|
167
|
+
"event:permission/preset": {
|
|
168
|
+
"kind": "event",
|
|
169
|
+
"digest": "5c45bf4c544a7211dcd8ba6ba7e5f1bc39b49e7a9df9d5cbdc8e87c22771b37b",
|
|
170
|
+
"event": "permission/preset",
|
|
171
|
+
"surface": false
|
|
172
|
+
},
|
|
173
|
+
"event:plan/mode": {
|
|
174
|
+
"kind": "event",
|
|
175
|
+
"digest": "a7cf43ce7c2a4c038feed1885cd7a00d5c6ee2d90a7e0d56b46f78a3e1ca327f",
|
|
176
|
+
"event": "plan/mode",
|
|
177
|
+
"surface": false
|
|
178
|
+
},
|
|
179
|
+
"event:request/context": {
|
|
180
|
+
"kind": "event",
|
|
181
|
+
"digest": "37cbc9cf06d494cfe5c67f078af1605eacb8e4c2c853e9e26455b73de0ee7ccf",
|
|
182
|
+
"event": "request/context",
|
|
183
|
+
"surface": false
|
|
184
|
+
},
|
|
185
|
+
"event:request/header": {
|
|
186
|
+
"kind": "event",
|
|
187
|
+
"digest": "4208123b50df5006b181481ab45fcf1cde807b88d3fd4d340090bc2e202fac41",
|
|
188
|
+
"event": "request/header",
|
|
189
|
+
"surface": false
|
|
190
|
+
},
|
|
191
|
+
"event:sandbox/mode": {
|
|
192
|
+
"kind": "event",
|
|
193
|
+
"digest": "516da4cdd6d2f1e5ce488e648578ca51f40e458f707b803e5b24de870e799415",
|
|
194
|
+
"event": "sandbox/mode",
|
|
195
|
+
"surface": false
|
|
196
|
+
},
|
|
197
|
+
"event:schedule/change": {
|
|
198
|
+
"kind": "event",
|
|
199
|
+
"digest": "2a7f86849ae54b3398ee49661a757c4fcb59a6192b7036ee2ff514617e13fb42",
|
|
200
|
+
"event": "schedule/change",
|
|
201
|
+
"surface": false
|
|
202
|
+
},
|
|
203
|
+
"event:session-log-deepseek/delivery-accepted": {
|
|
204
|
+
"kind": "event",
|
|
205
|
+
"digest": "d63b8b8ffad9c02fd80c43a17df4f240c1fe8118ecca9de34f9d5871838ab5b9",
|
|
206
|
+
"event": "session-log-deepseek/delivery-accepted",
|
|
207
|
+
"surface": false
|
|
208
|
+
},
|
|
209
|
+
"event:session/end-seed": {
|
|
210
|
+
"kind": "event",
|
|
211
|
+
"digest": "5e6db6e24948d4a853c71cb9fabd252ad051ce93d4672c1266cf837c1c17b84e",
|
|
212
|
+
"event": "session/end-seed",
|
|
213
|
+
"surface": false
|
|
214
|
+
},
|
|
215
|
+
"event:session/title": {
|
|
216
|
+
"kind": "event",
|
|
217
|
+
"digest": "1b912703e2d64f91c99c675b8f805b01076c8325b905c1218ad81ef0b24909d5",
|
|
218
|
+
"event": "session/title",
|
|
219
|
+
"surface": false
|
|
220
|
+
},
|
|
221
|
+
"event:session/title-llm-request": {
|
|
222
|
+
"kind": "event",
|
|
223
|
+
"digest": "fa8f7d3ebf08a76c7f7a8b0781873c4d819b964da5dbb52cd3cdfa5da34f452d",
|
|
224
|
+
"event": "session/title-llm-request",
|
|
225
|
+
"surface": false
|
|
226
|
+
},
|
|
227
|
+
"event:step/end": {
|
|
228
|
+
"kind": "event",
|
|
229
|
+
"digest": "e0a787e6ec76c7c94fecbc501b489164ab0293db05bc947914077ad01e674f05",
|
|
230
|
+
"event": "step/end",
|
|
231
|
+
"surface": false
|
|
232
|
+
},
|
|
233
|
+
"event:step/start": {
|
|
234
|
+
"kind": "event",
|
|
235
|
+
"digest": "4513e088d43e6c68425be30451b9f961cc264fe7318ca62681c41d4d78615986",
|
|
236
|
+
"event": "step/start",
|
|
237
|
+
"surface": false
|
|
238
|
+
},
|
|
239
|
+
"event:subagent/catalog": {
|
|
240
|
+
"kind": "event",
|
|
241
|
+
"digest": "ae1f7110feeec697b8cab42b68f7709aa7b3279764099dfb53c25890d2e5c871",
|
|
242
|
+
"event": "subagent/catalog",
|
|
243
|
+
"surface": false
|
|
244
|
+
},
|
|
245
|
+
"event:subagent/descriptor": {
|
|
246
|
+
"kind": "event",
|
|
247
|
+
"digest": "b79ada42962cad0190a9d465805260567621fa3a4abd757eb31e6016b52d5ab5",
|
|
248
|
+
"event": "subagent/descriptor",
|
|
249
|
+
"surface": false
|
|
250
|
+
},
|
|
251
|
+
"event:subagent/model-selection-policy": {
|
|
252
|
+
"kind": "event",
|
|
253
|
+
"digest": "a6567ccb2e530606b775371eb4fa31468d72084339968e8b0440a516a23b39dc",
|
|
254
|
+
"event": "subagent/model-selection-policy",
|
|
255
|
+
"surface": false
|
|
256
|
+
},
|
|
257
|
+
"event:system/message": {
|
|
258
|
+
"kind": "event",
|
|
259
|
+
"digest": "69081694be231d56fd9580ba14645fd5e35373202605d5c5c841a9435b5fa3b1",
|
|
260
|
+
"event": "system/message",
|
|
261
|
+
"surface": true
|
|
262
|
+
},
|
|
263
|
+
"event:team/member": {
|
|
264
|
+
"kind": "event",
|
|
265
|
+
"digest": "4fb59762612c3e3ac3a3bd4f84c9c148d3c3893bd422ba2b201cc039fabd49bc",
|
|
266
|
+
"event": "team/member",
|
|
267
|
+
"surface": false
|
|
268
|
+
},
|
|
269
|
+
"event:team/message/delivered": {
|
|
270
|
+
"kind": "event",
|
|
271
|
+
"digest": "48f9c19417a1abbedfa59f4667bba36b93ac2db407adf5e84cb3ba0de30942cb",
|
|
272
|
+
"event": "team/message/delivered",
|
|
273
|
+
"surface": false
|
|
274
|
+
},
|
|
275
|
+
"event:team/message/queued": {
|
|
276
|
+
"kind": "event",
|
|
277
|
+
"digest": "21fb6a90d5068f6a0003b7ab316ed2f56342477146a65c00db0f13c4d8df667d",
|
|
278
|
+
"event": "team/message/queued",
|
|
279
|
+
"surface": false
|
|
280
|
+
},
|
|
281
|
+
"event:team/task": {
|
|
282
|
+
"kind": "event",
|
|
283
|
+
"digest": "d595ec73b32b016a6055333c67a5d646032b22e672da1d4a09c5b1ae398a093a",
|
|
284
|
+
"event": "team/task",
|
|
285
|
+
"surface": false
|
|
286
|
+
},
|
|
287
|
+
"event:todo/write": {
|
|
288
|
+
"kind": "event",
|
|
289
|
+
"digest": "b978cff734e62143eb56c9125423ec275405eda969802d42aaf73ecb987d3b26",
|
|
290
|
+
"event": "todo/write",
|
|
291
|
+
"surface": false
|
|
292
|
+
},
|
|
293
|
+
"event:tool-workflow/agent-end": {
|
|
294
|
+
"kind": "event",
|
|
295
|
+
"digest": "babf9ee4d1af62bf6c3a8103737f7a5e4e78ce179be835ce05a38803e15884b7",
|
|
296
|
+
"event": "tool-workflow/agent-end",
|
|
297
|
+
"surface": false
|
|
298
|
+
},
|
|
299
|
+
"event:tool-workflow/agent-start": {
|
|
300
|
+
"kind": "event",
|
|
301
|
+
"digest": "5f26a6c20b37632f8f57729d171c671def4683d994ac6257a8dffcd855101627",
|
|
302
|
+
"event": "tool-workflow/agent-start",
|
|
303
|
+
"surface": false
|
|
304
|
+
},
|
|
305
|
+
"event:tool-workflow/run-end": {
|
|
306
|
+
"kind": "event",
|
|
307
|
+
"digest": "42e0916e0dda5f6d1e7bb05d8514717147c036a79c9f36085683469516c1fd3f",
|
|
308
|
+
"event": "tool-workflow/run-end",
|
|
309
|
+
"surface": false
|
|
310
|
+
},
|
|
311
|
+
"event:tool-workflow/run-start": {
|
|
312
|
+
"kind": "event",
|
|
313
|
+
"digest": "c1f9e0405de6d18cabb9ee70782a027f9bbdc57e5abec9dcccdd56119e2e9058",
|
|
314
|
+
"event": "tool-workflow/run-start",
|
|
315
|
+
"surface": false
|
|
316
|
+
},
|
|
317
|
+
"event:tool/call": {
|
|
318
|
+
"kind": "event",
|
|
319
|
+
"digest": "3b1be838223869fe0a08210db85bf773796ed3f2373ac16555dff227cade0c48",
|
|
320
|
+
"event": "tool/call",
|
|
321
|
+
"surface": false
|
|
322
|
+
},
|
|
323
|
+
"event:tool/ptc-dispatch": {
|
|
324
|
+
"kind": "event",
|
|
325
|
+
"digest": "100f6dca1468538239522cde3533e5bd721d0f1a7b50bea8b0eb533ea6c96163",
|
|
326
|
+
"event": "tool/ptc-dispatch",
|
|
327
|
+
"surface": false
|
|
328
|
+
},
|
|
329
|
+
"event:tool/ptc-dispatch-start": {
|
|
330
|
+
"kind": "event",
|
|
331
|
+
"digest": "ec38b5949af8eacaf00df002f4acbe344f934f8a061e9cdc65a52a48e5f6dd93",
|
|
332
|
+
"event": "tool/ptc-dispatch-start",
|
|
333
|
+
"surface": false
|
|
334
|
+
},
|
|
335
|
+
"event:tool/result": {
|
|
336
|
+
"kind": "event",
|
|
337
|
+
"digest": "7c9f44e90a0058f4cc532ae20dad0c10afa6eba22e70a6c79fc79490bad64397",
|
|
338
|
+
"event": "tool/result",
|
|
339
|
+
"surface": true
|
|
340
|
+
},
|
|
341
|
+
"event:turn/end": {
|
|
342
|
+
"kind": "event",
|
|
343
|
+
"digest": "0f8512903d94f57a4748fa1a2092e64342856796684e6b8343db685b192745ce",
|
|
344
|
+
"event": "turn/end",
|
|
345
|
+
"surface": false
|
|
346
|
+
},
|
|
347
|
+
"event:turn/start": {
|
|
348
|
+
"kind": "event",
|
|
349
|
+
"digest": "aa0957eca50aeb28bcd2e6930b95809926edacb550c8c340ba526ba6b861b3d8",
|
|
350
|
+
"event": "turn/start",
|
|
351
|
+
"surface": false
|
|
352
|
+
},
|
|
353
|
+
"event:user/message": {
|
|
354
|
+
"kind": "event",
|
|
355
|
+
"digest": "3f72db3d87a0c5c43e68be467b4cca728eaf5adc1d5d2b6975ff42bfbd961761",
|
|
356
|
+
"event": "user/message",
|
|
357
|
+
"surface": true
|
|
358
|
+
},
|
|
359
|
+
"event:web/deepseek-search-llm-request": {
|
|
360
|
+
"kind": "event",
|
|
361
|
+
"digest": "cf6e3aaf1e2de6480aa0157730a41b9a492108a55304100b0f7e112711dd4331",
|
|
362
|
+
"event": "web/deepseek-search-llm-request",
|
|
363
|
+
"surface": false
|
|
364
|
+
},
|
|
365
|
+
"event:workspace/changes": {
|
|
366
|
+
"kind": "event",
|
|
367
|
+
"digest": "e308ccf867a5398e316e0af8cb6ce238a8d33a63b9b384c8250a686786285f72",
|
|
368
|
+
"event": "workspace/changes",
|
|
369
|
+
"surface": false
|
|
370
|
+
}
|
|
371
|
+
},
|
|
372
|
+
"acceptedRecords": {
|
|
373
|
+
"2026-09-11-initial": "1257b73faa71fda3504b42af8ef7fa6a8c608a1aafe4fc77f21b8cd1c30e0ec1",
|
|
374
|
+
"2026-09-12-auto-review-error-metadata": "a98f6eb5d28618a355a358bddf7b278a25ab8aa08288c85e32c2031d7994b865",
|
|
375
|
+
"2026-09-14-image-offload": "ec2ac7c3e20842e33870307384200b893a3ec0b0028882858abb0ac9dfc002c6",
|
|
376
|
+
"2026-09-14-workspace-changes-event": "b5455973864a92f227f4af0c8eae2182dc33a20d22d2121083652aa0e61af83d",
|
|
377
|
+
"2026-09-16-session-format-v4": "0d854cc665bea188f82b6b8d2298a7e484fd138dfdf1d1e974b8be2c9f15c6ac"
|
|
378
|
+
}
|
|
379
|
+
}
|
package/references/official-docs/docs/persistence-changes/historical-formats/README.i18n.yaml
CHANGED
|
@@ -1,6 +1,28 @@
|
|
|
1
|
-
# Bilingual-pair consistency record (docs/i18n/README.md):
|
|
2
|
-
#
|
|
3
|
-
#
|
|
1
|
+
# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading
|
|
2
|
+
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
|
3
|
+
# After editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm run verify-translation-pairing --write docs/persistence-changes/historical-formats/README.md
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
/:
|
|
6
|
+
en: 1257a74512f9daed
|
|
7
|
+
zh: 74e1378126c7dd99
|
|
8
|
+
/session-persistence-formats:
|
|
9
|
+
en: a740a4786e0488d6
|
|
10
|
+
zh: c17883a78695cf67
|
|
11
|
+
/session-persistence-formats/summary:
|
|
12
|
+
en: f1592445394a7daf
|
|
13
|
+
zh: 2a1c5f7fa307db45
|
|
14
|
+
/session-persistence-formats/table-of-contents:
|
|
15
|
+
en: 14c57f30e676f6e3
|
|
16
|
+
zh: b1a0ccf26fab3727
|
|
17
|
+
/session-persistence-formats/format-references:
|
|
18
|
+
en: b19e6cfc84bfc46d
|
|
19
|
+
zh: 5b1d86bcdab672ca
|
|
20
|
+
/session-persistence-formats/scope-and-evidence:
|
|
21
|
+
en: b220062139ddac1e
|
|
22
|
+
zh: 7c4c0efe05dafa9c
|
|
23
|
+
/session-persistence-formats/maintain-coverage:
|
|
24
|
+
en: 0be8010f3fd20d2d
|
|
25
|
+
zh: b6e3af11c81e8702
|
|
26
|
+
/session-persistence-formats/dev-note:
|
|
27
|
+
en: b75c8458928b72b9
|
|
28
|
+
zh: 003ba4e17b4b5269
|
|
@@ -31,7 +31,8 @@ The index is generated from validated snapshots and the current writer constant.
|
|
|
31
31
|
| 0 | `dsh-v0.1.2-rc.1` | [V0](v0.md) | [JSON](v0.schema.json) | 54 / 415 |
|
|
32
32
|
| 1 | PR #3349 | [V1](v1.md) | [JSON](v1.schema.json) | 54 / 415 |
|
|
33
33
|
| 2 | `dsh-v0.1.3-alpha.2` | [V2](v2.md) | [JSON](v2.schema.json) | 56 / 435 |
|
|
34
|
-
| 3 |
|
|
34
|
+
| 3 | PR #4320 | [V3](v3.md) | [JSON](v3.schema.json) | 60 / 467 |
|
|
35
|
+
| 4 | Current checkout | [Current catalog](../../persistence-catalog.md) | [JSON](../../persistence-schema.json) | 62 / 590 |
|
|
35
36
|
|
|
36
37
|
<!-- persistence-format-index:end -->
|
|
37
38
|
|
|
@@ -40,7 +41,7 @@ The index is generated from validated snapshots and the current writer constant.
|
|
|
40
41
|
|
|
41
42
|
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.
|
|
42
43
|
|
|
43
|
-
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.
|
|
44
|
+
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. V3 captures the verified inventory before the V4 writer change in PR #4320. 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.
|
|
44
45
|
|
|
45
46
|
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.
|
|
46
47
|
|