-
Quick-ask bar: voice-response and screen-share toggles (#803)
发布于
2026-07-28 11:55:35 +00:00 - feat(x): voice-response and screen-share toggles in the quick-ask bar
The standup's merge-the-overlays decision, phase one. Two opt-in toggles
next to the send button:- Voice response: bar answers are spoken aloud. Per-turn (speakTurnRef
set at submit for quick-ask turns) so composer messages outside the
bar never start talking; segment player and fallback-speech net honor
it, sendConfig gets voiceOutput full. - Screen share: reuses the call engine's capture wholesale
(video.start camera-off + startScreenShare, incl. the black-frame
permission check) - frames ride along with bar submits and videoMode
composition is set. The bar absorbs the pill's consent duty outside
calls: lit toggle + pulsing dot is the badge, no pill appears, and the
share stops whenever the bar goes away (blur, Esc, open-in-app).
Actual state echoes back so a denied permission never leaves a lying
badge. Bar toggles never touch devices while a call is live.
-
polish(x): toggle tooltips open downward; slightly smaller input text
-
polish(x): slightly smaller Hold-right chip
-
polish(x): toggle tooltips actually open below
Radix collision logic flipped side=bottom back to top - the window edge
is ~24px under the buttons. Forced bottom with a compact tooltip that
fits the gap.- polish(x): toggle hover hints render below, inside the capsule
A portal tooltip can never open downward here - the window ends just
under the buttons and liquid glass needs the window exactly
capsule-sized. The hints are now tiny in-capsule labels in the ~24px
under each button, with shortened copy that fits.-
polish(x): white hover hints with dark text; drop the share-active dot
-
polish(x): slightly smaller mic glyph in the orb
-
polish(x): toggle hints adapt to the surface
Expanded panel: normal tooltips open upward (the panel gives them room).
Collapsed capsule: the tiny in-capsule labels below the buttons.-
polish(x): close button on the quick-ask discoverability toast
-
polish(x): discoverability toast - soft pop cue, lifted shadow, close at top right
-
polish(x): toast close button straddles the corner less
-
feat(x): drop the Voice call entry from the call menu
The quick-ask bar's voice toggle covers talk-without-devices; the preset
stays valid for programmatic callers.- fix(x): tell the model when a screen share has ended
Frames stay inline in history by design (pruning would bust prefix
caching), so after toggling share off the model kept answering 'what's
on my screen' from stale frames as if live. The first message after a
share stops now carries screenShareEnded in its user context, and the
encoder emits an explicit the-frames-are-the-past notice. One-shot:
exactly one message; re-sharing supersedes it.- fix(x): rename the stale-frame notice's state ref (collided with the share toast's)
下载附件