The promise
Bulletproof Strictness is what makes the "uninstall it in a moment of weakness, the blocks survive" claim literally true. It's not a setting you toggle — it's the architecture of how blocks are enforced on Pro.
The three persistence tiers
- Tier 1 — user-facing block list in your user-domain preferences. What the FocusDragon app reads and writes. Untouched when the app bundle is trashed.
- Tier 2 — root-owned daemon config at /Library/Application Support/FocusDragon/config.json. The daemon polls this every 2 seconds and enforces independently of the FocusDragon UI process. This is the source of truth at enforcement time.
- Tier 3 — the LaunchDaemon plist at /Library/LaunchDaemons/com.focusdragon.daemon.plist, registered through the macOS Login Items system. Survives anything short of an explicit launchctl unload plus plist removal.
AppBundleProtector
During an active block, the daemon keeps a fresh backup of /Applications/FocusDragon.app at /Library/Application Support/FocusDragon/app-backup/. If you drag the app to Trash mid-block, the protector restores it within ~5 seconds. The UI reappears, the daemon never stopped enforcing.
When no block is active, the protector doesn't restore. After 30 seconds with no app and no active block, the daemon cleanly tears itself down. Legitimate uninstalls work normally — the protector only resists tampering during enforcement.
What Bulletproof CAN'T survive
- Selling or erasing the Mac — a clean wipe removes everything, including the daemon.
- Booting from a recovery partition and manually editing /Library — possible but requires admin password and is well beyond impulsive tampering.
- Reinstalling macOS from scratch.
Bulletproof is a Pro feature. The free tier uses the same daemon but with simpler persistence — manual uninstalls work normally there.