返回 DeepSeek-Reasonix
session-v4-implementation-report.zh-CN.md
根目录 / docs / session-v4-implementation-report.zh-CN.md
1 # 统一会话 v4 落地实施报告
2
3 日期:2026-09-14
4 基线:`main-v2` 的 `744c2e94ec77b577fbe3f1c93c769b1c3388bd21`
5
6 ## 已交付能力
7
8 - `internal/session` 是唯一生产会话服务。新建和继续写入统一使用
9 `reasonix.session.linear/v4` 与 `storageRevision: 1`;旧 checkpoint、DAG、
10 preview、线性 v3/v3.1 和未发布 v4 草稿只作为迁移输入。
11 - 大字段在事件接受前发布到 SHA-256 内容存储。内容支持流式写入、范围读取、
12 分块校验、同授权域去重,并随导出归档形成完整引用闭包。
13 - 逻辑事务由有界、独立校验的 Zstandard 帧和 begin/event/end 记录组成。
14 accepted 与 durable 水位分离;不完整事务不可见;写入压力产生可取消背压,
15 不再变成会话累计容量拒绝。
16 - schema-1/checkpoint 迁移会流式复制并计算源摘要、增量解析消息、在磁盘暂存、
17 验证目标后原子发布;失败不修改源数据。
18 - durable 历史投影到可重建 SQLite 索引。Desktop、Serve、远端 transcript、
19 搜索、大字段展开和 Goal 诊断统一使用有界分页或流式 writer,不再通过全历史
20 RPC 值传递。
21 - Runtime 只保留当前业务状态、accepted 尾部和模型工作集,不常驻全部 durable
22 正文。导入导出、分叉、恢复和诊断保持固定快照及执行授权边界。
23 - 保留已合入 Goal 生命周期的 CAS、armed/disarmed、唯一续跑预留、用户输入优先
24 和副作用前 Flush。Goal 轮数没有隐藏产品上限。
25
26 ## 兼容结论
27
28 | 格式 | 当前读取 | 当前写入 | 降级行为 | 结论 |
29 | --- | --- | --- | --- | --- |
30 | checkpoint / schema-1 | 流式迁移或只读发现 | 不再写入 | 保留源字节 | 兼容 |
31 | schema-2 DAG | 图专属迁移适配器 | 不再写入 | 保留源图 | 兼容 |
32 | preview、线性 v3/v3.1 | 显式迁移适配器 | 不再写入 | 保留源字节 | 兼容 |
33 | v4 revision 0 草稿 | 显式迁移适配器 | 不再写入 | 草稿保持不变 | 明确迁移边界 |
34 | v4 revision 1 | 原生读取 | 唯一生产格式 | 旧版不会写该目录 | 明确单向边界 |
35
36 最终 v4 使用独立目录,不覆盖旧存储。冷浏览、迁移、导入和分叉都不会恢复批准
37 或 Goal activation。
38
39 ## 缓存契约
40
41 内容哈希、磁盘路径、分页游标和持久化水位不会进入 provider 请求。系统提示、
42 工具 schema、消息顺序、推理签名、provider 元数据、可见性及压缩触发规则保持
43 原行为。序列化字节守卫覆盖 OpenAI Chat Completions、Anthropic 和 OpenAI
44 Responses,并比较 v4 关闭重开前后的实际请求字节。
45
46 ## 验证证据
47
48 - 根 Go:`go test -p 2 ./... -count=1 -timeout=15m`
49 - Desktop Go:`cd desktop && go test ./... -count=1 -timeout=15m`
50 - Race:`go test -race ./internal/session ./internal/sessioncontent ./internal/control -count=1 -timeout=15m`
51 - 原 128 MiB 故障:`134,308,416` 字节合成旧日志可迁移、打开、校验并继续写入。
52 - 大单条记录:超过 64 MiB 的旧单记录不再因原记录大小门槛迁移失败。
53 - Provider 字节:OpenAI、Anthropic、Responses 在 v4 持久化并重开后的序列化
54 请求字节一致。
55 - 容量场景:100,001 个事件、1 GiB 逻辑历史、1 GiB 附件和 16 MiB 模型工作集
56 完成;参考 macOS 主机的索引页 P95 为 597 毫秒,进程峰值 RSS 约 235 MiB,
57 冷启动耗时 10.1 秒。首次索引构建耗时 115.1 秒,尚未达到参考机 60 秒的
58 期望目标;构建过程可取消,并且不阻止会话重开及流式访问。这些是测量结果,
59 不是运行时准入上限。
60 - 256 MiB 场景的索引页 P95 为 153 毫秒,峰值 RSS 约 230 MiB。
61 - 仓库静态 ratchet 仍启用。由于无版本包重命名改变了按路径记录的 finding,且
62 新迁移/查询实现有意增加源码复杂度,因此已重新生成并记录基线。
63
64 前端类型/测试、正式前端构建和原生 transcript 布局证据记录在 PR 检查结果中。
65
66 ## 明确未包含的证据
67
68 按任务负责人要求,本次移除 Windows 安装与打包应用验证。因此不声明 Windows
69 文件系统、安装器、签名或 WebView2 验证通过。反馈用户的原始日志也尚未提供;
70 上述精确尺寸回归使用合成样本,不声明已经恢复该用户的真实会话。
71
71 lines MARKDOWN