Every public release of RunBar since the canonical site moved to runbar.run. Older internal builds (0.1.0–0.1.12) are not listed — they all preceded full Strava API Agreement compliance.
For the unabridged list with full release notes, see GitHub releases.
v0.1.26 · Clear words when Strava says no
Jul 7, 2026
- When Strava deactivates an API application (as happened during the June 2026 developer-program enforcement), RunBar used to show a cryptic "Server error (HTTP 403)". It now reads Strava's actual answer and says what's wrong and who can fix it — and that reconnecting won't help.
- Invalid or revoked tokens now surface as "Not connected to Strava" instead of a server error, and sync failures log the full API response for diagnostics.
v0.1.25 · Your history heals itself + recovery mode
Jul 2, 2026
- Self-healing history. Weeks where your Mac was off used to leave permanent holes in the sparkline, and past-week totals could get stuck on partial sums. RunBar now refetches the last 12 weeks from Strava daily (in memory only — still 7-day-cache compliant) and corrects every weekly total, both ways.
- Sunday weeks, fixed everywhere.If your week starts on Sunday, the sparkline matched nothing and your streak always read zero — week boundaries now follow your setting in the chart, streak, week numbers and "days left".
- Recovery mode.After a big week (≥ 140 % of target), a quiet start isn't laziness — the runner now takes an earned breather instead of looking idle or guilt-tripping you.
- Past weeks read better."Last week." / "Week 24." titles with a clear "back to now" button (no more cryptic "That week NOW"), plus a week-over-week delta on every past-week card.
- Honest percentages: a 147 % week now says 147 %, not 100 %. Small touches: "LAST DAY" instead of "0 days left", a GOAL tag on the chart's dashed line.
v0.1.24 · Browse past weeks + Strava AI-policy compliance
Jul 1, 2026
- Past weeks, at last.Chevrons in the popover header (or a tap on any sparkline bar) walk you through up to 52 weeks of history — total, target, goal reached or shortfall. Run-by-run details stay for 7 days only, per Strava’s data policy; past weeks keep their totals.
- AI coach paused for compliance.Strava’s June 2026 API policy forbids feeding Strava data into AI tools. RunBar now enforces this in code: while your runs sync from Strava, nothing is ever sent to an AI provider. Your key stays saved — the coach returns with a non-Strava source (Apple Health is next).
- Sturdier sync.Rate-limit (HTTP 429) and server errors now retry with exponential backoff honouring Strava’s
Retry-After; the OAuth window allows 5 minutes for 2FA logins; Keychain and database write failures are surfaced instead of swallowed. - History integrity.Changing your goal or metric no longer rewrites past weeks’ snapshots — streaks and the sparkline stay truthful. A run that syncs after Monday still counts toward last week.
- The coach (when it runs) now speaks your unit — miles users no longer get km numbers — and testing an API key sends sample figures only, never your data.
v0.1.23 · Buy Me a Gel button now actually looks like one
May 7, 2026
- Settings → About gets a dedicated support card with the Ko-fi orange button, and the website footer button adopts the same brand orange. Same link, same "Buy Me a Gel" label everywhere. RunBar stays free and MIT.
v0.1.22 · Victory bounce + Buy me a gel
May 7, 2026
- The native runner now mirrors the website’s victory jump when you cross the weekly line — arms up, small bounce, confetti as before.
- First appearance of the Ko-fi "Buy me a gel" support link (site footer + Settings → About).
v0.1.21 · Restart onboarding actually restarts
May 6, 2026
- Settings → Restart onboarding now walks you through the steps again. Previously the SwiftUI Window scene was reusing the existing view so
stepstayed at the Done screen — clicking Restart re-opened the window straight on the Finish button.
v0.1.20 · Save & reconnect actually reconnects
May 6, 2026
- The Save & reconnect button in Settings → Strava → Manage now actually triggers the OAuth round-trip and opens Strava in your default browser. It used to only persist the credentials and dismiss the sheet — a confusing dead end.
v0.1.19 · Accurate target suggestions
May 6, 2026
- Fixed the "A more realistic target?" banner telling 85 km/week runners that their 4-week average was 15 km. Root cause: the engine was reading raw activities (rolling 7-day cache, only one week of data) instead of the persisted weekly snapshots. Engine now reads the right source.
v0.1.18 · 8-week history seeded on connect
May 6, 2026
- On a successful Strava connect, RunBar now fetches eight weeks of running history in memory, extracts the weekly aggregates, and persists only those derived snapshots. Raw activities older than seven days are never written to disk — fully conformant with the API Agreement, while the goal seed and the popover sparkline reflect reality from the very first launch.
v0.1.17 · Sharper goal seed math
May 6, 2026
- The seed’s divisor now adapts to the actual span of available data instead of dividing by a hard-coded four weeks — correct on a fresh sync, where the rolling cache only fills one week.
- The in-progress ISO week is now excluded from the average. A Monday morning install would otherwise drag the seed down to zero.
v0.1.16 · Clean state on disconnect
May 6, 2026
- Disconnecting Strava now also wipes the 8-week sparkline history. Previously the derived snapshots survived a disconnect, leaving the new account’s popover showing prior-account bars under a fresh "0 runs found" line.
- New diagnostic logging in Console.app: when Strava returns activities but none of type Run / TrailRun / VirtualRun, the type histogram is printed (e.g.
Walk×3 Workout×7) so you can tell immediately whether you OAuthed against the wrong account or the runs are filtered by type.
v0.1.15 · Three quality fixes for BYO users
May 6, 2026
- The onboarding goal seed is now reactive: BYO users routinely land on the Goal step before the first sync has pulled any activities, so the target updates the moment data arrives rather than getting stuck on the 40 km fallback.
- Settings → Strava gains a Reconnect button when an error surfaces. One click instead of disconnect-then-reconfigure.
- Webhook receiver now honours Strava’s
aspect_type=deleteevents and removes the matching activity from the local store within seconds — closing the gap between the API Agreement’s 48-hour delete SLA and the 7-day rolling cache.
v0.1.14 · Official Strava brand assets
May 6, 2026
- The Connect with Strava button now uses the official Strava-provided asset (orange, retina-ready). The Powered by Strava attribution in the popover footer also switches to the official horizontal logo, auto-toggling between black and white variants for light / dark mode.
- Settings → Sources collapses into a single Strava card. While the shared RunBar Strava app is queued for quota approval, the Configure flow takes you straight through registering a personal API client — no more two-card confusion.
v0.1.13 · Strava API Agreement compliance + runbar.run launch
May 6, 2026
- Rolling 7-day cache: activities fetched from Strava are purged automatically after a week. Long-term history is preserved as locally-derived weekly snapshots — never raw Strava records.
- Disconnect now wipes Strava data, not just OAuth tokens, per the revocation clause.
- AI coach disclaimer now cites the Strava API Agreement explicitly and labels the data sent to the LLM as derived aggregates (computed locally), never raw Strava data. Recommendation surfaced in-app: use a paid Gemini API tier — Google may use free-tier prompts for model improvement, paid tiers do not.
- Site moves to runbar.run with new /privacy /terms /contact pages.