Repository navigation
feat(web): restyle ask_user prompt as a composer-style selector - #818
Merged
Merged
Conversation
While an ask_user request was pending, the Q&A card sat above the composer as a mismatched white card with its own footer buttons. Replace it with a selector that takes the composer's place and wears its exact language (chat-composer-edge hairline, bg-surface-composer, 20px radius): option rows, a divider, a "tell the bot more" free-text input that submits on Enter, and a Submit / Cancel pair at the bottom. Cancel resolves the request as canceled and hands the focused composer back; picking an option also reveals the composer so the user can keep typing. Single-select keeps option vs custom text mutually exclusive in the UI, mirroring the backend rule; multi-question requests keep per-question inline inputs. The bottom backdrop mask now measures whichever box stands in for the composer, via the shared COMPOSER_MASK_BELOW_PX. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
qqqqqf-q
approved these changes
Jul 16, 2026
Member
There was a problem hiding this comment.
LGTM — ask_user 选择器和 composer 视觉统一方向没问题,diff 范围也干净(6 个 web 文件,无 ACP 混入)。底部遮罩跟着替身盒子走这点处理得细致。先合。
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
UX polish for the
ask_usertool prompt in the web chat. The pending Q&A used to render as a small white card floating above the composer, with its own visual language (card border, tiny text, footer Submit/Cancel row) that clashed with the input capsule below it.The prompt is now a selector that takes the composer's place and wears its exact language — same
chat-composer-edgehairline,bg-surface-composerfill, 20px radius and inner padding — so answering a question feels like part of the input surface rather than a bolted-on dialog:Behavior details
single_select, typing a custom answer clears the picked option and vice-versa, mirroring the backend's "exactly one of option / custom text" rule — Submit can never be armed with an invalid combination.textquestion routes its answer through the same footer input; multi-question requests keep per-question inline inputs (one footer input can't answer several text questions).COMPOSER_MASK_BELOW_PX), so no message bleed behind the capsule's bottom corners.chat.tools.userInputTellMorekey in en/zh/ja.Verification
vue-tsc --noEmitclean, ESLint clean,check-ui-contract.mjspasses (no new violations).vitest run apps/web/src/store— 444/444 pass.🤖 Generated with Claude Code