Files
mnote/.codex/reasonix-tasks/results/batch-a-worker-a-task430.md
T

95 lines
4.1 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.
# 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/commands` create(不带 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 不报错。
## 运行命令和结果
### 语法检查
```bash
node --check scripts/task430-vscode-explorer-stage7-smoke.js
# → exit 0, SYNTAX OK
```
### 实跑
```bash
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 trashWorker B 任务)
- 4-34 no-refresh restore smokeWorker 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/commands` create 自举。需要确认 fixture 模式下 create 能否自举 workspace。