docs: record additional worker audit outcomes
This commit is contained in:
@@ -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-25:Batch 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-25:Batch 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-25:Batch 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 行几何包装。
|
||||
|
||||
Reference in New Issue
Block a user