esefxdzandClaude Opus 5 62e968f133
Android CI / android (push) Canceled after 0s
fix(app): stop probing the control plane while disconnected
VpnConnection._init() started a 30 s /health poll from the constructor
with no lifecycle gating, so it ran for the life of the app process -
backgrounded, and whether or not the user ever connected. The app is
excluded from its own tunnel, so those requests left in the clear. A
periodic request that fires while the user is deliberately not connected
is an avoidable fingerprint, and rule 60 already ruled probes out:
reachability is meant to be passive.

All it bought was the status dot before the first connect, and it got
that wrong in both directions - "Offline" on a transient resolver
failure against a server that was fine.

Reachability now comes from a session sync that succeeded. serverHealthy
is isConnected && hasSyncedOnce, so a green dot means a working session
rather than a check made beforehand; while disconnected the bar reads
"Ready" and claims nothing either way.

checkHealth() goes with it. Nothing calls it, and leaving a probe helper
in place invites its reuse.

Pinned in test/session_lifecycle_regression_test.dart so it cannot come
back as a tidy-up. flutter analyze clean, 10/10 tests pass.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-10-17 21:17:17 +03:00
2026-09-06 13:07:37 +03:00
2026-07-28 20:56:08 +03:00
2026-07-28 21:37:59 +03:00

ReVoltVPN banner

ReVoltVPN

A free VPN app for Android. Open-source client, transparent infrastructure. Watch an ad, get 2 hours of full-speed traffic — no accounts, no logs, no subscriptions.


How it works

  1. Watch a short rewarded ad
  2. Server creates a temporary VLESS session (2 hours / 10 GB)
  3. Your traffic routes through a single server in Finland at full speed
  4. When time or data runs out, session ends — watch another ad to continue
  5. No throttling, no slow lane, no mid-session punishment

No email. No password. No payment. The ad pays for the server.


Protocol

  • Transport — VLESS over XHTTP (HTTP/2 multiplexed, path-hidden behind /revolt)
  • Obfuscation — Xray Reality spoofs a real website's TLS. To any DPI box, your tunnel looks like a browser visiting that website
  • Encryption — TLS 1.3 with borrowed certificate (Reality). No certbot, no domain ownership required
  • API — Standard HTTPS to a separate domain. Tunnel destination is IP-pinned — domain compromise is DoS only

Stack

Layer Technology
App Flutter (Android)
VPN VLESS + Xray Reality + XHTTP
Backend Python Flask ("Hivemind") — session management, quotas, stats
Ads Google AdMob rewarded, verified server-side
Server Debian, single Hetzner box in Finland

Limitations

  • One server, one location (Finland)
  • 2 vCPU / 4 GB RAM — not built for thousands of concurrent users
  • Android only

Privacy

Your traffic routes through Finland. We don't log it, inspect it, or sell it. Hivemind tracks only session liveness and byte counters for quota enforcement — no packet contents, no destination IPs, no DNS queries.

Full privacy policy: PRIVACY_POLICY.md


ReVoltVPN is not affiliated with any VPN company.

S
Description
A simple vless client built with flutter
Readme GPL-3.0
12 MiB
0 Stars 1 Watchers 0 Forks
3.3.8
Latest
2026-10-17 18:55:59 +03:00
Languages
Dart 59.5%
Kotlin 38.2%
Shell 2.3%