mirror of
https://github.com/stablyai/orca.git
synced 2026-10-21 00:03:46 +00:00
An Escape that dismisses an IME candidate window carries the composition markers, so a handler that runs its Escape branch before consulting the guard acts on a keystroke the user aimed at the IME — discarding a comment draft, reverting a search, or cancelling shortcut recording. Eight keydown handlers guarded Enter but dispatched Escape first. Two of them (the reviewer picker and the workspace-name field) also left the arrows unguarded, so candidate navigation moved the app's selection too. The marker sweep that found the dropped-isComposing adapters cannot see this: the markers are present and the guard is called, just one branch too late. Ordering is now pinned as a structural invariant over every keydown handler in src/, which is what a per-component test could not do. Co-authored-by: Orca <help@stably.ai>