4.4 KiB
4.4 KiB
Changelog
All notable changes to the ReVoltVPN Flutter app. Versions follow semver: MAJOR.MINOR.PATCH
[3.0.0] — 2026-08
Protocol — TCP → XHTTP migration
- Transport changed from TCP to XHTTP (H2 stream-up with Reality).
XTLS-Vision (
xtls-rprx-vision) removed — it only applies to TCP+TLS/Reality, not XHTTP. XHTTP provides H2 multiplexing, CDN passthrough, and path-based hiding behind/revolt. flowfield removed from VLESS client config. Xray falls back to standard TLS proxying inside the XHTTP tunnel — correct and intentional per official VLESS inbound docs.
Fixed — critical server bug
- Client hot-reload was broken.
xray.pycalledxray api adi(add inbounds, zero arguments) after writingconfig.json. This was a no-op — Xray never learned about new VLESS clients. Every session created since the modular rewrite was silently rejected at the VLESS layer. Fixed:add_client()now writes a temp JSON and callsxray api adu(add users).remove_client()callsxray api rmu -tag=X email. Verified againstXTLS/Xray-coreHandlerService source.
Fixed — client
- Missing XHTTP path in VLESS URL. Server requires
path: "/revolt"inxhttpSettingsbut the VLESS URL never included apathparameter. Fixed:hivemind_service.dartreadsxhttp_pathfrom/session/status, falls back toAppConfig.vlessPath. providerBundleIdentifiermismatch. Wascom.revoltvpn.app— must match AndroidapplicationId(com.paladinvpn.app) for VPN service registration.
Fixed — server config
- Reality keypair generated. Replaced
GENERATE_ME_WITH_xray_x25519placeholders in bothconfig.pyandxray_config_reality.jsonwith a real X25519 keypair. Private key stays on server; public key sent to clients. - Throttle policy corrected.
uplinkOnly/downlinkOnlywere set to187500— that's 52 hours, not 1.5 Mbps. These fields are seconds (idle timeouts), not bandwidth rate limiters (per official Policy docs). Set to defaults (2s / 5s). Real 1.5 Mbps cap requires Linuxtc. - Fallback rate limits removed. Live Reality docs warn fallback limiting "is itself a fingerprint and is not recommended." Ports are firewalled so fallback traffic is impossible anyway. Comment added for future reference.
Added
xhttp_pathin/session/statusresponse. Server now sends the XHTTP path to clients, same pattern asreality_pbk/reality_sid/reality_sni.VLESS_XHTTP_PATHconstant inconfig.pyis the single source of truth.- Updated deployment guide (
SERVER_DEPLOYMENT.md) — full step-by-step for XHTTP+Reality, verified against live Xray docs at xtls.github.io. - Updated cheatsheet (
scraped/VLESS_XRAY_CHEATSHEET.md) — all sections rewritten for XHTTP. Old TCP/Vision info replaced.
[2.0.7] — 2026-07-31
Fixed
- Notification bug —
SessionTimer.stop()now cancels the persistent Android notification on user-initiated disconnect. - Concurrent sync guard —
_syncInProgressflag prevents duplicate HTTP requests from overlapping in_syncWithHivemind(). - Debug bypass gate —
AppConfig.enableAdBypassreplaceskDebugModefor fake AdMob callback. Tree-shaken in release builds.
Changed
- Responsive layout — main screen uses
LayoutBuilderwith proportional fractions. Scales to any screen size. - Dynamic version — sidebar footer reads from
PackageInfoinstead of hardcoded string. - Swarm/log blocked — nginx returns 404 for
/api/swarmand/api/log. Monitoring runs locally viaswarm_watch.py.
Added
- Update checker in sidebar — polls GitHub Releases API.
- Website button in sidebar → opens
https://getrevolt.app. - Timer syncing indicator — spinner during handshake.
- Dependency:
package_info_plus.
Server
/session/stopfetches stats BEFORE popping session (race fix).XrayManager._stats_lockfor diagnostic counter thread safety.ManagementLoop._start_lockprevents TOCTOU on daemon startup.
[1.0.6] — 2026-06
- Initial VLESS + Xray Reality tunnel
- 60 min session, 4 GB throttle, support top-up
- Server health dot, speed display, countdown timer
- Persistent Android notification
- Glass-morphism dark UI with yellow accent
- Right-edge sidebar with Ad Consent, Privacy, About, Discord