diff --git a/CHANGELOG.md b/CHANGELOG.md index 10bce5e..5f1849b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ One line per change, grouped by the release that shipped it. Newest first. A release is a Cargo.toml bump plus a `v` tag; the content repos pin the tag they run (see the end of this file). +## Unreleased + +- A releases card lets a platform's file carry an architecture: a Mac visitor is offered the `macos-arm64` file, not sent to TestFlight past it. + ## 0.6.19 (2026-10-05) - A `kind: url` resource whose JSON is a releases manifest (`latest`, `versions` with per-platform `assets`, `channels` such as a package repo or TestFlight) renders as a download card: the file for the visitor's own platform first, decided in the browser, the rest and the channels folded. Written for redoal's public releases at dl.redoal.com (docs: content-reference, "A releases manifest"). diff --git a/src/app.rs b/src/app.rs index 5f34180..f8fff95 100644 --- a/src/app.rs +++ b/src/app.rs @@ -2226,7 +2226,8 @@ fn ReleasesCard(manifest: serde_json::Value) -> impl IntoView { let p = platform.get()?; let arch = arch_for_pick.clone(); let ios = ios_for_pick.clone(); - let own = assets_for_pick.iter().find(|(pl, _, _)| pl == p).cloned(); + // "macos" is satisfied by a "macos-arm64" file, and so on. + let own = assets_for_pick.iter().find(|(pl, _, _)| pl == p || pl.starts_with(&format!("{p}-"))).cloned(); let pick: Option = match (p, own) { (_, Some((pl, url, _))) => Some(view! {

{t(&lang().get(), "for_this_device")} ": " {label(&pl)}