docs/solutions/logic-errors/2026-04-04-inline-edge-ime-proofs-should-set-selection-semantically-before-composition.md
After landing the shared slate-react-v2 zero-width renderer seam, the next
behavior proof was the FEFF-backed inline-edge path in Chromium IME.
The first red looked like the inline-edge renderer was broken.
It was not.
The test was clicking the root and then composing, assuming that generic focus put the caret on the intended zero-width leaf. On an inline-edge surface with adjacent inline chrome, that assumption is sloppy.
editor.focus() by itself was not a trustworthy setup step here.Set the selection semantically before composition:
editor.selection.collapse({ path: [0, 0], offset: 0 })editor.ime.compose(...)With that setup, the FEFF-backed inline-edge path passed in Chromium:
すし0.0:2|0.0:2Mixed-content roots are not precise caret targets.
If the root also contains inline chrome, chips, or other non-text siblings, a generic click does not guarantee that native selection lands inside the exact text leaf you intend to test.
For IME proofs, that matters. Composition is only meaningful if the browser selection is already on the semantic editor point the proof claims to measure.
For browser proofs around inline edges or other mixed-content roots:
If a proof is about IME on a specific text leaf, the selection setup should be just as specific.