Arjun Patel c6ce1bdc65 fix(desktop): keep esc inside compose instead of exiting the stream (#294)
While recording or reviewing a compose, Escape both cancelled the compose
and exited the stream. The stream's window-level navigation handler skips
keys when an input is focused (isTypingTarget), which is why the text path
was unaffected, but recording/reviewing have no focused input so Escape
leaked through to the exit handler.

Fix it at the compose layer rather than teaching the navigation pipe about
compose: the compose key handler now consumes (preventDefault +
stopPropagation) any key it handles and listens in the capture phase, so it
reliably wins over the stream's bubble-phase navigation/action handlers
regardless of listener registration order. Pure pause states (hold-space)
are untouched, so Escape still exits the stream there.

This leaves the typing/task/configuring paths equivalent (their onCancel is
the same cancel() the handler invokes) while ⌘+Enter / ⌘+M still fall
through to the text editor.


Claude-Session: https://claude.ai/code/session_01DapjFX1MhYPZeJv4s56K5L

Co-authored-by: Claude <noreply@anthropic.com>
2026-06-21 08:32:58 -07:00
2026-02-19 19:41:26 -08:00
2026-06-02 08:56:29 -07:00
2026-06-11 16:52:05 -07:00
2026-01-27 11:16:58 -08:00
2026-02-19 19:41:26 -08:00
2026-06-20 17:22:45 -07:00
2026-06-11 10:58:36 -07:00
S
Description
No description provided
21 MiB
Languages
TypeScript 68.6%
Go 20.6%
C++ 8.7%
CSS 0.8%
CMake 0.3%
Other 0.8%