保留 app-server 嵌套错误正文
保留 codexErrorInfo 的有界脱敏结构化值 补充真实 400/401 机器字段错误回归测试 更新 AGC 错误展示决策与验收证据
This commit is contained in:
@@ -106,6 +106,7 @@ DirectProject 已经解决过同一类问题([`【ADR】DirectProject命令接
|
||||
- `turn.completed.failure` 中的 `detail` / `diagnostic` 不再一律隐藏。前端按 typed 变体展示安全正文,保留 HTTP 状态、错误码、IPC/stdio、操作系统错误(例如 `EPIPE`、`ENOMEM`、`ENOENT`)和上游可行动说明。
|
||||
- 脱敏只替换敏感值、完整 URL、绝对路径和私钥内容;字段名(例如 `Authorization`、`token`、`api_key`)保留,便于判断错误类别。原始凭据值不进入用户文本、应用日志或项目诊断。
|
||||
- 上游 app-server 映射保留 `message` / `additionalDetails` 的脱敏摘要;因此 401/403/408/429/413/5xx 等状态不会因为分类为 transport 或 native 而丢失正文。
|
||||
- app-server 失败对象只有 `codexErrorInfo` 嵌套字段时,也保留其有界 JSON 值(例如 `httpStatusCode`、连接阶段和 `retryable`);不能只留下 `fields=codexErrorInfo`,否则真实 400/401 会再次退化成分类兜底。
|
||||
- Claude Code(cc)侧车的非零退出、RPC `error`、stdout JSON/UTF-8 解析失败、stderr 和静默超时也走同一映射;侧车 stderr 只在有界收口窗口内读取并进入同一脱敏 detail,不再只写裸 `eprintln!`。
|
||||
- Codex CLI / Claude sidecar 的 JSONL/JSON 解析失败、失败终态、缺失终态、超时和空回执都保留解析错误、失败事件正文与有界安全片段;`LlmError` 没有 detail 字段的超时/空回执由 Direct `ModelCallFailed.detail` 补回,不再把这些协议事实统一压成单一类别。
|
||||
- 账户、模型目录、External Editor/资源编辑、发布、素材上传、错误报告与客户端受控工具桥共用同一原则:网络错误保留底层因链,JSON/协议解析保留 serde 原因,HTTP 错误保留状态码与安全正文;只有响应完全没有正文时才说明“未提供 error/code/message”,不得退成“无法连接/格式无效/服务器未返回错误信息”。
|
||||
|
||||
Reference in New Issue
Block a user