{"repo":"NousResearch/hermes-agent","public_id":"93633","display_label":"CLI Shift+symbol key mapping under modifyOtherKeys","summary":"These issues and PRs address incorrect handling of Shift+punctuation and symbol keys in the classic CLI under modifyOtherKeys=2, where literal escape sequences were emitted instead of the expected shifted characters. Fixes aim to derive correct mappings from the user's actual keyboard layout rather than assuming a US layout.","subsystem":"hermes_cli","counts":{"members":4,"open_issues":1,"open_issues_distinct":1,"open_prs":1,"closed_issues":0,"merged_prs":0,"attempt_prs":3},"landed_fix":null,"resolution":{"state":"unresolved","by":null},"freshness":{"state":"never_verified","last_verified_at":null,"is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[],"members":[{"kind":"issue","number":93633,"title":"[Bug]: Classic CLI prints literal [27;2;64~ for Shift+symbol keys (@ ~ ! $ ...) under modifyOtherKeys=2 on Ghostty — #87511 covered letters only","url":null,"state":"open"},{"kind":"pr","number":93636,"title":"fix(cli): map Shift+symbol sequences to the shifted character under modifyOtherKeys=2","url":null,"state":"closed","close_reason":{"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":103869,"title":"fix(cli): derive Shift+punctuation from the user's layout, never from US (#93633)","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"e368bff165","number":0},{"kind":"pr","value":"#103948","number":103948}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":104208,"title":"fix(cli): self-map Shift+symbol keys under modifyOtherKeys","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#91224","number":91224},{"kind":"pr","value":"#93633","number":93633},{"kind":"pr","value":"#102683","number":102683}],"category":"superseded_by_pr","implication":"superseded"},"merged":false}],"trust":{"default_tier":"verified","includes_suggested":false}}