description: "完整的 Session V1 持久化类型、来源证据与物理编码参考。"
English | 中文
查阅 V2 写入器变更之前的 V1 持久化类型。V1 使用 V0 的物理行布局,保留顶层 Assistant chunk,并将逻辑 header 版本声明为字面量 1。已收录的 alpha/RC 发布归档没有使用该中间格式的 tag。
来源为 dsh-v0.1.3-alpha.1 祖先历史中首次 V2 写入器变更之前的最后一个 V1 源码树,关联于 PR #3349(分支 worktree/session-format-03-v0-v1-migration)。其源码变更日期为 2026-09-02,标题为 fix(session): close live assistant framing races。这标识中间源码树,而非 PR 最终合并的源码树。预发布归档没有 V1 tag,本记录不会为此虚构产品发布。
提取的声明来自 packages/core/session/src/types.ts、packages/session/session-persistence-jsonl/src/format.ts,以及所有第一方 SessionEventMap 声明合并及其可达类型。下方源码位置指向该历史源码树,而非当前文件。
以下事实描述所选检查点。下方生成的表格保留精确的字段类型与可选性。
SessionHeader.version 解析为字面量 1;物理 JsonlHeaderLine.version 仍为 number。isSeeded,物理 header 仍使用可选的 seedLength。重建历史 header 时必须保留这一区别。assistant/chunk 仍为顶层事件。assistant/message 没有内嵌的 stream,且不存在 V2 的 assistant/attempt 事件。V0/V1 codec负责共享物理布局,包括打包的 chunk 与数值继承切点。V1 到 V2 迁移参考负责 chunk 消耗、内嵌流与序号重映射;这些转换不能从类型摘要中推断。
打包的物理行使用 text-chunks、reasoning-chunks 或 tool-call-chunks,包含 seq0、time0 和 data.turn / step / index / dt。文本与推理行携带 texts;工具调用行携带 id、可选的 name 和 args。N 个成员对应 N−1 个 dt 时间间隔,间隔可以为负数。第 k 个成员的序号为 seq0 + k,时间为 time0 加上前 k 个间隔。物理 sourceEventSeqs 可以使用范围编码;下方逻辑 schema 展示展开后的数值数组。
schemaVersion: 1
sessionFormatVersion: 1
source:
pullRequest: 3349
roots:
"SessionHeader": 88b77fa5ec1d31b20dfa3c41f3eee22fdf55fa74efe4233dcc0b55f9598d6dc6
"JsonlHeaderLine": 63496702a393356d64638beb7939468c1ba039ba3b5492327b2fe074d6cdac93
"SessionEventEnvelope": 04184edc061905410cc7e3db8d5c7cf393d739c89eb523ba8bad3831fb23ba95
"event:agent-preset/selected": a10c17474eaf2ddab7095a099e0fe3d046fc18e56c3e344fc8894c05ff9ef97b
"event:agent/inbox/spliced": 7ec7650bb21a6eb8e61a82b97f81e23ce74d6131fb4fe0db0f703fd4d249fb91
"event:approval/asked": 3bfeb47b58606f4661904bc723da612782214c463d01e6d61cd6d6193d7374e1
"event:approval/decided": bb1ab3d08f49a9f3b265f844cd78d5c49813062a7b34b54904b426f85d0ff6e3
"event:approval/policy": 26718e15e7e395bce9642dba5bbe09b3b1a4ce2213d20d566cd9207d7fc5fb78
"event:assistant/chunk": be6b0aa5cd6a279facb1c29589f92e24a0eb30d60a5869ae17acbcf6c3d12821
"event:assistant/message": 6ac50e8b7feeb6a718cf502a4d32aa5430d68c01c23e6f4903db07f884b6cfe6
"event:command/done": 15196447222782e773eb943c92b18316ce96b9af0f0cfddb6e57ba8274ecc5ff
"event:command/run": 37184378c6439257d105c4e2022d80fc9c3a3f7c7f6ac661b00bc9f18d871006
"event:compaction/end": b0127044ab31a702bddfd785d345f5abd7a70876746e895ce443afa3e60ddf2d
"event:compaction/prune": 7f7fd5a6b0064f597534b29ff62ef26e786dffccf5e14f654a7d4fcea2c35f04
"event:compaction/start": db874d463b0fdec77e9da1c4568f37cb70bd6596781eb93800db44fb8a116965
"event:compaction/summary": 85c28ce3efec5863a9bf4b22ae57a50a03ec5337b965ee95ff77c9b9d137fa22
"event:feedback/record": fb9df8180a202f3c845d5aa6a81697b2f7213f6735abc17535a55656be60a575
"event:goal/change": 763c8a20af487263a0080548274f7437ef4a86e0ba8769127d1ced10a72c664d
"event:hook/invoked": 8a6e1ec9e8db346b0e02f027db73c07a94f067a26d40c1aef1abd09c47ce7ba0
"event:hook/result": e75916628f3f10c2d50658bd143052a46285fbf1a9a700ba54947614603d26b4
"event:llm/retry": 91c397f8f870e812e1dc5ac69c2745f9f105be9dc97dadc980d19ef415a65145
"event:llm/retry-started": 48e5c9861f16ac07e78cb7b5ae9dabdf7bb85c58baed5a51b4ad275050ea58e3
"event:model/selection": 35203ba7ad5ef6f97d556b85df20ae98f04f09c65748cecdf8eefdb8b6405ffc
"event:permission/preset": 5c45bf4c544a7211dcd8ba6ba7e5f1bc39b49e7a9df9d5cbdc8e87c22771b37b
"event:plan/mode": a7cf43ce7c2a4c038feed1885cd7a00d5c6ee2d90a7e0d56b46f78a3e1ca327f
"event:request/context": f6b733e38d46dde3f8ab1ade2be3362abb6642eb97982a98ee64a57ff60d0c28
"event:request/header": 1de6c9c8764045ea9a1357bae6ccbbd57c19f6f337f8f25697c919c7cc9abf16
"event:sandbox/mode": 516da4cdd6d2f1e5ce488e648578ca51f40e458f707b803e5b24de870e799415
"event:schedule/change": 2a7f86849ae54b3398ee49661a757c4fcb59a6192b7036ee2ff514617e13fb42
"event:session-log-deepseek/delivery-accepted": d63b8b8ffad9c02fd80c43a17df4f240c1fe8118ecca9de34f9d5871838ab5b9
"event:session/end-seed": 669846d6f47138d4b8897717b0f08476805437a4b3195c82551b527035d90bc6
"event:session/title": 1b912703e2d64f91c99c675b8f805b01076c8325b905c1218ad81ef0b24909d5
"event:session/title-llm-request": 5af24b92e836fedeb396431e8eb395884a057917b54eb777f859d6696faf7780
"event:step/end": e0a787e6ec76c7c94fecbc501b489164ab0293db05bc947914077ad01e674f05
"event:step/start": 4513e088d43e6c68425be30451b9f961cc264fe7318ca62681c41d4d78615986
"event:subagent/descriptor": b79ada42962cad0190a9d465805260567621fa3a4abd757eb31e6016b52d5ab5
"event:subagent/model-selection-policy": a6567ccb2e530606b775371eb4fa31468d72084339968e8b0440a516a23b39dc
"event:team/member": 31d13edbb5fe2f8b7a38056320a8a06275ee4426e0abf12d4741818beda5a9c9
"event:team/message/delivered": c53bff743470c8bf11be698ced047072744ef088cce663a774b456d7a8982516
"event:team/message/queued": a6a26c92459c96e4f342e58d7e41c71956e7e62c9280e30e260df58409a3012c
"event:team/task": 1688a2451eef9da19eaf45f12c8a27df07b1a6e56fa57ba603118f5201bb435b
"event:todo/write": b978cff734e62143eb56c9125423ec275405eda969802d42aaf73ecb987d3b26
"event:tool-workflow/agent-end": babf9ee4d1af62bf6c3a8103737f7a5e4e78ce179be835ce05a38803e15884b7
"event:tool-workflow/agent-start": 5f26a6c20b37632f8f57729d171c671def4683d994ac6257a8dffcd855101627
"event:tool-workflow/run-end": 42e0916e0dda5f6d1e7bb05d8514717147c036a79c9f36085683469516c1fd3f
"event:tool-workflow/run-start": c1f9e0405de6d18cabb9ee70782a027f9bbdc57e5abec9dcccdd56119e2e9058
"event:tool/call": 3b1be838223869fe0a08210db85bf773796ed3f2373ac16555dff227cade0c48
"event:tool/code-dispatch": c14c2fdd439461cfc85105c6f620b0f62f799e3a69fb48196e938ec045aa0390
"event:tool/code-dispatch-start": 9eb21c10fc675e1fa4184e5eecc9697aa87054ffd836d49428174897f0e64b62
"event:tool/result": a79feb023a08a8b73d254e29e78f13045b6773ce377b0c4156fcdf1368c146ab
"event:turn/end": 84c24f1209fc3e0153de6ac85d58fd6968b851f955e0e761b92321053956609e
"event:turn/start": aa0957eca50aeb28bcd2e6930b95809926edacb550c8c340ba526ba6b861b3d8
"event:user/message": 5cfd0a500f2fd56d504ed24eabf6b55e5cabccbd571b95cba579f1f8aceab439
"event:web/deepseek-search-llm-request": cf6e3aaf1e2de6480aa0157730a41b9a492108a55304100b0f7e112711dd4331
完整机器目录包含 54 个根类型和 415 种可达类型。摘要包含所有引用字段;源码名称和路径描述所选的历史源码树。
| 根类型 | 类别 | SHA-256 | 已解析类型 |
|---|---|---|---|
SessionHeader |
header | 88b77fa5ec1d31b20dfa3c41f3eee22fdf55fa74efe4233dcc0b55f9598d6dc6 |
packages/core/session/src/types.ts#SessionHeader |
JsonlHeaderLine |
header | 63496702a393356d64638beb7939468c1ba039ba3b5492327b2fe074d6cdac93 |
packages/session/session-persistence-jsonl/src/format.ts#HeaderLine |
SessionEventEnvelope |
envelope | 04184edc061905410cc7e3db8d5c7cf393d739c89eb523ba8bad3831fb23ba95 |
SessionEventEnvelope |
event:agent-preset/selected |
event | a10c17474eaf2ddab7095a099e0fe3d046fc18e56c3e344fc8894c05ff9ef97b |
event:agent-preset/selected |
event:agent/inbox/spliced |
event | 7ec7650bb21a6eb8e61a82b97f81e23ce74d6131fb4fe0db0f703fd4d249fb91 |
event:agent/inbox/spliced |
event:approval/asked |
event | 3bfeb47b58606f4661904bc723da612782214c463d01e6d61cd6d6193d7374e1 |
event:approval/asked |
event:approval/decided |
event | bb1ab3d08f49a9f3b265f844cd78d5c49813062a7b34b54904b426f85d0ff6e3 |
event:approval/decided |
event:approval/policy |
event | 26718e15e7e395bce9642dba5bbe09b3b1a4ce2213d20d566cd9207d7fc5fb78 |
event:approval/policy |
event:assistant/chunk |
event | be6b0aa5cd6a279facb1c29589f92e24a0eb30d60a5869ae17acbcf6c3d12821 |
event:assistant/chunk |
event:assistant/message |
event | 6ac50e8b7feeb6a718cf502a4d32aa5430d68c01c23e6f4903db07f884b6cfe6 |
event:assistant/message |
event:command/done |
event | 15196447222782e773eb943c92b18316ce96b9af0f0cfddb6e57ba8274ecc5ff |
event:command/done |
event:command/run |
event | 37184378c6439257d105c4e2022d80fc9c3a3f7c7f6ac661b00bc9f18d871006 |
event:command/run |
event:compaction/end |
event | b0127044ab31a702bddfd785d345f5abd7a70876746e895ce443afa3e60ddf2d |
event:compaction/end |
event:compaction/prune |
event | 7f7fd5a6b0064f597534b29ff62ef26e786dffccf5e14f654a7d4fcea2c35f04 |
event:compaction/prune |
event:compaction/start |
event | db874d463b0fdec77e9da1c4568f37cb70bd6596781eb93800db44fb8a116965 |
event:compaction/start |
event:compaction/summary |
event | 85c28ce3efec5863a9bf4b22ae57a50a03ec5337b965ee95ff77c9b9d137fa22 |
event:compaction/summary |
event:feedback/record |
event | fb9df8180a202f3c845d5aa6a81697b2f7213f6735abc17535a55656be60a575 |
event:feedback/record |
event:goal/change |
event | 763c8a20af487263a0080548274f7437ef4a86e0ba8769127d1ced10a72c664d |
event:goal/change |
event:hook/invoked |
event | 8a6e1ec9e8db346b0e02f027db73c07a94f067a26d40c1aef1abd09c47ce7ba0 |
event:hook/invoked |
event:hook/result |
event | e75916628f3f10c2d50658bd143052a46285fbf1a9a700ba54947614603d26b4 |
event:hook/result |
event:llm/retry |
event | 91c397f8f870e812e1dc5ac69c2745f9f105be9dc97dadc980d19ef415a65145 |
event:llm/retry |
event:llm/retry-started |
event | 48e5c9861f16ac07e78cb7b5ae9dabdf7bb85c58baed5a51b4ad275050ea58e3 |
event:llm/retry-started |
event:model/selection |
event | 35203ba7ad5ef6f97d556b85df20ae98f04f09c65748cecdf8eefdb8b6405ffc |
event:model/selection |
event:permission/preset |
event | 5c45bf4c544a7211dcd8ba6ba7e5f1bc39b49e7a9df9d5cbdc8e87c22771b37b |
event:permission/preset |
event:plan/mode |
event | a7cf43ce7c2a4c038feed1885cd7a00d5c6ee2d90a7e0d56b46f78a3e1ca327f |
event:plan/mode |
event:request/context |
event | f6b733e38d46dde3f8ab1ade2be3362abb6642eb97982a98ee64a57ff60d0c28 |
event:request/context |
event:request/header |
event | 1de6c9c8764045ea9a1357bae6ccbbd57c19f6f337f8f25697c919c7cc9abf16 |
event:request/header |
event:sandbox/mode |
event | 516da4cdd6d2f1e5ce488e648578ca51f40e458f707b803e5b24de870e799415 |
event:sandbox/mode |
event:schedule/change |
event | 2a7f86849ae54b3398ee49661a757c4fcb59a6192b7036ee2ff514617e13fb42 |
event:schedule/change |
event:session-log-deepseek/delivery-accepted |
event | d63b8b8ffad9c02fd80c43a17df4f240c1fe8118ecca9de34f9d5871838ab5b9 |
event:session-log-deepseek/delivery-accepted |
event:session/end-seed |
event | 669846d6f47138d4b8897717b0f08476805437a4b3195c82551b527035d90bc6 |
event:session/end-seed |
event:session/title |
event | 1b912703e2d64f91c99c675b8f805b01076c8325b905c1218ad81ef0b24909d5 |
event:session/title |
event:session/title-llm-request |
event | 5af24b92e836fedeb396431e8eb395884a057917b54eb777f859d6696faf7780 |
event:session/title-llm-request |
event:step/end |
event | e0a787e6ec76c7c94fecbc501b489164ab0293db05bc947914077ad01e674f05 |
event:step/end |
event:step/start |
event | 4513e088d43e6c68425be30451b9f961cc264fe7318ca62681c41d4d78615986 |
event:step/start |
event:subagent/descriptor |
event | b79ada42962cad0190a9d465805260567621fa3a4abd757eb31e6016b52d5ab5 |
event:subagent/descriptor |
event:subagent/model-selection-policy |
event | a6567ccb2e530606b775371eb4fa31468d72084339968e8b0440a516a23b39dc |
event:subagent/model-selection-policy |
event:team/member |
event | 31d13edbb5fe2f8b7a38056320a8a06275ee4426e0abf12d4741818beda5a9c9 |
event:team/member |
event:team/message/delivered |
event | c53bff743470c8bf11be698ced047072744ef088cce663a774b456d7a8982516 |
event:team/message/delivered |
event:team/message/queued |
event | a6a26c92459c96e4f342e58d7e41c71956e7e62c9280e30e260df58409a3012c |
event:team/message/queued |
event:team/task |
event | 1688a2451eef9da19eaf45f12c8a27df07b1a6e56fa57ba603118f5201bb435b |
event:team/task |
event:todo/write |
event | b978cff734e62143eb56c9125423ec275405eda969802d42aaf73ecb987d3b26 |
event:todo/write |
event:tool-workflow/agent-end |
event | babf9ee4d1af62bf6c3a8103737f7a5e4e78ce179be835ce05a38803e15884b7 |
event:tool-workflow/agent-end |
event:tool-workflow/agent-start |
event | 5f26a6c20b37632f8f57729d171c671def4683d994ac6257a8dffcd855101627 |
event:tool-workflow/agent-start |
event:tool-workflow/run-end |
event | 42e0916e0dda5f6d1e7bb05d8514717147c036a79c9f36085683469516c1fd3f |
event:tool-workflow/run-end |
event:tool-workflow/run-start |
event | c1f9e0405de6d18cabb9ee70782a027f9bbdc57e5abec9dcccdd56119e2e9058 |
event:tool-workflow/run-start |
event:tool/call |
event | 3b1be838223869fe0a08210db85bf773796ed3f2373ac16555dff227cade0c48 |
event:tool/call |
event:tool/code-dispatch |
event | c14c2fdd439461cfc85105c6f620b0f62f799e3a69fb48196e938ec045aa0390 |
event:tool/code-dispatch |
event:tool/code-dispatch-start |
event | 9eb21c10fc675e1fa4184e5eecc9697aa87054ffd836d49428174897f0e64b62 |
event:tool/code-dispatch-start |
event:tool/result |
event | a79feb023a08a8b73d254e29e78f13045b6773ce377b0c4156fcdf1368c146ab |
event:tool/result |
event:turn/end |
event | 84c24f1209fc3e0153de6ac85d58fd6968b851f955e0e761b92321053956609e |
event:turn/end |
event:turn/start |
event | aa0957eca50aeb28bcd2e6930b95809926edacb550c8c340ba526ba6b861b3d8 |
event:turn/start |
event:user/message |
event | 5cfd0a500f2fd56d504ed24eabf6b55e5cabccbd571b95cba579f1f8aceab439 |
event:user/message |
event:web/deepseek-search-llm-request |
event | cf6e3aaf1e2de6480aa0157730a41b9a492108a55304100b0f7e112711dd4331 |
event:web/deepseek-search-llm-request |
仅使用源码的提取器以 TypeScript 6.0.3 运行。重建时省略冗余的 object 交叉类型成员,并丢弃规范化后不可达的类型定义;保留已有的 any / unknown,不以不透明类型替代未解析的导入。
历史 surface 事件声明允许可选的 surfaceOp。这保留了类型声明证据,并不允许省略 codec 或迁移验证器要求的字段。不透明值、外部插件事件、打包的 body 编码与运行时关系均不在类型目录覆盖范围内。
pnpm run verify-persistence-formats
该检查仅使用本工作树验证直到当前写入器的每个格式、schema 完整性、双语声明与生成表格。它不会回放历史应用,也不确立迁移安全性。维护规则参见格式索引,当前声明参见当前目录。
无。