c6ce1bdc65899d36ba72444f61cb96fa9bb8ec27
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>
Description
No description provided
Languages
TypeScript
68.6%
Go
20.6%
C++
8.7%
CSS
0.8%
CMake
0.3%
Other
0.8%