dd63180e44
Step 4 of the QA list, pinned as a test rather than checked by hand: the deploy has llama-server up and stopping it to look is not available here. Both halves of a turn call the model. The cascade falls to the classifier and the replier falls to the stub, and each was covered separately by a stubbed error value. This wires a real client at a closed port so a dial error walks the whole path, and asserts three utterances still come back with words. Also pins that daemonAPI.Chat errors only when the voice path was never wired, which is what keeps mavweb's /api/chat off its error branch when the model is down. mavweb never returns 500 there in any case: it redirects to /chat.