edit | blame | history | raw

MEXP13 刷新包 1.2.2

日期:2026-07-02

用户目标

coder2@mindraw 身份完成统一台账 P-20260701-app-codex-plugin-acceptance-bundleMD-BUNDLE-05:生成包含 MD-BUNDLE-04 preview freshness / target guard 修复的 MEXP13 internal acceptance DMG。

不做范围:不改 m4c/plugin、不做 PM Gate / re-Gate、不做 H8 / formal release / notarized installer、不覆盖 /Applications/Mindraw.app、不修改用户项目文件。

核心事实 / 变更快照

  • 目标版本:1.2.2
  • Build:Build202607021605
  • Release class input:mexp13-acceptance-bundle
  • Manifest releaseClass:mexp13-acceptance-bundle-not-formal-release-not-notarized-installer
  • Source commit / tag target:c51a76800d638f05ca7b22241bf778942fc161b9
  • Release tag:v1.2.2-Build202607021605
  • Branch:codex/mindraw-0.7.2-image-quality
  • DMG:03-O/C2.builds/releases/Build202607021605/Mindraw_1.2.2_aarch64-Build202607021605.dmg
  • DMG SHA256:c1c63d83766dc3bdfb17e19618087569ff1c4b8fb0c23b138e32315b79efa4c4
  • Manifest:03-O/C2.builds/releases/Build202607021605/release-manifest.json
  • Manifest SHA256:dd0e268857ba4a36beaef47a25c855fb979a014abd8f908e6b7e21e9cfe4a4a8
  • Build info SHA256:914ab71d7596fb7aebea72e3386208cc27976d2daff4e87bcc0abf2d124b45a7
  • 签名边界:App ad-hoc signed;DMG unsigned;notarization not requested;stapler not requested。
  • 旧包边界:1.2.1 / Build202607021050 不包含 MD-BUNDLE-04 freshness guard,不得继续作为本轮用户复验包。

已完成事项

  • 确认当前 HEAD 包含 MD-BUNDLE-04 修复 commit 983b346a2d4643ed09554651e1149f6ba3e5c469
  • 将 tracked App metadata 从 1.2.1 升到 1.2.2package.jsonsrc-tauri/tauri.conf.jsonsrc-tauri/Cargo.toml
  • CHANGELOG.md 的 preview freshness guard 项移动到 ## 1.2.2 - 2026-07-02
  • 更新 CODEGRAPH.md 最后核对版本为 1.2.2 / MD-BUNDLE-05
  • 创建 source freeze commit c51a76800d638f05ca7b22241bf778942fc161b9
  • 创建 release tag v1.2.2-Build202607021605 指向 source freeze commit。
  • 生成新 DMG / manifest / build-info 到 03-O/C2.builds/releases/Build202607021605/
  • 更新 QA 证据、构建索引、项目索引、统一台账。

关键决策

  • 本轮是 MEXP13 internal acceptance bundle,不是 H8、formal release 或 notarized installer。
  • 保持 MEXP13 签名边界:App ad-hoc signed、DMG unsigned、notarization not requested。
  • package-lock.json 被项目 .gitignore 忽略,不在 HEAD 中;本轮 npm version 已把本地 lockfile 更新为 1.2.2,但 tracked release commit 不包含该文件。
  • 第一次 package 命令在 Rust release 编译期间被 SIGTERM 终止,未产生 release 目录或 DMG;使用同一 build id 重跑成功,因此最终 build id 仍为 202607021605

文件变更

  • package.json
  • src-tauri/tauri.conf.json
  • src-tauri/Cargo.toml
  • CHANGELOG.md
  • CODEGRAPH.md
  • 03-O/C2.builds/README.md
  • INDEX.md
  • 02-P/plan-progress.markdown
  • 02-P/MEXP13-AcceptanceBundle/qa/md-bundle-05-refreshed-dmg-after-freshness-check-20260702.md
  • 02-P/MEXP13-AcceptanceBundle/qa/md-bundle-05-refreshed-dmg-after-freshness-check-20260702.json
  • .codex-sessionhistory/COMMANDS.md
  • .codex-sessionhistory/2026-07-02-MEXP13刷新包-01.md

