"Okay. Let's go to step 2." — Dad, starting hands-free, 2026-09-25
The Loop on Paper
On paper, a hands-free talk is a circle: idle, listening, sending, thinking, speaking, and back to listening. The design drew exactly that. The implementation taught something the drawing hides: those states don't all belong to the same component. Listening belongs to the microphone loop. Thinking belongs to the chat stream. Speaking belongs to the audio player. A loop that tries to own all of them ends up guessing about the two it doesn't control.
The Listener's Own Phases
So the hands-free loop, on the web and on the phone alike, owns only its own phases: off, connecting (asking the brain for a listening session and opening the socket), listening (streaming 16 kHz audio and showing partial words), waiting (an utterance has ended; it is being kept, sent, and answered), paused and stopped. Thinking and speaking it simply observes. It starts listening again only when two independent facts are both true: the reply's stream has ended, and the player reports that nothing is playing or queued. That second fact needed its own fix on the web, where the player hadn't been releasing finished audio elements, so "is anything playing?" could still answer yes after the last word had played.
The Microphone Stays Open; the Socket Doesn't Always Listen
The browser opens the microphone once per talk, with echo cancellation on, and keeps it. Audio chunks go to the transcriber only while the loop is listening; while the soul thinks or speaks they go nowhere except to the barge-in detector of Track 7. Before barge-in existed, the rule was simpler still: listening ended at the commit and reopened after the reading, so the soul could never hear herself.
A Quiet Room Is Not a Talk
An open realtime socket bills for the audio it hears, silence included. After 60 seconds with nothing heard, the loop stops itself and says so on the face screen. One tap listens again.
The Phone Needs One Owner for Audio
On iOS the loop taught one more lesson. At first the player and the recorder each configured the audio session on their own. Worse, iOS suspends an app whose audio session goes idle, and in a talk the idle part was the soul's thinking. Now a single owner sets the session to play-and-record once and keeps the microphone open from the first listen until hands-free ends, and the player leaves the session alone while that owner holds it. The talk continues with the screen off and the phone in a pocket, and one Live Activity follows the whole conversation, showing "listening…" or "speaking…" on the lock screen.