Teaching Greenhouse to preview vault audio in-app
A spike into Tauri's asset protocol, a runtime-scoped grant for a user-chosen vault, a narrow CSP widening, and an autoplay bug the a11y tests caught first.
Notes on the software, games, and music coming out of Imperfect Systems.
RSS feedA spike into Tauri's asset protocol, a runtime-scoped grant for a user-chosen vault, a narrow CSP widening, and an autoplay bug the a11y tests caught first.
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 one-line docs fix turned into three meanings of one hostname, a renamed runner directory, and automation reintroducing the bug it was meant to prevent.
The apex domain sent no mail and had no SPF or DMARC, which meant anyone could forge it. Two DNS records, ninety seconds in a dashboard, one dig to verify.
The site-wide mobile clipping bug that didn't exist: headless Chrome silently clamps to a 500px floor and crops the screenshot to whatever width you asked for.
A null CSP, a config value joined onto a filesystem path unchecked, and a vault picker that would accept your home directory - none broken yet, all unlocked.
Page 9 of 19