- 统一 local-first MVP 后阶段架构口径,补充 process 执行总序和 Reasonix 协作记录 - 归档已完成的 design checklist,标注参考型 process,更新 AGENTS/REASONIX/架构文档 - 补充文件树/主编辑器下载与上下文菜单相关实现、bug 记录和 smoke 脚本 验证:git diff --check;codegraph sync .;cargo test -p mnote-web;node --check scripts/task476-filetree-editor-context-menu-download-smoke.js
2.4 KiB
2.4 KiB
4-41 FileTree Bulk Resource Command Cutover Checklist v1
状态:done
归档说明(2026-05-21):FileTree bulk resource command cutover 已完成,云端 table 旧 fallback 为显式保留边界。
日期:2026-05-20
Owner:File Tree bulk delete /
layout.rs
1. 目标
补齐 P0-5 剩余项:前端本地文件夹 bulk delete 对 file asset、mindmap、table、raw local file 等资源优先走 /api/tree/commands 的 tree.resource.* 语义,旧 route 仅保留云端或兼容 fallback。
2. 允许修改范围
rust/crates/mnote-web/src/ssr/pages/layout.rsscripts/task464-local-folder-resource-trash-ui-smoke.js- 可新增聚焦 bulk delete smoke
3. 禁止事项
- 不删除旧
/api/mindmap、/api/media、/api/tables兼容 route。 - 不改变 Convex 云端 asset lifecycle。
- 不把 bulk delete 改成永久删除;默认仍是 archive/trash。
4. Checklist
- local file asset bulk delete 使用
dispatchTreeCommand({ action: 'archive', documentId })。 - local mindmap bulk delete 使用同一 tree command,不再走
/api/mindmap。 - local table bulk delete 使用同一 tree command,不再走
/api/tables。 - bulk delete 成功后刷新本地 file tree snapshot / trash index 可见。
- 失败项保留可见错误,不清空未成功项。
- smoke 覆盖至少两个不同 resource kind 的批量删除进入垃圾箱。
5. 验收
node --check scripts/task464-local-folder-resource-trash-ui-smoke.jsnode scripts/task464-local-folder-resource-trash-ui-smoke.jsnode --check scripts/task471-local-folder-bulk-resource-trash-smoke.jsnode scripts/task471-local-folder-bulk-resource-trash-smoke.js- 新增 bulk delete 合同测试通过:
cargo test -p mnote-web sidebar_filetree_local_table_bulk_delete_uses_tree_command -- --test-threads=1 cargo test -p mnote-web tree_command_local_folder -- --test-threads=1
5.1 本轮执行记录
- 已合入:local table bulk delete 分支切到
/api/tree/commandsarchive;file asset / mindmap 原先已经走同一命令。 - 已保留:云端 table 仍走
/api/tables/fallback,旧 route 未删除。 - 已新增:
scripts/task471-local-folder-bulk-resource-trash-smoke.js,覆盖 local folder 两个资源行多选 Delete、两个 archive tree command、文件移入垃圾箱和 trash index。
6. 非目标
- 不实现 undo。
- 不实现云端 bulk lifecycle parity。