Skip to content

fix: preserve MCP failure responses and checkpoint collection - #29

Open
IanYet wants to merge 4 commits into
mainfrom
codex/preserve-original-failure-metadata-20261025
Open

IanYet wants to merge 4 commits into
mainfrom
codex/preserve-original-failure-metadata-20261025

Conversation

@IanYet

@IanYet IanYet commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

连接或工具调用失败后,采集器可能因辅助字段校验失败而丢掉可用原错,失败日志可能被普通通知挤出,慢探测被中断时报告也可能尚未落盘。本次整合 #28 与 #29 的采集能力,先保留已暴露的失败现场,并明确原始失败、宿主日志和后来独立检查各自的来源。

  • 保留有效原始 message、code、cause、stack、已知时间与调用编号;无效辅助字段只记字段名和缺口。新增原失败 HTTP 响应契约,保存宿主已提供的状态码、响应头、错误正文及已知完整性,定点脱敏实际凭据。唯一有效的原响应 X-Request-ID 保留来源,矛盾编号不自动关联。
  • 整合原生错误格式、Windows 可读日志兜底、同会话失败 MCP 索引与已有 stderr。完整失败日志优先于普通通知,在既有 30 条/128 KiB 文本预算内保留;机器索引指回原始记录,不将附近日志或本地编号冒认成当次服务端请求。
  • 快照按独立组和观察项保留有效信息,局部元数据异常不再拒绝全部可用证据;外层来源/结构校验仍严格,静态注册结果不证明当前已认证或工具可用。
  • 原错读入后、日志采集后分别保存本地检查点,后续通过同目录临时文件原子替换。未完成报告明确标记且不能上传;正常完成沿用同一诊断 ID、至多一次 POST。输入 128 KiB、报告上传 256 KiB 的边界明确,超限完整源文件或报告留在本地,不静默截断。

版本:Codex 1.10.25、Claude 1.10.27、collector 1.2.6。本 PR 已包含 #28 的采集改动,需统一协调合并,避免旧包覆盖或版本回退。仅更新现有 basics 内采集器,不加入独立 Doctor Skill 或自动修复规则。

验收针对最终提交 f321b57:

  • 独立 Linux Node24 按 CI 命令完整 181/181,无跳过;Windows 兼容检查 113/113。Windows 全套 113/117,另外 4 项为未改媒体 fixture 文件名含 Windows 不支持的 ?,在调用 helper 前即 ENOENT。
  • Windows 隔离普通本地 marketplace 安装:Codex 0.163.0-alpha.10.2/官方 Claude Code 2.1.310,53/57 文件逐字节匹配 Git 源。安装后采集 CLI 覆盖有/无原错、超过 70 KiB 的完整 HTTP 错误正文、时间/调用/cause、部分快照、精准脱敏、离线禁上报及分片重组 SHA;没有模型回合或新生产报告。
  • 173 份既有生产报告离线重放通过;原始失败记录保持不变,仅增加已有证据索引,不作为新增故障、用户数或恢复结论。
  • 既有身份 Codex 完整商店候选包为 54 文件/18 Skills,已完成隔离原生安装与安装后采集检查。它仍需独立正常审核发布;审核中的 1.10.23 包字节未动。

发布边界:本轮没有新增后端改动或部署。宿主从未暴露或已丢弃的原始 HTTP/TLS 字节、时间或响应头不能事后重建;触发式 Skill 不代表全用户自动采集。正式 Git 合并、远端普通安装、商店发布和实际用户采用需分别确认,不宣称历史用户故障已恢复或失败率已下降。

@IanYet IanYet changed the title fix: retain original MCP errors when optional metadata is invalid fix: preserve MCP failure responses and checkpoint collection Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant