Chat works now.
Chat works now. chat-server.example.js is a single dependency-free file that serves the kit and bridges the chat rail to the Claude Code CLI. Run it instead of npx serve and the assistant in the right rail is live: Ask and Act modes, streaming replies, threads that survive a reload, and a working stop button. Roughly 200 lines, commented to be read and replaced rather than trusted.
If you use a different model provider, replace one function. Everything else stands.
Voice removed. The talk-back picker and speaker toggle shipped in 1.0 wired to a hosted text-to-speech endpoint that was never part of the kit. An empty dropdown and a button that does nothing is worse than neither, so both are gone. If you want it, the contract is a POST /api/tts taking {text, voiceId} and returning audio bytes.
`API.md` added. Every write endpoint: what it takes, what it must return, and the three rules that will otherwise cost you an afternoon each. The fixtures always specified the reads; the writes lived only in the client code until now.
Fixes. Tasks nav count was never painted and sat at a dash forever. The Home tile printed a raw ISO timestamp. The header claimed a live back end while running on fixtures. Nav counts shipped baked and flashed wrong numbers before real data arrived.