Layer 1 (PacketTunnel-DNS-Sinkhole) blockte nichts: `startTunnel` lud 0 Hashes, obwohl `blocklist.bin` 330k Hashes hatte. Ursache: `syncBlocklist` setzte `URLFileProtection.complete` — die Datei ist damit bei GESPERRTEM Gerät unlesbar. Der PacketTunnel wird OS-getrieben (on-demand) auch während Lock-Phasen neu gestartet → `open()` schlägt fehl → 0 Hashes → Layer 1 tot bis zum nächsten App-Sync. Beweis aus den Extension-Logs: `blocklist reloaded` (Darwin-Notif nach App-Sync, Gerät entsperrt) = 329k-330k Hashes; `startTunnel → blocklist geladen` = 0 — dieselbe Datei, dieselbe Path. Fix: `.complete` → `.completeUntilFirstUserAuthentication` (blocklist.bin + webContent-Cache). Bleibt at-rest verschlüsselt (DiGA-konform), ist aber nach dem ersten Entsperren seit Boot lesbar — die korrekte Klasse für eine Datei, die eine Network-Extension 24/7 lesen muss. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Description
Self-hosted mirror of rebreak monorepo
Languages
TypeScript
68%
Vue
7.9%
Swift
7.7%
Shell
4.2%
JavaScript
3.1%
Other
8.9%