c9c0cda2c1
Complete Tor toggle UX: - key(appRestartKey) wraps App — full Compose tree rebuild on toggle - TorManager at Window level — survives rebuild, no stop/start collision - Tor bootstrap gate at top of App — blocks ALL creation (clients, relays, Coil, subscriptions) until Tor proxy is ready. Zero clearnet during bootstrap. - Coil ImageLoader reinitialized after setInstance on each rebuild - Connection pool evicted on rebuild - DesktopTorManager retries start up to 3x (handles previous daemon stopping) - Settings reload from prefs on rebuild (fixes stale toggle display) - Confirmation dialog on mode change in both TorSettingsSection and Dialog Known: 2-4 stale Coil CDN connections may persist briefly after toggle (image loads, not relay traffic — close after OkHttp 5min keep-alive). Relay WebSocket connections are fully through Tor. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>