1.12.0 (2026-09-05)
Features
- analyzer: add configurable concurrency (#1544) (12eb45f)
- compose: support relocating the stem cache (#1523) (cb646f5)
- controller: one arbitrated talk-slot scheduler for every spoken segment (#1505) (e2d49d4), closes #1500
- dj: announce-only link style — "This is <artist>" / "Next up, <artist>" (#1497) (324adf9)
Bug Fixes
- analyzer: read ANALYZE_MAX_BYTES through envInt on both sides (#1552) (7b318a4), closes #1549
- analyzer: remove the staging file when a capped download fails (#1547) (9d04488)
- beds: give the bed a real tail before the next song (#1485) (#1499) (452e459)
- controller: bound pending talk slot holds (#1546) (55024db)
- docker: build the web image on Node 24 to clear the TransformStream race (#1554) (0a7e2c4), closes #1535
- mix: make tempo-derived timing octave-safe (#1417) (#1434) (2f420b0)
- shows: don't cap artist share of the pool for a strict single-artist playlist (#1533) (6799cba)
Documentation
- document squash merge message cleanup (#1545) (1a5988a)
- skills: add a Todoist to-do nudge example skill (#1504) (174c347)
- skills: clarify custom feed tool contract (#1550) (b527408)