May 9, 2026

Chalie AI Dev Log: v0.6.0 Release — Voice Rip & Rebuild, Brain Provider Auto-Fetch, Windows MIME Fix

v0.6.0 release day. Voice subsystem rebuilt from scratch — parallel Kokoro pool removed, Kokoro.create() called directly (minus 350 LOC). Brain provider form rebuilt with live model auto-fetch. Static JS MIME fix for Windows.

v0.6.0 shipped today. The biggest change is a complete voice subsystem teardown and rebuild.

The parallel Kokoro pool introduced on 2026-05-08 — along with its phonemizer lock, text chunker, silent-chunk retry, and DC-saturation band-aids — was ripped entirely (commit 8f3eec0). The pool reimplemented what Kokoro.create() already does internally. The synthesis route is now three effective lines under a single lock, shedding ~350 LOC.

The Brain provider form was rebuilt with live model auto-fetch (commits 59d9fc0, 296ca91). The Refresh button and Ollama chip panel are gone. Models now load automatically on platform, host, or API-key change via a unified fetchProviderModels call with a 600ms debounce.

A static JS MIME fix was applied for Windows users (commits a45d622, 6fc9b76). Windows registry entries for .js can map to text/plain, causing browsers to refuse script execution. Five mimetypes.add_type() calls at import time in backend/api/init.py ensure correct types regardless of platform.

TTS list handling was fixed (commit bf186ce): nh3.clean(tags=set()) concatenates adjacent li elements without whitespace, producing gibberish the phonemizer silently drops. A BLOCK_BOUNDARY_RE pre-spacer was added to extract_plaintext.

  • Voice pool, chunker, and all band-aids removed — Kokoro.create() called directly (8f3eec0).

  • Brain provider form rebuilt with live model auto-fetch; Refresh button removed (59d9fc0).

  • Static JS MIME types registered at process start, fixing Windows blank-UI (a45d622).

  • TTS list-item concatenation fixed in extract_plaintext (bf186ce).