Skip to content

Warn before pinning unreachable manual servers#8833

Open
atavism wants to merge 8 commits into
mainfrom
atavism/manual-server
Open

Warn before pinning unreachable manual servers#8833
atavism wants to merge 8 commits into
mainfrom
atavism/manual-server

Conversation

@atavism
Copy link
Copy Markdown
Contributor

@atavism atavism commented Jun 2, 2026

Resolves https://github.com/getlantern/engineering/issues/3550

  • Surface manual-selection risk when a Lantern server has no successful Smart Location probe
  • Warn before pinning traffic to a likely unreachable manual server
  • Let users either try the selected server anyway or switch back to Smart Location
  • Add model tests for fastest-server selection and manual warning behavior

Copilot AI review requested due to automatic review settings June 2, 2026 23:18
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds UX + model support to warn users before pinning to a manually selected Lantern server that likely won’t work (no successful Smart Location probe), while tightening server selection logic to only consider successful probes.

Changes:

  • Add hasSuccessfulProbe and shouldWarnBeforeManualSelection to server models and update “fastest server” selection to only use successful probes.
  • Surface reachability warnings in the server selection UI (subtitle/icon) and gate manual selection behind a warning dialog with “Try Anyway” vs “Use Smart Location”.
  • Add unit tests covering fastest-server selection and manual warning behavior.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
test/core/models/available_servers_test.dart Adds model tests for fastest-server selection and manual warning conditions.
lib/features/vpn/single_city_server_view.dart Replaces subtitle rendering with shared reachability subtitle + warning icon.
lib/features/vpn/server_selection.dart Adds manual-selection warning dialog flow; wires reachability subtitle/icon into list tiles; minor cleanup.
lib/features/vpn/server_reachability.dart New shared UI helpers for reachability subtitle and warning icon/tooltip.
lib/features/vpn/location_setting.dart Surfaces reachability warning in the Location setting tile when pinned to an unprobed Lantern server.
lib/core/models/available_servers.dart Adds serverByTag, probe-success helpers, and tightens fastestLanternServer filtering.
assets/locales/en.po Adds English strings for the new reachability warning UI.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread assets/locales/en.po
atavism and others added 5 commits June 3, 2026 11:13
)

Map the radiance server JSON field renamed from urlTestResult to
selection_history, replacing the UrlTestResult model with a
SelectionHistory model mirroring lantern-box's TagHistory shape.
Probe delay reads now key off lastSuccessDelayMs.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants