feat(downloads): per-card download affordance, retire Downloads page [BUNYIP-100 2/2] #146
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/bunyip-100-unified-downloads"
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?
What
BUNYIP-100, PR 2 of 2. Stacked on #145 (application-groups): branched off that branch, so until #145 merges this PR's diff against main also includes #145's commits. Review/merge #145 first. Shared surface is the Applications page (#145 refactored it into
app_card+ grouping; this PR adds the Download affordance).Folds downloads into the Applications page and retires the standalone public Downloads page.
Changes (this PR's delta)
<dialog>listing binary download links plusdocker login/docker pullcopy blocks for OCI images. Non-members get an upgrade prompt.DownloadOptionenum (DirectLink/CopyBlock) +download_options(group); adding a distribution channel later is one variant plus one render arm./downloads308-redirects to/applications; nav entry removed. The/downloads/{slug}/{asset}proxy andGET /v1/downloadsstay (card links route through the proxy).layers+packageicons (thelayersadd also fixes the blank Groups nav icon from #145).Verification
just check-containergreen: fmt, clippy-D warnings, 224 lib tests. Not exercised: live<dialog>/clipboard and the download proxy (need the running stack + browser).#BUNYIP-100
BUNYIP-100 PR 2 of 2 (stacked on the application-groups PR). Folds downloads into the Applications page so there is no separate public Downloads page. Each application card gains a Download affordance: with exactly one binary asset and nothing else it is a one-click link; otherwise a button opens a `<dialog>` listing every option (binary download links plus `docker login` / `docker pull` copy blocks for OCI images). Non-members see an upgrade prompt instead. The dialog is data-driven via a `DownloadOption` enum (DirectLink / CopyBlock) and `download_options`, so adding a distribution channel later is one variant plus one render arm. The standalone `/downloads` page now 308-redirects to `/applications`, and its nav entry is removed. The `/downloads/{slug}/{asset}` BFF proxy and `GET /v1/downloads` stay: the card links route through the proxy. Catalog-only products (non-hosted, which only appeared on the Downloads page before) are surfaced in a "More downloads" section so retiring the page loses nothing. Reuses the existing `command_block` + clipboard handler and `format_size`; adds `layers` and `package` icons to the icon set (`layers` also fixes the blank Groups nav icon from PR 1). Verified: `just check-container` green (fmt, clippy -D warnings, 224 lib tests). Not exercised here: the live dialog/clipboard interaction and the download proxy, which need the running stack and a browser. #BUNYIP-100 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>