RELEASE NOTES · BUILD 80 · 2026-05-27 · TESTFLIGHT

CHANGELOG.

BuckUp's changelog lists every shipped build with its number, date, and a plain-language summary of what changed. The App Store live build is 1.0(58). The latest TestFlight build is 1.0(80), uploaded 2026-05-27. No marketing fluff. If we removed something, we say so.

v1.0(80)
2026-05-27 · TESTFLIGHT

Build 80 — patches sync across devices.

The biggest user-facing addition in Build 80 is cloud patch sync: achievement patches now sync to your Supabase account, so patches earned on one iPhone appear on any device when you sign in. All 20 patches, earned in the field, available everywhere.

  • Patches now persist to user_patches table — earn on one device, sync to all
  • Reactive sync triggers on every patch unlock; hydration on sign-in
  • OAR fixes: Live Activity "NEW PEAK" text, badge gradient, Buck Shot tape strip, patch count label all corrected to proper color tokens
  • Accessibility: elevation profile VoiceOver composed label, PhotosPicker accessible label, decorative underline hidden from VoiceOver
  • Concurrency: JSONEncoder moved off @MainActor hot path into Task.detached
  • Info.plist: 79 → 80
v1.0(79)
2026-05-27 · WIDGET POLISH

Build 79 — widget reload policy and sparkline guard.

Widget and gauge refinements. The active-session widget reload budget was burning unnecessarily fast — throttled from every 60s to every 300s for active sessions (real-time updates still land via AltimeterEngine threshold). The elevation sparkline now requires at least 5 samples before rendering so single-point stubs don't appear in the log.

  • Widget reload policy: .after(60s).after(300s) for active sessions
  • ElevationSparkline guard: >= 2>= 5 samples before rendering
  • Info.plist: 78 → 79
v1.0(58)
2026-05-21 · APP STORE LIVE

Build 58 — accepted to the App Store.

The release build. Privacy manifest reconciled with the App Privacy nutrition label so the two sworn declarations match exactly. Apple accepted this build on the first review of the resubmitted v1.0 package.

  • PrivacyInfo.xcprivacy rewritten to declare Email, Name, UserID, Purchase History, Other User Content, Photos (Linked, App Functionality) plus Crash, Performance, and Other Diagnostic (Not Linked, App Functionality + Analytics)
  • Precise Location entry dropped — coordinates never leave the device, so the manifest now matches the truth
  • Sign in with Apple, Google, and email all confirmed as optional sign-in paths
  • Info.plist: 57 → 58
v1.0(57)
2026-05-21 · COMMA SWEEP

Build 57 — 14,115, not 14115.

Nine separate NumberFormatter instances across BuckList, BuckShot, Rig, Altimeter stats, the in-app gauge, and BuckKit models were missing usesGroupingSeparator = true. Locale("en_US_POSIX") strips grouping by default, so altitudes were rendering as 14505 instead of 14,505. This sweep restored thousands separators everywhere they belonged.

  • 9 files patched, single commit, identical fix each
  • Info.plist: 56 → 57
v1.0(56)
2026-05-21 · DEVICE-FEEDBACK FIXES

Build 56 — High Country patch, in-app comma, widget offset.

Three device-feedback fixes from on-device review: the High Country patch artwork was using a displayScale of 1.40 designed for shields with margin, but its oval art already filled the canvas so it overflowed — flipped to 1.0. The in-app gauge in FaceLayer.swift got the same thousands-separator fix that later spread across the codebase in Build 57. And the widget altitude offset moved from -16 → -14 for more breathing room from the ring notches.

v1.0(55)
2026-05-21 · SENTRY HARDENED

Build 55 — Sentry flipped to Not Linked.

A 30-day Sentry audit showed zero Session Replays had ever been captured — meaning the masked-text feature was costing nothing in debug value. Build 55 hardened the SDK config so all three Diagnostics sub-categories now genuinely declare as Not Linked to You.

  • sendDefaultPii = false — suppresses IP capture
  • beforeSend scrubber nils event.user on every outbound event
  • sessionReplay.maskAllText = true and maskAllImages = true
  • Privacy policy §3.5 updated to reflect the hardened state
v1.0(54)
2026-05-20 · RECONCILIATION

Build 54 — privacy reconciliation + onboarding footnote.

