A tracklist section, and why it took 30 minutes
One protocol method, a reused state enum, a routing convention that held, and a lint budget that forced a split worth making anyway.
One protocol method, a reused state enum, a routing convention that held, and a lint budget that forced a split worth making anyway.
Measuring on device found a whole-library scan running on every Discover batch - and a 16x measurement trap where the HTTP cache flattered the wrong path.
A try? ?? [] made network failure indistinguishable from "no releases", which let an outage cache an empty feed over good data for 24 hours.
A filter setting only applied after relaunch, since a TabView keeps view models alive and seeded state stays frozen. The fix deleted a concept, not a bug.
CLAUDE.md is great for stable conventions, but bad at holding gotchas and hard-won lessons. That needs one shared vault, not a copy per repo.
A consumable that should have been non-consumable, a product ID you can never reuse, an archive that quietly didn't rebuild, and a rename with a two-week fuse.
A KVS blob with tombstones instead of CloudKit-everything, a decorator that keeps free users off iCloud entirely, and proving sync works with only one device.
The add-to-playlist action matched its sibling gesture on the same card - and fought the rest of the app. Picking the wrong reference point for "consistent."
A failed artist fetch never counted as checked, so one bad artist re-selected itself forever - and the fix tripped a second guard only a multi-round test could catch.
Six known drift items on the list, two more found by actually running the documented commands, and a rename fix that project memory made narrower than find-replace.
Page 2 of 5