edit | blame | history | raw

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.jsonsrc-tauri/Cargo.tomlsrc-tauri/tauri.conf.jsonCHANGELOG.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.3codesign --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 存档

  • 85b1a61Fix Finder mindraw double-click deep link alert
  • c650058Record 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功能需求资料库.mdINDEX.md 中 m4c 子项目目录说明更新,以及 .codex/P1-Txtflowy/canvas/p.mindrawforcodex/ 等未跟踪项;本轮未回退、未纳入 0.8.3 tag。