Build 54 closed out the launch-blocker list by reconciling the privacy policy with the Sentry Session Replay capture mode, adding an explicit "by tapping LET'S GO you accept the Privacy Policy" footnote to onboarding, and shipping a UITEST runbook for the engineering team.

  • Privacy policy diagnostics classified as "Not Linked to You" (Sentry hardened in Build 55: sendDefaultPii=false, beforeSend nil-user scrubber, Session Replay maskAllText=true)
  • Onboarding footnote with buckup.app/privacy link
  • UITEST runbook landed at Docs/UITEST-RUNBOOK.md
  • Info.plist: 53 → 54
v1.0(53)
2026-05 · PATCH CELEBRATION

Build 53 — the patch celebration finally fires.

Build 53 was the build where the patch celebration moment finally connected end-to-end. Earning a patch now triggers the full-screen celebration with the real patch artwork, and tapping ADD TO RIG files it on your wall.

  • PatchUnlockSheet rewired to use PatchCelebrationView with real artwork
  • CTA renamed from "Continue" to "ADD TO RIG" (off-road register)
  • Rig-tribe accessibility identifiers for all 8 tribes
  • UserIDResolver formalized in git
  • Info.plist: 52 → 53
v1.0(52)
2026-05 · POLISH PASS

Build 52 — widget readability + Dynamic Island safety.

Build 52 was the visual-polish pass on the widget stack — collapsing the small-widget label triad into a single readable mono caption, adding a 5-digit altitude safety to Dynamic Island so 14,505 ft no longer truncates, and wiring the privacy nutrition label into the plist.

  • Small widget readability: 3-stack 7pt → single 9pt mono caption
  • PatchView crop fix; FacetedPeakGlyph → real PatchView
  • Dynamic Island 5-digit altitude safety (minimumScaleFactor 0.7)
  • Privacy nutrition label landed in PrivacyInfo.xcprivacy
  • Privacy-update full-screen cover for existing TestFlight users
  • Info.plist: 50 → 52
v1.0(51)
2026-05 · PHOTOS + REPLAY

Build 51 — per-session photos on every entry.

Build 51 shipped the per-session photo feature on every Buck Log entry, along with Sentry Session Replay (privacy-respecting — photos masked, peak names visible) and the visually-accurate paywall widget previews. This was the user-facing build that turned the Buck Log from a list into a journal.

  • Per-session photos on every Buck Log entry (PhotosPicker integration)
  • Actor-isolated BuckLogPhotoUploader — offline-tolerant
  • Paywall previews swapped to BuckWidgetPreviewMock (what you buy is what you get)
  • Sentry Session Replay enabled (50% sample, photos masked)
  • XCUITest scaffold + cross-account isolation test
  • Privacy Policy §3.5 (Session Replay) + §3.6 (Photos) disclosures
v1.0(50)
2026-05 · STOREKIT RECOVERY

Build 50 — Restore Purchases always one tap away.

Build 50 closed the StoreKit recovery loop with an inline Restore Purchases CTA right under purchase errors, a third-stage AppStore.sync() recovery path, and an accessibility-identifier sweep across nine files to enable XCUITest verification.

  • StoreKit AppStore.sync() 3rd-stage recovery
  • Inline "RESTORE PURCHASES" CTA under purchase errors (amber, underlined)
  • Sandbox-conflict copy rewritten for clarity
  • 30 accessibility identifiers across 9 view files
v1.0(2)
2026-04 · SUBMISSION BUILD

Build 2 — initial App Store submission.

Build 2 was the initial App Store submission build — the first time BuckUp went into Apple's review queue with the full launch feature set. Most of the visible app shipped here; builds 50–54 were the trail of polish and recovery between submission and approval.

  • Barometric altimeter, Buck Log, Buck Shot, PROFILE tab, Rig registration
  • Home Screen widget (S/M/L)
  • Lock Screen + Dynamic Island Live Activity
  • 60 named peaks (now superseded by 2,400-destination Explore)
  • Sentry crash reporting integrated
ROADMAP

What's next.

Every future update is free across builds already installed.

UP NEXT

v1.1 · Routes + Maps

More iconic passes, GPS track imports, expanded Mapbox topo integration.

FALL 2026

v1.2 · Passport + Watch

Regional patch books (Rockies, Moab, Rubicon), Apple Watch complication.

2027

v2.0 · CarPlay + Telemetry

Full CarPlay altimeter, OBD-II tie-ins, GPS breadcrumb export.