fix(home): say why git.magicbean.dev was not reached #75
No reviewers
Labels
No labels
area/build
area/install
area/saves
area/tooling
area/ui
area/updates
ci: approved
good first issue
gpu/amd
gpu/intel
gpu/nvidia
help wanted
kind
bug
kind
chore
kind
docs
kind
feature
kind
performance
kind
question
platform/linux
platform/steam-deck
platform/windows
priority
critical
priority
high
priority
low
risk
high
risk
low
risk
medium
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
ci: approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/LongshotLauncher!75
Loading…
Reference in a new issue
No description provided.
Delete branch "llun/LongshotLauncher:fix/say-why-unreachable"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Players can't reach git.magicbean.dev from the launcher, and it doesn't say why: the update check threw the network error away, so the window could only say "git.magicbean.dev did not answer" or "Could not reach git.magicbean.dev". Now it says what failed and what to check, so a player can fix it or tell us the cause.
What changed
Core/NetFailure.cs(new) turns a failed request into a plain reason and what to check:HTTPS_PROXY), so a dead proxy isn't blamed on the server.NET's own words follow in brackets (e.g. "No such host is known") for whoever helps the player.
Core/Fetcher.cs:HttpFetcherputs that reason in theFetchException, so a failed download says it too. It names the host it tried (git-cdn or git.magicbean.dev) instead of always git.magicbean.dev.Core/Releases.cs: the check keeps the reason (Releases.Unreachable), and each check clears the last check'sProblemandUnreachable, so an old reason doesn't stay up.VersionAsync's "has no release, or did not answer" adds the reason too.Home: the reason shows under "did not answer… Try again" on the first-start screen and in the update line under the versions list (now wrapped, no longer one cut-off line).
An empty channel isn't "did not answer": when the server answered but the build channel has no version yet (there is no stable Longshot release today), it says "No version is out on the Stable channel yet." with Change beside Try again.
Translations: the 16 new texts are in all 12 full catalogs, and es-419 has its own where it differs from es (
scripts/translations.py: 537 texts, 15 catalogs, all complete).Screenshots (Debug build, fresh home,
HTTPS_PROXYset to a dead proxy; then online with the empty Stable channel)Testing
python -I tests/test_launcher_core.py: 1011 checks passed on Windows 11, .NET SDK 10.0.404. New checks: each kind of failure gives its reason and the innermost words; a refused connection through a proxy blames the proxy; the HTTP codes; a failed list setsReleases.Unreachableand the next answered check clears it.dotnet build LongshotLauncher.slnx: 0 warnings, 0 errors.python -I tests/test_release.py: 1 failure and 10 errors here, the same onmain(this PC has noopensslcommand line). This PR doesn't touchscripts/release.py.LONGSHOT_LAUNCHER_HOME, Windows 11):HTTPS_PROXY=http://127.0.0.1:9(a dead proxy), on the first-start screen and with a version in the list: screenshots below;Risks
Only messages change. What the launcher fetches, retries and trusts is unchanged; the CDN fallback still goes by the status code alone. Strings made at fetch time are in the language in use at that moment, as before.
🤖 Generated with Claude Code