Releases
v0.40.0
Compare
Sorry, something went wrong.
No results found
0.40.0 (2026-07-10)
Features
admin: booth-log prompt summaries, shadcn scroll areas, segment fire pads (#958 ) (5897729 )
admin: library search paging, sounds-like search mode, URL-persisted state (#967 ) (5049787 )
admin: per-call TTS log in the debug panel's TTS routing card (#960 ) (a24a5c3 )
admin: support multi-file jingle import (#952 ) (990b035 )
app: web-player parity, sleep timer, Google Cast + AirPlay connectivity (#970 ) (0b060a3 )
broadcast: configurable Icecast listener cap (ICECAST_MAX_CLIENTS) (#978 ) (3a56a1b )
connect: discoverable API — explorer, playground, HTTP MCP (#928 ) (6ac4b0c )
dj: add ElevenLabs v3 audio-tag hint to the system prompt (#916 ) (718f5fa )
library: manual playlist creation in admin library + Navidrome library-scoping docs (#704 ) (#953 ) (aa0f046 )
llm: pool-mode segment path, pick prompt diet, and llm-bench harness (#961 ) (42ca3ac )
mix: tail-loudness-shaped exit canvas + boundary-key matching (#972 ) (69cea9a )
observatory: WebGL galaxy renderer replaces SVG + canvas maps (#957 ) (35bcda2 )
personas: system-prompt template library with switching + modal editor (#955 ) (d1f00c3 )
search: Brave Search API as web-search backend (#623 ) (#984 ) (a82a23c )
shows: multi-value genre/mood/energy/era show filters (#929 ) (#951 ) (53e0524 )
stations: add Radio Parra Vergara (#944 ) (5e06195 )
tools: import track analysis from AudioMuse-AI (#934 ) (5f81f9a )
tts: choose which heavy TTS engines load via TTS_HEAVY_ENGINES (#956 ) (3078d4d )
tts: expose ElevenLabs voice_settings globally under tts.cloud (#915 ) (5036bc1 )
tts: operator-editable speech corrections in admin settings (#981 ) (c34df62 )
web: now-playing UX — up-next tease, clock toggle, off-air state, cover placeholder (#968 ) (6bd35f6 )
Bug Fixes
address develop→main review findings (leaked reasoning, ElevenLabs, AudioMuse importer) (#954 ) (bbf1be5 )
analyzer: local backend reports real CLAP/Demucs capability + AIO-aware doctor hints (#983 ) (f6ec6ad )
dj: slim the programme-plan capability menu to one line per kind (#950 ) (26fb586 )
doctor: analyzer heavy-image hints cover non-compose installs (#974 ) (ae6d476 )
llm: force parallel_tool_calls:false on openai-compatible tool requests (#945 ) (c2adb64 ), closes #940
llm: honour forceNoThink on openai-compatible/locca picker legs (#935 ) (42f78ee )
llm: never air truncated reasoning (handoff spoke its own instructions) (#949 ) (0ddc54f )
llm: resolve GLM structured-output and thinking-suppression failures (#923 ) (1434e91 )
picker: tolerate small-model id transcription slips (#939 ) (#948 ) (233fea6 )
stations: Brisflix Radio showed offline — url carried a /listen path (#964 ) (9f8085f )
tts: apply speech speed locally for openai-compatible cloud TTS (#982 ) (bb78a0d ), closes #942
tts: normalize display text to spoken form; never air intro fragments (#965 ) (04c3393 )
Performance
web: canvas waveform visualizer — log-frequency bars, calm-mode gating (#973 ) (4021b21 )
Documentation
skills: add subwave-discord-release skill (#941 ) (e7bc827 )
You can’t perform that action at this time.