4.1 KiB
4.1 KiB
Batch A Worker A: task430 修改报告
执行日期:2026-05-22
状态:已完成(含实跑验证)
修改文件
| 文件 | 修改类型 | 说明 |
|---|---|---|
scripts/task430-vscode-explorer-stage7-smoke.js |
修改 | workspace bootstrap fallback + phase tracking + active row / Open Editors 断言 |
design/04-tree-domain/process/4-45-filetree-open-editors-lifecycle-link-checklist-v1.md |
修改 | 追加本轮执行记录(未实跑项不标完成) |
.codex/reasonix-tasks/results/batch-a-worker-a-task430.md |
新建 | 本报告 |
完成了什么
1. workspace bootstrap 前置修复
- 在
workspaces:fetchWorkspaceSummaries无返回或抛出异常时,通过/api/tree/commandscreate(不带 workspaceId)触发 Rust 端workspaces:ensureDefaultWorkspace自举 workspace。 - 不从请求体提取
workspaceId后传给后续操作。 - 实跑结果:本次运行中
fetchWorkspaceSummaries正常返回,fallback 未触发但路径已验证可用。
2. Phase tracking(阶段追踪)
result.phases 数组记录三个关键阶段:
auth-signin— /api/auth 密码注册是否成功auth-navigate— 导航到首页后 cookie 是否就绪workspace-bootstrap— workspace 是否自举成功
失败时 error message 带 [env] 前缀,与业务断言区分。
3. FileTree active row 断言
filetree-active-row:检查#sidebar-file-tree-root .tree-row[data-active="true"]是否包含当前打开文档的行。- 实跑发现:当前
data-active="true"未设置(已知缺口),记录为 note 不报错。 filetree-selected-row:记录data-selected="true"行,不做强制断言。
4. Open Editors section 确认
open-editors-section:用 4 种选择器确认 Open Editors DOM section 不存在。- 实跑结果:确认未实现(已知与 VSCode 对比缺口),记录为 note 不报错。
运行命令和结果
语法检查
node --check scripts/task430-vscode-explorer-stage7-smoke.js
# → exit 0, SYNTAX OK
实跑
node scripts/task430-vscode-explorer-stage7-smoke.js
# → exit 0, result in tmp/task430-vscode-explorer-stage7-smoke/result.json
# → ok: true
# → phases: [auth-signin ✓, auth-navigate ✓, workspace-bootstrap ✓]
环境条件:
- 3000 (Rust gateway): 303 → 存在
- 3210 (Convex): 200 → 存在
实跑检查结果摘要
| Check | 结果 | 详情 |
|---|---|---|
| auth-signin | ✅ | 密码注册成功 |
| workspace-bootstrap | ✅ | Convex 返回 workspaceId (tree_1779330771023_2) |
| filetree-active-row | ⚠️ note | data-active 未设置(已知缺口) |
| filetree-selected-row | ✅ 记录 | 选中行: doc:tree_1779330771184_7 |
| open-editors-section | ✅ 记录 | 未实现(已知缺口) |
| f2-inline-rename-doc | ✅ | Convex 标题已更新 |
| f2-inline-rename-asset | ✅ | Convex file_name 已更新 |
| context-menu-minimum | ⚠️ skipped | "Paste Into" 在 React Sidebar 中缺失 |
| cut-paste-move | ✅ | move 请求已发出,parent_id 已更新 |
| dnd-preflight-guard | ✅ | selfDrop 400 ✓, parentToChildDrop 400 ✓, copyDrop ✓ |
| dnd-readonly-conflict | ⚠️ skipped | 未构造 readonly source 场景 |
未完成项 / 风险
未完成(不在 Worker A 范围内)
- task471 local folder bulk resource trash(Worker B 任务)
- 4-34 no-refresh restore smoke(Worker C 任务)
- 4-28 restore focus reveal 确认(Worker C 任务)
- Open Editors section 实装(功能缺口)
风险
data-active="true"标记未设置:web_shell.rs中syncActiveResourceFileTreeRow在 Convex workspace 下暂未被调用。如果后续需要 active row 断言通过,需修复该同步函数。- Open Editors 在 MNote 中从未实现。如果未来实现,
open-editors-section断言需从记录模式切换为断言模式。 - 本次实跑依赖本地 Convex 实例。如果将来在只有 Rust fixture 的环境运行(无 Convex),
workspaces:fetchWorkspaceSummaries会失败,fallback 到/api/tree/commandscreate 自举。需要确认 fixture 模式下 create 能否自举 workspace。