The Discover tab that got permanently stuck digging
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.
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.
brew install swiftlint means "whatever's stable today," and the CI run most exposed to that drift is the release tag. The pin point is the portable binary, not a formula.
Extracting algorithms out of MusicKit's reach, a mock parameter that was silently ignored, and two tests that had been passing for the wrong reason all along.
A MusicKit service-layer cleanup where deleting dead methods crashed every test at once - and the fix was a clean build, not a debugger.
Three sequential fetches where one wasn't even needed up front, two quadratic recomputes, and a linter that exposed why I was really writing all those comments.
Synthesized Codable conformances inherit default MainActor isolation too, and async let has stricter demands than the task you already have.
A pattern doesn't get fixed once. One more main-actor library scan hiding on a write path, and the batch API that was only wired in one direction.
Library ids fed to catalog requests: two symptoms, one bug, a device-verified fix, and the 1,610-artist number that forced a redesign.
The Not Interested store only ever kept keys. Then it had to become a screen, and the model needed to carry its own description.
Page 2 of 4