Made the invisible window observable — evidence that survives a restart
The safeguard above was completely silent: if it worked, nothing would show it had run, and two separate evenings of device testing ended with no answer for exactly that reason. The problem is that the few minutes after a restart, before the first unlock, are the one window where the app's usual record-keeping cannot write anything at all — so the very failure we needed to observe erased its own evidence. This adds a record that stays writable in that window, readable afterwards on the phone itself with no computer attached, plus a switch that forces the safeguard's decision on demand so it can be tested in seconds rather than waited for. Two details earned their place under adversarial review: the record can distinguish a genuinely-never-unlocked phone from a merely locked one, which nothing before it could; and it reports its own write failures, because a broken recorder and a clean result would otherwise look identical — and that mistake would read as a pass.
Share This Ship
🏗️ Shipped: Made the invisible window observable — evidence that survives a restart 🧵
The safeguard above was completely silent: if it worked, nothing would show it had run, and two separate evenings of device testing ended with no answer for exactly that reason.
The problem is that the few minutes after a restart, before the first unlock, are the one window where the app's usual record-keeping cannot write anything at all — so the very failure we needed to observe erased its own evidence.
This adds a record that stays writable in that window, readable afterwards on the phone itself with no computer attached, plus a switch that forces the safeguard's decision on demand so it can be tested in seconds rather than waited for.
Two details earned their place under adversarial review: the record can distinguish a genuinely-never-unlocked phone from a merely locked one, which nothing before it could; and it reports its own write failures, because a broken recorder and a clean result would otherwise look identical — and that mistake would read as a pass.
Follow the build → build-log-five.vercel.app #diagnostics #reliability #verification #buildinpublic