Cargo 诊断链
用户目标
针对 private run 31755968182 的四项 Cargo exit 101,只新增有界、脱敏、fail-closed 诊断链与生产同核测试,不猜修产品源码,不推送或触发 Actions。
已完成事项
- 新增
scripts/mindraw-cargo-diagnostics.mjs 与 9 项测试。
- workflow 在 runner temp 净化 raw Cargo log,只上传 sanitized diagnostics 和既有 fixed metadata。
- 独立记录 Node/Cargo/diagnostics exit,并以生产同核 resolver 保留失败优先级与原始 Cargo 101。
- 更新 package script、CODEGRAPH、INDEX、CHANGELOG;形成 Gate
crg-9406f7432358。
关键决策
- output 上限固定 200 行/64 KiB/单行 1 KiB,raw input 上限 8 MiB。
- Cargo structured JSON 不使用
rendered 或 span source text,只保留 error/code/crate/location/help/note。
- 文本 fallback 是严格 allowlist;非零 Cargo 无安全诊断时 exit 78,禁止产生“空成功”。
- raw Cargo/node logs 不进入 artifact;诊断成功也不能把 Cargo 101 改写为 0。
核心事实 / 变更快照
- 变更对象:private 六原生 compile-probe diagnostics boundary。
- 事实来源:base
754c1a8e9f7a52cf5c60ba2434972cb41fb01587;sanitizer SHA e19c9e42dd3d0372ff5818f41be58fd9578a1dd4ac603decd24206159ec92b38;test SHA b13ccf42252ec46361ae03537ea6e5dc01fb8b888a70386afc1219cef437534d;Gate crg-9406f7432358。
- 变更前:artifact 只有 exit metadata,Cargo 101 无安全根因字段。
- 变更后:artifact 可增加 bounded sanitized diagnostics;raw log仍只在 runner temp;三个 exit独立记录。
- 映射:diagnostics failure→78,Node failure→原 Node exit,Cargo failure→原 Cargo exit,全部成功→0。
- 范围边界:未修改产品业务/Rust依赖/版本/包;未 commit/push/Actions/QA;run 31755968182仍为2/6。
- 验证:专项9、组合Node28、frontend247、doctor15、Rust110及locked check/build/workflow/security/diff PASS。
文件变更
- Worktree:workflow、两个新 scripts、package.json、CODEGRAPH、INDEX、CHANGELOG。
- 主项目治理:Review Request/JSON、统一台账、PMO_INBOX、本会话记录。
未决问题与后续建议
等待独立 reviewer 检查路径/URL规则顺序、source text排除、exit传播和artifact allowlist。Gate PASS 前不得推送或运行;PASS 后也需PMO另派private run,真实诊断结果再决定是否拆平台源码修复。
三个月后回看:本记录可还原输入 run、诊断限制、失败码映射、文件 SHA、Gate、验证与未授权平台结论边界。