The whole-library scan I thought I'd already fixed
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.
Notes on the software, games, and music coming out of Imperfect Systems.
RSS feedA 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.
An archived YAML crate, nine minor versions of rusqlite drift, and a duplicate thiserror major. The work was the reading, not the writing.
Dead CI, live deploys: folding every job onto the homelab runner, deleting the hosted-runner compensation machinery, and the CVE backlog waiting behind the gate.
Dependency scanning without a new CI job, grouped update PRs, and the virtual-workspace detail that makes the cargo entry point at the wrong directory.
A one-time cleanup fixed 80 posts and promised nothing. The second fix is twelve lines that fail the build, with zero exceptions.
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.
The UI arc: a wizard shell built before its steps existed, a capture flow torn out for being wrong, and the gap between green checkmarks and the truth.
118 green tests, a clean simulator pass, and dead buttons on a real phone. The bug was a @MainActor service doing synchronous work between awaits.
The folder layout that outlives the app: zones versus stages, a config that refuses to overwrite itself, a database printout, and adopt-in-place import.
Page 11 of 16