refactor: extract block dnd handle predicate

This commit is contained in:
lix-2026
2026-05-25 06:09:42 +08:00
parent 4d08b69d2e
commit 6017a0ad7c
6 changed files with 70 additions and 13 deletions
@@ -0,0 +1,52 @@
# Batch X Worker A: 5-29 block DnD DOM boundary readonly audit
## Role
You are a leaf Reasonix coding worker. Do not spawn any other agent, runner, ACP process, Claude Code, Codex, Hermes, or Reasonix. Do not create, delete, or modify worktrees. Do not create new `.codex/reasonix-tasks/*.md` files.
## Project
Project root for this run:
```text
/mnt/Data1T/mnote-worktrees/0525-x-worker-a-5-29-dnd-dom-readonly
```
## Task
Perform a read-only audit for the next small 5-29 editor runtime extraction around block drag-and-drop DOM helpers.
Focus only on these current symbols:
- `drop_indicator_from_target` in `rust/spikes/leptos-tiptap-spike/src/lib.rs`
- `drop_indicator_from_point` in `rust/spikes/leptos-tiptap-spike/src/lib.rs`
- `hovered_block_from_target` in `rust/spikes/leptos-tiptap-spike/src/lib.rs`
- helper dependencies used by those functions, such as `target_element`, `direct_block_from_element`, `top_level_block_index`, `block_state_from_index`, `editor_root_element`, `editor_stage_element`, and `HANDLE_SHELL_SELECTOR`
- existing `editor_runtime/block_dnd.rs`
## Required output
Write a handoff that answers:
1. Which exact helper, if any, can be moved next into `editor_runtime/block_dnd.rs` without moving Leptos signals, event listeners, or block reorder behavior?
2. Which functions must stay in `lib.rs` for now, and why?
3. What is the smallest safe implementation diff Codex should make next?
4. What commands should Codex run after that diff?
5. What browser smoke, if any, is needed to prove behavior did not regress?
## Constraints
- Read-only only. Do not edit source files, design docs, task files, generated wasm/js, or tests.
- Do not run `cargo build`, `cargo check`, `wasm-bindgen`, browser tests, or dev servers.
- You may run read-only commands such as `rg`, `sed`, `git status`, `git diff --stat`, and CodeGraph if available.
- If you find the task needs implementation, report the proposed patch in prose only.
- Keep the result narrow. Do not propose a broad drag-and-drop rewrite.
## Acceptance contract
The run is acceptable only if:
- Worktree diff is empty.
- `process-handoff.md` and `process-handoff.json` exist.
- The handoff includes the five required answers above.
- The handoff does not claim code was changed or tests were run.