Changelog
High-level release notes for the READYPLAY beta. Versioning is 0.x.y until the first wide App Store release.
- Update 053AI Agents
Multi-LLM provider routing groundwork
- New LLM provider probe panel on the admin /coach page reports which providers have keys set, whether Ollama is reachable on the VPS, and which models are pulled.
- Routing recommendations surface the biggest cost wins (move broadcast personas to Ollama if reachable; OpenAI Haiku-class for memory consolidation + weekly recap).
- agent_personas.provider already accepted anthropic/openai/apple — adapter layer for Ollama / OpenAI / Perplexity / OpenRouter / Groq / Together / Mistral / Google / xAI lands in a follow-up once provider keys are dropped on the VPS.
- Update 052AI Agents
Coach token-spend alerts
- Daily token-spend alert: when Coach output tokens or estimated dollars cross configurable thresholds, ops gets one email per UTC day with totals + top 5 spenders.
- Cooldown lives in Postgres so a deploy mid-day can't double-fire.
- Admin /coach page gets a Spend alerts panel with armed/disabled state, recipient, and a Run check now button for verifying the email pipeline.
- Update 051AI Agents
Founders' beta auto-grant
- Every signed-in player automatically gets a free 30-day Coach subscription on signup. No Stripe, no Apple IAP needed.
- One-shot admin backfill grants the same window to every existing player who doesn't already have an active subscription.
- Window + kill-switch tunable via env (COACH_AUTO_GRANT_DAYS, COACH_AUTO_GRANT_DISABLED).
- Update 050AI Agents
iOS Coach UX upgrades
- Voice mode toggle plays every assistant turn through the existing ElevenLabs pipeline.
- Active-goal chip strip surfaces open journal goals as tappable check-in shortcuts.
- Full-journal sheet groups every entry by kind (goal · milestone · plan · insight · session) with status badges.
- Update 049AI Agents
Coach + Insider hardening — tests, history, retention, crons, live tools
- 22 backend tests lock the privacy guarantee — every Coach tool provably ignores LLM-supplied player_id and only reads via the JWT.
- Per-game player_rating_history table powers real growth-trend tool readouts.
- Daily retention sweep, weekly memory consolidation, weekly auto-recap all run off one in-process ticker.
- Scorekeeper → Coach handshake: every active subscriber on a finished game's roster gets a personalized session journal entry written automatically.
- Insider gets six live-data tools (growth snapshot, engagement curves, subscription state, top players, recent signups, brain freshness).
- Admin /coach page gets a token-usage panel with cost estimate and top-25 spenders.
- Update 048AI Agents
Personal Coach + The Insider — two new AI agents
- Personal Coach: per-user paid subscription bound to ONE player's private data — game history, ratings, peer reviews, Apple Health, Whoop, Health Records (with consent). 12-tool layer with JWT-bound privacy guarantee.
- Private journal: Coach writes session recaps, insights, goals, milestones, and training plans — all readable by the player, never surfaced to admins.
- The Insider: admin-only strategy AI that reads the internal-tier brain (ICP, market sizing, monetization, moat, competitive landscape).
- Shared agent-knowledge module: every backend persona (Cookem, broadcast voices, recap writer, Scout, editor, Coach, Insider) now reads canonical product docs from one source.
- Marketing /coach landing page with connected-sources strip.
- Apple IAP + Stripe webhook scaffolds + setup playbook for when external billing is wired.
- Update 047Multi-Sport
Multi-Sport Worlds, Morphed Home, and Honest Preview Banners
- Sport Hub + toolbar switcher sets the active sport context; tabs reset navigation per sport.
- Home morphs copy and layout for live vs parked sports.
- Calendar, Community, and Leaderboard show a clear preview banner when a sport isn't fully live yet.
- Default avatars use user-style stickers instead of basketballs.
- Update 046Community
League Standings, Teammate Win Chemistry, and Motion Hints
- League detail computes local standings from finished games; recent league activity feed added.
- Profiles add a wins-with-teammates ranking derived from shared rosters.
- Subtle SF Symbol motion applied to important actions and hints in Live Game and Roadmap.
- Update 045App Shell
Viewport Framing and Layout Stability
- Fixed horizontal overflow and content feeling zoomed or clipped on iPhone and iPad.
- Splash view no longer participates in layout measurement after hydration is complete.
- Settings Form scrolls correctly without Auto Layout constraint warnings.
- New Game scheduling controls size predictably across compact and regular size classes.
- Update 044Apple Platform
Credits, Designated Scorekeeper, and Apple Watch Scoring
- CreditBalanceStore tracks user credits with balance display in Settings.
- Designated scorekeeper shown in the Live Game header; earns credits on game completion.
- Apple Watch supports full +1 / +2 / +3 scoring with team names and elapsed time.
- Update 043Home
Community Players and Contacts Tabs on Home
- Home people section separates Known players (contacts matched to roster) from Community players (app-wide).
- Each tab includes a random spotlight row and a new-arrivals row.
- Contact sync runs on a background thread to avoid blocking the main thread.
- Update 042Team Setup
Team IDs and Win Probability Engine
- Every unique player combination gets a deterministic SHA256-based team ID (e.g. 7F2K-9Q1M).
- WinPredictor calculates match probability using attributes, peer scores, and co-play history.
- Synergy and familiarity bonuses applied when recurring teammates run together.
- Update 041Home
Homepage Leaders: 11-Tab Leaderboard
- Leaders section is now a scrollable 11-tab bar: Scoring, 3PT, Jumpshot, Layup, Put-back, Dunk, Floater, Fade, Steals, Blocks, Streaks.
- Steals and Blocks derived from aggregated peer-reviewed attributes.
- Streaks tab pulls current win streak from finished on-record games.
- Update 040Settings
NFT and Blockchain Architecture Documented in About
- About section now explains the NFT identity model for players and teams.
- Cryptographic anchor hash generated at game completion described as the on-chain payload.
- Local anchor hashes stored on completed games today; on-chain IDs coming with wallet integration.
- Update 039Profiles
Offensive and Defensive Awareness as Separate Attributes
- Offensive and defensive awareness are now distinct attributes with separate peer-review inputs and attribute bars.
- Each feeds WinPredictor and GamificationService with more granular team-strength signals.
- Legacy combined awareness field preserved for backward compatibility.
- Update 038Team Setup
Player Defensive Responsibility — Independent Drag Per Side
- Matchup board renamed to Player Defensive Responsibility.
- Team A and Team B each reorder independently via long-press and drag within their column.
- Matchups pair row 1 vs row 1 with override available on score entry.
- Update 037Live Game
Foul Two-Step Flow: Caller Then Fouler
- Foul flow now uses a clear two-step sequence: first who called the foul, then who committed it.
- Caller is excluded from the fouler selection pool.
- Both caller and fouler IDs stored on FoulEvent for full history traceability.
- Update 036Live Game
Shot Court Precision: Three-Point Line, Paint, Zone Points
- Visible three-point arc drawn on the shot selection court diagram.
- Paint area enlarged for more accurate tap targeting.
- Correct 1, 2, or 3 point value derived from tap position using real arc math.
- Update 035Profiles
Stats Export and NBA 2K / NBA Live Blueprint
- Export full game history as a JSON bundle from your profile.
- Auto-generated Create-a-Player Blueprint maps real stats to the 0–99 attribute scale used in NBA 2K and NBA Live.
- Archetype detection from shooting and finishing patterns (Outside Spacer, Slasher/Finisher, Balanced Wing).
- Update 034Sites
Exact Sport Anchors, Look Around, and Amenity Mapping
- Parks now map the real sport area with sport-specific map anchors.
- Look Around and satellite context available on park sheets.
- Pools and field-sport amenity badges surface in site calendars.
- Update 033Profiles
Profile Identity Refresh
- Profiles now show monthly record instead of season record.
- Instagram, TikTok, YouTube, and X social handles added to profile pages.
- Sport-ball tabs added across the profile shell.
- Update 032Profiles
Computed Attribute Engine and Peer-Only Reviews
- Self-rating removed; attributes now lean on peer review, shot trust, and tracked outcomes.
- Computed 0-to-100 attribute model replaces self-declared opinion.
- Shot-confidence inputs feed scoring attributes.
- Update 031Live Game
Shot Chart, Matchups, and Scored-On Tracking
- Live scoring now includes shot location, shot type, and pre-game defensive matchups.
- Who got scored on is tracked for each basket.
- Game summaries tell a more believable story about how scoring happened.
- Update 030Apple Platform
Follower Live Activities and Watch Controls
- Followers can pin a live game to the Lock Screen and receive clutch alerts at three-point margins.
- Apple Watch supports deeper run status, check-in, and host launch actions.
- App stays useful from the Lock Screen even when the phone is in the bag.
- Update 029Scheduling
Calendar Hub and Geofenced Scheduling
- Dedicated calendar tab added for planning future runs by park and sport.
- Recurring site scheduling with next runs generated automatically.
- Check-in only available when physically at the park (geofenced).
- Update 028Sites
Site Intelligence and Nearby Player Layer
- Park pages surface run culture, current conditions, and nearby players.
- Users can compare parks by current atmosphere, recent activity, and on-site player presence.
- Site intelligence tied to recent games and timing patterns.
- Update 027Maps
Map Seed Corrections and Park Address Fixes
- Corrected multiple Miami and Miami Beach park coordinates and addresses.
- Address display moved directly under the map on park detail pages.
- Park selection and game creation now confirm the selected park more clearly.
- Update 026Roadmap
Roadmap Detail Sheets and Blueprint Taps
- Roadmap is now interactive with separate Completed and Planned tabs.
- Tappable feature and screen cards with stable IDs (REP-1xxx, REP-2xxx).
- Concept UI previews inside detail pop-up sheets.
- Update 025Profiles
Profile Splits and Site Inverse View
- Profiles now break down performance by site, time, and conditions.
- Park pages show the inverse view: which players perform best at that specific location.
- Performance explorer with drill-down games added.
- Update 024Sites
Site Intelligence and Conditions History
- Park pages show current conditions, conditions history, and run culture.
- Timing patterns and top players attached to recent runs at each site.
- Users can choose parks based on how they run and who shows up there.
- Update 023Team Setup
Team Builder and Downs Automation
- Contact picker now shows a live player count.
- Random and balanced auto-build modes for fair team formation.
- Leftover players automatically flow into the next game queue.
- Update 022Live Game
Shot Chart Foundation
- Score events now support shot location and optional shot style tagging.
- Game summaries show a first-pass shot map for made baskets.
- Shot styles include layup, floater, jumpshot, and more.
- Update 021Game Creation
Court Picker UX Rework
- Selecting a court now uses clear surface choices: Full Court 1, Court 1A, Court 1B.
- Selected park footprint revealed immediately after choosing a surface.
- Sticky bottom action bar added for quicker confirmation.
- Update 020Courts
Park Footprint Upgrade
- Site layouts moved from generic icons to authored park schematics.
- Real court arrangements, paths, bleachers, fence cues, and tappable explanations.
- Full-court side labels like 1A and 1B added.
- Update 019Scheduling
Recurring Runs and Start-Now Flow
- Hosts can create weekly repeating runs without recreating the same game each week.
- Next 8 runs generated automatically from a recurring schedule.
- Host-only Start Now button on scheduled cards to launch the run in one tap.
- Update 018Scheduling
Scheduling, RSVP, and Conflict Control
- Players can schedule future games by park and RSVP into upcoming runs.
- Double-booking across overlapping game times is blocked automatically.
- Upcoming games surface on home and park views.