- Fixed the turn-based pipeline never starting a turn with firmware that listens in
automode: the server now detects the end of speech itself, soopenai_compatible,tokenhubandopenrouterwork on stock devices that never sendlisten:stop. A device's ownlisten:stopstill ends the turn when it arrives first. Newcompatible_server_vad(default on) andcompatible_vad_silence_ms(default 800 ms) options. - Fixed compatible base URLs ending in
/v1producing/v1/v1/...request paths, which made every STT, LLM and TTS call fail against an endpoint copied from the settings hint, including the built-in OpenRouter default. Both spellings are now accepted, and model discovery uses the same rule. - Added a configurable
openai_base_urlfor the realtime provider, so any endpoint implementing the OpenAI Realtime protocol can be used instead ofapi.openai.com. Third-party realtime endpoints are untested. - Added incoming-audio reporting (frame/byte counters every 10 seconds, plus the listening mode the device announced) so a stalled pipeline can be told apart from missing audio, and made a turn that produces no audio report its end instead of leaving the device waiting.
- Adopted AGPL-3.0-only for the current combined project, retaining original third-party notices and all previously granted MIT permissions. Existing HA beta.3 and macOS 0.1.1 release artifacts are unchanged.
- Added bilingual voluntary-sponsorship and contribution policies. Sponsorship is not a condition of commercial use, a royalty, a copyright transfer, a support contract or a commercial-license exception.
- Added the maintainer-confirmed PayPal link (paypal.me/unitekno) to GitHub funding settings and prominent README badges.
- Added source/license/support links to the shared settings and login pages, project/retained license files to packaging, Go dependency notices to container builds, and a corresponding-source release checklist.
Upgrade and testing notes
- HA: back up the add-on, refresh the add-on store, then update to
2.8.0-beta.4and restart. Existing options and/dataare kept; the two new turn-detection options default to the values above, so no configuration change is required. - Docker: fetch the updated source, preserve
.envand the mounted data directory, then rundocker compose -f docker-compose.standalone.yml up --build -dfromstackchan-server. Containers are built from source; no prebuilt registry image is published. Existing containers do not update merely because GitHub changed. - macOS: the independently versioned
macos-v0.1.1universal DMG remains the current download; this HA/container release does not replace that artifact. - If a compatible base URL was written without the trailing
/v1to work around the 404s, both spellings now resolve to the same request paths, so no edit is needed either way. - Not verified: the server-side turn detection is covered by unit tests only. No physical device running factory firmware in
automode was available, and live AI-provider, HA Supervisor/Ingress and real audio checks remain outstanding. The pre-existing vet warnings ininternal/web_socket/web_socket.goare outside this release.
Reported in #14: factory firmware listening in auto mode never sends listen:stop, so the turn-based pipeline never started a turn. Thanks to @woshiyig for the detailed report.