Files
cc-web/.planning/2026-10-14-history-memory-fix/findings.md

11 lines
1.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 调查与实现依据
- 现有完整历史库:lib/session-history-store.js。
- server.js 的 loadSession、saveSession、resolveSessionHistory、refreshSessionSnapshotCache 接入归档。
- 原有契约要求原子提交、可信加载、旧修订合并、删除及清空不复活、完整运行态优先恢复。
- 不能把分块存储只做在文件层:分页入口和快照刷新也须避免整份加载。
- 采用不可变内容哈希块与原子 manifest 提交;可信基线只保留块引用,旧修订按单消息逐字段合并。
- 服务端常用加载保留有界尾部,分页直接读区间,任务跟踪只读元数据;明确导入/全量维护才申请完整加载。
- 集成回归创建 `_history/_turns` 后发现保留目录触发无效会话ID错误;列表枚举须显式排除该目录和同名旧文件,34项持久化回归已覆盖。
- 最终合成夹具:70.5MiB完整旧归档在256MiB堆上限下完成流式迁移、增量保存和67页读取,RSS峰值145.9MiB;1128条正文和工具数据逐条摘要相符。完整集成回归通过;运行服务尚未重启,生产内存效果须在修复生效后另行观察。