[FEATURE] Signal unsent draft input in the terminal tab title (OSC), so multiplexed sessions show which tab is waiting on you
Problem
When running several Claude Code sessions across terminal tabs/panes (Warp, tmux, iTerm), there's no way to glance at the tabs and see which session has unsent text sitting in the input box — a prompt I started typing and walked away from. That draft state is invisible the moment the tab loses focus, so half-written prompts get forgotten.
Why this has to live in Claude Code
The input buffer is internal to the TUI. There's no hook or API that exposes draft/unsubmitted state — UserPromptSubmit only fires after Enter, and there's no keystroke/input-changed event. So unlike "Claude is idle/finished" (which hooks like Stop can already surface by writing an OSC title sequence to /dev/tty), the draft signal can only come from inside Claude Code.
Proposed behavior
When the input box holds unsent text and the session isn't actively generating, emit an OSC title sequence (ESC]0;…BEL / ESC]2;) that adds a small marker to the existing tab title — e.g. a leading glyph or [draft] — and clear it on submit or when the box empties. Terminal-agnostic; works anywhere OSC titles are honored (Warp, tmux, iTerm, etc.).
Config
Opt-in via a setting (e.g. terminalTitleDraftIndicator), with a configurable marker string so users can pick their own glyph or disable it.
Relationship to existing issues
Complements #71369 and #78128 (agent-state in the tab title) and #78112 (web favicon state). This one covers the user-side draft signal specifically, which those don't address.
Alternatives considered
Hooks + /dev/tty can mark a tab on Stop/idle, but cannot detect an unsent draft (no relevant hook). A PTY wrapper sniffing the rendered TUI is fragile and breaks on layout changes.