b395185580
- docs/technical/【技术方案】GameAgent对话工具调用卡片-2026-09-14.md: 写明同一 id 的快照按 updatedAt 单调合并(旧快照不得把 completed / failed 打回 running, 并发来源是逐条快照落盘与回合末整批落盘两条路径) - 写明 detail.changes[].path 用项目相对路径(分隔符统一成 /)、项目外绝对路径用 <absolute-path> 占位 - 写明必须脱敏的具体函数链路(sanitize_detail_text:路径归一化 → redact_absolute_path_tokens → redact_secret_tokens → sanitize_error_context),含敏感 CLI 标志的行整行 fail-closed (--password 后面即使只是 $VAR 占位符也整行替换),且脱敏必须幂等 - 写明 200 条上限语义是"按时间保留最新 200 条",超出时更早回合的卡片会被静默丢弃(老回合卡片会消失), 不做分页与历史回填(行为不变,只补文档) - 写明单行损坏(含非法 UTF-8)逐行读取跳过继续,黏连形态只丢那一行 - 新增单测:tool_call_cap_drops_oldest_turn_cards(超出后保留最新 N 条 + 按时间正序)