日期:2026-07-07
项目:Mindraw
Plan ID:P-20260706-external-distribution-candidate
Task ID:QA-EDC-03
角色:QA
PMO 派发 QA-EDC-03,要求从 QA 角色收口 MEXP14 外部分发候选的 App rollback 验证与剩余真实环境风险。边界是不得破坏当前主力机器状态,不改源码、构建、候选产物,不替 PMO 宣布候选升级。
AGENTS.md、INDEX.md、统一台账 MEXP14 计划项、治理收口文档、QA-EDC-02 报告、用户新机器 CLI / GUI 证据和 OPS rollback 模板。1.2.3 / Build202607061556 与 rollback target 1.2.3 / Build202607042351 的本地 DMG SHA256。/Applications/Mindraw.app 版本,确认当前主力机器已经是 rollback target Build202607042351,不是可用于验证从 candidate 回滚的 prepared machine。M4C-EDC-02 rollback / freeze / archival 记录,确认 plugin 侧已记录无上一版外部分发 baseline,并选择 remove-only rollback,但仍待 REVIEW-EDC-02。02-P/MEXP14-ExternalDistributionCandidate/qa/qa-edc-03-rollback-and-residual-risk-20260707.md。02-P/plan-progress.markdown 的 MEXP14 状态、任务卡、证据链接和 Progress Log。INDEX.md,把 QA-EDC-03 报告加入 MEXP14 QA 证据索引。qa_result=BLOCKED_PENDING_PREPARED_MACHINE。PM_NOTIFY_READY=yes,含义是 QA-EDC-03 报告和阻塞条件已经可供 PMO 收敛,不代表 QA PASS、PMO Gate、发布或用户验收通过。/Applications/Mindraw.app,因为当前机器不是 prepared rollback target,且已经安装 rollback baseline。PASS_WITH_LIMITS;M4C-EDC-02 已记录无 previous external plugin baseline 并采用 remove-only policy,但该记录仍待 Review Gate crg-941a537b8e13 / PMO 接受,Codex Desktop GUI removal 未覆盖。/Users/ar/Projects/Mindraw/02-P/MEXP14-ExternalDistributionCandidate/qa/qa-edc-03-rollback-and-residual-risk-20260707.md/Users/ar/Projects/Mindraw/02-P/plan-progress.markdown/Users/ar/Projects/Mindraw/INDEX.md/Users/ar/Projects/Mindraw/.codex-sessionhistory/2026-07-07-MEXP14-QAEDC03.md/Users/ar/Projects/Mindraw/.codex-sessionhistory/COMMANDS.mdQA-EDC-03 App rollback 与剩余真实环境风险状态。02-P/MEXP14-ExternalDistributionCandidate/qa/qa-edc-03-rollback-and-residual-risk-20260707.md02-P/plan-progress.markdownINDEX.mdQA-EDC-03 仍待执行;QA-EDC-02 记录 App rollback 未覆盖,plugin remove-only rollback 只有 clean CLI profile 证据。QA-EDC-03 报告明确 App rollback 状态为 BLOCKED_PENDING_PREPARED_MACHINE;台账将 MEXP14 状态更新为 Active / QA-EDC-03 reported BLOCKED_PENDING_PREPARED_MACHINE / not formal release;QA-EDC-03 任务卡被标为已产出报告;plugin rollback 口径更新为 remove-only recorded pending review,不再写成单纯未处理。1.2.3 / Build2026070615563b17b89461374621c80d127e6475e6de502031486201f672f7fc4fde57e744a81.2.3 / Build2026070423515c8041288a61f8c09e7bf0ca8a0bcd68b55d17e5aaa1079eb8d7864a952481b5/Applications/Mindraw.app:1.2.3 / Build202607042351mindraw-plugin-0.1.0+codex.20260704090518-EDC20260706154843mindraw-mexp14-edc-20260706154843ee06e91a866049b6a8062367f77fc659aa3c3c9f5638f7b0c2b61ad8e14aa2f1QA-EDC-03 报告。用途:在 prepared fresh / clean machine 上验证 MEXP14 App candidate 能从 Build202607061556 回滚到 Build202607042351,并捕获命令与截图证据。
前置条件:
/Applications/Mindraw.app 的 prepared fresh Mac、clean macOS user、VM 或 disposable machine 上执行。/Applications/Mindraw.app 的步骤。只读基线核对:
shasum -a 256 /Users/ar/Projects/Mindraw/03-O/C2.builds/releases/Build202607061556/Mindraw_1.2.3_aarch64-Build202607061556.dmg
shasum -a 256 /Users/ar/Projects/Mindraw/03-O/C2.builds/releases/Build202607042351/Mindraw_1.2.3_aarch64-Build202607042351.dmg
/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' /Applications/Mindraw.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' /Applications/Mindraw.app/Contents/Info.plist
Prepared machine rollback 验证:
sw_vers
uname -m
whoami
test -d /Applications/Mindraw.app && /usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' /Applications/Mindraw.app/Contents/Info.plist
test -d /Applications/Mindraw.app && /usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' /Applications/Mindraw.app/Contents/Info.plist
CANDIDATE_DMG="/path/to/Mindraw_1.2.3_aarch64-Build202607061556.dmg"
ROLLBACK_DMG="/path/to/Mindraw_1.2.3_aarch64-Build202607042351.dmg"
shasum -a 256 "$CANDIDATE_DMG"
shasum -a 256 "$ROLLBACK_DMG"
hdiutil verify "$CANDIDATE_DMG"
hdiutil verify "$ROLLBACK_DMG"
CANDIDATE_MOUNT="/tmp/mindraw-edc-candidate-mount-$$"
mkdir -p "$CANDIDATE_MOUNT"
hdiutil attach -nobrowse -readonly -mountpoint "$CANDIDATE_MOUNT" "$CANDIDATE_DMG"
ditto "$CANDIDATE_MOUNT/Mindraw.app" /Applications/Mindraw.app
hdiutil detach "$CANDIDATE_MOUNT"
/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' /Applications/Mindraw.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' /Applications/Mindraw.app/Contents/Info.plist
codesign --verify --deep --strict --verbose=2 /Applications/Mindraw.app
spctl --assess --type execute --verbose=4 /Applications/Mindraw.app
open -a /Applications/Mindraw.app
BACKUP_ZIP="$HOME/Desktop/Mindraw.app.candidate-backup-$(date +%Y%m%d%H%M%S).zip"
ditto -c -k --sequesterRsrc --keepParent /Applications/Mindraw.app "$BACKUP_ZIP"
ls -lh "$BACKUP_ZIP"
pkill -x Mindraw 2>/dev/null || true
rm -rf /Applications/Mindraw.app
ROLLBACK_MOUNT="/tmp/mindraw-edc-rollback-mount-$$"
mkdir -p "$ROLLBACK_MOUNT"
hdiutil attach -nobrowse -readonly -mountpoint "$ROLLBACK_MOUNT" "$ROLLBACK_DMG"
ditto "$ROLLBACK_MOUNT/Mindraw.app" /Applications/Mindraw.app
hdiutil detach "$ROLLBACK_MOUNT"
/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' /Applications/Mindraw.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' /Applications/Mindraw.app/Contents/Info.plist
codesign --verify --deep --strict --verbose=2 /Applications/Mindraw.app
open -a /Applications/Mindraw.app
Plugin remove-only rollback 命令:
codex plugin remove mindraw@mindraw-mexp14-edc-20260706154843
codex plugin marketplace remove mindraw-mexp14-edc-20260706154843
codex plugin list
验证步骤:
/Applications/Mindraw.app 必须存在,版本为 1.2.3,build 为 Build202607042351。READY。搜索关键词:QA-EDC-03、BLOCKED_PENDING_PREPARED_MACHINE、Build202607061556、Build202607042351、mindraw-mexp14-edc-20260706154843、App rollback。
M4C-EDC-02 记录为不存在,候选策略为 remove-only rollback;仍待 REVIEW-EDC-02 / PMO 接受。/Applications/Mindraw.app 的机器,并按 QA-EDC-03 报告步骤执行。M4C-EDC-02 的 crg-941a537b8e13 仍需对应代码 / 文档复核闭环。只读本存档可以还原本轮目标、QA 结论、版本 / build / SHA 基线、为什么不能在当前主力机器执行 rollback、需要怎样的 prepared machine,以及后续补测命令。