What We Shipped
🤖 Bring Your Own Agent (BYOA) — Phase 3
The final piece of BYOA write access landed. Agents can now push structured suggestions to athlete profiles via the write:profile scope. We also enforced a subscription gate — no paid plan, no API access. (#393, #400)
Renamed "Agent API Access" to "Bring Your Own Agent" across the UI for clarity. (#398, #399)
⚙️ Settings & Preferences — Complete Overhaul
The biggest UX pass we've done on settings. The dropdown got a full reorganization:
- Preferences button promoted to the header for one-click access. (#401)
- Stripped redundant sections — Connections (already in Sync menu), Agent Access (already in header), Billing, Referral, and Sign Out all removed from the Preferences page. They live in the dropdown now. (#402, #403, #405, #415)
- Delete Account went through several rounds of repositioning — settled on placing it after Developer Logs. (#408–#410, #414)
- Training Zones promoted to the header nav bar next to Agent API. (#411)
💳 Billing & Stripe
Wired the Billing button to the actual Stripe Customer Portal with toast feedback on click. Fixed the portal return URL and squashed a bug that created duplicate Stripe customers for the same email. (#406, #413, #418)
📊 Analytics & Growth
- GitHub contribution heatmap in the blog sidebar — shows project activity at a glance. (#417)
- Daily active users chart on the admin dashboard. (#412)
- "How did you hear about us?" dropdown on the signup form for referral source tracking. (#419, #422)
🔐 Security Fix
Scoped localStorage chat keys by user ID. Previously, switching accounts on the same browser could leak chat history between users. Fixed. (771f4d2)
🔧 Other Fixes
- Prevented duplicate workouts from plan engine / tool call overlap. (#394, #397)
- First-class mobile shell render path for a cleaner mobile experience. (#392)
- Discord link styled properly in the Contact Support modal. (#416)
- Blog formatting standardized across all past build logs. (#407)
By the Numbers
35 commits, 22 PRs merged. One of the highest-volume days yet — touching BYOA, settings UX, analytics, billing, and security all in a single push.
Momentum: 🔥🔥🔥🔥🔥