[Beta]: Drag-selecting from one root into another in the Multi-root Document example throws "Cannot resolve view-boundary point"
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- react, typescript
Direzione di ricerca
Start with packages/plitejs/src/react/view-boundary-graph-core.ts, where requirePointNode, comparePoints and segmentRange appear in the reported error path. Trace how mouse moves in the multi-root document example reach segmentRange and how points from another root are handled. Reproduce a drag between the Body and Footer editors, then verify it no longer throws and the selection remains in the starting root.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Testing lane
- Repository:
udecode/plate - Branch:
next - Release channel: Beta
- Exact commit/package version:
NOT_ENOUGH_INFO
Summary
On /examples/plite/multi-root-document, a mouse drag that starts in one editor and moves into another throws an uncaught error while the pointer moves: Cannot resolve view-boundary point in root "<root>" with owner "none" at path <path>. The error shows only in the console. On the page, the selection stays in the editor where the drag started. A drag that stays inside one editor throws nothing.
Reproduction
The page shows three editors under the Document title field: Header editor, Body editor and Footer editor. Each one is a separate root of the same document.
Repro 1: /examples/plite/multi-root-document, Chromium-based browser
natamox ran this by hand.
- Open https://beta.platejs.org/examples/plite/multi-root-document and open the DevTools console.
- In the
Body editor, press the mouse just beforeroots.in the second line,Header and footer are editable roots.. - Keep the button down and drag onto the
Footer editortext,Prepared for leadership review.
When the pointer reaches the Footer editor, the console logs Uncaught Error: Cannot resolve view-boundary point in root "footer" with owner "none" at path 0.0., and keeps logging it while the pointer moves over the footer text. The page still highlights only roots. in the Body editor.
Repro 2: /examples/plite/multi-root-document, Chromium
An agent ran this with Playwright.
- Open https://beta.platejs.org/examples/plite/multi-root-document.
- Control: in the
Body editor, press afterHeader andand drag toeditablein the same line. - Click the same spot once to clear the selection. Then press there, drag down onto the
Footer editortext, and release. - Press in the
Footer editortext and drag up onto theBody editortext. - Press in the
Header editortext and drag down onto theBody editortext. - Type
X.
Step 2 throws nothing. Steps 3, 4 and 5 each throw while the pointer moves: root "footer" at path 0.0 in step 3, and root "main", the Body editor, at path 1.0 in step 4 and 0.0 in step 5. The selection on the page stays in the root where each drag started: footer are editable roots. in the Body editor, Prepared in the Footer editor and ential quarterly plan in the Header editor. In step 6, X replaces the highlighted text, so the Header editor reads ConfidX. The other editors keep their text, and no new error is thrown.
A press on text that is already selected starts a text drag instead, which is why step 3 clears the selection first. Each drag has to end on another editor's text, not on the gap between two editors.
Expected
The page has no Slate reference, because slatejs.org has no multi-root example. As the tester (natamox) expects: dragging a selection never throws, and the selection stays in the root where the drag started, as the page already shows. A drag inside one root, step 2 of repro 2, already behaves this way.
Actual
Each drag that moves into another root throws Uncaught Error: Cannot resolve view-boundary point in root "<root>" with owner "none" at path <path>., where <root> is the root under the pointer. The recordings show footer and main, and the agent's notes record header for a drag that moves into the Header editor. Headless Chromium threw about 4 to 30 errors per drag, more for a longer drag. Playwright WebKit threw one per drag. Nothing on the page shows the error.
The console stack in repro 1 lists comparePoints and segmentRange, and most entries also list onMouseMoveCapture.
Environment
- Exact
nextcommit/Beta package version:NOT_ENOUGH_INFO. The agent's runs used Beta built fromnext7f2eacb6eband, after Beta was redeployed at 08:56 PT, fromnext0500826291, with the same result. Neither recording names its build. - On 2026-10-24 an agent replayed repro 2 on the live Beta in headless Chromium 149 and Playwright WebKit 26.5, and both still throw.
- Repro 1: natamox by hand on 2026-10-22 (PT). The browser is Chromium-based: the console in the recording is Chrome DevTools, and its stack lines use the
at name (file:line)form. The recording does not show which browser it is or its version. The DevTools hint shows thecmdkey, which points to a Mac. - Repro 2: an agent on 2026-10-22 (PT), at natamox's request, in headless Chromium 149.0.7827.55 on macOS, driven by Playwright with real mouse and key input. The same steps in Playwright WebKit 26.5 (not Safari) also threw. The agent reproduced it in a desktop Chromium 152 window as well.
- Nobody has tried Safari itself, Firefox or a phone.
Caveat
- From a reading of the code on
next, which finds where the error is thrown and does not trace the caller: the message comes fromrequirePointNode(packages/plitejs/src/react/view-boundary-graph-core.ts:293, thrown at:304) when the graph it is given has no node for the point.segmentRange(:384) reaches it throughcomparePoints, which matches the console stack. Which caller passessegmentRangea point in another root on a mouse move is not traced. - An inference from the agent's notes, not checked: on a mouse move, Plite maps the point under the pointer into that other root and builds a range from it and the drag's start, but the graph it uses has no nodes for the other root. The browser keeps the native drag selection inside the editor where it started, which would be why the page shows nothing wrong.
Evidence
- Repro 1: natamox's screen recording, 6.5 seconds, with the page on the left and the DevTools console on the right. At 0:00 the caret is at the end of
roots.in theBody editor, and the console is empty. From 0:01 the pointer moves to just beforeroots., and at 0:03 the drag highlightsroots.and moves down. At 0:03.7 the pointer reaches theFooter editor, and the first error appears. From 0:04 to the end, the console fills with the same error while the page still highlights onlyroots.. - Repro 2: headless Chromium recording, 42 seconds, with an English step panel. A readout box drawn by the test script shows the uncaught page errors so far, the mouse button and the selection on the page, and a red box at the top, also drawn by the script, shows the last error. From 0:01 the control drag in the
Body editorselectsfooter are editab, and the count stays 0. From 0:08 the drag into theFooter editorruns, and by 0:11 the count is 10, with root"footer". From 0:14.5 the drag up from theFooter editorruns, and by 0:17.5 the count is 38, with root"main". From 0:21 the drag down from theHeader editorruns, and by 0:24 the count is 51. At 0:28Xreplaces the highlightedHeader editortext, and the count stays 51. The result shows from 0:31.5 to the end.
Repro 1 — Chromium-based browser, /examples/plite/multi-root-document
https://github.com/user-attachments/assets/15373536-be52-46e6-a3e4-caa28865a1c1
Repro 2 — headless Chromium, /examples/plite/multi-root-document
https://github.com/user-attachments/assets/45f11434-8094-4904-a021-5e71fb9d8705
- Lingua principale
- TypeScript
- Stelle
- 16.6k
- Fork
- 993
- Merge medio
- 20h 1m
- PR unite (30g)
- 60
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di udecode/plate
-
triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
mobile triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
[Beta]: The docs Demo example page starts with an empty editorForse già presa @natamox l’ha presa oggi. Apertatriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
udecode/plate#5308 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di udecode/plate
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
VictoriaMetrics/victorialogs-datasource#747 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 79/100
I maintainer di solito rispondono entro 1 giorno
-
bug from-studio
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
esengine/DeepSeek-Reasonix#14608 ·
I maintainer di solito rispondono entro 1 giorno
-
triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
getarcaneapp/arcane#4590 ·
I maintainer di solito rispondono entro 1 giorno
-
支持对已取消(cancelled)任务生成报告Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
Clouditera/VulnHunter#57 ·