QA 结论

结论:PASS_FOR_MD_BUNDLE_05_READY_FOR_PM_BUNDLE_REGATE

验证通过:

  • Preview/API regression:3 files / 25 tests pass。
  • Rust preview guard:3 tests pass。
  • Rust app_api_transport:5 tests pass。
  • npm run build pass,既有 Vite warning 非阻塞。
  • npm run package:mindraw pass on retry。
  • hdiutil verify pass。
  • DMG mount structure pass:包含 Mindraw.appApplications -> /Applications
  • Mounted App metadata pass:bundle id com.mindraw.desktop,version 1.2.2,build Build202607021605
  • codesign --verify --deep --strict pass。
  • doctor:mindraw -- --app <mounted app> pass for metadata, URL scheme, .mindraw package document type。
  • Manifest version/build/releaseClass/source commit/tag/artifact SHA consistency pass。

正式 QA 证据:

  • 02-P/MEXP13-AcceptanceBundle/qa/md-bundle-05-refreshed-dmg-after-freshness-check-20260702.md
  • 02-P/MEXP13-AcceptanceBundle/qa/md-bundle-05-refreshed-dmg-after-freshness-check-20260702.json

可复用命令 / Runbook

用途:复跑或审计 MEXP13 1.2.2 / Build202607021605 internal acceptance DMG 打包与验证。

前置条件:

  • 当前分支含 source commit c51a76800d638f05ca7b22241bf778942fc161b9
  • package.json / Tauri metadata 版本为 1.2.2
  • 不设置 Developer ID / notary 环境变量时,包为 App ad-hoc signed、DMG unsigned、notarization not requested。

设置 / 构建命令:

npm run test:run -- src/lib/mindrawProjectCanvasPreview.test.ts src/lib/mindrawAppApiTransport.test.ts src/lib/mindrawAppReadApi.test.ts
cargo test --manifest-path src-tauri/Cargo.toml preview
cargo test --manifest-path src-tauri/Cargo.toml app_api_transport
npm run build
BUILD_ID=202607021605 MINDRAW_RELEASE_CLASS=mexp13-acceptance-bundle MINDRAW_BUILD_AGENT=MD-BUNDLE-05 npm run package:mindraw

验证命令:

shasum -a 256 03-O/C2.builds/releases/Build202607021605/Mindraw_1.2.2_aarch64-Build202607021605.dmg 03-O/C2.builds/releases/Build202607021605/release-manifest.json 03-O/C2.builds/releases/Build202607021605/build-info.txt
hdiutil verify 03-O/C2.builds/releases/Build202607021605/Mindraw_1.2.2_aarch64-Build202607021605.dmg
MOUNT_POINT=/tmp/mindraw-md-bundle-05-Build202607021605
rm -rf "$MOUNT_POINT"
mkdir -p "$MOUNT_POINT"
hdiutil attach -nobrowse -readonly -mountpoint "$MOUNT_POINT" 03-O/C2.builds/releases/Build202607021605/Mindraw_1.2.2_aarch64-Build202607021605.dmg
test -d "$MOUNT_POINT/Mindraw.app"
test -L "$MOUNT_POINT/Applications"
/usr/libexec/PlistBuddy -c 'Print :CFBundleIdentifier' "$MOUNT_POINT/Mindraw.app/Contents/Info.plist"
/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' "$MOUNT_POINT/Mindraw.app/Contents/Info.plist"
/usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' "$MOUNT_POINT/Mindraw.app/Contents/Info.plist"
codesign --verify --deep --strict --verbose=2 "$MOUNT_POINT/Mindraw.app"
npm run doctor:mindraw -- --app "$MOUNT_POINT/Mindraw.app" --pretty
hdiutil detach "$MOUNT_POINT"

未决问题 / 后续建议

  • 下一步归属 PM:执行 PM-BUNDLE-REGATE
  • 通过 PM re-Gate 前,不得宣布 MEXP13 用户验收通过。
  • 本包不是 notarized installer;用户安装时仍可能遇到 Gatekeeper / unsigned DMG 限制,需要按内部验收边界处理。