Field note, 2026-08-18: "on the macOS client when clicking on a host the default action is opening the library — i wanted that to be reverted."
Reverts the primary-action swap 22fdea66 made on the Apple touch/desktop host card. HostCardView ran onBrowseLibrary ?? onConnect, so on Mac, iPad and Apple TV at once — they share that one card — clicking a paired machine dropped you on its game shelf, and streaming the desktop had moved into the context menu as "Stream the Desktop".
Back to the pattern the rest of the app never left:
tap the card → connect
"Browse Library…" → a context-menu action, on the host's own card and on a pinned host+profile card alike (whose shelf still launches with that card's profile)
Nothing else had drifted
Checked rather than assumed, because the same card lives on five shells:
surface
primary press
library
console UI (screens/home.rs — Linux + the Android Skia port)
Confirm → connect
Secondary (Y)
GTK (ui_hosts.rs)
activate → CardOutput::Connect
overflow menu
Android Compose (ConnectGrid.kt)
tap → connect
"Browse library…" menu item
Apple console shell (GamepadHomeView)
tile activate → connect
Y
Apple touch/desktop (HostCards.swift)
was library → now connect
now the menu again
Worth naming: this exact change was already backed out on the Android and console-UI side at review during C7 (9a64a0fa). Apple was the half that stayed. Both are now on the same rule, so no shell disagrees with another about what a card's primary press means.
What stays
Everything else the library round-trip landed is untouched — the wake-on-open retry across the boot window, the per-host cached catalog rendered immediately and marked stale, the Resume badges, and the grid's return-to-where-you-were. Only which gesture opens the shelf changed.
Note for the release notes
docs/releases/v0.30.0.md:28 advertises "tapping a paired host now opens its library". v0.30.0 genuinely shipped that way (the tag contains 22fdea66) and is still unannounced, so that sentence wants trimming before the announcement goes out — deliberately left alone here rather than rewriting a tagged release's record.
Verified
On the Mac, against a freshly built PunktfunkCore.xcframework: swift build clean, swift test green — 375 tests, 6 skipped, 0 failures.
Field note, 2026-08-18: *"on the macOS client when clicking on a host the default action is opening the library — i wanted that to be reverted."*
Reverts the primary-action swap `22fdea66` made on the Apple touch/desktop host card. `HostCardView` ran `onBrowseLibrary ?? onConnect`, so on **Mac, iPad and Apple TV at once** — they share that one card — clicking a paired machine dropped you on its game shelf, and streaming the desktop had moved into the context menu as "Stream the Desktop".
Back to the pattern the rest of the app never left:
* **tap the card → connect**
* **"Browse Library…" → a context-menu action**, on the host's own card and on a pinned host+profile card alike (whose shelf still launches with that card's profile)
### Nothing else had drifted
Checked rather than assumed, because the same card lives on five shells:
| surface | primary press | library |
|---|---|---|
| console UI (`screens/home.rs` — Linux + the Android Skia port) | `Confirm` → connect | `Secondary` (Y) |
| GTK (`ui_hosts.rs`) | activate → `CardOutput::Connect` | overflow menu |
| Android Compose (`ConnectGrid.kt`) | tap → connect | "Browse library…" menu item |
| Apple console shell (`GamepadHomeView`) | tile `activate` → connect | Y |
| Apple touch/desktop (`HostCards.swift`) | **was library** → now connect | **now the menu again** |
Worth naming: this exact change was already backed out on the Android and console-UI side at review during C7 (`9a64a0fa`). Apple was the half that stayed. Both are now on the same rule, so no shell disagrees with another about what a card's primary press means.
### What stays
Everything else the library round-trip landed is untouched — the wake-on-open retry across the boot window, the per-host cached catalog rendered immediately and marked stale, the Resume badges, and the grid's return-to-where-you-were. Only which gesture opens the shelf changed.
### Note for the release notes
`docs/releases/v0.30.0.md:28` advertises "tapping a paired host now opens its library". v0.30.0 genuinely shipped that way (the tag contains `22fdea66`) and is still unannounced, so that sentence wants trimming before the announcement goes out — deliberately left alone here rather than rewriting a tagged release's record.
### Verified
On the Mac, against a freshly built `PunktfunkCore.xcframework`: `swift build` clean, `swift test` green — 375 tests, 6 skipped, 0 failures.
Reverts the primary-action swap from 22fdea66: a host card's tap ran
`onBrowseLibrary ?? onConnect`, so on Mac, iPad and Apple TV clicking a paired
machine dropped you on its game shelf and streaming the desktop had moved into
the context menu. That inverted the pattern every other surface still uses.
Back to: tap the card = connect, "Browse Library…" = a context-menu action
(both on the host's own card and on a pinned host+profile card, where its shelf
still launches with that card's profile).
No other client had drifted — the Rust console shell (Linux + the Android Skia
port) keeps A = connect and Y = library, the GTK card's activate emits
`CardOutput::Connect` with "Browse library…" in the overflow menu, Android's
Compose grid taps to connect with the same menu item, and the Apple console
shell's tiles activate into connect. Only the touch/desktop `HostCardView` had
the swap, which is why one fix covers all three Apple platforms.
Everything else the library round-trip landed stays: the wake-on-open retry, the
per-host cached catalog, the Resume badges, the scroll memory.
Verified on the Mac: swift build clean, swift test 375 tests / 0 failures.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Field note, 2026-08-18: "on the macOS client when clicking on a host the default action is opening the library — i wanted that to be reverted."
Reverts the primary-action swap
22fdea66made on the Apple touch/desktop host card.HostCardViewranonBrowseLibrary ?? onConnect, so on Mac, iPad and Apple TV at once — they share that one card — clicking a paired machine dropped you on its game shelf, and streaming the desktop had moved into the context menu as "Stream the Desktop".Back to the pattern the rest of the app never left:
Nothing else had drifted
Checked rather than assumed, because the same card lives on five shells:
screens/home.rs— Linux + the Android Skia port)Confirm→ connectSecondary(Y)ui_hosts.rs)CardOutput::ConnectConnectGrid.kt)GamepadHomeView)activate→ connectHostCards.swift)Worth naming: this exact change was already backed out on the Android and console-UI side at review during C7 (
9a64a0fa). Apple was the half that stayed. Both are now on the same rule, so no shell disagrees with another about what a card's primary press means.What stays
Everything else the library round-trip landed is untouched — the wake-on-open retry across the boot window, the per-host cached catalog rendered immediately and marked stale, the Resume badges, and the grid's return-to-where-you-were. Only which gesture opens the shelf changed.
Note for the release notes
docs/releases/v0.30.0.md:28advertises "tapping a paired host now opens its library". v0.30.0 genuinely shipped that way (the tag contains22fdea66) and is still unannounced, so that sentence wants trimming before the announcement goes out — deliberately left alone here rather than rewriting a tagged release's record.Verified
On the Mac, against a freshly built
PunktfunkCore.xcframework:swift buildclean,swift testgreen — 375 tests, 6 skipped, 0 failures.