--- theme: agent-delivery heading: "Speaking into a session from the backend" kind: theme --- **Correction, 2026-08-21: the door exists, and three entries in this file said it did not.** The claim that `pushTurn` has exactly one caller (the chat websocket) is **stale**. `api/chat/nudger.ts:102` calls `startClaudeTurn({ ws: null, … })` — a turn started server-side, with no browser attached, into a live session. Whoever is watching the chat sees it arrive the same way they would see a turn typed in another tab. `startNudger()` is wired at `server.tsx:182` and ticks once a minute against a `nudges` table. So **both** "missing" pieces are built: a recurring trigger, and a way to put a prompt into a running session. What remains is narrower, and worth doing.