发布

  • Quick-ask bar: voice-response and screen-share toggles (#803)

    frostbyte_neo 发布于 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)
    下载附件