Repository navigation
feat(downloads): fall back to a configured GitHub releases repo - #134
Conversation
When the signed Desktop feed yields no release, the Desktop downloads card asks relay-control's GET /desktop/releases for the newest release of the install's configured GitHub releases repo and offers it with the same recommended/all-downloads UI, linking straight to the GitHub asset URLs (https github.com / objects.githubusercontent.com only). The card labels the source and marks pre-releases. A 404 (not configured), any other error or release:null keep today's empty state; the signed feed always wins. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 5 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
[Medium impact] The PR appears safe to merge; the earlier empty-card issue is fixed, and no new actionable issues remain.
|
…r as none Use a placeholder repo in the release fixtures. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
The Desktop downloads card (Settings > Workspace) now falls back to a GitHub releases repo when the install has no signed Desktop feed, for example a local Kind stack.
Behaviour
GET /cloud/api/v1/desktop/releasesonly when the feed has no profiles or no releases.404from/desktop/releasesmeans no repo is configured, and the card shows today's empty state unchanged. Any other error, a malformed response orrelease: nullalso shows the empty state, with no error alert.asset.urlthrough the injectednavigate, with no signed-URL call. OnlyhttpsURLs ongithub.comorobjects.githubusercontent.com(no port, no userinfo) are offered. Assets with any other URL are not rendered.releasesUrl, but only when that is an https github.com URL. A "Pre-release" badge shows whenprereleaseis true.Internally, each release entry now carries a
resolve(asset) => urlfunction. For feed releases it is the signed-URL call; for the GitHub release it is the asset's direct URL.contracts.tsaddsgithubReleasesSchema, andapi.tsaddsdesktopFeedApi.githubReleases(), which returns null on 404.Tests (
src/admin/downloads.test.tsx, route mocked)/desktop/releasesis never called and there is no source line.release: null, or a 502: empty state..tar.gzalternative, version, Pre-release badge, per-OS list with checksums and macOS floor, probe hidden, source label and link, no CLI section./download-urlcall.isGithubDownloadUrl.npm run checkis green.Depends on
The relay-control
/desktop/releasesroute (branchfeat/desktop-github-releases). Until that lands, the route returns 404 and this change is inert.🤖 Generated with Claude Code
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.