feat(home): What's new beside each update, the release notes read in the launcher #109
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!109
Loading…
Reference in a new issue
No description provided.
Delete branch "HumanBean/LongshotLauncher:feat/release-notes"
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 see what an update brings without leaving the launcher for the release page on git.magicbean.dev. This shows each release's notes inside the launcher, beside the update.
What changed
The body is kept, no new request. The update check already reads each product's release list (
/releases?limit=50), and Forgejo's list includes every release'sbody.ListedReleasenow keeps it (cut at 64 KB), andReleases.Listedkeeps the last list that answered.Which pages to show (
Core/ReleaseNotes.cs). Each page's notes start after a known version (scripts/release.pynotes): a stable after the stable before it, a first rc after the version before it, a later rc after the last stable. So the pages from the player's version to the offered one form a chain, newest first: v3.0.0 → v3.2.0 shows v3.2.0 and v3.1.0, and rc.3 → rc.6 shows only rc.6 because rc.6 already covers the earlier rcs. A nightly shows only the newest one, since each nightly's notes include the ones before it. At most 8 pages are shown. A version that isn't a release (dev) or is newer than the offered one gets only the offered page.Markdown without a package (
Core/Markdown.cs,App/Controls/Notes.cs). Supports headings, paragraphs, nested bullets, numbered items, rules, code, and inline bold/italic/code/links. The download header at the top of each page (everything up to the first---) is dropped.#123links to the pull request. Links open through the host'sOpen, and only http(s) addresses become links: nofile:, program paths orjavascript:.Where it shows (Home):
Each opens a dialog with the notes, Open the release page, Close and the update button (Update, or the launcher's Update the launcher / Switch to it).
No notes: if the list didn't answer or doesn't have that version, the link opens the release page in the browser. A page with no text says "This version's page has no notes."
Six new texts, translated in the 12 full catalogs (fr with U+00A0 before
:;?!).scripts/translations.pystill reports 5 missing per catalog (3 for es), the same as main.Screenshot scenes
home-update,whats-newandwhats-new-launcher.LauncherService.SetLauncherUpdateexists for the launcher scene, likeSetNewest.Tests
python -I tests/test_launcher_core.py: 1274 checks passed. NewReleaseNotesChecks.cscovers:dev, a draft, a version not listed, no list, and the 8-page cap;a ** b **, unclosed marks,file:/javascript:/relative links, entities,C#1).ReleaseChecksalso checks that the list is kept without drafts.python -I tests/test_release.py: 31 tests OK.dotnet build App -c Release -warnaserrorandtools/screenshots: clean.Not tried on a real window: clicking links (hit-testing the text) and the hand cursor. The screenshots are headless.
🤖 Generated with Claude Code
Screenshots (
tools/screenshots:home-update,whats-new,whats-new-launcher).Home with an update: What's new under the default version's "is out" line.
What's new for a v3.0.0 build with v3.2.0 out: both stables since, newest first.
The launcher's own update, from the banner's What's new.