-
v2026.08.08 — the genre list gets an A–Z, and stops shouting EDM as "Edm"
Stabletest-web / test (push) Successful in 49stest-go / test (push) Successful in 1m9stest-go / integration (push) Successful in 5m1srelease / Build signed APK (tag releases only) (push) Successful in 4m2srelease / Build + push container image (push) Successful in 14srelease / Verify release artifacts (tag releases only) (push) Successful in 2sreleased this
2026-08-07 22:04:58 -04:00 | 0 commits to main since this releasePer-day CalVer. Server + web, no schema migration. Merged via PR #124;
mainataa9f534f, CI green across the Go lane, the web lane, the integration suite and the image build.A small release, and mostly the end of a thread rather than a new one. The last three days fixed genre data that turned out to be broken in two separate ways; this is what's left once it's actually correct.
The category system isn't happening, and that's the right answer
Three days ago the plan was to roll your genre tags into curated categories, because the list looked unusable. You'd said it would "pile up fast and not be user friendly," and you were reading the screen accurately.
Now that the underlying data is fixed, here's what your library actually contains:
391 genres across 90,774 tag applications — about 3.7 genres per track.
That ratio is the whole argument against categories. Because a track already appears under every genre it claims, grouping them adds nothing you don't already have — and it would actively destroy the useful part.
Neurofunk,Wassoulou,Soukous,Emoviolenceare not noise to be tidied into "Electronic" and "World"; they're the most precise labels in your collection, and something in there is the only thing that describes those records properly.The mess was never your tagging. It was Minstrel welding multi-value tags together and then keeping ghost entries for deleted files — both fixed in the last two releases. Worth stating plainly because the earlier plan was built on the assumption that your files were the problem.
So instead: an A–Z
The genre list already had a filter box. It now also has a sort control — Most tracks or A–Z.
Most-tracks stays the default, because the top of that list is genuinely where you're going. A–Z is for the other case: you know roughly what the thing is called and you just need to find it among several hundred rows. When you filter, the count now reads "12 of 391" so you can see what the filter did.
Both are instant — the whole list is already in the browser, so neither one asks the server anything.
EDM is spelled EDM
Something in your tagging history title-cased the entire genre field, which left your library saying
Edm,Idm,Aor,Uk Garage,Trap Edmand — the one that gives the game away —Children'S Music.Those are now repaired when the file is scanned, not just prettied up on screen. That distinction matters: your taste profile reads genres straight from the library, so a display-only fix would leave it quietly learning "Edm" as a tag while showing you "EDM", and any correctly-tagged file would have contributed a second, separate tag for the same thing.
The repair only ever changes capitalisation, never letters — so it cannot silently turn one genre into a different one. That's the line that keeps it from becoming the category system by the back door. It handles two things: a short list of initialisms, and possessives like
Children's. Names keep their capitals, soO'BrienandD'Angeloare left alone.What deliberately wasn't touched
AlternRock— 10 tracks. That's not damage, it's the genuine 1990s spelling of entry 40 in the original ID3 genre table, which is what those files literally reference by number. You chose to keep that table faithful, so it stays, and there's now a test making sure nobody "helpfully" fixes it later.Rockandrockstill list separately. Genre capitalisation is otherwise shown exactly as your files say it. Deciding those two are the same is a judgement about labels; deciding there's no genre called "Edm" isn't.Nine non-music labels —
Non-Music,Interview,Nature Sounds,Field Recording,Spoken Word,Drumline,Christmas Music,Comedy,Sound Art. Those are accurate descriptions of those files, so they're staying.
Install
Redeploy the server image. No migration this time.
Then let a scan run, or trigger one from Admin → Library. The casing repair needs to re-read your tags, so it reaches existing tracks on that scan rather than only new files. That re-read reuses durations it already knows, so it costs tag reads and no audio probing — noticeably faster than a first-time scan.
What to look at afterwards
- Library → Genres — the new Sort control, and
EDM/IDM/UK Garage/Children's Musicreading correctly once the scan has run. - Filter to something and check the "12 of 391" count matches what you see.
- If you're curious whether it worked at all:
AlternRockshould still be there. It's the deliberate exception.
Known and deliberate
The acronym list is short and driven by what your library actually contained, not by guesswork — a speculative list risks mangling a word that merely looks like an initialism. If you spot another one reading wrong, it's a one-line addition.
Anything needing a letter change rather than a case change is out of scope by design, and would be a different feature with different risks.
🤖 Generated with Claude Code
Downloads
- Library → Genres — the new Sort control, and