Files
lumbridge-code/apps/lumbridge
Metal AgentandClaude Opus 5 6daee84ca6 Move the keystroke table out of the renderer that reported the keystroke
Deciding what a key means to a shell needs the key name, the composed
character if the platform produced one, and the modifier flags. It does not
need a window, and keeping it beside one made the least forgiving table in the
shell the hardest to read and the least obvious to test.

It is the least forgiving because it has already failed silently. Requiring a
printable character before anything was sent swallowed every control byte --
ctrl-c, ctrl-d, ctrl-a, ctrl-r and ctrl-k -- with no crash and no log, so the
symptom was a shell that ignored you. Those tests move with the functions and
keep their names, which describe the mistake rather than the function.

key_modifiers stays in main.rs. Copying KeyDownEvent.keystroke.modifiers field
by field is a statement about a gpui type and belongs where gpui types live;
what it produces is a KeyModifiers, and that crosses the boundary fine.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SPYebLiN2w4TqnHUYGdECq
2026-09-01 12:57:00 -07:00
..