继续向 Phase 3.5 前的完整 .mindraw 格式推进;本轮聚焦 Phase 2 剩余的目录包选择、系统打开边界和失败态状态保护。
openDirectoryOrDocument() store 入口:loadDirectory()。.mindraw 路径按文档打开,调用 read_mindraw_package,随后加载父目录,避免浏览包内部。Open Directory、快捷键 Cmd/Ctrl+O、侧边栏目录选择按钮均接入 openDirectoryOrDocument()。.mindraw 目录包选择会打开包文档且不对包内部执行 get_file_tree。.mindraw 打开失败时保持当前 tab / active file 不变,并弹出失败提示。.excalidraw 文件可通过 open -n -a .../Mindraw.app Legacy.excalidraw 进入 opened-files 链路并打开。.mindraw 普通目录包通过同一 open -a 方式未进入 Tauri Opened 文档事件,符合当前“不注册 macOS package”的 MVP 边界。tauri.conf.json 的 .mindraw file association。open -a 直接打开普通 .mindraw 目录包目前不能视为完成;该体验需要后续 macOS package 注册或 Phase 3.5 deep link 方案继续验证。.mindraw 的路径已在应用层补齐,属于 Phase 2 可推进范围。src/store/useStore.tssrc/store/useStore.test.tssrc/components/Sidebar.tsxsrc/hooks/useMenuHandler.tssrc/hooks/useKeyboardShortcuts.ts02-P/qa/mindraw-phase2-runtime-check.md02-P/plan-progress.markdownCODEGRAPH.mdnpm run test:run -- src/lib/documentFormat.test.ts src/store/useStore.test.ts:PASS,36 个测试通过。npm run test:run -- src/hooks/useMenuHandler.test.ts src/lib/documentFormat.test.ts src/store/useStore.test.ts:PASS,51 个测试通过。npm run tauri -- build --debug --bundles app:PASS,生成本地 QA debug .app。git diff --check:PASS。.mindraw 包的人工验证;自动化已覆盖同一结果路径。.mindraw 普通目录包未完成,需后续 package 注册或 deep link spike。.mindraw 到 App、完整 damaged manifest / hash mismatch / illegal asset path UI 文案矩阵仍未完成。继续 Phase 2:补 Save As 弹窗过滤器人工验证、Finder 拖放行为、失败态人工矩阵。Phase 2 结论收口后再进入 Phase 3 导出互通;Phase 3.5 全局链接仍保持后置。