# 任务计划:修复会话归组漂移 ## 目标 修复大会话文件的预览元数据解析,确保侧栏列表只使用 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`,应同步增加上限或候选尝试限制。