Commit History
27 days ago
-
Display server response timings in conversation history
Verified signature81d3c39
29 days ago
-
Remove Cerebras credit and correct STT model
9c4f0d5
-
Upgrade to the Agents SDK realtime client
399d582
-
Port authenticated voice session UX
2418688
-
Add SPEECH_TO_SPEECH_URL: deploy-pinned direct URL that overrides the LB
When set, the browser connects straight to it (shown read-only in Settings) and all load-balancer logic — session proxy, queue, metering, sign-in — is disabled. Also gitignore the local-only deploy_replica.py.1cfad64 -
fix: compact identity header on short viewports to avoid scroll
At ~690px tall (or a laptop window once browser chrome eats the viewport) the full-size identity block (~180px) left almost no margin and the app still scrolled. Add a max-height:780px tier that undoes the desktop type bump and tightens the header's rhythm (keeping title, blurb and credits), and a 560px tier that drops only the one-line blurb and the duplicate footer. The orb stays height-capped so it yields the remaining room. Co-authored-by: Cursor <cursoragent@cursor.com>70b6010 -
fix: prevent vertical scroll when embedded in a small box
Cap the orb size by height as well as width (min(38vw, 46vh)) and let the stage shrink so a short container scales the orb down instead of overflowing. Tighten paddings/gaps on short viewports and drop the (duplicate) footer under 480px tall, keeping the identity header intact. Co-authored-by: Cursor <cursoragent@cursor.com>02b8766
-
Warm up queue copy: overhug subline + funnier at-capacity modal
- Add a sentence-case reassurance line under the queued position ("Sorry, we overhugged! ..."), shown only while waiting in line. New #circle-subcaption element + style; toggled in setState. - Rework the at-capacity modal copy to the same tone ("Hugged to the limit").d2d793e
-
Add explicit Join gate, your-turn state, and at-capacity modal
After waiting in line the conversation no longer auto-starts: reaching the front holds a slot and shows a "your turn" orb with a "Join now" countdown button, so a slot is never spent on someone who stepped away, and the click is a fresh gesture that re-arms the AudioContext on iOS. Leaving or letting the countdown lapse refunds the reserved budget. When the whole waiting line is full, a warm "we're at capacity" modal (reusing the limit-modal shell) explains the wait instead of a terse error. Queue captions and retry messages reworded to be kinder.81940c4 -
Add waiting-queue UI and session-queue proxy
When the compute pool is busy the load balancer now hands back a queue ticket instead of a grant. The Space relays it end to end: - /api/session returns a grant or a ticket; /api/queue/{id} polls position and reserves the daily budget only at claim (re-checking it there), so waiting in line never costs usage time. Leave endpoints (DELETE + sendBeacon) drop the ticket; a full queue relays 503 {state:"at_capacity"}. - The client waits in the queue polling position, and uses a hybrid mic flow: permission is primed in the tap gesture, but the capture stream is acquired only once a slot is granted, so the mic indicator never glows while waiting. - New calm "queued" orb state with a "Leave queue" button; queue-full and ticket-expired land on a friendly retry state, not an error. CONTEXT.md gains the queue vocabulary (Queue, Ticket, Position, Claim, At capacity).da67b51 -
Deploy replica from source HEAD
Verified signature1f28297