# Reasonix Batch J / Worker B:5-29 close block menu overlays helper Project root:`/mnt/Data1T/mnote-worktrees/0525-j-worker-b-5-29-close-overlays` ## 目标 在独立 worktree 中产出候选 patch:根据 Batch I Worker A 只读审计结论,只提取 `close_block_menu_overlays` 这一窄 helper,并删除确认无调用方的 `sync_editor_overlay_state` 死代码。不要迁 `try_sync_editor_overlay_state`,不要统一 `on_selection_change` 的内联 overlay 逻辑。 ## 允许修改 - `rust/spikes/leptos-tiptap-spike/src/lib.rs` - 如确需新增小模块,只允许: - `rust/spikes/leptos-tiptap-spike/src/editor_runtime/overlays.rs` - `rust/spikes/leptos-tiptap-spike/src/editor_runtime/mod.rs` 如修改 Rust island 源码后需要重建运行时,可更新: - `rust/spikes/leptos-tiptap-spike/generated/island/mnote-leptos-tiptap-spike-island.js` - `rust/spikes/leptos-tiptap-spike/generated/island/mnote-leptos-tiptap-spike-island_bg.wasm` - `rust/spikes/leptos-tiptap-spike/generated/island/mnote-leptos-tiptap-spike-island.d.ts` ## 禁止事项 - 不迁 `try_sync_editor_overlay_state`。 - 不改 `on_selection_change` 的 overlay 同步行为。 - 不改 block DnD、filetree、mnote-web、AGENTS、设计文档或 bugs 文档。 - 不提交 git,不回滚或清理无关文件。 ## 验收命令 ```bash 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 rust/spikes/leptos-tiptap-spike/target/wasm32-unknown-unknown/release/mnote_leptos_tiptap_spike.wasm --target web --out-dir rust/spikes/leptos-tiptap-spike/generated/island --out-name mnote-leptos-tiptap-spike-island NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task489-block-menu-delete-undo-smoke.js NODE_PATH=/mnt/Data1T/mnote/node_modules node scripts/task488-local-attachment-link-delete-undo-smoke.js ``` ## 输出要求 handoff 必须列出: - 是否确认 `sync_editor_overlay_state` 无调用方。 - 修改文件。 - helper 的调用点和未迁边界。 - 验收命令、结果和 smoke 证据路径。 - 未覆盖风险。 - `git diff --stat`。