继续推进 .mindraw Phase 2:在普通原生 Save As 面板无法直接创建 .mindraw 目录包后,补齐可真实使用的显式 .mindraw 另存路径。仍不进入 macOS package 注册、全局链接 runtime 或完整生产迁移。
save_mindraw_package_as,使用 Mindraw save panel filter,并把非 .mindraw 选择路径归一为 .mindraw。ensure_mindraw_save_path() 和对应 Rust 单测,覆盖无扩展/错误扩展时的 .mindraw 路径归一。saveCurrentFileAsMindrawPackage(),接入 File > Save As Mindraw Package... 菜单命令。.mindraw 包路径。原名 copy.mindraw,避免从 Source.excalidraw 另存到同目录时 macOS save panel 因同 basename 源文件禁用 Save。/private/tmp/mindraw-save-mindraw-as-check/Source.excalidraw 直接另存为 Source copy.mindraw,Save 按钮可用,保存后文件树显示 Source copy 和 Source,Tab 路径切换到 Source copy.mindraw。manifest.json、drawing.excalidraw、.assets/,且 manifest.scene.sha256 与实际 drawing sha256 一致。Cmd+Shift+S 被前端普通保存快捷键拦截的问题:Cmd/Ctrl+S 现在只处理无 Shift 的普通保存,让 native menu accelerator 触发 Save As。useKeyboardShortcuts 测试,覆盖 Cmd/Ctrl+S 前端保存和 Cmd/Ctrl+Shift+S 留给原生菜单。/private/tmp/mindraw-shortcut-saveas-check/Source.excalidraw 后按 Cmd+Shift+S,已触发普通 Save As sheet。.mindraw 失败态摘要:缺 .assets 显示 assets directory missing/invalid;缺 drawing.excalidraw 显示 scene missing/damaged/invalid;包内文件缺失不再被误判为顶层文件不存在。00-valid.mindraw active。open -R、Finder 列表视图 / 外部目录变体、cliclick 快速与慢速拖放多次尝试;均未触发 Mindraw drop,最后一次慢速 cliclick 拖放卡住后中断。本项继续记录为 NOT VERIFIED,不签 PASS。/Users/ar/Library/Application Support/com.mindraw.desktop/preferences.json,删除 /tmp/mindraw-save-mindraw-as-check、/tmp/mindraw-shortcut-saveas-check、/tmp/mindraw-failure-matrix-check、/tmp/mindraw-finder-drag-check、/tmp/mindraw-finder-drag-external 和临时偏好备份。File > Save As... 的已知边界:该系统面板仍不能通过 .mindraw 文件名启用 Save,也没有暴露 Mindraw filter 选择器。.mindraw 用户可用另存路径明确为专用 File > Save As Mindraw Package...。src-tauri/src/lib.rssrc-tauri/src/menu.rssrc/hooks/useMenuHandler.tssrc/hooks/useMenuHandler.test.tssrc/hooks/useKeyboardShortcuts.tssrc/hooks/useKeyboardShortcuts.test.tsxsrc/store/useStore.tssrc/store/useStore.test.ts02-P/qa/mindraw-phase2-runtime-check.md02-P/plan-progress.markdownCODEGRAPH.mdnpm run test:run -- src/hooks/useKeyboardShortcuts.test.tsx:PASS,1 个测试文件,2 个测试通过。npm run test:run -- src/store/useStore.test.ts:PASS,34 个测试通过。npm run test:run -- src/lib/imageDrop.test.ts src/hooks/useMenuHandler.test.ts src/hooks/useKeyboardShortcuts.test.tsx src/lib/documentFormat.test.ts src/store/useStore.test.ts:PASS,5 个测试文件,70 个测试通过。cargo test --locked --manifest-path src-tauri/Cargo.toml mindraw_package_tests:PASS,19 个测试通过。npm run build:PASS。cargo check --manifest-path src-tauri/Cargo.toml:PASS。npm run tauri -- build --debug --bundles app:PASS。Cmd+Shift+S 普通 Save As smoke:PASS。.mindraw 到 App 仍需人工或更稳定 UI 自动化复测。.mindraw 普通目录包、Finder / open -a 直接打开普通目录包仍受 MVP 不注册 package 的边界限制。