46 lines
1.8 KiB
Markdown
46 lines
1.8 KiB
Markdown
# 任务计划:修复会话归组漂移
|
|
|
|
## 目标
|
|
|
|
修复大会话文件的预览元数据解析,确保侧栏列表只使用 JSON 顶层 `cwd`,不再被消息或工具调用中的嵌套 `cwd` 污染。
|
|
|
|
## 当前阶段
|
|
|
|
完成
|
|
|
|
## 步骤
|
|
|
|
1. [DONE] 建立修复基线并确认大文件元数据解析边界
|
|
2. [DONE] 编写失败回归覆盖嵌套 cwd 误判
|
|
3. [DONE] 实现仅解析顶层会话元数据
|
|
4. [DONE] 运行专项测试并修正边界问题
|
|
5. [DONE] 运行语法检查与完整回归
|
|
6. [DONE] 审查差异及兼容性风险
|
|
7. [DONE] 清理临时跟踪文件并完成交付
|
|
|
|
## 完成标准
|
|
|
|
- 大于 `CC_WEB_SESSION_META_FULL_PARSE_MAX_BYTES` 的会话文件,列表元数据仍读取顶层 `cwd`。
|
|
- 消息、工具输入、工具结果中的嵌套 `cwd/projectName` 不影响会话归组。
|
|
- 顶层 `cwd` 位于尾部预览、嵌套 `cwd` 位于头部预览时仍返回顶层值。
|
|
- 顶层字段跨预览截断边界或头尾片段不构成完整 JSON 时安全降级,不把两个片段拼成伪字段。
|
|
- 小文件完整解析路径保持原行为。
|
|
- 回归测试先能复现旧实现失败,再验证修复通过。
|
|
- `node scripts/regression.js --target session-preview-metadata`、`server.js` 语法检查、完整回归和 `git diff --check` 通过。
|
|
|
|
## 决策
|
|
|
|
- 只修服务端元数据读取根因,不在前端增加掩盖性缓存或版本逻辑。
|
|
- 不依赖 JSON 属性顺序调整作为修复,因为后续对象构造可能再次改变顺序。
|
|
- 解析异常沿用现有保守降级行为,不让单个坏会话中断整个列表。
|
|
|
|
## 错误记录
|
|
|
|
| 错误 | 尝试 | 处理 |
|
|
|---|---:|---|
|
|
| 暂无 | 1 | — |
|
|
|
|
## 已知非阻塞风险
|
|
|
|
- 尾部候选字段解析在默认 128KB 预览范围内风险可控;若未来大幅提高 `CC_WEB_SESSION_META_PREVIEW_BYTES`,应同步增加上限或候选尝试限制。
|