Clicking a host connects to it again; the library goes back to the card menu #309

Merged
enricobuehler merged 1 commits from worktree-revert-host-card-primary-connect into main 2026-08-18 19:20:34 +00:00
Owner

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.
enricobuehler added 1 commit 2026-08-18 19:06:01 +00:00
fix(clients/apple): clicking a host connects to it again; the library goes back to the menu
ci / bun-nix (pull_request) Successful in 32s
ci / docs-site (pull_request) Successful in 1m16s
ci / web (pull_request) Successful in 1m20s
ci / rust-arm64 (pull_request) Successful in 1m32s
apple / swift (pull_request) Successful in 2m19s
apple / distribute (pull_request) Skipped
apple / screenshots (pull_request) Skipped
ci / rust (pull_request) Successful in 5m10s
242292528c
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.
enricobuehler merged commit 59cc234055 into main 2026-08-18 19:20:34 +00:00
enricobuehler deleted branch worktree-revert-host-card-primary-connect 2026-08-18 19:20:36 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: unom/punktfunk#309