You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Warn before pinning unreachable manual servers (#8833)
* manual server updates
* Clarify manual server reachability warnings
* refactor(servers): use SelectionHistory instead of URLTestResults (#8840)
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.
* Group unavailable manual servers
* Refresh server list when opening selection screen
* Refresh reachability before listing manual servers
* Avoid duplicate URL tests in server selection
* code review updates
* build: bump radiance for URL test timeout
* ui: refine manual server reachability warnings
* Treat untested servers as unknown
* Revert "Treat untested servers as unknown"
This reverts commit 00b6258.
* server selection: distinguish "testing" from "unreachable" (#8873)
* server selection: distinguish "testing" from "unreachable"
During Smart Location convergence the url-test probe cycle takes several
minutes to visit every server. Until a server is probed it has no
selection history, so `Server.hasSuccessfulProbe` is false — and the UI
treated "no successful probe" as a single state, bucketing every
not-yet-probed server into the "Currently Unavailable" section with a
"may be unreachable" warning. A mid-convergence snapshot therefore read
as "many servers unreachable" when the probes were simply still running
(Freshdesk #178551).
Split the collapsed `!hasSuccessfulProbe` state into four, using the
backend's `consecutive_failures` (a uint, unambiguous under omitempty,
unlike the time.Time `last_outcome_at` zero value):
- reachable lastSuccessDelayMs > 0 -> normal row
- awaiting probe no verdict yet -> "testing"
- flapping 1..2 failures, no success -> normal row
- probed & failing >= 3 failures, no success -> warn
The >= 3 threshold (consteq _manualSelectionFailureWarningThreshold)
follows atavism's reverted "Treat untested servers as unknown" approach:
a single transient probe failure shouldn't brand a server unreachable.
`shouldWarnBeforeManualSelection` now means probed-and-sustained-failing
only, so the section split, per-row warning icon, and pre-selection
dialog all stop firing for untested servers automatically. Untested rows
show a neutral "testing" spinner (new ServerTestingIndicator). The
per-location representative prefers a still-testing server, then any
not-yet-unreachable server, over a failed one — so a location reads as
unavailable only once all of its servers have sustained failures.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Treat sustained probe failures as unreachable (#8874)
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: atavism <atavism@users.noreply.github.com>
---------
Co-authored-by: garmr-ulfr <104022054+garmr-ulfr@users.noreply.github.com>
Co-authored-by: Jigar-f <jigar@getlantern.org>
Co-authored-by: Myles Horton <afisk@getlantern.org>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
0 commit comments