Files
mnote/design/04-tree-domain/done/4-47-batch-a3-local-folder-trash-final-smoke-checklist-v1.md
T

122 lines
5.2 KiB
Markdown
Raw Normal View History

# 4-47 [process] Batch A3 Local Folder Trash Final Smoke Checklist v1
> 创建时间:2026-05-21
>
> 上位入口:`design/01-tree-first-graph-kernel/process/1-8-mvp-post-process-execution-order-v1.md`
>
> 阶段:Batch A / P0 剩余 local folder trash smoke 收口
>
> 当前状态:`DONE`
## 1. 目标
关闭 `4-34``4-46` 中 Batch A 剩余的 local folder 垃圾箱验证缺口:
- local folder empty-trash UI smoke。
- local folder Markdown 页面自身的 archive / restore / purge smoke。
- 根据真实 smoke 结果判断 `4-34` / `4-46` 是否可归档到 `done/`
本阶段不改 delete 默认进入垃圾箱的语义,不把 reload 型刷新伪装成 no-refresh,不扩新产品面。
## 2. 当前剩余缺口
- `4-34` 中 local folder 非 md 资源 empty-trash 已由 `task474` 覆盖。
- `4-34` 中 local folder Markdown 自身 trash lifecycle 已由 `task475` 覆盖。
- `4-46` Batch A 执行总 checklist 已满足归档条件。
## 3. Reasonix Worker 拆分
### Worker Alocal folder empty-trash UI smoke
Owner
- 可新增 `scripts/task474-local-folder-empty-trash-ui-smoke.js`
- `design/04-tree-domain/process/4-34-filetree-trash-dual-browser-no-refresh-v1.md`
- `.codex/reasonix-tasks/results/batch-a3-worker-a-empty-trash.md`
目标:
- 构造 local folder 临时 root,同时放入 markdown 页面和非 md 资源。
- 通过 tree command 或 UI 将它们移动到 `.mnote/trash`
- 打开 `/trash?sourceKind=local_folder&rootUri=...`,分别点击“清空页面垃圾箱”和“清空资源垃圾箱”。
- 断言对应行消失、文件系统 trash 文件消失、`trash-index.json` 对应 entry 清理。
- 记录点击清空期间无非预期 browser navigation。
验收:
```bash
node --check scripts/task474-local-folder-empty-trash-ui-smoke.js
MNOTE_WEB_SMOKE_BASE_URL=http://127.0.0.1:<port> PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/google-chrome-stable node scripts/task474-local-folder-empty-trash-ui-smoke.js
```
### Worker Blocal folder Markdown trash lifecycle smoke
Owner
- 可新增 `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`
目标:
- 构造 loose Markdown 和/或 bundled Markdown 页面。
- 通过 `/api/tree/commands` 验证 Markdown 页面的 `delete` / `restore` / `purge`
- 断言 canonical command、源路径、trash 路径、`trash-index.json` 和恢复后的 documentId 与文件系统一致。
- 这是生命周期 smoke,不要求 UI 截图;浏览器可见性由 Worker A 和后续 Browser Worker 覆盖。
验收:
```bash
node --check scripts/task475-local-folder-markdown-trash-lifecycle-smoke.js
MNOTE_WEB_SMOKE_BASE_URL=http://127.0.0.1:<port> node scripts/task475-local-folder-markdown-trash-lifecycle-smoke.js
```
### Worker C:文档归档审查
Owner
- `design/04-tree-domain/process/4-34-filetree-trash-dual-browser-no-refresh-v1.md`
- `design/04-tree-domain/process/4-46-batch-a-filetree-action-trash-smoke-execution-checklist-v1.md`
- 如条件满足,可移动到 `design/04-tree-domain/done/`
- `.codex/reasonix-tasks/results/batch-a3-worker-c-doc-archive.md`
目标:
- 在 Worker A/B smoke 结果可复核后,判断 `4-34` 是否满足归档条件。
- 判断 `4-46` 是否已经完成 Batch A P0,是否可以归档。
- 若仍有缺口,必须写明 blocker 与下一步,不得强行移动。
验收:
```bash
git diff --name-status
```
## 4. Codex 复核项
- [x] 读取 Worker A/B 输出;Worker C 由 Codex 本地完成归档审查。
- [x] 独立审查 diff,确认无越权修改。
- [x] 运行新增脚本 `node --check`
- [x] 在最新 mnote-web 临时端口 `3014` 上实跑新增 smoke。
- [x] 完成后拆 Browser Worker 复测关键 UI smoke 并核验截图。
- [ ] `git diff --check``codegraph sync .` 后提交。
## 5. 完成条件
- `task474` 或等价 smoke 覆盖 local folder empty-trash UI。
- `task475` 或等价 smoke 覆盖 local folder Markdown archive / restore / purge。
- `4-34` / `4-46` 状态与真实证据一致。
- 浏览器 worker 输出截图和 `result.json` 已由 Codex 复核。
- 本阶段完成后由 Codex 提交 git。
## 6. 执行结果
- `task474-local-folder-empty-trash-ui-smoke.js` 新增并通过:local folder 页面垃圾箱与资源垃圾箱清空 UI、confirm、无导航、trash-index 清理、文件删除。
- `task475-local-folder-markdown-trash-lifecycle-smoke.js` 新增并通过:loose Markdown 页面 delete / restore / purge 生命周期与文件系统一致。
- Codex 复核命令:
- `node --check scripts/task474-local-folder-empty-trash-ui-smoke.js`
- `node --check scripts/task475-local-folder-markdown-trash-lifecycle-smoke.js`
- `MNOTE_WEB_SMOKE_BASE_URL=http://127.0.0.1:3014 PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/google-chrome-stable node scripts/task474-local-folder-empty-trash-ui-smoke.js`
- `MNOTE_WEB_SMOKE_BASE_URL=http://127.0.0.1:3014 node scripts/task475-local-folder-markdown-trash-lifecycle-smoke.js`
- Reasonix Browser Worker 复测输出:`tmp/reasonix-batch-a3-browser-task474-empty-trash-2026-05-21/`,核心截图 `trash-workbench-empty.png` 已由 Codex 查看。