Straight from the mic
The headset streams 24 kHz audio from the browser itself — no media server, no phone app.
audio → one WebSocketA cook says “86 salmon” into a headset. The moment the transcript lands it’s greyed out on the kitchen display, the servers’ screen and the online menu — no ticket printing, no shouting, no tapping a greasy screen.
The loop 01 → 04
The headset streams 24 kHz audio from the browser itself — no media server, no phone app.
audio → one WebSocketSpeech-to-text, LLM and speech on one connection, with keyterms for every dish and call-out.
prompt · 10 tools · keyterms · voice focusA strict command grammar acts on the transcript at once; the model confirms and handles fuzzy phrasing.
mark_86 · fire_ticket · flag_allergyKitchen display, servers’ screen and the online menu all update from the same state.
kds · foh · menu — <1sWhat the line says / what happens
Four screens, one Durable Object
The cook’s voice station: live transcript, event log with latency, every command lands here first.
/station→Tickets with ages that turn amber then red, allergy banners, an all-day tally — tap to bump.
/kds→What servers can sell right now, how many are left, and the kitchen feed as it happens.
/foh→The delivery customer’s view. Sold-out dishes grey out mid-order and the cart loses them.
/menu→Measured, not claimed