2026-06-26 0.8.3 双击热修
用户目标
- 用户已验收 0.8.2 的 5 项 native 文件体验,但发现桌面 / Finder 双击
.mindraw 时会打开画布同时弹出:Failed to open Mindraw link: Invalid Mindraw link: expected mindraw:// scheme。
- 本轮目标:修复该回归,重新打 0.8.3 DMG,安装验证桌面
.mindraw 打开不再弹错,并确认 mindraw://localhost?... 全局链接不回退。
已完成事项
- 定位根因:Finder / LaunchServices 打开
.mindraw package 时,Tauri/Rust 已经通过 native document open 流程处理文件路径;但 deep link 插件也可能把 file://...mindraw 送入前端 openMindrawDeepLinkUrls(),导致后端 resolve_mindraw_link 按 deep link 解析并报 expected mindraw:// scheme。
- 修复前端 deep link 入口:
openMindrawDeepLinkUrls() 现在只处理 mindraw: scheme,忽略 file: 等非 Mindraw URL。
- 新增回归测试:
file:///Users/ar/Desktop/Board.mindraw 不再调用 resolve_mindraw_link,不触发 alert,也不影响 native 文件打开流程。
- 版本提升到
0.8.3,更新 package.json、src-tauri/Cargo.toml、src-tauri/tauri.conf.json 和 CHANGELOG.md。
- 生成并安装验证最终 DMG:
03-O/C2.builds/releases/Build202606261221/Mindraw_0.8.3_aarch64-Build202606261221.dmg。
- 对最终 release app 做 ad-hoc 重签并重建 DMG;最终 DMG 校验通过,SHA256 为
20326bd89eb97e8571b3483b4be7ee889987fd7130c727579c21bebee8399c57。
- 安装到
/Applications/Mindraw.app 后确认版本为 0.8.3 / 0.8.3,codesign --verify --deep --strict --verbose=2 /Applications/Mindraw.app 通过。
- 真实 smoke:桌面
Mindraw-083-final-smoke.mindraw 可打开,无 expected mindraw:// scheme 弹窗;open "mindraw://localhost?documentId=mdoc_fxt_minimal_empty_7P2J9K4M8R1T6V3X" 无回归弹窗。
关键决策
- 这是 0.8.2 的用户可见 bug,按发布规则递增 patch 到
0.8.3,而不是覆盖 0.8.2。
- 修复边界只在 deep link 入口过滤非
mindraw: scheme,不改 native 文件打开流程,不改 .mindraw 包结构。
- 初始 Tauri 生成的
.app 严格签名验证暴露既有资源状态问题,因此 release 流程继续使用 ad-hoc 重签并基于重签后的 .app 重建 DMG。
文件变更
- 代码与版本:
src/lib/mindrawDeepLink.ts
src/lib/mindrawDeepLink.test.ts
package.json
src-tauri/Cargo.toml
src-tauri/tauri.conf.json
CHANGELOG.md
- 文档与计划:
02-P/qa/mindraw-083-finder-open-hotfix.md
02-P/plan-progress.markdown
CODEGRAPH.md
INDEX.md
03-O/C2.builds/README.md
- 构建产物:
03-O/C2.builds/releases/Build202606261221/Mindraw_0.8.3_aarch64-Build202606261221.dmg
03-O/C2.builds/releases/Build202606261221/build-info.txt
03-O/C2.builds/releases/Build202606261221/release-manifest.txt
Git 存档
85b1a61:Fix Finder mindraw double-click deep link alert
c650058:Record Mindraw 0.8.3 release validation
- release tag:
v0.8.3-Build202606261221,指向 c650058529b92df7777159d54e8ccb6e1e4cdfe7
验证结论
npm run test:run -- src/lib/mindrawDeepLink.test.ts src/store/useStore.test.ts src/lib/documentFormat.test.ts src/hooks/useMenuHandler.test.ts:PASS,72 tests。
npm run build:PASS,保留既有字体解析、dialog chunk、bundle size warnings。
cargo check --manifest-path src-tauri/Cargo.toml:PASS。
cargo test --manifest-path src-tauri/Cargo.toml:PASS,38 tests。
hdiutil verify 最终 DMG:PASS。
- 安装版桌面
.mindraw 打开 smoke:PASS。
- 安装版
mindraw://localhost?... 全局链接 smoke:PASS。
未决问题与后续建议
- 当前 release 使用 ad-hoc 签名,后续若面向更广泛分发,需要补正式 Developer ID 签名和 notarization。
- 工作区仍存在非本轮改动:
01-I/X-参考幕布与workflowy/幕布与Workflowy功能需求资料库.md、INDEX.md 中 m4c 子项目目录说明更新,以及 .codex/、P1-Txtflowy/、canvas/、p.mindrawforcodex/ 等未跟踪项;本轮未回退、未纳入 0.8.3 tag。