Skip to content

v0.2.0-build79 — Connect tab + picker (Phase 1)

Pre-release
Pre-release

Choose a tag to compare

@DocNR DocNR released this 12 May 14:39
d9378d9

Phase 1: multi-account NostrConnect

Promotes Connect from a HomeView-presented sheet to a top-level cross-account tab. All account-binding for pairing flows through a single unified picker. No protocol changes; Phase 2 (accounts=multi opt-in for clients) follows separately.

What's new

  • Connect tab. New ⚡ bottom-bar tab between Activity and Discover. Pairing is no longer buried under Home.
  • Discover tab. Placeholder for future NIP-46-compatible app links.
  • Multi-account pairing. With multiple accounts, you now explicitly pick which account each app pairs with — no more implicit "whichever was selected on Home." The picker shows your profile picture, display name, and truncated npub.
  • Per-account bunker URI. The bunker flow asks which account first, then shows that account's URI with an avatar header — you can tell at a glance which account you're sharing.
  • New help sheet. "What's the difference between Nostrconnect and Bunker?" — explains both methods plus the same-device pairing reliability gotcha.

Under the hood

  • handleNostrConnect refactored to array signature with HandshakeResult return type. Phase 1 always passes a 1-element array; Phase 2 enables N > 1.
  • Unified ConnectAccountPicker used by all 3 entry paths (in-app NostrConnect, in-app bunker, external deeplink)
  • Auto-skip when `accounts.count == 1` — single-account users see no added friction
  • Old `Clave/Views/Home/Connect/` directory deleted; new `Clave/Views/Connect/` directory established
  • 246 unit tests pass; new test files: `HandshakeResultTests`, `AppStateHandshakeSignatureTests`, `ConnectAccountPickerAutoSkipTests`

Phase 2 preview

Multi-account NostrConnect protocol opt-in (`accounts=multi` URI flag — one pairing produces N parallel signer sessions) is scoped for a separate PR once Tableau's parallel implementation lands.

TestFlight

Build 79 is on TestFlight (external rollout in progress). Pre-release marker reflects external-smoke-still-in-flight status; will be promoted to Latest when stable.

PR: #52 · Spec + plan live on branch `spec/multi-account-nostrconnect` (local).