2026-05-21 05:57:19 +08:00
|
|
|
|
# 4-45 FileTree / Open Editors Lifecycle Link Checklist v1
|
|
|
|
|
|
|
2026-05-21 14:39:38 +08:00
|
|
|
|
> 状态:done
|
2026-05-21 05:57:19 +08:00
|
|
|
|
>
|
|
|
|
|
|
> 日期:2026-05-21
|
|
|
|
|
|
>
|
|
|
|
|
|
> Owner:filetree action smoke / resource lifecycle observability
|
|
|
|
|
|
|
|
|
|
|
|
## 1. 目标
|
|
|
|
|
|
|
|
|
|
|
|
参考 Sidex Explorer + Open Editors 联动,补 MNote filetree action 与 open editor state 的可观测测试。当前优先修 smoke 缺口和文档状态,不直接改核心业务。
|
|
|
|
|
|
|
|
|
|
|
|
## 2. 允许修改范围
|
|
|
|
|
|
|
|
|
|
|
|
- `scripts/task430-vscode-explorer-stage7-smoke.js`
|
|
|
|
|
|
- `scripts/task471-local-folder-bulk-resource-trash-smoke.js`
|
|
|
|
|
|
- `design/04-tree-domain/process/4-44-filetree-action-layer-paste-drop-delete-v1.md`
|
|
|
|
|
|
- 如发现 checklist 已全部完成,可建议移动到 `done/`,但不要直接移动未验证文件。
|
|
|
|
|
|
|
|
|
|
|
|
## 3. 禁止事项
|
|
|
|
|
|
|
|
|
|
|
|
- 不修改 `layout.rs` / `web_shell.rs` / `local_folder_source.rs`。
|
|
|
|
|
|
- 不改变 delete 默认到垃圾箱的语义。
|
|
|
|
|
|
- 不把环境准备失败伪装成通过。
|
|
|
|
|
|
|
|
|
|
|
|
## 4. Checklist
|
|
|
|
|
|
|
2026-05-21 11:01:17 +08:00
|
|
|
|
- [x] 跑或修复 `task430` / `task471` 的可复现前置条件。
|
|
|
|
|
|
- [x] 明确哪些 smoke 已过、哪些因环境阻塞。
|
|
|
|
|
|
- [x] 补充 open editor / filetree active row / lifecycle 状态断言建议。
|
|
|
|
|
|
- [x] 更新 4-44 checklist 执行记录。
|
2026-05-21 05:57:19 +08:00
|
|
|
|
|
|
|
|
|
|
## 5. 验收
|
|
|
|
|
|
|
|
|
|
|
|
- `node --check scripts/task430-vscode-explorer-stage7-smoke.js`
|
|
|
|
|
|
- `node --check scripts/task471-local-folder-bulk-resource-trash-smoke.js`
|
2026-05-21 11:01:17 +08:00
|
|
|
|
- `node scripts/task430-vscode-explorer-stage7-smoke.js`
|
2026-05-21 05:57:19 +08:00
|
|
|
|
- `node scripts/task471-local-folder-bulk-resource-trash-smoke.js`
|
|
|
|
|
|
|
|
|
|
|
|
## 6. 非目标
|
|
|
|
|
|
|
|
|
|
|
|
- 不实现完整 undo stack。
|
|
|
|
|
|
- 不改 cloud storage drop executor。
|
|
|
|
|
|
|
|
|
|
|
|
## 7. 本轮执行记录
|
|
|
|
|
|
|
|
|
|
|
|
- 2026-05-21:Reasonix Worker D 识别到 `task430` 的前置问题:新注册用户在 `workspaces:fetchWorkspaceSummaries` 前可能还没有 workspace,需要先通过 `/api/tree/commands` create action 触发 workspace bootstrap。
|
|
|
|
|
|
- 2026-05-21:Worker D 还建议将 `task471` 的验证记录同步到 `4-44`,并补 open editor / lifecycle 状态断言。
|
|
|
|
|
|
- 2026-05-21:Worker D 进程停留在计划提交阶段,没有生成 `final.md`,也没有实际修改 smoke 或 checklist;本轮不把 4-45 checklist 标记为完成。
|
2026-05-21 11:01:17 +08:00
|
|
|
|
- **2026-05-22:Worker A 实际修改:**
|
|
|
|
|
|
- 给 `task430` 的 workspace bootstrap 添加 fallback:当 `workspaces:fetchWorkspaceSummaries` 无返回时,通过 `/api/tree/commands` create(不带 workspaceId)触发 Rust 端 `workspaces:ensureDefaultWorkspace` 自举 workspace。
|
|
|
|
|
|
- 添加 `result.phases` 阶段追踪(auth-signin → auth-navigate → workspace-bootstrap),让失败可区分环境阻塞 vs 业务回归。
|
|
|
|
|
|
- 添加 `filetree-active-row` 断言:检查当前打开页对应的 FileTree row 是否有 `[data-active="true"]`。
|
|
|
|
|
|
- 添加 `filetree-selected-row` 记录:记录选中行 ID(不做强制断言,因选中语义随点击变化)。
|
|
|
|
|
|
- 添加 `open-editors-section` 记录:确认 MNote 当前无 Open Editors DOM section(VS Code 对比的已知缺口),只记录不报错。
|
|
|
|
|
|
- 所有新增断言均使用 `runOptional` 包装,环境缺口标记为 skipped 而不阻塞整体结果。
|
|
|
|
|
|
- 2026-05-21:Codex 独立复跑 `node --check scripts/task430-vscode-explorer-stage7-smoke.js` / `node scripts/task430-vscode-explorer-stage7-smoke.js`,结果 `ok:true`。`result.phases` 中 `auth-signin`、`auth-navigate`、`workspace-bootstrap` 均通过;`f2-inline-rename-doc`、`f2-inline-rename-asset`、`cut-paste-move`、`dnd-preflight-guard` 均通过。
|
|
|
|
|
|
- 2026-05-21:Reasonix Browser Worker 复跑 task430,输出目录 `tmp/reasonix-batch-a-browser-task430-2026-05-21/`,结论 `PASS_WITH_KNOWN_GAPS`。已知缺口保留为:FileTree row 未同步 `data-active="true"`、Open Editors section 未实现、右键菜单缺 `Paste Into`、DnD readonly/重名冲突仍需后续端到端矩阵。
|
|
|
|
|
|
- 2026-05-21:Codex 独立复跑 `node --check scripts/task471-local-folder-bulk-resource-trash-smoke.js` / `node scripts/task471-local-folder-bulk-resource-trash-smoke.js`,结果 `ok:true`。Reasonix Browser Worker 输出目录 `tmp/reasonix-batch-a-browser-task471-2026-05-21/`,确认两个 local folder 资源行可 Ctrl 多选、确认文案含 `2 个附件`、DOM 状态写入 `bulk-delete` / `archived`,`.mnote/trash-index.json` 包含两项。
|