v2.5.0-beta2
New Features
- VayDNS tunnel support — new tunnel type with full mobile bridge, configurable idle timeout, keepalive, UDP timeout, max payload, record type, RPS
limit, and max label count - SSH auto-retry — automatic 3-attempt retry for SSH connections over DNSTT, NoizDNS, and Slipstream tunnels
- Friendly error messages — raw Java/Go exceptions mapped to user-readable messages (timeouts, connection refused, etc.)
- Notification traffic counter setting — toggle traffic stats in the VPN notification
Bug Fixes
- Fix scanner E2E result persistence race condition (emitState CAS overwrite)
- Fix duplicate LazyColumn key crash in scan results
- Fix scan results back navigation responsiveness (throttle UI updates)
- Fix E2E results disappearing in prism mode
- Fix traffic speed mismatch between notification and UI (single source of truth, time-normalized)
- Fix scanner back button not stopping scan
- Preserve user's timeout when generating resolver lists
- Filter IPv4-only DNS resolvers to avoid IPv6 issues
- Fix SlipstreamBridge crash on disconnect (WeakReference → strong reference)
- Async onCleared to avoid blocking main thread on navigation
Improvements
- Move DNS resolver field higher in edit profile screen
- Open new profile bottom sheet fully expanded
- Increase SOCKS handshake and SSH connect timeouts for slow DNS tunnels