AGC 工具详情的路径脱敏误删 HTML 结束标签与转义内容,完整回包展示被破坏 #553
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题
工具结果先序列化为文本,再做无语境的绝对路径脱敏。HTML 结束标签中的
/被识别为路径,嵌套 JSON 转义也可能被误判。完整工具结果已经到达,展示与诊断仍被改坏。现场与独立复现
心情花园四季记-r2:project.jsonl:9的 canonical HTML 回包正常、redacted=false;tool-calls.jsonl:4的工具详情中 lang/charset/结束标签出现错误<absolute-path>替换。模型收到的 canonical 结果在此样本中未损坏,不能声称模型因这项读取了错误代码。从当前仓库提取原始
redact_absolute_path_tokens及其无依赖辅助函数,单独用 rustc 编译调用,实测:当前代码
agent/direct_tool_calls.rs:104:结构化结果转to_string_pretty;第 269–273 行对整串调用sanitize_detail_text。agent/direct_thread_wire.rs:928:对完整字符串做路径脱敏。repository_context.rs:2201:<被视为边界,后续/被当成绝对路径;第 2255–2271 行不理解 HTML/JSON 语境。与 #532 的区别
#532 修复/跟踪的是逐 delta 的换行和片段路径问题;本项在完整工具结果上即可复现,不需要流式拆分,且影响工具详情。不会重复提交原 delta 问题。
验收
核查范围
2026-09-30 对九份项目导出做只读审计,代码基线
3540c5660fd294b70e054810b5384a2855908df5。本 Issue 仅登记问题,尚未实施修复。未重放项目付费操作,不提交原始会话、凭据或本地私密绝对路径。已排除 #529、#525、#518;偶发 Provider/网络错误不作为新增缺陷。....我记得
tool-calls.jsonl应该被删除了