v1.0 Build 29 — Persistent TURN cache, slider auto-solver, Backup & Restore
Highlights
10 days of work, 62 commits since v1.0-build24.
Reliability — TURN credential persistence
- VK TURN creds now persist across launches in App Group
creds-pool.json. - Per-slot saturation cooldown driven by
last_used_at— only the slots VK still holds allocations on are skipped, the rest load immediately. - Periodic save (60s) keeps the on-disk view fresh through extension jetsam.
- Pending creds: recently-used disk creds load and mature past the saturation window instead of being skipped outright.
Reliability — freeze-aware watchdog
- Tick-gap detection in watchdog / zombie probe / DTLS recv suppresses false positives when iOS pauses the process for minutes.
- TX-vs-RX cross-check in
WakeHealthCheckfor fast post-wake recovery without spuriousForceReconnects.
VK hostile mode mitigation
- Slider auto-solver on top of PoW captcha keeps the connect flow clean while VK runs in hostile mode (PoW returns
status:ERROR).
UX — Settings → Backup & Restore
- Export Full Backup: gathers all
@AppStorage(WireGuard keys, VK link, peer, tuning knobs) pluscreds-pool.jsoninto one JSON via Share Sheet. - Import Full Backup: inverse via DocumentPicker, gated by a confirm alert that surfaces the backup's date and TURN-cred count.
- Reset TURN Cache: deletes only
creds-pool.json— pool is rebuilt by the regular VK API path on next connect.
Defaults
NumConnections: 10 → 30credPoolCooldownSeconds: 120 → 150
Empirical validation
- 30/30 conns + 4/4 pool slots within ~4 min from cold start (
vpn.wifi.20.log). - Fresh-install path (Reset → Connect with no cached creds) recovers cleanly through PoW + slider with tunnel up at ~28s (
vpn.wifi.0.log). - Import + Connect: 6 cached slots loaded, tunnel up in ~3s (
vpn.wifi.1.log). - Multiple overnight sleep cycles (7+ hours) without deadlocks since the freeze-detection rework.
Known issues
- iOS-stuck-VPN after install-on-running-extension: dev-flow only, workaround is manual Disconnect before
xcrun devicectl install. - VK hostile mode: PoW grinding for fresh fetches is slower than usual; cached creds avoid this entirely.