Numbered mixes no longer leave gaps in their numbering, and a slot is no longer recorded as written when nothing was.
Reported in #4: Artist Radio and Daily Mix counters starting at 2.
The number was assigned when the plan was built, before anything knew whether the mix could be written, and a mix with fewer than 10 tracks was then skipped in silence. The number went with it.
Four separate routes to that same missing number are closed:
- An artist who cannot fill a mix. Artists were ranked by total plays and never by how many tracks you own, so one starred track played five hundred times outranked the library and produced a one track Artist Radio. The eligibility floor is applied before the top 20 is taken, so a library with 20 or more eligible artists keeps the exact weekly rotation it has today.
- A genre that cannot fill a mix, which is the same shape on a different shelf. Here the floor measures capacity rather than track count, because the per artist cap means a genre with 20 tracks by two artists can only ever yield 6.
- The Daily Mix anchor throttled by the per artist cap. A mix built around one artist cannot then admit three of that artist's tracks. The anchor is exempt; every other artist is still capped.
- The Daily Mix anchor not recognised when an artist is tagged inconsistently with leading spaces, where Artist Radio saw 12 tracks and Daily Mix saw 9.
Two more things that nobody reported:
- A playlist write that failed on the server was recorded as done, so a transient error cost that slot for the rest of the day. Failures are now retried; only a real write, or a deterministic "not enough data yet", closes the slot.
- The silent skip now logs the mix name and its track count against the threshold. The report said "I don't see any useful info in the logs", which was exactly right.
15 new tests. Verified against 3000 generated libraries with deliberately uneven tagging: 19000 numbered mixes, smallest mix 10 tracks, no gaps.