Restaurant Voice Engine Realtime S2S + deterministic backend · simulated restaurant · browser tester

no session

Conversation transcripts are asynchronous observability aids, not what the model perceived

Next action rev –

Customer / session

Focus task

All tasks focus highlighted

Demand every recognised ask, served or not

Effects simulated; never a real POS / booking / SMS / PBX

Mock controls

Export trace (JSONL)

turn type src stop→committed committed→requested stop→args backend passes ack (text, onset/length, state) ack→reply seam stop→any sound stop→useful reply first output

ms, browser-side clocks on localhost. stop = server VAD end (or the typed turn); the caller's acoustic end is about the VAD silence window (300 ms by default) earlier. committed = the caller turn joined the conversation (input_audio_buffer.committed, the causal boundary). requested = the backend's response.create (controller scheduling only). stop→args = complete arguments of the first tool call; backend = tool execution; passes = model responses in the turn (2 = tool pass + answer pass; 3 with a progress line). On WebRTC the sound and reply columns are real playback (output_audio_buffer.started, what the caller hears), not generation. stop→any sound = the first thing the caller hears (a progress line, an experimental clip, or the reply itself); stop→useful reply = the reply that carries the answer or the next question; a progress line or a hum never counts as the useful reply. type: no_tool, routine_tool, slow_operation (a progress line was requested), suppressed (noise). ack = the brief acknowledgment the model spoke in its first response before the tool call (selective speech): onset after the turn end, audio length (a tilde marks an estimate from audio tokens when the reply joined its buffer), delivery state (generated, queued, playing, played, cleared). seam = silence between the acknowledgment's end and the reply's start; "joined" means the reply's audio followed in the same buffer without a gap. A useful-reply value marked est is estimated as the acknowledgment's end (its start plus its length) because no separate playback start exists for a joined reply. "first audio" = output phase of the first audible response; progress means the live progress line, commentary (pre-tool) a preamble spoken before a tool call, filler an experimental clip. Not phone-network latency.