Skip to content

v0.40.0

Latest

Choose a tag to compare

@perminder-klair perminder-klair released this 10 Jul 20:32
99e7d0b

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)