Refactored custom snackbar to use sonner
Added foreground/background detection so we show the proper notification or snackbar based on foregrounded state
New features:
- Full config view in quick format
- Live tunnel config view in quick format
- IPv4/IPv6 endpoint fallback and recovery
- Improved DDNS handling
- Improved realtime tunnel monitoring via wireguard-go callbacks handshake failures and success
- Architecture change to always bring tunnels up with post tunnel bootstrapping for improved security and reliability with subsequent domain resolution and peer updates
- Added support for DoT and custom DNS provider endpoints
- Added support for Amnezia globals
- Improved/shared config parser with desktop
- Improved AndroidTV navigation
What went away:
- Kernel backend/mode
- Ping monitoring (now redundant with the handshake monitoring)
Separate settings for starting tunnels vs auto tunnel on boot, fixing logic to make behavior more expected.
Fix a bug where dynamic DNS updater was only running once and not continually monitoring.
Further improvements to prevent spurious network monitoring states. Improved reevaluate job to allow for reliable manual tunnel overrides while auto tunnel is active.
Improved messaging on errors and dynamic dns events.
This feature allows users to enable DDNS re-resolve that will check for a DDNS change on handshake and/or ping failures without the need for auto tunnel and will dynamically update peers without bouncing the tunnel for added security/privacy.
- Fixes tile toggling random/wrong tunnel.
- Fixes native thread socket bypass crash with lockdown mode
- Removes bouncing logic as DDNS change can now be resolved via a bypassed DoH socket and update the peers endpoints dynamically.
- Restarting active tunnel on manual config changes removed. Will be replaced soon with a modal prompt asking users if they would like to restart (to preserve privacy and prevent leaks).
- Refactor of tunnel start and stop logic for cleaner tunnel startup and shutdowns.
- Various other fixes and changes.