edit | blame | history | raw

Phase 3.7.3 Clean QA

日期:2026-06-26

用户目标

用户确认按“先做 3.7.2 doctor/preflight POC,再做 3.7.3 clean environment QA,然后进入 3.8 document lease / App write API”的顺序推进,并要求开工 Phase 3.7.3。

已完成事项

  • scripts/mindraw-doctor.mjs 增加 --system-handlers 模式。
  • --system-handlers 通过 macOS NSWorkspace 查询 mindraw:// 默认 handler 和临时 .mindraw 探针包默认 handler,不启动 App,不修改 LaunchServices。
  • 补充 doctor 单测到 11 条,覆盖缺 App、旧版本、缺 scheme、缺 document type、bundle id 错误、URL handler 错配、.mindraw handler 错配和非 macOS。
  • 用临时 fake app CLI 矩阵验证 clean / 异常环境。
  • 完成有效 .mindraw fixture 的 package smoke:packageOpen=pass
  • 写入 Phase 3.7.3 QA 报告,并同步 doctor 契约、companion app spec、主计划、工程地图和索引。

关键决策

  • Phase 3.7.3 不卸载或覆盖 /Applications/Mindraw.app,采用可恢复的临时 fake app 场景模拟干净 / 异常环境。
  • 默认 doctor:mindraw 仍不启动 Mindraw;真实打开动作只在显式 --smoke 时发生。
  • 系统 handler 检测单独放在 --system-handlers,用于 m4c / QA preflight 更准确地区分“App 声明正确”和“LaunchServices 实际 handler 正确”。
  • Phase 3.7 第一批可视为闭环;签名 / 公证、自动安装、Windows installer 和真实全新机器安装验收留作后续分发增强,不阻塞 Phase 3.8。

文件变更

  • scripts/mindraw-doctor.mjs
  • scripts/mindraw-doctor.test.mjs
  • 02-P/qa/mindraw-phase373-clean-environment-qa.md
  • 02-P/qa/mindraw-phase37-companion-doctor-contract.md
  • 02-P/功能任务/companion-app-distribution-spec.md
  • 02-P/plan-progress.markdown
  • CODEGRAPH.md
  • INDEX.md
  • .codex-sessionhistory/2026-06-26-Phase373CleanQA.md

验证

  • npm run doctor:mindraw:test:PASS,11 tests。
  • node --check scripts/mindraw-doctor.mjs:PASS。
  • npm run doctor:mindraw -- --pretty --system-handlers:PASS,当前本机 warn,唯一 warning 为 MINDRAW_BUILD_UNKNOWN;URL/package handler 均 pass
  • 临时 fake app CLI 矩阵:PASS,覆盖 missing app、old version、missing scheme、missing document type、wrong bundle id、wrong system handlers、missing package smoke。
  • npm run doctor:mindraw -- --pretty --system-handlers --smoke --package 02-P/Round01-mindraw-defstart/fixtures/minimal-empty.mindraw:PASS,packageOpen=pass
  • git diff --check 覆盖本轮相关文件:PASS。

未决问题

  • App metadata 仍不能稳定暴露 Build202606261221,doctor 保留 MINDRAW_BUILD_UNKNOWN warning。
  • 本轮没有执行真实全新 macOS 用户 / 全新机器安装验收。
  • deep link 完整视觉成功证据沿用 0.8.3 hotfix smoke;本轮未制造未知 documentId 触发用户可见错误弹窗。
  • Developer ID 签名、公证、自动下载 / 自动安装、Windows installer 和 Phase 3.8 document lease / App write API 尚未实现。

后续建议

  • 下一步进入 Phase 3.8 document lease / App write API spike。
  • 3.8 第一批应先定义外部工具写入 .mindraw 包时的 dirty/revision/lease 契约、拒写策略、App 接管策略和 QA failure matrix,再决定是否进入生产代码。