{"version":"2.1.301","anchor":"terminal-input-reader-marks-keys-that-were-read-late-event","canonical_anchor":"terminal-input-reader-marks-keys-that-were-read-late-event","heading":"Keys read while Claude Code was busy are now marked as read late","tier":"internal","area":"Elsewhere","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/terminal-input-reader-marks-keys-that-were-read-late-event","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301","markdown":"### Keys read while Claude Code was busy are now marked as read late\n\nClaude Code now tags keypresses that were read after a delay, so they can be told apart from keys typed live\n\n**Unclear.** Nothing is shown acting on the late mark yet, so it is unclear whether key handling behaves differently today.\n\n**What**\n\nClaude Code reads your keyboard input from the terminal in a loop. If Claude Code is busy and that loop falls behind, several keys can arrive at once in a batch. Claude Code now marks a key as read late in two cases:\n\n- the reading loop was running late when the key was read\n\n- an incomplete escape sequence had been held waiting longer than a set limit. An escape sequence is a short run of special characters that terminals use for things like arrow keys.\n\nThis lets Claude Code tell keys that arrived in a delayed batch apart from keys you are typing right now.\n\n**Why**\n\nThis is likely meant to stop delayed input, such as pasted text or escape sequences, from being treated as if you had just typed those keys one by one.\n\n- Area: Elsewhere\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}