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 Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 查看。