docs: record batch ae worker outcomes

This commit is contained in:
lix-2026
2026-05-25 07:30:38 +08:00
parent 306a3e287a
commit 6a84d50fbc
2 changed files with 19 additions and 15 deletions
@@ -6,7 +6,7 @@
## 1. 目标
`3-19` 已归档的基础上,继续把仍留在 Rust inline / 主壳大 runtime 中的浏览器行为切成可审计模块。Codex 维护本文件作为事实源,Reasonix 只承接短批次审计、窄范围实现或浏览器 smoke;当前 goal 下每批最多 2 个 worker。
`3-19` 已归档的基础上,继续把仍留在 Rust inline / 主壳大 runtime 中的浏览器行为切成可审计模块。Codex 维护本文件作为事实源,Reasonix 只承接短批次审计、窄范围实现或浏览器 smoke;当前 goal 下每批最多 4 个 worker。
## 2. 本轮边界
@@ -64,7 +64,7 @@ UI / 浏览器可见项必须有真实浏览器截图或结构化 smoke 证据
## 6. 本轮执行记录
- 2026-05-25Codex 创建本续跑事实源。
- 2026-05-25:修正执行约束:本文件遵循当前 goal 的“每批最多 2 个 worker”;实现 worker 必须在独立 worktree 产出候选 patchCodex 复核后再选择性合入。
- 2026-05-25:修正执行约束:本文件遵循当前 goal 的“每批最多 4 个 worker”;实现 worker 必须在独立 worktree 产出候选 patchCodex 复核后再选择性合入。
- 2026-05-25:下一批只派发 Worker Blocal upload / filetree 下一刀只读审计);Worker A/C/D 暂缓。
- 2026-05-25Reasonix local upload / filetree 只读审计尝试未产生 `result.json` / `process-handoff`,且运行期间出现额外 Batch A2 runner,主控已终止进程;该结果不作为正式 handoff 采纳。
- 可参考的 transcript 结论:`fetchWithTimeout` 是低风险纯工具函数,可先迁入 `local-upload-runtime.js``uploadFileToMediaAsset` / `uploadFilesWithResolvedTarget` / `insertUploadedAssetIntoEditor` 仍与 API、editor 插入和 snapshot refresh 耦合,暂不迁。
@@ -93,7 +93,7 @@ UI / 浏览器可见项必须有真实浏览器截图或结构化 smoke 证据
- 修改:`rust/crates/mnote-web/browser/document-conflict-panel-runtime.js``rust/crates/mnote-web/src/routes/web_shell.rs`
- 已验证:`node --check rust/crates/mnote-web/browser/document-conflict-panel-runtime.js``cargo fmt --manifest-path rust/Cargo.toml --all --check``cargo check --manifest-path rust/Cargo.toml -p mnote-web``cargo test --manifest-path rust/Cargo.toml -p mnote-web document_conflict_panel_runtime_contains_dom_helpers -- --test-threads=1``cargo test --manifest-path rust/Cargo.toml -p mnote-web mnote_browser_runtime_assets_are_explicitly_mounted -- --test-threads=1`
- 未完成:conflict merge / accept / keep 业务逻辑、document session lifecycle、secondary pane conflict smoke 仍未迁出;本轮未声称真实冲突 UI 全链路完成。
- 2026-05-25:根据用户纠正,后续实现 worker 不能在主工作区直接修改;每批最多 2 个 worker,且必须采用独立 worktree 候选 patch 或明确只读任务。Codex 读取 Hindsight recall、`process-handoff.md/json``result.json`、diff 与验证证据后再选择性合入。
- 2026-05-25:根据用户纠正,后续实现 worker 不能在主工作区直接修改;每批最多 4 个 worker,且必须采用独立 worktree 候选 patch 或明确只读任务。Codex 读取 Hindsight recall、`process-handoff.md/json``result.json`、diff 与验证证据后再选择性合入。
- 2026-05-25Codex 主控完成非本地 media upload API 小切片:`local-upload-runtime.js` 新增并导出 `uploadMediaAsset(file, plan, context)`,承接 `/api/media/upload` 的 FormData 构造、fetch 和响应解析;`layout.rs``uploadFileToMediaAsset` 仍负责 appendUploadedAssetRow、editor 插入和 `wolai:assets-changed` 事件分发,并保留完整 inline fallback。
- 修改:`rust/crates/mnote-web/browser/local-upload-runtime.js``rust/crates/mnote-web/src/ssr/pages/layout.rs`
- 已验证:`node --check rust/crates/mnote-web/browser/local-upload-runtime.js``cargo fmt --manifest-path rust/Cargo.toml --all --check``cargo check --manifest-path rust/Cargo.toml -p mnote-web``cargo test --manifest-path rust/Cargo.toml -p mnote-web local_upload_runtime_contains_editor_upload_context_helpers -- --test-threads=1``cargo test --manifest-path rust/Cargo.toml -p mnote-web sidebar_upload_runtime_routes_local_markdown_assets_to_local_folder -- --test-threads=1``node scripts/task479-local-folder-markdown-resource-lifecycle-smoke.js`
@@ -144,7 +144,7 @@ UI / 浏览器可见项必须有真实浏览器截图或结构化 smoke 证据
- 2026-05-25Batch J 启动 Worker C`0525-j-worker-c-3-20-filetree-dom`)与 Worker D`0525-j-worker-d-3-20-conflict-action`),并同时存在 5-29 Worker B3 个 worker 超过当时旧“每批最多 2 个 worker”口径。Reasonix run `reasonix-2026-05-24T19-14-46-740Z-b6aed1df``reasonix-2026-05-24T19-14-46-748Z-c84c5ef9` 仅有 `prompt.md` / `memory-recall.json`,无 `final.md``result.json``process-handoff.md/json`worktree diff 为空;不采纳。
- 2026-05-25Batch J Codex 复核结论:Worker C / D 对应边界已在当前 HEAD 中具备,未重复合入新 diff。Worker C 已验证 `node --check rust/crates/mnote-web/browser/filetree-runtime.js``cargo check --manifest-path rust/Cargo.toml -p mnote-web``cargo test --manifest-path rust/Cargo.toml -p mnote-web filetree_runtime_contains_row_accessor_helpers -- --test-threads=1`Worker D 已验证 `node --check rust/crates/mnote-web/browser/document-conflict-panel-runtime.js``cargo check --manifest-path rust/Cargo.toml -p mnote-web``cargo test --manifest-path rust/Cargo.toml -p mnote-web document_conflict_panel_runtime_contains_dom_helpers -- --test-threads=1`
- 主工作区 smoke`NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task479-local-folder-markdown-resource-lifecycle-smoke.js` 通过,截图证据 `/tmp/mnote-task479-lifecycle-xlAZrs/screenshots-1779650673787/final-state.png``NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task451-local-markdown-conflict-resolution-ui-smoke.js` 通过,结果 `/mnt/Data1T/mnote/tmp/task451-local-markdown-conflict-resolution-ui-smoke/result.json`
- 2026-05-25:当前 goal 按用户最新要求明确为每批最多 2 个 worker;后续 3-20 派发以 2 个为硬上限。
- 2026-05-25:当前 goal 按用户最新要求明确为每批最多 4 个 worker;后续 3-20 派发以 4 个为硬上限。
- 2026-05-25:用户纠正 B/C/D 等实现任务也应在新的 worktree 中修改后再由 Codex 合并;主控已采用该口径:实现 worker 一律独立 worktree,主工作区不再直接扩大实现 diff,只保留事实源、复核和最终采纳。
- 2026-05-25Batch L Worker B `reasonix-2026-05-24T19-30-30-509Z-18f62949` 只读审计 `refreshLocalFolderSidebarSnapshot`Codex 已读取 Hindsight recall、`process-handoff.md/json``result.json`,并核对 worktree diff 为空。
- 审计结论:`refreshLocalFolderSidebarSnapshot` 仍是 shell 编排,包含 workspace/root/document 状态、两条 projection fetch、render 后副作用和 watcher 标记,不应整体迁入 `filetree-runtime.js`
@@ -185,17 +185,17 @@ UI / 浏览器可见项必须有真实浏览器截图或结构化 smoke 证据
- 修改:`filetree-runtime.js` 新增并导出 `markLocalFolderWatchApplied(value)``layout.rs` 的同名 wrapper 优先委托 runtimeinline fallback 保留 `data-mnote-local-folder-watch-applied="projection"` 行为。
- 边界:未改 projection fetch URL、JSON 渲染、selection/focus/sidebar shell 副作用、附件存在性刷新、tree live SSE consumer;本批只外置刷新完成证据标记。
- 已验证:`node --check rust/crates/mnote-web/browser/filetree-runtime.js``git diff --check``cargo fmt --manifest-path rust/Cargo.toml --all --check``cargo check --manifest-path rust/Cargo.toml -p mnote-web``cargo test --manifest-path rust/Cargo.toml -p mnote-web filetree_runtime -- --test-threads=1`
- 2026-05-25Batch AC 按用户纠正继续采用独立 worktree 流程;本轮实际 3 个 worker,超过当前 goal 每批最多 2 个 worker 的上限,应视为异常历史记录;任务书均写入各 worktree `tmp/`,未新增主工作区 `.codex/reasonix-tasks`
- 2026-05-25Batch AC 按用户纠正继续采用独立 worktree 流程;本轮实际 3 个 worker,符合当前 goal 每批最多 4 个 worker 的上限;任务书均写入各 worktree `tmp/`,未新增主工作区 `.codex/reasonix-tasks`
- Worker C `/mnt/Data1T/mnote-worktrees/0525-ac-worker-c-3-20-conflict-action-boundary`Reasonix run `reasonix-2026-05-24T22-52-30-772Z-464df4b4`Codex 已读取 Hindsight recall、`process-handoff.md/json``result.json`,并核对 worktree `git status --short` / `git diff --stat` 为空。
- 审计结论经 Codex 复核后采纳:`acceptDiskVersion``keepCurrentEditorVersion``writeMergedConflictResult` 仍强依赖 fetch、persist、session views、Tiptap hydrate、conflict key 计算和 `setSessionStatus`,不应整体迁入 `document-conflict-panel-runtime.js`;共享的 session 状态字段重置块暂不外置,以保持 runtime=DOM/promise wrapper、shell=业务编排的边界。
- Worker D `/mnt/Data1T/mnote-worktrees/0525-ac-worker-d-smoke-regression`Reasonix run `reasonix-2026-05-24T22-52-30-854Z-dfad6786`,源码零 diff`task489``task488``task487``task451` 在 3001 均通过,其中 `task451` 覆盖 accept-disk、keep-current、merge-save、agent-conflict-source。
- 未完成:conflict action 业务逻辑仍留在 `web_shell.rs`secondary pane conflict 专项 smoke 仍可后续单独补强。
- 2026-05-25Batch AD 采用 3 个独立 worktree workerB/C/D),超过当前 goal 每批最多 2 个 worker 的上限,应视为异常历史记录;任务书均写入各 worktree `tmp/`,未新增主工作区 `.codex/reasonix-tasks`
- 2026-05-25Batch AD 采用 3 个独立 worktree workerB/C/D),符合当前 goal 每批最多 4 个 worker 的上限;任务书均写入各 worktree `tmp/`,未新增主工作区 `.codex/reasonix-tasks`
- 涉及 worktree`/mnt/Data1T/mnote-worktrees/0525-ad-worker-b-5-29-drop-indicator-block-rect``/mnt/Data1T/mnote-worktrees/0525-ad-worker-c-3-20-upload-target-readonly``/mnt/Data1T/mnote-worktrees/0525-ad-worker-d-regression-smoke`
- Worker C run `reasonix-2026-05-24T23-05-57-201Z-41882fef` 仅产出 `prompt.md` / `memory-recall.json` / `reasonix-transcript.jsonl`,无 `final.md``result.json``process-handoff.md/json`worktree 零 diff3-20 输出拒收。
- Worker D run `reasonix-2026-05-24T23-05-57-257Z-c917f1ef` 有完整 `process-handoff.md/json``result.json``final.md`,源码零 diff`task489``task488``task487``task451` 在 3001 均通过,其中 `task487` 覆盖 local-folder tree live consumer、`task451` 覆盖 conflict UI actions。Codex 已读取 Hindsight recall 与 handoff/result,并独立复跑 `task487` / `task451` / `task489` / `task488` 主控验收,全部通过。
- 后续如需继续 upload target 审计,必须重新按最多 2 worker 的受控批次派发。
- 2026-05-25Batch AE 的 3-20 侧记录 2 个独立 worktree worker同批跨 3-20 / 5-29 总 worker 数超过当前 goal 每批最多 2 个 worker 上限,应视为异常历史记录。任务书均写入各 worktree `tmp/`,未写主工作区 `.codex/reasonix-tasks`
- 后续如需继续 upload target 审计,必须重新按最多 4 worker 的受控批次派发。
- 2026-05-25Batch AE 的 3-20 侧记录 2 个独立 worktree worker;同批跨 3-20 / 5-29 总 worker 数为 4 个,符合当前 goal 每批最多 4 个 worker 上限。任务书均写入各 worktree `tmp/`,未写主工作区 `.codex/reasonix-tasks`
- Worker C `/mnt/Data1T/mnote-worktrees/0525-ae-worker-c-3-20-upload-target-readonly`run `reasonix-2026-05-24T23-18-29-419Z-3e999c4d` 有完整 `process-handoff.md/json``result.json``final.md`,源码零 diff;审计结论经主控复核后采纳:`resolveFileTreeUploadTarget` 暂不宜迁入 browser runtime,核心依赖 `preflightFileTreeUploadTarget``sidebarFileTreeSelection`、fetch 与 DOM 查询;`refreshLocalFolderSidebarSnapshot` 仍是 shell 编排,append/reveal 系列 helper 已足够外置。
- Worker D `/mnt/Data1T/mnote-worktrees/0525-ae-worker-d-regression-smoke`run `reasonix-2026-05-24T23-18-29-435Z-3225d16e` 串线执行成 5-29 overlay 只读审计,未运行 `task489` / `task488` / `task487` / `task451` smoke;本轮 3-20 smoke 输出拒收。
- 后续 3-20 推荐下一刀:只读审计 `syncSidebarFileTreeSelection` 是否可迁入 `filetree-runtime.js`,或在明确降级兼容策略后评估 inline fallback 瘦身;不要继续盲迁 `refreshLocalFolderSidebarSnapshot` 整体。