日期:2026-07-10
项目:Mindraw
任务:MD-EDC-06-IMPL / Assignment MD-EDC-06-IMPL-20260710
目标 worktree:/Users/ar/Projects/Mindraw-worktrees/md-main-better-exp1
目标分支:codex/md-main-better-exp1
HEAD:0e329860f39577bdc0ab8236f5bf442fc163a22b
PMO 派工要求在独立 worktree /Users/ar/Projects/Mindraw-worktrees/md-main-better-exp1 实现 App 新建文档默认行为:
MindrawCanvas/。.mindraw 文件名采用 YY.MMDD-NN.mindraw。.excalidraw 另存保持显式选择,不默认推荐 .mindraw。targetDirectory / projectRoot。documentFormat、mindrawProjectCanvasApi、HTTP App API transport、AssetStore、preview 等能力。src/lib/newDocument.ts,封装默认文件名、文档类型识别和新建目标目录解析。createNewFile(),默认创建 .mindraw package;无可用目录时调用 select_directory。.mindraw package 基础读写、列表、树展示、重命名、删除,以及 create_blank_mindraw_package Tauri command。02-P/MEXP15-SignedNotarizedDMG/review/md-edc-06-impl-review-request-crg-7d105de89062.md,状态 needs-code-review。.excalidraw 单文件兼容:打开、保存、另存、重命名、删除仍可走旧路径。create_new_file 继续供 App 内部 UI 调用;create_blank_mindraw_package 作为外部 App API / Codex sidebar 后续集成入口。M4C-*。.mindraw package 支持。0e329860f39577bdc0ab8236f5bf442fc163a22b;Review Gate ID crg-7d105de89062。Untitled-${Date.now()}.excalidraw;后端只识别 .excalidraw 单文件。YY.MMDD-NN.mindraw;后端创建 package 结构 manifest.json、drawing.excalidraw、.assets/;同目录冲突递增 NN;文件树把 .mindraw 目录作为文档节点而不展开内部文件。.excalidraw 保留单文件兼容;.mindraw package 的实际 Excalidraw JSON 位于 drawing.excalidraw。cargo check、npm run build、git diff --check 均通过。目标 worktree 源码 / 测试变更:
/Users/ar/Projects/Mindraw-worktrees/md-main-better-exp1/src/lib/newDocument.ts/Users/ar/Projects/Mindraw-worktrees/md-main-better-exp1/src/lib/newDocument.test.ts/Users/ar/Projects/Mindraw-worktrees/md-main-better-exp1/src/types/index.ts/Users/ar/Projects/Mindraw-worktrees/md-main-better-exp1/src/store/useStore.ts/Users/ar/Projects/Mindraw-worktrees/md-main-better-exp1/src/hooks/useKeyboardShortcuts.ts/Users/ar/Projects/Mindraw-worktrees/md-main-better-exp1/src/hooks/useMenuHandler.ts/Users/ar/Projects/Mindraw-worktrees/md-main-better-exp1/src/components/Sidebar.tsx/Users/ar/Projects/Mindraw-worktrees/md-main-better-exp1/src/components/TreeView.tsx/Users/ar/Projects/Mindraw-worktrees/md-main-better-exp1/src/components/ExcalidrawEditor.tsx/Users/ar/Projects/Mindraw-worktrees/md-main-better-exp1/src-tauri/src/lib.rs/Users/ar/Projects/Mindraw-worktrees/md-main-better-exp1/src-tauri/src/menu.rs主项目治理 / 记忆文件变更:
/Users/ar/Projects/Mindraw/02-P/MEXP15-SignedNotarizedDMG/review/md-edc-06-impl-review-request-crg-7d105de89062.md/Users/ar/Projects/Mindraw/.codex-sessionhistory/2026-07-10-MD-EDC-06-IMPL.md/Users/ar/Projects/Mindraw/.codex-sessionhistory/COMMANDS.mdcrg-7d105de89062,当前状态 needs-code-review。MindrawCanvas/ projectRoot、旧 .excalidraw 打开 / 保存 / 另存。M4C-*,传入 targetDirectory 或 projectRoot。CODEGRAPH.md;本轮未补建或同步工程地图,需 PMO 判断是否另拆文档任务。用途:复跑 MD-EDC-06-IMPL 的源码测试、构建、后端验证和 diff 卫生检查。
前置条件:在 /Users/ar/Projects/Mindraw-worktrees/md-main-better-exp1,分支 codex/md-main-better-exp1,已安装 npm 依赖;若未安装,可先执行 npm install --package-lock=false。
设置命令:
cd /Users/ar/Projects/Mindraw-worktrees/md-main-better-exp1
npm install --package-lock=false
npm run test:run
npm run build
cargo check --manifest-path src-tauri/Cargo.toml
cargo test --manifest-path src-tauri/Cargo.toml
git diff --check
git diff -- src src-tauri | rg -n "(SECRET|TOKEN|PASSWORD|PRIVATE_KEY|BEGIN RSA|AWS_|AKIA|sk-|xoxb-|ghp_|-----BEGIN)"
验证步骤:
npm run test:run 应显示 2 files / 12 tests passed。cargo test --manifest-path src-tauri/Cargo.toml 应显示 4 tests passed。git diff --check 无输出且退出码为 0。rg 无命中时退出码为 1,属于通过。清理 / 恢复命令:
cd /Users/ar/Projects/Mindraw-worktrees/md-main-better-exp1
rm -rf node_modules dist
搜索关键词:MD-EDC-06-IMPL、crg-7d105de89062、YY.MMDD-NN.mindraw、MindrawCanvas、create_blank_mindraw_package、TARGET_DIRECTORY_REQUIRED
M4C-* 任务中处理,避免把 App 侧实现和 plugin 接入混在同一个交付面里。