refactor: extract toolbar overlay lock helper
This commit is contained in:
@@ -163,3 +163,5 @@ UI / 浏览器可见项必须有真实浏览器截图或结构化 smoke 证据
|
||||
- 修改:`task487-local-folder-tree-live-consumer-smoke.js` 保持 RED smoke 退出 0 语义,增加 staged DOM 状态、PageTree/FileTree 外部创建/删除后的目标节点证据、navigation evidence 和更多截图路径。
|
||||
- Worker 验证:`node --check scripts/task487-local-folder-tree-live-consumer-smoke.js`、限定 `git diff --check` 通过;因当时 3000 未启动,未运行真实浏览器 smoke。
|
||||
- Codex 主控验证:`node --check 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/task487-local-folder-tree-live-consumer-smoke.js`。结果仍为 RED,`transport=local-folder-events`、PageTree/FileTree 外部变更阶段 `navigationEvents=0`,但 `treeLiveApplied` 仍为空,说明 live consumer 证据仍未收敛到 snapshot/resync。
|
||||
- 2026-05-25:Batch P Reasonix 派发失败并拒收:三个输出目录 `reasonix-2026-05-24T20-21-00-338Z-53f263c7` / `reasonix-2026-05-24T20-21-00-457Z-9384a1e5` / `reasonix-2026-05-24T20-21-00-569Z-8a3585e8` 均只有 `prompt.md` / `memory-recall.json` / `reasonix-transcript.jsonl`,没有 `result.json`、`process-handoff.md/json` 或 `final.md`;记录中的三个 worktree 目录当前不存在,Codex 未采纳任何 diff。后续 B/C/D 等实现 worker 必须在独立 worktree 产出候选 patch,再由 Codex 读取 Hindsight recall、handoff、diff 和验证证据后选择性合入。
|
||||
- 2026-05-25:Batch Q 未经主控批准再次自动启动 3 个 Reasonix runner(`0525-q-worker-a/b/c-*`),超过当前 goal 的 2 worker 上限;Codex 已终止进程,删除本轮自动生成的 3 份 batch-q 草稿并移除空 worktree,不采纳任何结果。后续在修复 runner 自动派发前,不再让 Reasonix 直接负责多 worker 规划。
|
||||
|
||||
@@ -160,3 +160,7 @@ UI / 浏览器可见项必须有真实浏览器截图或结构化 smoke 证据
|
||||
- 未迁:`drop_indicator_from_target`、拖拽 listener、Leptos signal、`editor_stage_element` / `editor_root_element` 查询和 block reorder 行为仍留在 shell。
|
||||
- Worker 验证:`cargo fmt --manifest-path rust/Cargo.toml --all --check`、`git diff --check`、`rustfmt --edition 2021 --check rust/spikes/leptos-tiptap-spike/src/editor_runtime/block_dnd.rs` 通过;`cargo check -p leptos-tiptap-spike` 因包名不匹配失败,主控改用正确 manifest 复核。
|
||||
- Codex 主控验证:`cargo fmt --manifest-path rust/Cargo.toml --all --check`、`cargo check --manifest-path rust/spikes/leptos-tiptap-spike/Cargo.toml`、wasm release build、`wasm-bindgen`、`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`。
|
||||
- 2026-05-25:Codex 主控完成 overlay 状态纯 helper 小切片:`toolbar_overlay_locked(turn_into_open, color_menu_open, more_menu_open)` 迁入 `editor_runtime/overlays.rs`;`lib.rs` 仍保留 runtime state/status payload、overlay sync、block menu signal 和 DOM 编排调用点。
|
||||
- 修改:`rust/spikes/leptos-tiptap-spike/src/editor_runtime/overlays.rs`、`rust/spikes/leptos-tiptap-spike/src/lib.rs`、generated island wasm。
|
||||
- 已验证:`cargo fmt --manifest-path rust/Cargo.toml --all --check`、`cargo check --manifest-path rust/spikes/leptos-tiptap-spike/Cargo.toml`、wasm release build、`wasm-bindgen`、`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`、`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`。
|
||||
- 未迁:`try_sync_editor_overlay_state`、`on_selection_change` overlay 同步、`drop_indicator_from_target`、拖拽 listener 和 block reorder 行为。
|
||||
|
||||
BIN
Binary file not shown.
@@ -77,6 +77,14 @@ pub(crate) fn sync_text_selection_overlay(
|
||||
has_text_selection
|
||||
}
|
||||
|
||||
pub(crate) fn toolbar_overlay_locked(
|
||||
turn_into_open: bool,
|
||||
color_menu_open: bool,
|
||||
more_menu_open: bool,
|
||||
) -> bool {
|
||||
turn_into_open || color_menu_open || more_menu_open
|
||||
}
|
||||
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
pub(crate) fn close_editor_floating_overlays(
|
||||
set_slash_open: WriteSignal<bool>,
|
||||
|
||||
@@ -42,8 +42,9 @@ use editor_runtime::editor_focus::{active_editor_stage, body_has_focus, schedule
|
||||
use editor_runtime::overlays::{
|
||||
close_editor_floating_overlays_if_escape, floating_toolbar_anchor_from_selection,
|
||||
open_block_menu_overlay, open_image_toolbar_overlay, open_slash_menu_overlay,
|
||||
sync_text_selection_overlay, try_close_block_menu_overlays, FloatingToolbarAnchor,
|
||||
ImageToolbarAnchor, TableOverlayAnchor, TableSelectionKind, TableSelectionOverlayState,
|
||||
sync_text_selection_overlay, toolbar_overlay_locked, try_close_block_menu_overlays,
|
||||
FloatingToolbarAnchor, ImageToolbarAnchor, TableOverlayAnchor, TableSelectionKind,
|
||||
TableSelectionOverlayState,
|
||||
};
|
||||
use editor_runtime::persistence::{
|
||||
load_persisted_document, normalize_identity_value, persist_document_state,
|
||||
@@ -5646,14 +5647,6 @@ fn replace_top_level_block_kind(
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn toolbar_overlay_locked(
|
||||
turn_into_open: bool,
|
||||
color_menu_open: bool,
|
||||
more_menu_open: bool,
|
||||
) -> bool {
|
||||
turn_into_open || color_menu_open || more_menu_open
|
||||
}
|
||||
|
||||
fn try_sync_editor_overlay_state(
|
||||
set_editor_focused: WriteSignal<bool>,
|
||||
set_text_selection_active: WriteSignal<bool>,
|
||||
|
||||
Reference in New Issue
Block a user