feat(desktop): redesign the clarify prompt + fix its awaiting-input states - #52993
Merged
Conversation
The inline clarify panel used its own card tokens, an animated ring, and oversized spacing — out of step with every other tool row. Rebuild it on the shared --ui-*/--conversation-* tokens: a compact panel, letter-key badges (A/B/C…) that double as a/b/c… shortcuts, an inline content-sizing "Other" field (CSS field-sizing — no view swap, no layout shift on focus), and a Continue button so picking an option selects rather than auto-sends. Selection lives on the letter badge alone (solid primary; outlined while Other is focused-but-empty). Also settle the panel into the standard tool block once the turn stops running, so a stopped turn no longer strands a live, unanswerable prompt.
A clarify/approval/sudo/secret prompt blocks the turn on the user, but the UI treated it as an in-flight turn: the "thinking" timer kept ticking and Esc interrupted the run — discarding a question you might want to come back to. Add $activeSessionAwaitingInput (the pet's awaitingInput concept, scoped to the active session) and use it to suppress the stall indicator and disarm Esc while a prompt waits. Clear the session's prompts (and needsInput) on Stop and on turn end so a resolved/aborted turn can't leave a dead panel or a stuck "needs input" dot.
OutThisLife
enabled auto-merge
June 26, 2026 08:56
18 tasks
1 task
waefrebeorn
pushed a commit
to waefrebeorn/slermes
that referenced
this pull request
Jul 2, 2026
…arify-redesign feat(desktop): redesign the clarify prompt + fix its awaiting-input states
habarmc1223-sudo
pushed a commit
to habarmc1223-sudo/hermes-agent-fluxmem
that referenced
this pull request
Jul 8, 2026
…arify-redesign feat(desktop): redesign the clarify prompt + fix its awaiting-input states
santhreal
pushed a commit
to santhreal/hermes-agent
that referenced
this pull request
Jul 13, 2026
…arify-redesign feat(desktop): redesign the clarify prompt + fix its awaiting-input states
Gravezzz
pushed a commit
to Gravezzz/hermes-agent
that referenced
this pull request
Jul 21, 2026
…arify-redesign feat(desktop): redesign the clarify prompt + fix its awaiting-input states
leewenjie
pushed a commit
to leewenjie/hermes-agent
that referenced
this pull request
Aug 7, 2026
…arify-redesign feat(desktop): redesign the clarify prompt + fix its awaiting-input states
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The desktop clarify prompt (the inline "answer this question" panel) was visually
out of step with the rest of the chat and had a few awkward lifecycle states.
This reworks both: a clean rebuild on the shared design tokens, plus modeling a
pending prompt as paused-on-you rather than an in-flight turn.
What changed
Redesign (
clarify-tool.tsx)--ui-*/--conversation-*tokens — compact panel, nobespoke card/animated ring, reads as part of the transcript.
A/B/C…) that double asa/b/c… keyboardshortcuts; selection lives on the badge alone (solid primary; outlined while
"Other" is focused-but-empty).
field-sizing, sameprimitive as the commit bar / search field) — no view swap, no layout shift on
focus.
Continuebutton (orEnter) confirms. Focusing "Other" deselects any choice, so the two inputs can
never both look selected.
a stopped turn never strands a live, unanswerable prompt.
Awaiting-input behavior
$activeSessionAwaitingInput(mirrors the pet'sawaitingInputconcept,scoped to the active session) composed from the existing clarify/approval/
sudo/secret atoms.
isn't working, it's waiting on you.
Escno longer interrupts the run while a prompt is pending, so you can leavea question parked (per-session) and come back to it.
Stopand turn end clearthe session's prompts +
needsInput, so a resolved/aborted turn can't leave adead panel or a stuck "needs input" dot.
Notes / out of scope
clarifytool's protocol returns onestring (max 4 choices + Other) across all surfaces (CLI/TUI/gateway/desktop).
Real multiselect is a separate cross-surface change; the new UI is already
shaped to drop in checkboxes when that lands.
Test plan
tsctypecheck cleanvitest— clarify/prompts/approval/prompt-actions/state-cache/thread-loading (86) + new$activeSessionAwaitingInputcontract testsa/b/c; type in Other (grows, no shift);Continue/Enter;Skip; hitStopmid-clarify (panel settles, dot clears); switch chats and return (prompt still parked)Screenshots
To attach: the rebuilt panel (choices + letter badges), the content-sizing "Other" field, and a selected/Continue state.