Adds the real push/pop/set/query progressive-enhancement flag-stack
mechanism to vt/parser.odin (previously only a fixed "disabled" reply to
the capability query) and all 5 flags' key encoding in new kitty.odin:
disambiguate escape codes, report event types, report alternate keys,
report all keys as escape codes, report associated text.
Fixes two pre-existing bugs found along the way: CSI <u / CSI =...u were
mis-parsed as SCORC (restore-cursor) since feed_csi never recognized '<'/
'=' as CSI prefixes, and CSI >flags u (push) was silently swallowed as a
no-op.
New xkb FFI (xkb_keymap_key_get_syms_by_level, xkb_state_key_get_layout,
xkb_keysym_to_utf32) backs the alternate-key-reporting flag's shifted/
base-layout codepoint lookups. Release/repeat event reporting wired into
events.odin's keyboard_key_cb and main.odin's fire_due_repeats. Kitty and
modifyOtherKeys coexist by fallthrough in handle_key_press rather than
being mutually exclusive.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011F9RnepbqPL8bDBudDwt71