edit | blame | history | raw

Windows 原生 101 分阶段诊断

用户目标

执行 MD-127-XPLAT-WIN-SAFEIO-NATIVE-FAIL101-DIAG-01:以 candidate/private head c500f4f437ae0edda359e9c4583e2736da16a2c3 与 run 31788619371 固定 JSON 为输入,不读 raw logs,把双架构 exit101 拆成 compile、machine artifact、direct libtest、summary 固定分类并形成新 Review Gate。

已完成事项

  • native19 改为 locked Cargo --no-run --message-format=json compile → 唯一 mindraw_lib test executable artifact → runner-local direct libtest → bounded summary。
  • 固定区分 compile、artifact missing/ambiguous/malformed/bounded、launch、合法 test failure、summary missing/malformed/bounded/count/exit mismatch。
  • executable path 仅在 runner 内作为直接执行 authority,不进入 evidence。
  • RED1 缺 classifier;独立预审发现 256 KiB 对真实约 320 KiB Cargo stream 误拒绝且读取前未有界;RED2 后改为同 descriptor open/fstat ≤8 MiB/fixed allocation/read/finally close
  • 独立复审最终 PASS;Node 14/14、core list/actual5、双 Windows target compile-only、YAML/diff/security/privacy 全部通过。
  • Gate crg-9dbdb79d9f94,状态 needs-code-review;已回写统一台账和 PMO_INBOX。

关键决策

  • direct libtest cwd 固定 src-tauri,保持 Cargo package-root 运行语义。
  • machine stream 上限 8 MiB,libtest classification 上限 256 KiB;均在输出进入 evidence 前归约为固定元数据。
  • 固定 Reviewer PASS 前禁止第四次 private run;本轮不是 QA、支持、包或发布结论。
  • INDEX.md 无入口变化不更新;CHANGELOG.md 因无产品/发布行为变化不更新;CODEGRAPH.md 已更新。

文件变更

  • workflow SHA 8f10c23adccf2c900ea32d399564212b5b9e58f103647b78404129facc341496
  • contract SHA 682c803e89fac70c6be999b6a799970048fdbf36c2ae68b85d469f4383bc9b13
  • tests SHA c6a782d5cfcbaf08869fa8a0bb071238a28ec63775d9ca8e340270a3243c6d0d
  • CODEGRAPH SHA 7167b5588892020f57e5f5e4ed377489bf3af7155034e106315ad0b1e894df3d
  • Review:02-P/MEXP16-CrossPlatform127/review/md-127-xplat-win-safeio-native-fail101-diag-01-review-{request,evidence}-crg-9dbdb79d9f94.*

核心事实 / 变更快照

  • 变更前:单条 cargo test exit101 同时可能表示 compile 或 test executable failure,只有 exit0 才解析 summary。
  • 变更后:四阶段分别输出固定 category/exit/count/digest/boolean;artifact executable path 与 raw machine/libtest 内容不进入 artifact evidence。
  • 起点与终点 HEAD/private 均为 c500f4f...;精确四文件未提交 diff;产品与 Cargo 九保护 SHA 不变。
  • 未进行 raw log、run-03 rerun、第四次 Actions、commit/push、产品语义、package/QA/support/release/macOS evidence 操作。

未决问题与后续建议

  • 需要固定 Reviewer 审核 crg-9dbdb79d9f94;PASS 后 PMO 才能决定是否派新的 private run。
  • Windows 原生阶段的真实分类尚未执行,不能声明 Windows PASS。

可复用命令 / Runbook

用途:离线复验 SafeIO native 分阶段诊断、旧 5/19 门与双 target compile-only。

前置条件:位于 /Users/ar/Projects/Mindraw-worktrees/md-1.2.7-cross-platform;不触发 Actions。

node --test scripts/mindraw-windows-safeio-native-contract.node-test.mjs
node scripts/mindraw-windows-safeio-native-contract.mjs --run-list --kind core --manifest src-tauri/Cargo.toml
cargo test --locked --manifest-path src-tauri/Cargo.toml --lib safe_io_core -- --test-threads=1
cargo check --locked --manifest-path src-tauri/Cargo.toml --tests --target x86_64-pc-windows-msvc
cargo check --locked --manifest-path src-tauri/Cargo.toml --tests --target aarch64-pc-windows-msvc
ruby -e 'require "yaml"; YAML.load_file(".github/workflows/mindraw-windows-safeio-native.yml"); puts "yaml=PASS"'
git diff --check

验证:14/14、exact core5、host core5/5、双 target compile-only、YAML 与 diff PASS。

清理 / 恢复:均为离线验证;Cargo 缓存可重建,不要 reset 当前 reviewed diff。

搜索关键词:FAIL101classifyCargoTestArtifactFileFAIL_NATIVE_COMPILEcrg-9dbdb79d9f94

PMO 消费与正式复审

  • Coder 终态已消费:READY_FOR_REVIEW / crg-9dbdb79d9f94
  • PMO 已登记固定 Reviewer 019f51c7-9273-7c02-9402-20cb2ad427d3;正式结论只允许 PASSCHANGES_REQUESTEDBLOCKED
  • Reviewer PASS 前第 4 次 private native run 保持关闭;该 Gate 不构成 QA、平台支持、包或发布结论。

正式复审退回

  • 固定 Reviewer 对 crg-9dbdb79d9f94 返回 CHANGES_REQUESTED
  • 唯一阻断 F-01:首次同 fd fstat 后若 artifact stream 增长,当前 reader 会忽略追加尾部;需要读取后 exact-size 复验/EOF probe 和生产路径增长回归。
  • PMO 已拆 MD-127-XPLAT-WIN-SAFEIO-NATIVE-FAIL101-DIAG-FIX-01,要求形成新 Gate;第 4 次 private run 继续禁止。