Changes since v9.1.18-beta
Stability
- Android crashes. Hardened the two remaining crash candidates and started recording why the process died, so future crashes arrive with a cause attached (#8948). Guarded
startForegroundand gaveserviceScopea handler, closing a startup crash path in the VPN service (#8947). - iOS/macOS tunnel teardown. The tunnel is now torn down when a network-extension restart fails, instead of being left in a half-started state (#8938).
- iOS device ID. The network extension no longer sends a stale device ID; it sends an empty one and lets the app supply it (#8936).
Fixes
- Pro status recognition. Every Pro check now goes through a single case-insensitive getter, so an unexpected capitalisation from the server can no longer make a paying account look like a free one (#8937).
- Referral rewards. The reward dialog is awaited before referrals are marked as seen, so a reward can no longer be swallowed by dismissing the dialog early (#8932).
- Account data parsing.
user_failuresis now parsed in both shapes the server can return, instead of failing on one of them (#8929, comment correction in #8931). - Android staging. Fixed staging-environment selection on Android (#8940).
- Version promotion. Promoting a radiance version no longer requires the QUIC reject rule to be present (#8942).
Connectivity
Several radiance updates land in this build:
- Config fetches now race multiple URLs rather than depending on one host (#8924), and a jsDelivr mirror is available for the config where the primary host is blocked (#8928).
- Fixed a stall in client-info reporting that could delay startup (#8927, #8953).
- Bumped radiance and the matching sing-box-minimal pin together (#8934).
Under the hood
- Channel-aware update metadata is now published alongside releases, so the updater can distinguish beta from stable (#8903).
- Referral UI updates (#8916).
- Test coverage: the Dart suite runs on every pull request (#8930), a VPN smoke test with Firebase Test Lab support for Android (#8933), and a more reliable macOS connect-smoke preflight (#8922).
Commits
- 8a9af4a bump radiance to pick up the client-info fixes (#8953)
- 15c63c5 VPN smoke test and added support for Firebase Test Lab for Android. (#8933)
- abe2aad android: harden the two remaining crash candidates, and record why we died (#8948)
- a455981 android: guard startForeground and give serviceScope a handler (#8947)
- 88e9239 fix: promoting radiance version without quic reject rule (#8942)
- d5379bf Fix staging issue on android. (#8940)
- 7e3945d fix(ios): send empty device ID from network extension (#8936)
- 317232d fix(ios,macos): tear down tunnel on failed NE restart (#8938)
- 2bf4cc4 pro: route every Pro check through one case-insensitive getter (#8937)
- 95b3b3b Publish channel-aware update metadata for Lantern releases (#8903)
- 86f8935 deps: bump radiance, and the sing-box-minimal replace to match (#8934)
- c46cde3 referral: await the reward dialog before marking referrals seen (#8932)
- 7aaf93b ci: run the Dart test suite on pull_request (#8930)
- 65c165f models: correct the lantern-box version in user_failures comments (#8931)
- 6fc4c97 models: parse both shapes of user_failures (#8929)
- 444c139 deps: bump radiance for build stamping + jsDelivr config mirror (#8928)
- 13f9212 deps: bump radiance for the client-info stall fix (#8927)
- 3a5c4c1 Stabilize macOS connect smoke preflight (#8922)
- d1524d3 Referral UI updates (#8916)
- a1acd0b Bump radiance for multi-URL config racing (#8924)
This is a beta release from commit 8a9af4a.
Branch: v9.1.19-beta
- macOS (.dmg) (permalink)
- Windows (.exe) (permalink)
- Android (.apk) (permalink)
- Linux AMD64 (.deb) (permalink)
- Linux AMD64 (.rpm) (permalink)
- Linux AMD64 (.pkg.tar.zst) (permalink)
- Linux ARM64 (.deb) (permalink)
- Linux ARM64 (.rpm) (permalink)
- Linux ARM64 (.pkg.tar.zst) (permalink)
- iOS: Uploaded to TestFlight