edit | blame | history | raw

QA-EDC-06-EXEC 正式执行

用户目标

以独立 QA 身份对 /Users/ar/Projects/Mindraw-worktrees/md-main-better-exp1 / codex/md-main-better-exp1 执行自动化与真实 App GUI 双门,保留日志、截图、package tree、路径与兼容负检;不修改生产源码,不提交、合并、推送或生成 DMG。

已完成事项

  • 核对 Review Gate crg-7d105de89062=PASS、HEAD 0e329860f39577bdc0ab8236f5bf442fc163a22b 与 11 个声明改动文件。
  • 自动化全部通过:前端定向 7、全量 12;Rust 定向与全量各 9;前端 build、cargo check、git diff check 通过。
  • 用目标 worktree 的 npm run tauri dev 启动真实 App,在 /tmp/mindraw-qa-edc-06-20260710-1907 执行 GUI 新建与 Desktop 负检。
  • 真实 GUI 发现并复现阻断缺陷:单次菜单触发产生多次并发 create_new_file 调用,出现 File exists,并留下缺少 .assets/ 的半成品 package。
  • 写入 QA Markdown / JSON 报告、证据目录、统一台账、PMO inbox 与 INDEX。

关键决策

  • QA 结论为 FAIL,终态 PM_NOTIFY_READY QA-EDC-06-EXEC RESULT=FAIL
  • 自动化全绿不能覆盖真实 App GUI 失败。
  • 非 PASS 不生成 DMG;必须由 PMO 续派 coder2 修复、复审,再完整重跑 QA。

核心事实 / 变更快照

  • 变更对象:QA-EDC-06-EXEC 正式 QA 状态。
  • 事实来源:02-P/MEXP15-SignedNotarizedDMG/qa/qa-edc-06-formal-execution-report-20260710.md、同名 JSON、qa-edc-06-evidence-20260710/
  • 变更前:测试计划已准备、代码复审 PASS、正式 QA 未执行。
  • 变更后:自动化 PASS、真实 GUI FAIL、整体 QA FAIL。
  • 失败 package:/tmp/mindraw-qa-edc-06-20260710-1907/ProjectA/26.0710-04.mindraw;存在 manifest.jsondrawing.excalidraw,缺 .assets/
  • Desktop 负检:执行前后 diff 为空,没有静默写 Desktop。
  • 范围边界:未修改目标 worktree 源码;未提交、合并、推送或生成 DMG。

文件变更

  • 新增 QA 报告 Markdown / JSON 与证据目录。
  • 更新 02-P/plan-progress.markdown
  • 更新 02-P/PMO_INBOX.md
  • 更新 INDEX.md
  • 新增本会话记录并更新 .codex-sessionhistory/COMMANDS.md

未决问题

  • src/hooks/useMenuHandler.ts 的 listener 生命周期需确保唯一,避免 store action 依赖变化后残留多个 listener。
  • 新建入口需互斥 / 幂等,后端 package 创建需失败原子清理,禁止半成品。
  • 修复后需补真实症状回归:单次菜单触发只创建一个 package、连续快速触发无竞争、失败不留半成品。
  • GUI-004/005/009/010/011/012/013/014 必须在修复后完整重跑。

后续建议

PMO 关闭或重分类当前 active assignment,续派 coder2 最小修复;完成代码复审后重新派独立 QA,不得在此 FAIL 状态下进入 1.3.0 / signed-notarized DMG 链路。

可复用命令 / Runbook

用途:复跑 QA-EDC-06 自动化与真实 App 启动。

前置条件:目标 worktree 保持在 codex/md-main-better-exp1,且 PMO 已确认修复后的代码复审 PASS。

cd /Users/ar/Projects/Mindraw-worktrees/md-main-better-exp1
git status --short --branch --untracked-files=all
git diff --check
npm run test:run -- src/lib/newDocument.test.ts
npm run test:run
npm run build
cargo check --manifest-path src-tauri/Cargo.toml
cargo test --manifest-path src-tauri/Cargo.toml mindraw_new_document_tests
cargo test --manifest-path src-tauri/Cargo.toml
npm run tauri dev

验证步骤:在真实 App 中选择隔离 /tmp 目录,单次点击菜单 New Mindraw Document,确认只新增一个完整 YY.MMDD-NN.mindraw;连续快速触发仍不报错、不覆盖、不产生半成品;最后比较 Desktop 前后 .mindraw / .excalidraw 清单。

清理 / 恢复:退出 dev App;只删除本轮独立 /tmp/mindraw-qa-edc-06-* 测试根,不清理目标 worktree。

搜索关键词:QA-EDC-06-EXECFile exists os error 17incomplete packagemenu-command listener26.0710-04.mindraw