docs: record additional worker audit outcomes

This commit is contained in:
lix-2026
2026-05-25 09:02:58 +08:00
parent a270e9c8e0
commit 8b27bd45aa
2 changed files with 11 additions and 0 deletions
@@ -244,6 +244,11 @@ UI / 浏览器可见项必须有真实浏览器截图或结构化 smoke 证据
- 实测通过:`MNOTE_WEB_SMOKE_BASE_URL=http://127.0.0.1:3001 NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task487-local-folder-tree-live-consumer-smoke.js``MNOTE_WEB_SMOKE_BASE_URL=http://127.0.0.1:3001 NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task451-local-markdown-conflict-resolution-ui-smoke.js``MNOTE_WEB_SMOKE_BASE_URL=http://127.0.0.1:3001 NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task479-local-folder-markdown-resource-lifecycle-smoke.js``MNOTE_WEB_SMOKE_BASE_URL=http://127.0.0.1:3001 NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task489-block-menu-delete-undo-smoke.js``MNOTE_WEB_SMOKE_BASE_URL=http://127.0.0.1:3001 NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task488-local-attachment-link-delete-undo-smoke.js`
- 关键证据:`task487` result 显示 `data-mnote-tree-live-transport=\"local-folder-events\"`、PageTree/FileTree 外部创建/删除后 `treeLiveApplied=\"resync\"``navigationEvents=0``task451` 覆盖 accept-disk / keep-current / merge-save / agent-conflict-source`task479` / `task489` / `task488``ok:true`
- 产物:`/mnt/Data1T/mnote-worktrees/0525-am-worker-b-3-20-smoke-regression/tmp/task487-local-folder-tree-live-consumer-smoke/result.json``/mnt/Data1T/mnote-worktrees/0525-am-worker-b-3-20-smoke-regression/tmp/task451-local-markdown-conflict-resolution-ui-smoke/result.json``/mnt/Data1T/mnote-worktrees/0525-am-worker-b-3-20-smoke-regression/tmp/task489-block-menu-delete-undo-smoke/result.json``/mnt/Data1T/mnote-worktrees/0525-am-worker-b-3-20-smoke-regression/tmp/task488-local-attachment-link-delete-undo-smoke/result.json`,以及 `task479` 的系统临时目录截图。
- 2026-05-25Batch BB 只派发 1 个只读 Reasonix worker 审计 `uploadFilesWithResolvedTarget` 是否还存在值得继续外置的纯 helper 边界,使用独立 worktree `/mnt/Data1T/mnote-worktrees/0525-bb-worker-a-3-20-upload-boundary-readonly`run id `reasonix-2026-05-25T00-57-16-343Z-5af1b542`,显式 `--no-memory-recall`
- Codex 已读取 Hindsight recall、`process-handoff.md/json``result.json`,并核对该 worktree 源码 `git diff --stat` 为空;worktree 中仅新增 `final.md``process-handoff.*``result.json` 等审计产物,不视为源码修改。
- 审计结论经主控复核后采纳:`uploadFilesWithResolvedTarget(files, detail, options, deps)` 当前已经是合理的薄编排壳层;`deps` 提取与 guard、`resolveFileTreeUploadTarget(detail)` 调用、顺序上传循环、错误收集与 `alert` 反馈均属于当前函数自身职责,不建议继续拆出只会增加间接层的 1-6 行微型 helper。
- 主控本地代码证据:`local-upload-runtime.js``uploadFilesWithResolvedTarget` 目前只保留 `resolveFileTreeUploadTarget``uploadFileToMediaAsset` 注入、`Array.from(files || []).filter(Boolean)`、顺序上传循环、错误汇总与 `alert`;更低层纯 helper 已分别落地到 `fetchWithTimeout``uploadLocalFolderAsset``uploadMediaAsset``insertUploadedAssetIntoEditor``uploadFileToMediaAsset`
- 当前决定:`3-20` 的 local upload 线不再围绕 `uploadFilesWithResolvedTarget` 继续拆刀,下一批改审 `resolveFileTreeUploadTarget` / preflight fallback 或 sidebar refresh 边界。
- 2026-05-25Batch AH 由 Codex 主控按当前 goal 明确派发 4 个独立 worktree worker;主工作区不承接实现过程,只读取 Hindsight recall、handoff、diff 与验证证据后裁决。
- Worker B `/mnt/Data1T/mnote-worktrees/0525-af-worker-b-3-20-filetree-selection-helper`run `reasonix-2026-05-24T23-33-43-259Z-bd947ad9` 仅产出 `prompt.md` / `memory-recall.json` / `reasonix-transcript.jsonl`,没有 `final.md``result.json``process-handoff.md/json`transcript 停在 `submit_plan`worktree 零 diff,按合同拒收。
- Worker C `/mnt/Data1T/mnote-worktrees/0525-af-worker-c-3-20-upload-target-readonly`run `reasonix-2026-05-24T23-33-43-393Z-301491ef` 有完整 `process-handoff.md/json``result.json``final.md`,源码零 diff;审计结论经主控复核后采纳:`syncSidebarFileTreeSelection` 及 selection runtime 已外置到合理边界,不应回并到 `filetree-runtime.js``resolveFileTreeUploadTarget` / `preflightFileTreeUploadTarget` 仍不适合整体迁入 browser runtime`fileTreeRowsForUploadPreflight` 仅是低优先级候选 helper。
@@ -329,3 +329,9 @@ UI / 浏览器可见项必须有真实浏览器截图或结构化 smoke 证据
- 切片范围:`editor_runtime/dom_selection.rs` 新增 `block_index_from_selection()``editor_runtime/overlays.rs` 新增 `selection_bounding_rect()``viewport_dimensions()``clamp_overlay_anchor(...)``lib.rs``hovered_block_from_selection` / `slash_menu_anchor_style` 退化为调用上述 helper 的壳层编排;生成物只更新 `generated/island` 对应 `js/wasm`
- 本轮 fresh 验证:`cargo fmt --manifest-path rust/Cargo.toml --all --check``cargo check --manifest-path rust/spikes/leptos-tiptap-spike/Cargo.toml``cargo build --manifest-path rust/spikes/leptos-tiptap-spike/Cargo.toml --target wasm32-unknown-unknown --release``wasm-bindgen --target web --out-dir rust/spikes/leptos-tiptap-spike/generated/island --out-name mnote-leptos-tiptap-spike-island rust/spikes/leptos-tiptap-spike/target/wasm32-unknown-unknown/release/mnote_leptos_tiptap_spike.wasm`、临时当前源码服务 `MNOTE_WEB_BIND=127.0.0.1:3021 MNOTE_WEB_PUBLIC_BIND=127.0.0.1:3021 cargo run --manifest-path rust/Cargo.toml -p mnote-web``MNOTE_WEB_SMOKE_BASE_URL=http://127.0.0.1:3021 NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task489-block-menu-delete-undo-smoke.js``MNOTE_WEB_SMOKE_BASE_URL=http://127.0.0.1:3021 NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task488-local-attachment-link-delete-undo-smoke.js``MNOTE_WEB_SMOKE_BASE_URL=http://127.0.0.1:3021 NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task479-local-folder-markdown-resource-lifecycle-smoke.js`
- 结果:上述命令全部通过;`task479` 确认附件生命周期、主编辑区附件缺失态、文件树打开附件和“文件名作为本地 Markdown 默认页头标题”的基线行为未被本批回归。
- 2026-05-25Batch BB 只派发 1 个只读 Reasonix worker 审计 `slash_menu_anchor_style()` 剩余 fallback 是否还有可继续外置的纯几何 helper 边界,使用独立 worktree `/mnt/Data1T/mnote-worktrees/0525-bb-worker-b-5-29-slash-fallback-readonly`run id `reasonix-2026-05-25T00-57-16-369Z-153f8ae2`,显式 `--no-memory-recall`
- Codex 已读取 Hindsight recall、`process-handoff.md/json``result.json`,并核对该 worktree 源码 `git diff --stat` 为空;worktree 中仅新增 `final.md``process-handoff.*``result.json` 等审计产物,不视为源码修改。
- 该 run 违反任务边界:worker 把 `3-20``5-29` 两个只读审计混成一份总体报告,因此不作为正式 handoff 全量采纳。
- 但主控根据其 `5-29` 线索做了本地代码复核,确认当前粒度判断基本成立:`slash_menu_anchor_style()` 已复用 `selection_bounding_rect()``clamp_overlay_anchor()`;剩余 fallback 只包含 `hovered_block_from_selection()``editor_stage_element()``content_text_left(stage_rect.width())` 和 3 行 anchor 算术,不值得再抽新的微型 helper。
- 主控本地代码证据:`hovered_block_from_selection()` 已退化为 `block_index_from_selection().and_then(block_state_from_index)` 的薄包装;`block_menu_overlay.rs` 已存在一份独立的 `content_text_left()` / 布局常量体系,若为 `slash_menu_anchor_style()` 再外置同类 helper,反而会引入第三处布局常量复制。
- 当前决定:`5-29` 暂不再围绕 `slash_menu_anchor_style()` 继续拆刀;若后续确实需要推进,应另起设计收口 `content_text_left()` / 内容列布局常量,而不是从当前 fallback 中抽 3-5 行几何包装。