Files
mnote/design/04-tree-domain/process/4-45-filetree-open-editors-lifecycle-link-checklist-v1.md
T

60 lines
4.1 KiB
Markdown
Raw Normal View History

2026-05-21 05:57:19 +08:00
# 4-45 FileTree / Open Editors Lifecycle Link Checklist v1
> 状态:process
>
> 日期:2026-05-21
>
> Ownerfiletree 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-21Reasonix Worker D 识别到 `task430` 的前置问题:新注册用户在 `workspaces:fetchWorkspaceSummaries` 前可能还没有 workspace,需要先通过 `/api/tree/commands` create action 触发 workspace bootstrap。
- 2026-05-21Worker D 还建议将 `task471` 的验证记录同步到 `4-44`,并补 open editor / lifecycle 状态断言。
- 2026-05-21Worker D 进程停留在计划提交阶段,没有生成 `final.md`,也没有实际修改 smoke 或 checklist;本轮不把 4-45 checklist 标记为完成。
2026-05-21 11:01:17 +08:00
- **2026-05-22Worker 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 sectionVS Code 对比的已知缺口),只记录不报错。
- 所有新增断言均使用 `runOptional` 包装,环境缺口标记为 skipped 而不阻塞整体结果。
- 2026-05-21Codex 独立复跑 `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-21Reasonix 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-21Codex 独立复跑 `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` 包含两项。