A 500 that was hiding inside a mounted engine's isolated routes
The jobs dashboard returned a 500 instead of a login page: bare route helpers resolve against the engine, not the app. One line, plus its dormant twin.
Notes on the software, games, and music coming out of Imperfect Systems.
RSS feedThe jobs dashboard returned a 500 instead of a login page: bare route helpers resolve against the engine, not the app. One line, plus its dormant twin.
A five-finding cleanup batch where the smallest item mattered most: a regression test that failed because the bug it targeted is structurally unreachable.
A cleanup issue with a wrong rationale, a docs sweep that wasn't needed, and the orphaned credential a review caught.
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.
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.
Page 9 of 14