Releases: crim50n/tg-ws-proxy-android
Releases · crim50n/tg-ws-proxy-android
Release list
1.6.0
TG WS Proxy 1.6.0
Highlights
- Added a more efficient default power profile based on background CPU and radio-wakeup testing.
- Device wake lock, prepared WebSocket connections, periodic route checks, and background Cloudflare-domain updates are now disabled by default.
- The default idle WebSocket keepalive interval is now 180 seconds instead of 30 seconds.
Existing installations
- Existing installations are migrated only when all five effective power settings still match the previous defaults.
- If any power setting differs from the previous default, the complete profile is preserved without modification.
- Users whose profile is migrated see a one-time explanation listing every changed setting and where to adjust it if their network requires a more persistent background connection.
Interface and guidance
- Added scrollable English and Russian migration guidance suitable for smaller screens and larger accessibility font sizes.
- Updated the Power usage help section to explain the new defaults, expected battery benefit, reliability tradeoffs, and exact migration rule.
1.5.0
TG WS Proxy 1.5.0
Highlights
- Diagnostics now run continuously, so a privacy-safe report can be shared immediately after a problem without reproducing it under manual recording.
- Added a bounded, queued, and batched diagnostic writer with severity levels, crash capture, seven-day event retention, and approximately 4 MB of rotating history.
- Added Android themed-icon support and hardened configuration, backup, and update-installer integration.
Reliability
- Made proxy runtime resources generation-owned so a delayed old runtime cannot stop or clear its replacement.
- Bounded the complete runtime shutdown and prevented restart from launching a second runtime after a stop timeout.
- Kept the CPU wake lock for the configured proxy runtime while ensuring it is released on normal stop, failure, timeout, and service destruction.
- Cancelled obsolete Cloudflare-domain refresh requests and prevented stale responses from replacing a newer domain pool.
- Improved service startup and shutdown ordering across network callbacks, route probes, notifications, and background refresh work.
Diagnostics and privacy
- Moved diagnostic initialization, export, and clearing away from the main thread.
- Added per-event retention, overflow accounting, immutable report snapshots, and deterministic ordering for export and clear actions.
- Redacted proxy links, secrets, IP addresses, configured hostnames, and hostnames found in exception messages before display and export.
- Preserved useful crash stack identifiers while applying privacy filtering to legacy and current diagnostic entries.
- Removed manual start/finish recording controls and restored diagnostic-log scroll position across configuration changes.
1.4.0
TG WS Proxy 1.4.0
Highlights
- Added secure in-app update downloads from GitHub releases with checksum, package, version, and signing-certificate verification.
- Added independent power controls for CPU wake lock, prepared WebSocket connections, route probes, Cloudflare refresh, WebSocket keepalive, and notification traffic updates.
- Redesigned Settings around Local proxy, Connection, Power usage, Interface, and Support and diagnostics.
- Moved the connection log into Settings and added a visible recording indicator on the main screen.
Reliability
- Fixed proxy shutdowns that could remain stuck while blocking socket reads occupied all IO workers.
- Added deterministic closure of active client and upstream sockets, a dedicated lifecycle thread, and bounded runtime shutdown.
- Added explicit Starting, Running, Restarting, Stopping, and Stopped service states across the app and Quick Settings tile.
- Added direct-media stall detection with temporary per-datacenter Cloudflare fallback.
- Added system-DNS fallback through bootstrapped DNS-over-HTTPS with caching, shared outage cooldown, and controlled recovery probes.
- Added clear handling for a local proxy port already being in use.
Diagnostics and interface
- Diagnostic recording now continues until manually finished and rotates approximately 4 MB of recent events.
- Added a warning when many connections use obsolete proxy settings, including instructions and an explanation of their battery and connection impact.
- Added event-driven restoration of a dismissed foreground notification without periodic polling.
- Added optional traffic-free notifications and reduced periodic background work when power-related features are disabled.
- Improved bilingual connection, diagnostics, update, and troubleshooting guidance.
1.3.0
TG WS Proxy 1.3.0
Highlights
- Added automatic per-network route selection, enabled by default.
- Added lightweight direct WebSocket, Cloudflare, and TCP route probes after startup and network changes.
- Automatic decisions are temporary and never overwrite the user's saved manual routing settings.
- The active runtime route order is now shown on the main screen.
- Route-aware performance defaults use a 256 KB buffer and disable direct WS pool warmup in Cloudflare-first mode.
Interface
- Redesigned Settings with automatic saving and no Save/Cancel buttons.
- Manual routing, server, buffer, and pool controls are shown only when Automatic connection mode is disabled.
- Added System, Light, Dark, and Material You appearance options.
- Added dedicated Help, Connection log, and About screens.
- Removed the compact traffic card; detailed statistics remain optional.
Diagnostics
- Added an always-available in-memory live connection log.
- Added explicit five-minute diagnostic report recording and export.
- Diagnostic deletion now removes saved reports without clearing visible in-memory events.
- Expanded redaction for proxy links, secrets, IPv4, and IPv6 addresses.
Reliability
- Improved network handover detection for Wi-Fi, cellular, VPN, and Ethernet.
- Added runtime isolation for delayed route-probe results.
- Added conservative route-switch criteria that preserve a route when successful connections are observed.
- Settings now restart a running proxy only after effective connection changes.
- Added outbound WebSocket ping, TCP keepalive, Cloudflare retry parallelism, and HTTP 429 cooldown handling.
1.2.1
TG WS Proxy 1.2.1
This patch release improves connection stability and diagnostic privacy.
Changed
- Keep active WebSocket and direct TCP connections alive during idle periods.
- Try Cloudflare fallback domains with limited parallelism.
- Back off Cloudflare domains that return HTTP 429, from 45 seconds up to
5 minutes. - Stop Cloudflare domain refresh when the proxy runtime exits.
- Avoid recording normal coroutine cancellation as a client-session failure.
Diagnostics
- Redact IPv4 and IPv6 addresses from exported diagnostic logs.
- Preserve packet counters while continuing to redact sensitive packet data.
1.2.0
TG WS Proxy 1.2.0
This release simplifies the main screen and improves runtime control.
Changed
- Simplify proxy control to a single Connect/Stop action.
- Show the connection link in a compact read-only field with a copy action.
- Keep restart in the service notification instead of the main screen.
- Show uptime with proxy status and use a compact error-statistics row.
- Show only total traffic by default, with detailed runtime counters controlled
by an Interface setting. - Reset connection and traffic statistics on every proxy start or restart.
- Generate a replacement secret as a settings draft until Save is pressed.
- Keep Save and Cancel visible above the software keyboard.
Added
- Restart action in the foreground-service notification.
- Live traffic in the service notification.
- Optional 30-minute local diagnostic recording with redaction, size limits,
explicit export, and automatic retention cleanup. - Automatic daily and manual update checks through the latest GitHub Release,
with the repository's staticupdate.jsonmanifest as a fallback. - Complete English and Russian strings for the updated controls.
Notification restart closes all client and upstream connections, rebuilds the
WebSocket pool, reloads saved settings, and starts a fresh proxy session.
1.1.0
TG WS Proxy 1.1.0
This release focuses on transport reliability, bounded resource usage, and
Android service lifecycle correctness.
Changed
- Rebuild the direct WebSocket pool after Wi-Fi or mobile network changes.
- Use validated Cloudflare domains with independent sticky selection per DC.
- Expand the bundled Cloudflare fallback domain pool.
- Apply a cooldown to direct WebSocket IPs that time out.
- Validate listener, DC redirect, Cloudflare, buffer, pool, and secret settings.
- Report the proxy as running only after the local listener is bound.
Fixed
- Remove unsafe mid-session retry behavior that could desynchronize MTProto AES-CTR streams.
- Bound TLS handshakes, HTTP upgrade responses, WebSocket frames, and MTProto packets.
- Validate WebSocket upgrade headers and support fragmented frames.
- Close active client sockets during service shutdown.
- Prevent stale pool refill tasks from restoring connections from an old network.
- Stop logging the MTProto secret and full proxy link.
- Prevent the persisted proxy secret from being included in Android backups.
Verification
- Added unit coverage for MTProto splitting, packet limits, secret parsing,
DC redirect parsing, and Cloudflare domain validation. - Release builds run unit tests and Android lint before APK publication.