hermes-agent/ui-tui/src
brooklyn! f27d45e288
feat(tui): reach the model picker without wrecking your draft, and switch mid-turn (#74756)
* feat(tui): Ctrl+O opens the model picker without clearing your draft

Reaching the model picker meant typing /model, which forces you to wipe
whatever you'd already drafted. Bind Ctrl+O to open the same picker overlay
directly, leaving the composer untouched. Ctrl+O is added to the textInput
pass-through allowlist so the composer doesn't swallow it, mirroring the
existing Ctrl+X session-switcher path.

* feat(tui): apply a mid-turn model switch at the next turn instead of rejecting it

Picking a model while a turn was streaming hit a 4009 'session busy' reject:
switch_model() mutates the agent's model/provider/base_url/client in place and
the worker thread reads those every iteration. Now config.set queues the pick
in session[pending_model_switch] and _apply_pending_model_switch applies it on
the turn thread at the next turn start, before any model call — no race, no
interrupt, no waiting on the client rebuild. The TUI paints the pick optimistically
and notes '(applies next turn)'.
2026-07-30 10:18:30 +00:00
..
__tests__ feat(tui): reach the model picker without wrecking your draft, and switch mid-turn (#74756) 2026-07-30 10:18:30 +00:00
app feat(tui): reach the model picker without wrecking your draft, and switch mid-turn (#74756) 2026-07-30 10:18:30 +00:00
components feat(tui): reach the model picker without wrecking your draft, and switch mid-turn (#74756) 2026-07-30 10:18:30 +00:00
config feat(tui): double ESC discards the draft, even mid-stream 2026-07-30 04:26:48 -05:00
content feat(tui): reach the model picker without wrecking your draft, and switch mid-turn (#74756) 2026-07-30 10:18:30 +00:00
domain fix(tui,cli): render a resumed interrupted turn as an event 2026-07-28 03:54:25 -05:00
hooks fix(tui): offer skill completions for a slash typed mid-message 2026-07-25 21:19:23 -05:00
lib fix(tui): prefer OSC52 for copy in remote tmux sessions 2026-07-29 08:42:16 -07:00
protocol refactor(tui): /clean pass across ui-tui — 49 files, −217 LOC 2026-04-16 22:32:53 -05:00
sdk refactor(ui-tui): host placement router + grid-test width-floor fix 2026-07-21 20:59:55 -05:00
types fix(tui): split terminal tab title from window title 2026-07-30 02:31:47 -05:00
app.tsx fix(tui): apply ui-tui fix pass and restore type-check 2026-04-25 14:08:54 -05:00
banner.ts feat(tui): responsive banner tiers 2026-05-23 17:37:51 -05:00
entry.tsx perf(tui): skin switches stay hot — MCP gating, pooled reload, swap repaint 2026-07-21 16:36:57 -05:00
gatewayClient.ts fix(tui): defer buffered gateway events to stop dashboard chat #301 (#36658) 2026-06-28 14:18:47 +05:30
gatewayTypes.ts feat(tui): reach the model picker without wrecking your draft, and switch mid-turn (#74756) 2026-07-30 10:18:30 +00:00
theme.ts fix(tui): paint the OSC-10 default foreground on quantizing terminals 2026-07-27 01:59:51 -05:00
types.ts fix(tui): keep MoA reference blocks visible when the thinking section is hidden 2026-07-23 18:11:57 -07:00