Point sparkle:releaseNotesLink at the landing /release-notes/{tag} route#233
Merged
Conversation
Today the appcast generator hard-codes the GitHub release-tag URL into sparkle:releaseNotesLink, which means Sparkle's WKWebView shows GitHub's full page chrome in a tiny alert window. The landing site now hosts a slim, self-contained Route Handler at /release-notes/[tag] that returns one release as plain HTML sized for Sparkle's alert. This swaps the URL behind a new --release-notes-base-url flag (default https://cotabby.app/release-notes) so the value stays configurable per environment instead of being baked into the script. The release workflow passes the production value explicitly. No effect until a new release tag is cut. Already-shipped builds have static appcasts and continue pointing at GitHub.
…orkflow Resolve Greptile drift concern by relying on the script's DEFAULT_RELEASE_NOTES_BASE_URL as the single source of truth. The flag remains available for fork/staging overrides.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaces the hard-coded GitHub release-tag URL inside
scripts/generate_appcast.pywith a configurable--release-notes-base-urlflag (defaulthttps://cotabby.app/release-notes). Sparkle's WKWebView will now load a slim self-contained HTML page sized for its alert window instead of GitHub's full release page chrome.Coordinates with the landing-site PR FuJacob/tabby-landing#2 which adds the
/release-notes/[tag]Route Handler that serves that page.Validation
This PR deliberately does not cut a release tag. The change goes live when someone publishes the next tag.
Linked issues
Companion: FuJacob/tabby-landing#2 (landing Route Handler)
Risk / rollout notes
https://cotabby.app/release-notes/[tag], Sparkle will fetch a 404 for the duration. Order: land + deploy landing, smoke-test the URL in a normal browser, then land this PR.rstrip("/"), so bothhttps://cotabby.app/release-notesandhttps://cotabby.app/release-notes/work.AppUpdateManager, signing pipeline, and appcast hosting all untouched.Greptile Summary
This PR redirects Sparkle's
sparkle:releaseNotesLinkfrom the GitHub release page to a dedicated slim HTML route on thecotabby.applanding site, making the update alert's embedded WKWebView render a page sized for the small alert window rather than GitHub's full page chrome.scripts/generate_appcast.py: AddsDEFAULT_RELEASE_NOTES_BASE_URLconstant and a--release-notes-base-urlCLI flag;release_page_urlis now assembled from this base + the release tag, withrstrip("/")normalization to handle trailing slashes..github/workflows/release.yml: No flag is passed to the script (relying on the default), with an inline comment documenting the intentional omission and explaining when the override should be used.Confidence Score: 5/5
Safe to merge once the companion landing-site PR is deployed; the script change itself is correct and self-contained.
The change is small and focused: it replaces one hard-coded GitHub URL with a configurable constant, adds trailing-slash normalization, and documents the intentional omission of the flag in CI. The previous review concern about duplicate URL values has been addressed by removing the flag from the workflow entirely. No logic errors, schema changes, or security implications were found.
No files require special attention. The deployment-ordering risk (landing site must go live before the next release tag is cut) is documented in the PR description rather than in code.
Important Files Changed
Sequence Diagram
sequenceDiagram participant CI as GitHub Actions participant Script as generate_appcast.py participant XML as appcast.xml participant Sparkle as Sparkle (WKWebView) participant Landing as cotabby.app/release-notes CI->>Script: python3 generate_appcast.py (no --release-notes-base-url flag) Script->>Script: "release_notes_base = DEFAULT_RELEASE_NOTES_BASE_URL.rstrip("/")" Script->>Script: "release_page_url = "{base}/v{release_version}"" Script->>XML: "render appcast.xml with sparkle:releaseNotesLink = https://cotabby.app/release-notes/vX.Y.Z" XML-->>CI: build/appcast.xml uploaded Note over Sparkle,Landing: At update-check time Sparkle->>Landing: GET /release-notes/vX.Y.Z Landing-->>Sparkle: Slim self-contained HTML pageReviews (2): Last reviewed commit: "Merge main; drop redundant --release-not..." | Re-trigger Greptile