edit | blame | history | raw

Mindraw 1.2.7 发布包 QA

用户目标

对 Owner 指定的唯一 Build202607240109 DMG 执行 GitHub 上传前发布包 QA,不触碰用户 App/文档,不使用 Build202607240113,不修改 GitHub 或候选。

已完成事项

  • 对 SHA/bytes/manifest/freeze commit/annotated tag 做一致性核对。
  • 验证 DMG 与 App Developer ID、hardened runtime、notary/staple、Gatekeeper 和 hdiutil
  • 只读挂载并核验 Applications link、version/build/bundle/arm64。
  • 扫描本地敏感路径和常见凭据 marker,零命中。
  • 使用隔离 HOME/XDG/TMP 直接首启挂载 App,观察到真实窗口后正常退出。
  • 清理隔离 capability/data、QA 进程与挂载点;候选末次 SHA 未变。
  • 写入 QA 报告、JSON、统一台账与 PMO inbox。

关键决策

  • 发布包结论为 PASS,只允许进入后续上传/公开下载 smoke。
  • MD-127 正式功能 QA 保持 CANCELLED_BY_OWNER / WAIVED,不能由本发布包 QA 替代。
  • App bundle 自身无独立 staple ticket 不判失败:分发 DMG ticket 已 staple,且挂载 App Gatekeeper 为 Notarized Developer ID。

核心事实 / 变更快照

  • 变更对象:Mindraw 1.2.7 公开发布包门禁。
  • 事实来源:dispatch、release-manifest.json、冻结 tag、QA 原始命令证据。
  • QA 前:Build240109 为唯一候选,待独立 artifact QA。
  • QA 后:Build240109 artifact QA PASS;SHA 0e00796040a081b53b3f78079668077645d5ce3048f830d54744ad26a5b7b0a4,bytes 7256262,commit 21b17603ff97192c96e91fe82e8ede4a1fe5560d,tag v1.2.7-Build202607240109
  • 排除项:Build240113 未打开、挂载、哈希、启动、复制或混入。
  • 范围边界:无 GitHub mutation;无 source/candidate mutation;无用户 App 或文档内容操作;无功能 QA 结论。
  • 验证证据:02-P/M4C-GitHubOpenSource/qa/qa-m4c-gh-04-mindraw-1.2.7-preupload-evidence-20260724/

文件变更

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

未决问题

  • REVIEW-MD-127-PUBLIC-DMG-FREEZE 仍需由独立 reviewer 收口。
  • GitHub 上传与公开 URL 下载 smoke 尚未执行。

后续建议

PMO 消费本 PASS 与独立 Review Gate 后,再派 GitHub 上传及公开下载 smoke;不得上传 Build240113。

可复用命令 / Runbook

用途:复核指定 signed/notarized Mindraw DMG 的发布包门禁。

前置条件:固定 DMG 路径和预期 SHA;确认 /Applications/Mindraw.app 未运行;使用唯一 build,不混入其他候选。

shasum -a 256 "$DMG"
hdiutil verify "$DMG"
codesign --verify --deep --strict --verbose=4 "$DMG"
xcrun stapler validate "$DMG"
spctl --assess --type open --context context:primary-signature --verbose=4 "$DMG"
hdiutil attach "$DMG" -readonly -nobrowse -mountpoint "$MOUNT"
codesign --verify --deep --strict --verbose=4 "$MOUNT/Mindraw.app"
spctl --assess --type execute --verbose=4 "$MOUNT/Mindraw.app"
hdiutil detach "$MOUNT"

验证步骤:核对 SHA、签名 authority、notary/staple、Gatekeeper、只读 mount 与 App metadata;首启需另设隔离 HOME/XDG/TMP。

清理 / 恢复:正常退出 QA App,确认精确 PID 消失,detach DMG,删除仅 QA 使用的隔离目录,并再次核对候选 SHA。

搜索关键词:Build2026072401090e007960stapler validateNotarized Developer IDread-only mount