| … | … | @@ -59,6 +59,18 @@ function isSurfaceLauncherKey(event: KeyboardEvent): boolean { | |
| 61 | 61 | ||
| 62 | + | function isKeyClaimedInPath(event: KeyboardEvent): boolean { | |
| 63 | + | if (event.shiftKey) return false; | |
| 64 | + | const key = event.key.toUpperCase(); | |
🟡 Medium chat/composerFocusRedirect.ts:63
With Caps Lock enabled while guide prose is focused, pressing J or K is claimed here, so composer redirection is blocked even though GuideTour.stepFromKey ignores uppercase keys; the keystroke neither advances the tour nor reaches the composer. This predicate uppercases event.key while the handler accepts lowercase keys; reject uppercase keys here or normalize both paths consistently.
| 1 | if (event.shiftKey || event.key !== event.key.toLowerCase()) return false; |
| 2 | const key = event.key; |
🤖 Copy this AI Prompt to have your agent fix this:
| 1 | In file @apps/web/src/components/chat/composerFocusRedirect.ts around lines 63-64: |
| 2 | |
| 3 | With Caps Lock enabled while guide prose is focused, pressing `J` or `K` is claimed here, so composer redirection is blocked even though `GuideTour.stepFromKey` ignores uppercase keys; the keystroke neither advances the tour nor reaches the composer. This predicate uppercases `event.key` while the handler accepts lowercase keys; reject uppercase keys here or normalize both paths consistently. |
Note
🤖 Claude Opus 5.5 on behalf of Oliver
Fixed in 4a2a04ccb2. The guide now lowercases the key before its J/K check, so a Caps Lock J or K steps the guide instead of being dropped. Shift+J still goes to the composer, as before. The J/K browser test now dispatches a Caps Lock J (no Shift) and fails without the fix.
Sorry, I'm unable to act on this request because you do not have permissions within this repository.