Files
mnote/.codex/reasonix-tasks/2026-05-21-batch-a3-worker-b-markdown-lifecycle.md
T

52 lines
2.0 KiB
Markdown
Raw Normal View History

# Reasonix Batch A3 Worker Blocal folder Markdown trash lifecycle smoke
Project root: `/mnt/Data1T/mnote`
## 目标
补齐 `4-34` 中 local folder Markdown 自身 trash lifecycle 独立 smokeMarkdown 页面通过 `/api/tree/commands` 完成 archive / restore / purge,文件系统与 trash index 均一致。
## Ownership
允许修改:
- 新增 `scripts/task475-local-folder-markdown-trash-lifecycle-smoke.js`
- `design/04-tree-domain/process/4-34-filetree-trash-dual-browser-no-refresh-v1.md`
- `.codex/reasonix-tasks/results/batch-a3-worker-b-markdown-lifecycle.md`
禁止:
- 不修改 Rust 源码。
- 不修改 `4-46` 或移动任何 design 文件。
- 不提交 git。
- 不把非 md 资源生命周期代替 Markdown 页面生命周期。
## 要求
1. 新增 API smoke,可参考 `task437-local-folder-asset-trash-lifecycle-smoke.js`
2. 构造临时 local folder root 和 `.mnote/workspace.json`
3. 至少覆盖 loose Markdown 页面:
- `delete` 后 canonical command 应是页面或资源 lifecycle 中当前实现返回的真实值。
-`.md` 消失,`.mnote/trash` 中出现对应文件,`trash-index.json` 记录 `local-md:*`
- `restore``.md` 回原路径,trash 文件消失,index 清理。
- 再次 `delete``purge`,源路径与 trash 路径均不存在,index 清理。
4. 如 bundled Markdown 页面当前实现也容易覆盖,可加一个 bundled case;否则在结果中说明只覆盖 loose Markdownbundled 由 Rust 单测覆盖或待后续。
5. 结果写入 `tmp/task475-local-folder-markdown-trash-lifecycle-smoke/result.json`
6. 更新 `4-34` 对 local folder Markdown trash lifecycle 覆盖状态,但不要移动文件。
## 验收命令
```bash
node --check scripts/task475-local-folder-markdown-trash-lifecycle-smoke.js
node scripts/task475-local-folder-markdown-trash-lifecycle-smoke.js
```
## 最终输出
写入 `.codex/reasonix-tasks/results/batch-a3-worker-b-markdown-lifecycle.md`,包含:
- 修改文件
- smoke 覆盖内容
- 验证命令和结果
- 未完成项 / 风险