Cleaning up abandoned tooling taught me two things npm and git don't tell you
An npm uninstall that leaves a 44MB binary behind, and a stash whose label records where HEAD was pointing, not what the diff is about.
Notes on the software, games, and music coming out of Imperfect Systems.
RSS feedAn npm uninstall that leaves a 44MB binary behind, and a stash whose label records where HEAD was pointing, not what the diff is about.
A clean stash apply, a SwiftLint rule pattern-matching syntax instead of tracing consumption, and a three-tab stall that wasn't the bug I'd fixed.
A grouped 12-update dependabot bump hid a Tailwind major that broke loudly and an Astro major that broke silently, triggered by one unmerged branch.
One PUT endpoint, an error-mapping decision (409 is the optimistic lock, 422 is your fault), a PRD that pointed at a file that doesn't exist, and a salvageable stash on a dead branch.
Authorization is not subscription, an error type that doesn't exist, and a finished fix sitting invisible in git stash while I rebuilt it from notes.
A kanban board rendered a prop that went stale the moment other data changed, and every mocked test passed because a mock can't express staleness.
The check that shows up on merged PRs is Cloudflare reporting a build that already ran, not a pre-merge gate - so the gate became a synchronous local build instead.
Tauri's asset-protocol scope has an allow_directory and no revoke - so switching vaults became a restart, trading instant switching for a security property that actually holds.
Nine dead Postiz columns, a memoization where Rails.cache would have defeated the encryption, three Ruby filters moved into SQL, and unreachable code that wasn't.
Compliance by construction: a remark plugin that fails the build when an affiliate link ships without its disclosure, packaged the same way as the shared blog components.
Page 3 of 16