Skip to contentAdd reviewed plan profile adjustments and polish ask coach conversation experience.
- +Add reviewed plan profile adjustmentsApp
- +Polish Ask Coach conversation experienceApp
- •Preserve workout evidence and progression contextApp
- •Preserve onboarding intent through the first workoutApp
- •Make onboarding programme review actionable and measurableApp
- •Preserve working-set history after partial workoutsApp
Polish plan progress and contextual coaching and show programme progress with shared workout components.
- +Polish Plan progress and contextual coachingApp
- +Show programme progress with shared workout componentsApp
- +Offer remaining-set target copy in loggerApp
- +Make bodyweight optional to reduce drop-offApp
See all 17 changes
App
- +Polish Plan progress and contextual coaching
- •Open 1.6.8 TestFlight release train
- +Show programme progress with shared workout components
- •Accept previously ended Watch cancellation
- •Release cancelled HealthKit start gate
- •Clarify warm-up set controls
- •Isolate temporary swap progression
- •Require bodyweight calibration
- +Offer remaining-set target copy in logger
- •Avoid zero loads in shared workouts
- •Freeze substituted starting targets
- +Make bodyweight optional to reduce drop-off
- •Stabilize signed-out tab navigation
- +Update App Store listing metadata
- •Add paywall recovery step
- •Keep programme accordion expansion nested
- •Improve quick filter sizing
Add reviewed exercise media proxies and polish exercise media presentation.
- +Add reviewed exercise media proxiesApp
- +Polish exercise media presentationApp
- +Add exercise thumbnails to workout surfacesApp
- +Add exercise guide animationsApp
- •Preserve program day orderWatch
- •Harden trial reminder lifecycle and repair today's review findingsGeneral
See all 42 changes
App
- •Repair render timing and chart accessibility
- •Align Google sign-in button
- •Keep workouts available during RevenueCat outages
- •Polish programme review interactions
- •Align exercise picker media actions
- +Add reviewed exercise media proxies
- +Polish exercise media presentation
- +Add exercise thumbnails to workout surfaces
- •Improve exercise media visibility
- +Add exercise guide animations
- +Polish programme exercise list
- •Make auth paywall handoff explicit
- •Gate plan start until review
- •Round Google sign-in button
- +Unify add exercise picker filters
- •Compact exercise swap decision
- +Refine start workout picker
- •Increase live activity rest timer visibility
- •Compact previous workout preview label
- •Present exercise swaps reliably
- •Preserve guest subscription purchases
- •Defer RevenueCat until account binding
- +Make value-proof onboarding default
- +Highlight fresh progression recommendations
- •Simplify progressive overload journeys
- •Cap bodyweight calibration range
- •Stabilize ruler calibration inputs
- •Remove legacy sync prompt
- •Clarify progression proof graph
- •Restore strength session duration outcomes
- •Show session duration preference in plan preview
- •Refine onboarding progression proof
- +Add native 14-day trial paywall
- •Clarify prescription progression
- +Shorten journey to programme reveal
- •Clarify programme explainers
- +Streamline progression proof
- +Animate native progression story
- +Explain adaptive progression in onboarding
- +Request reviews after workout value
Watch
- •Preserve program day order
General
- •Harden trial reminder lifecycle and repair today's review findings
Polish personalised programme reveal and cache exercise media images for offline rendering.
- +Polish personalised programme revealApp
- +Cache exercise media images for offline renderingApp
- +Refine personalised programme revealApp
- +Tighten programme setup flowApp
See all 42 changes
App
- •Align generated plan duration with stated budget
- •Make weekly set bar zone ticks read as threshold markers
- •Skip duplicate logger proof
- •Reveal progression proof video
- +Polish personalised programme reveal
- •Guard Watch workout lifecycle replacement
- +Cache exercise media images for offline rendering
- •Make typography ramp scale with Dynamic Type
- +Refine personalised programme reveal
- •Add missing exercise media URLs to catalogue
- +Tighten programme setup flow
- •Hold final score after demo loops
- +Add complete product demo loop
- +Showcase the product on welcome
- +Refine primary action style
- +Personalise first workout proof
- +Use real logger showcase
- •Reconcile restored Apple Watch workouts
- +Add progression pace onboarding
- •Show recommendations after target edits
- +Integrate Superwall with RevenueCat
- •Keep paywall after skipping account
- •Make account sign-in optional
- •Accept current HealthKit HRV
- •Simplify uneven rep progression
- •Clarify adjusted rep recommendations
- +Add progression proof film
- •Stabilize bodyweight ruler dragging
- •Smooth scheduled workout launch
- •Smooth benchmark input back navigation
- •Constrain onboarding benchmark picker highlights
- •Align warm-up persistence and workload semantics
- +Polish post-workout score reveal
- •Persist Watch workouts and effort
- +Add real welcome proof flow
- +Capture RIR per set
- +Restore programme review actions
- +Polish programme setup flow
- •Stabilize onboarding scroll transitions
- •Soften onboarding scroll edges
- +Start weekly review from reminder taps
- •Shorten body volume sets label
Add workout score story and add value-proof programme journey.
- +Add workout score storyApp
- +Add value-proof programme journeyApp
- •Ignore stale sleep in health signalsGeneral
- +Identify ChatGPT-created programsApp
- +Add muscle colors to workout pickerApp
- •Make Watch own Watch-started workoutsWatch
See all 34 changes
App
- +Add workout score story
- •Smooth score evidence transitions
- •Continue with restored answers
- •Default simulators to value proof
- •Restore deliberate journey navigation
- +Add value-proof programme journey
- •Prevent false progression history and target exercise slots by UUID
- •Tolerate unknown recommendation reasons
- •Make chart scrubbing immediate
- •Preserve muscle map evidence identity
- •Stabilize logger collection bindings
- •Prevent typed workout set removal crash
- •Import ChatGPT programs as generated
- +Identify ChatGPT-created programs
- •Prevent Watch heart-rate session overlap
- •Make custom exercise editor keyboard safe
- •Require complete exercise search queries
- •Keep body chart selection interactive
- +Add muscle colors to workout picker
- +Add rolling volume drilldowns
- •Harden RevenueCat customer identity
- •Keep volume filters on one line
- +Make Body the volume intelligence surface
- •Surface disabled progression state
- •Keep readiness guidance fresh
- •Keep workout picker summaries inline
- •Clear swap sheet on dismissal
- +Improve exercise swap browsing
- •Retain weekly check-in notification routes
- •Simplify workout picker actions
- +Add profile volume trends
- •Make program choices schedule-neutral
Watch
- •Make Watch own Watch-started workouts
General
- •Ignore stale sleep in health signals
Make progression recommendations prescription-aware and restore continuous heart rate recording.
- •Make progression recommendations prescription-awareApp
- •Restore continuous heart rate recordingWatch
- +Streamline first workout setupApp
- •Preserve skipped rest dismissalWatch
- +Streamline onboarding conversion flowApp
- •Stabilize cross-device workout navigationWatch
- •Stabilize exercise navigationWatch
- +Improve exercise swap recommendationsApp
See all 31 changes
App
- •Make progression recommendations prescription-aware
- •Stabilize onboarding chat transitions
- •Smooth onboarding choice transitions
- •Animate previous set preview
- •Simplify live activity rest timer
- •Streamline first workout handoff
- •Preserve exact strength exercise mappings
- •Finalize HealthKit workouts on recording owner
- +Streamline first workout setup
- +Streamline onboarding conversion flow
- •Remove onboarding composer scroll clip
- •Keep founder banner out of tab headers
- •Trust explicit set roles
- •Align mixed-set prescriptions
- •Clarify swapped exercise targets
- •Keep newest score evidence visible
- •Compact workout exercise summaries
- •Harden exercise mapping contract
- •Preserve structured strength exercises
- •Allow retry after activity deletion
- •Preserve muscle maps after rich upload rejection
- •Fall back when strength JSON is rejected
- •Repair workout share export layout
- +Improve exercise swap recommendations
- •Verify uploads and add retry action
- •Improve typed workout exercise swaps
Watch
- •Restore continuous heart rate recording
- •Preserve skipped rest dismissal
- •Stabilize cross-device workout navigation
- •Stabilize exercise navigation
- •Center planned workout start status
Add workout csv export and handle restricted calendar accounts.
- +Add workout csv exportGeneral
- •Handle restricted calendar accountsApp
- +Show workout score contributionApp
- +Upload native strength workoutsApp
- +Simplify subscription paywallApp
- +Route bounded Coach surfaces through LunaAI Coach
- •Recover stalled heart-rate displayWatch
See all 32 changes
App
- •Handle restricted calendar accounts
- •Move increment score work off render paths
- •Stabilize adaptation and release contracts
- +Show workout score contribution
- +Upload native strength workouts
- •Remove workout evidence title
- •Separate exercise details in exports
- •Allow best-effort equipment starts
- •Keep plan recommendations compact
- •Stabilize workout summary action bar
- •Keep staged subscription paywall open
- •Reconcile existing subscriptions in paywall
- +Simplify subscription paywall
- •Hide sync diagnostics from account UI
- •Align subscription access screens with product
- •Publish compact branded workout copy
- •Complete exercise setup capabilities
- •Model exercise setup requirements
- •Align plan recommendations
- •Correct exercise media and set copy
- •Repair calendar feed scheduling
- •Speed up social feed loading
- •Decouple workout picker from schedule
- •Show all plan days in workout picker
- •Normalize plan-aware backoff targets
- •Align connection actions and restore Strava branding
- •Clear stale workout live activities on launch
- •Stabilize progression settings handoff
- •Unify connection controls
Watch
- •Recover stalled heart-rate display
AI Coach
- +Route bounded Coach surfaces through Luna
Roll completed plan cycles in any order and add trial-first pro experience.
- •Roll completed plan cycles in any orderApp
- +Add trial-first Pro experienceApp
- +Add RevenueCat access stateApp
- +Enforce Pro across hosted capabilitiesGeneral
- +Clarify logger recommendation statesGeneral
- +Adapt recommendation target presentationGeneral
- +Refine logger recommendation popoverGeneral
- +Improve workout recommendation guidanceApp
See all 45 changes
App
- •Roll completed plan cycles in any order
- •Isolate Swift package caches by checkout
- •Keep App Attest out of release signing
- •Use pinned QA simulator for smoke checks
- •Hide Pro UI behind launch gate
- +Add trial-first Pro experience
- +Add RevenueCat access state
- •Keep previous weight on one line
- •Let score commentary use available space
- •Make leaderboard rankings comparable
- •Clarify history calendar markers
- •Enable score calendar workout navigation
- •Make feed cards open from passive areas
- +Improve workout recommendation guidance
- •Persist HealthKit workout effort reliably
- •Compact workout header metrics
- •Keep workout recommendation pill readable
- •Compact Strava connection row
- •Compact Strava connect button
- •Explain plan history targets
- •Trust newest compatible targets
- •Keep plan completion state consistent
- •Keep weekly Plan completion visible
- •Preserve workout target provenance
- •Explain logger target provenance
- •Align typed workout result rows optically
- •Preserve runtime update retries
- •Align typed workout columns
Watch
- •Preserve prescribed rest duration
- •End recovered orphan workouts
- •Terminate discarded workout runtime
- •Let phone finalize HealthKit workout
- •Harden workout command sync
General
- +Enforce Pro across hosted capabilities
- •Unify recommendation popover presentation
- •Restore recommendation decision labels
- +Clarify logger recommendation states
- +Adapt recommendation target presentation
- +Refine logger recommendation popover
- +Refresh recommendation coaching popover
- +Make Strava integration submission ready
- •Harden cross-slot capacity calibration
- •Explain calibrated workout targets
- +Calibrate stale slots from compatible capacity
- +Expose contextual exercise evidence
Make bodyweight tracking first class and add dated bodyweight store.
- +Make bodyweight tracking first classApp
- +Add dated bodyweight storeApp
- +Unify muscle colour stylingWatch
- +Refine planned workout headerWatch
- +Polish plan brandingWatch
- +Redesign planned workout flowWatch
- +Define active set cursor logicApp
- +Bundle rest timer notification sequenceApp
See all 89 changes
App
- •Force typed workout prescriptions inline
- •Keep typed workout prescriptions inline
- •Preserve typed workout action accessibility
- +Make bodyweight tracking first class
- •Preserve bodyweight HealthKit identity
- +Add dated bodyweight store
- •Unify progression copy across plan surfaces
- •Clarify logger progression context
- •Correct generated muscle attribution
- •Make progression guidance easier to scan
- •Align progression recommendation copy
- •Keep typed workout matches readable
- •Keep typed workout rows readable
- •Generalize exercise search query coverage
- •Prevent exercise metadata search hijacking
- •Keep skipped sets behind active cursor
- +Define active set cursor logic
- •Prevent duplicate Apple Calendar events
- •Expose notification sound authorization
- +Bundle rest timer notification sequence
- •Schedule locked rest timer chimes
- +Add shared social resource cache
- •Render self profile from local data
- •Show local data on signed-in profile
- •Clarify generated plan overview
- +Explain swapped exercise targets
- •Constrain workout swaps by evidence recency
- •Align swap targets with current capacity
- •Stop completed catch-ups repeating
- •Open program from Plan header
- •Keep rest timer audio alive off logger
- •Keep workout finish action on one line
- •Make past workout edits durable
- •Recover legacy recommendations per exercise
- •Stabilize Coach and workout UI tests
- +Preserve progression provenance across plan changes
- •Keep preview weights on one line
- •Make simulator QA deterministic
- •Preserve generated plan identity and trust
- +Unify program plan detail
- •Preserve intent across divergent swaps
- +Fill popular exercise catalog gaps
- •Make workout swaps goal-aware
- •Resume draft from workout picker
- •Simplify saved plan summary
- •Improve calendar feed navigation
- •Show plan muscle with recommendation
Watch
- +Unify muscle colour styling
- +Refine planned workout header
- +Polish plan branding
- +Redesign planned workout flow
- •Keep workout state consistent
- •Ignore workout updates older than a clear
- +Keep finish as the final workout page
- •Keep completion title visible
- •End workout locally after finish
- •Support precise weight adjustments
- •Clear workout when mirrored session ends
General
- •Harden exercise metadata and program balance
- •Complete progression presentation contract
- +Explain applied progression bridges plainly
- +Apply equipment-aware progression bridges
- •Confirm progression at the new load
- +Resolve mixed-weight progression bridges
- +Calculate relative progression steps
- •Enforce progression contract end to end
- •Accept grounded observation paraphrases and finalize traces
- •Share applied progression with Logger
- •Ground observation review verification fallback
- +Add progression policy controls
- +Preserve progression through time away
- •Preserve mixed-set progression evidence
- +Make progression slot-aware
- •Preserve saved progression slots
- •Update Transmission for Xcode 26
- •Remove restricted notification entitlement
- •Create missing TestFlight capability
- •Use explicit TestFlight provisioning client
- •Configure TestFlight provisioning team
- •Repair TestFlight capability with API key
- •Enable TestFlight notification capability repair
- +Approve canonical product media assets
- +Harden product media capture catalogue
- +Add website product media catalogue
- •Harden product media capture pipeline
- •Keep profile names consistent when signed in
- +Make private profile available offline
- +Capture reusable product media scenes
- +Add product media capture contracts
Close generated plan review gaps and align generated plan metrics.
- •Close generated plan review gapsApp
- •Align generated plan metricsApp
- +Make generated plan review actionableApp
- +Optimize solo developer feedback loopsGeneral
- +Add fast persistent iOS visual QA laneGeneral
- +Add editable generated plan reviewApp
- +Route weekly check-ins through coach askGeneral
- +Split social privacy controlsGeneral
See all 50 changes
App
- •Close generated plan review gaps
- •Align generated plan metrics
- •Keep setup composer controls visible
- •Simplify generated plan review
- •Steady program setup response controls
- +Make generated plan review actionable
- +Add editable generated plan review
- •Expand type workout editor focus target
- •Show calves and keep bodyweight rows compact
- •Show global previous sets in logger preview
- •Remove typed workout match pill
- •Polish typed workout compact layouts
- •Stabilize exercise selection source test
- •Remove alternate styles from program preview
- •Keep program preview warnings internal
- •Align program style defaults with goals
- •Keep guided program chat editable
- •Tighten program setup option buttons
- •Start generated programs directly
- •Restore program setup response cards
General
- +Optimize solo developer feedback loops
- +Add fast persistent iOS visual QA lane
- •Remove legacy weekly checkin sheet route
- +Route weekly check-ins through coach ask
- •Map legacy social privacy updates
- +Split social privacy controls
- •Reserve coach observation review prompt
- •Use persisted exercise identity for recent history
- +Prefer recent exercises in generated plans
- •Enforce unique custom exercise names
- •Keep program edit prompts after exercise swaps
- •Show warmup sets on watch
- •Route in-app feedback through sync service
- +Route coach observation review prompt
- •Remove generated plan summary step count
- •Keep plan day pills within header
- •Remove muscle history chevrons
- •Polish exercise picker header and filters
- •Reuse coach suggestion pills in plan setup
- •Preserve workout header recommendation pill
- •Align program setup chat styling
- •Open exercise detail from muscle history rows
- •Reuse logger pill in typed workout
- •Move logger recommendation below controls
- •Remove empty score ring placeholder
- •Keep onboarding chat visible
- •Standardize typed workout summaries
- •Compact typed workout summaries
- •Persist program generation intent
- •Preserve program generation metadata
Add request-backed program generation and queue external app changes.
- +Add request-backed program generationGeneral
- +Queue external app changesCLI
- +Support CLI program supersetsGeneral
- +Improve typed workout match editingGeneral
- +Show program recency inlineApp
- +Add typed blank plan setupApp
- +Tint typed workout matches by muscleApp
- +Add domain exercise searchApp
See all 75 changes
App
- •Widen typed workout match preview
- •Refresh CLI program imports from programs view
- •Schedule hosted sync on launch
- •Keep previous set date from shifting rows
- +Show program recency inline
- +Add typed blank plan setup
- +Tint typed workout matches by muscle
- +Add domain exercise search
- •Clean type workout query punctuation
- •Polish type workout matching
- +Capture coach goals during setup
- •Highlight blocked typed workout rows
- •Clarify typed workout empty state
- +Simplify quick workout start options
- +Polish plan session layout
- •Make feed card tap targets reliable
- •Scope recommendations to exercise variants
- •Preserve exercise variant identity for swaps
- +Clean adjacent training language
- +Enforce public score training language
- •Preserve legacy vitals summary cache keys
- •Use local date keys for vitals summaries
- •Preserve progression facade fallbacks
Watch
- •Keep active header visible
- •Remove RIR prompt from workout flow
CLI
- +Queue external app changes
General
- +Add request-backed program generation
- •Preserve CLI-created programs on snapshot upload
- •Stabilize typed workout match columns
- +Support CLI program supersets
- +Improve typed workout match editing
- +Create inactive programs from CLI drafts
- •Preserve default plan duration semantics
- +Make guided plans session-length aware
- •Smooth onboarding workout start
- •Clarify onboarding benchmark inputs
- +Add onboarding start logging fork
- •Remove tip popovers and restore workout discard origin
- •Quiet onboarding brand accents
- +Pass preferred name into Ask Coach context
- +Add typed workout footer summary
- •Wire program detail exercise media
- •Remove typed workout empty help text
- •Tune progression recommendations and explainer
- •Restore swap exercise media action
- •Search typed workout choices by row text
- +Add typed workout quick logging
- •Make custom exercise creation search-driven
- •Harden score coach handoff
- +Add score coach handoff
- •Quiet exercise picker scope controls
- •Map machine shoulder press media directly
- •Add machine shoulder press to exercise catalog
- •Hide unavailable exercise media actions
- •Preserve exercise variant identity
- •Prevent watch heart rate cutoff
- •Correct shared workout imported load defaults
- •Refresh strava feature gate state
- •Refresh stale remote contract metadata
- •Retry transient APNs connection failures
- •Cache APNs provider tokens
- •Recover interrupted Ask Coach responses
- +Show coach advice accountability labels
- +Check ask coach advice outcomes
- +Persist ask coach advice observations
- +Add structured coach advice contract
- •Keep large score history JSON complete
- +Polish weekly recap rail card
- •Tidy coach rail cards
- •Hide tapped Coach follow-up prompts
- +Add weekly check-in decision evidence
- •Run npm publish on github-hosted actions
- +Export resolved progression recommendations
- +Automate marketing video review packs
- •Handle bodyweight progression targets
Stabilize weekly recap digest parsing and hide noisy ask evidence receipt.
- •Stabilize weekly recap digest parsingGeneral
- •Hide noisy ask evidence receiptApp
- +Expose coach fact extraction telemetryAI Coach
- •Preserve durable coach summary preferencesAI Coach
- +Add dynamic ask evidence planningAI Coach
- +Expose typed coach memoryAI Coach
- +Warm start progress reviews with athlete snapshotGeneral
- +Add LangGraph starter prompt workflowsGeneral
See all 22 changes
App
- •Hide noisy ask evidence receipt
AI Coach
- +Expose coach fact extraction telemetry
- •Preserve durable coach summary preferences
- •Reject ephemeral coach fact requests
- +Add dynamic ask evidence planning
- +Expose typed coach memory
- •Clean Langfuse ask prompt traces
General
- •Stabilize weekly recap digest parsing
- •Tighten weekly check-in prompt
- •Expose coach fact rejection telemetry
- •Gate coach fact extraction requests
- •Remove goal status from ask coach
- +Warm start progress reviews with athlete snapshot
- •Queue watch workout controls
- •Precreate workout live activity
- •Watch workout controls
- •Polish plan spacing and draft indicators
- •Delay rest timer audio activation
- •Harden starter prompt graph routing
- +Add LangGraph starter prompt workflows
- •Move notification settings into dedicated sheet
- •Duck audio during rest timer cues
Only pin coach notices for insight asks and restore ios gemfile lock checksums header.
- •Only pin Coach notices for insight asksGeneral
- •Restore iOS Gemfile lock checksums headerGeneral
- +Simplify trends muscle mapApp
- •Surface social notificationsApp
- +Use selected rest timer cuesApp
- +Add rest timer audio cuesApp
See all 12 changes
App
- +Simplify trends muscle map
- •Surface social notifications
- •Clarify social notification entry point
- •Standardize root tab headers
- •Align feed header chip width
- •Normalize root header chip width
- •Simplify rest timer sound setting
- •Make rest timer audio opt in
- +Use selected rest timer cues
- +Add rest timer audio cues
General
- •Only pin Coach notices for insight asks
- •Restore iOS Gemfile lock checksums header
Persist increment score off the main thread and keep follow actions from truncating.
- •Persist Increment Score off the main threadApp
- •Keep follow actions from truncatingGeneral
- •Render muscle map summary and shoulder highlightsGeneral
- +Share active workouts as quick workoutsGeneral
- •Repair missing recommendation backfillApp
- •Require explicit deload session contextApp
- •Pin TestFlight fastlane dependenciesApp
- +Add athlete snapshot coach toolGeneral
See all 18 changes
App
- •Persist Increment Score off the main thread
- •Repair missing recommendation backfill
- •Require explicit deload session context
- •Pin TestFlight fastlane dependencies
- •Strip ipa extended attributes before upload
- •Omit resource forks from normalized ipa
- •Normalize ipa before TestFlight upload
- •Avoid login email as app apple id
- •Accept newline-delimited ipa entries
- •Harden TestFlight upload lane
General
- •Keep follow actions from truncating
- •Render muscle map summary and shoulder highlights
- •Clear package audit advisories
- •Wire workout sharing in sync service
- •Share workout deep link from sheet
- +Share active workouts as quick workouts
- +Add athlete snapshot coach tool
- •Include fastlane json dependency
Cache coach patterns & weekly check-in cards (disk-backed swr + coordinator) and stabilize coach surface layout.
- +Cache Coach patterns & weekly check-in cards (disk-backed SWR + coordinator)General
- •Stabilize coach surface layoutGeneral
- +Add copy action to Ask Coach messagesGeneral
- +Add shared top divider to slide-up sheetsGeneral
- +Add divider to exercise detail sheet topApp
- •Keep rest-timer and set-logging controls in layout during Always-OnWatch
See all 15 changes
App
- +Add divider to exercise detail sheet top
Watch
- •Keep rest-timer and set-logging controls in layout during Always-On
General
- +Cache Coach patterns & weekly check-in cards (disk-backed SWR + coordinator)
- •Stabilize coach surface layout
- •Clarify RIR prompt copy
- •Fold weekly check-in into coach patterns
- •Show only applied plan adjustment edits
- •Retry missing plan adjustment changesets
- •Route adjust program asks to plan drafts
- •Retry missing observation plan drafts
- +Add copy action to Ask Coach messages
- +Add shared top divider to slide-up sheets
- •Honor weekly check-in opt-out
- •Carry logged weight to next set
- •Limit logged set propagation
Capture per-exercise rir at completion + extract loggerview views (onemore-ulb6) and apply logger smart defaults.
- +Capture per-exercise RIR at completion + extract LoggerView views (onemore-ulb6)General
- •Apply logger smart defaultsApp
- +Add shared ask coach progress evidence tools (onemore-foxo)General
- +Add ask coach plan draft cardGeneral
- +Reuse smart defaults roll for previous previewGeneral
See all 24 changes
App
- •Apply logger smart defaults
General
- •Tighten Ask Coach production replay routing
- •Address Hermes review feedback [codex]
- •Address high security findings
- +Capture per-exercise RIR at completion + extract LoggerView views (onemore-ulb6)
- •Keep retired coach observation follow-ups routable
- •Stop Ask Coach dumping raw Increment Score internals
- •Expand feed header tap targets
- •Restore cli lock peer entry
- •Repair dev workflow CI
- •Repair corrupted warmup rows in logger
- •Preserve warmup sets during progression updates
- •Harden ask coach progress evidence
- +Add shared ask coach progress evidence tools (onemore-foxo)
- •Harden local TestFlight signing
- +Add ask coach plan draft card
- •Keep chart ranges available with recent data
- •Stagger set roll previews
- +Reuse smart defaults roll for previous preview
- •Clear deferred effort on finish failure (onemore-hh4g)
- •Simplify feed header
- •Defer HealthKit effort until workout finish (onemore-hh4g)
- •Retry transient workout summary 404s
- •Dismiss coach keyboard while browsing
Add emotional peak polish and add healthkit and bodyweight coach observations.
- +Add emotional peak polishApp
- +Add HealthKit and bodyweight Coach observationsGeneral
- +Tier 2 premium polish — type tokens, tabular digits, stagger, spacingApp
- +Backfill coach observations from score history (onemore-97zf)General
- +Add --dry-run to all mutating write commandsCLI
- +Add --fields projection and --page-all NDJSON streamingCLI
- +Harden input validation against agent hallucinationsCLI
- +Add agentNotes + SKILL.md for agent-facing invariants (onemore-5n58)CLI
See all 34 changes
App
- +Add emotional peak polish
- +Tier 2 premium polish — type tokens, tabular digits, stagger, spacing
- •Widen coach observation tap targets and humanize Ask prompt
- •Schedule Sunday Check-in local reminder on app launch (onemore-l0xi)
- •Keep Ask composer visible
- •Address github review follow-ups
CLI
- +Add --dry-run to all mutating write commands
- +Add --fields projection and --page-all NDJSON streaming
- +Harden input validation against agent hallucinations
- +Add agentNotes + SKILL.md for agent-facing invariants (onemore-5n58)
General
- •Tighten AI prompt guardrails for eval regressions
- •Use local postgres user for sync service dev
- +Add HealthKit and bodyweight Coach observations
- •Ground Ask Coach tool context and evals
- •Keep coach backfill logging lint-compatible (onemore-97zf)
- •Address Hermes review feedback [claude]
- •Address Hermes review feedback [codex]
- +Backfill coach observations from score history (onemore-97zf)
- •Stabilize coach observation refresh control
- +Refresh coach observations from score activity
- +Persist score snapshot signals (onemore-9gwb)
- •Anchor session vitals to workout date
- +Structure coach observation FIRA fields
- +Coach-agent session evidence payload — part 1 (actuals + completion + PRs)
- +Start weak point workout from score gaps (onemore-igsm)
- •Align donut breakdown legend
- •Move muscle volume rows to coverage (onemore-6qk7)
- •Polish score driver row layout (onemore-u0ze)
- •Hide plan completion trophies (onemore-re81.12)
- •Stabilize logger header zones (onemore-m9sl)
- •Align muscle breakdown legend counts (onemore-gelh)
- •Standardize recommendation badge sizing (onemore-vq32)
- •Reuse shared healthkit timestamp formatter (onemore-9lts)
- •Open empty adhoc exercise sheet reliably (onemore-vxe3)
Reconcile state on wcsession activation and end session on finish + apply smart defaults to live sets.
- •Reconcile state on WCSession activationWatch
- •End session on finish + apply smart defaults to live setsWatch
- +Add score filter hapticsGeneral
- •Only highlight choices after tapApp
- •Drop misleading primary highlight on peer choicesApp
- •Keep score tile strip full-intensity in read-only modeApp
- •Calm Score screen semantic colour hierarchyApp
- +Improve ad hoc workout generationGeneral
See all 43 changes
App
- •Only highlight choices after tap
- •Drop misleading primary highlight on peer choices
- •Keep score tile strip full-intensity in read-only mode
- •Calm Score screen semantic colour hierarchy
- •Simplify score hero copy and add brand mark assets
- •Drop redundant strength step + dismiss chat options on tap
- •Stabilize workout UI test targets
- •Quiet accent competition on program + adhoc summaries
- •Align workout header pill, unify media icon, quiet coach popover
- •Default appearance to light and apply preferred color scheme
Watch
- •Reconcile state on WCSession activation
- •End session on finish + apply smart defaults to live sets
AI Coach
- •Mirror iOS catch-up scheduling in server prompt builders
General
- •Remove post-workout feed promo (onemore-f3p3)
- •Strip plan-trust framing from dashboard calendar (onemore-0ft.6)
- •Stop stacking notes on exercise history view
- •Repair repository hooks
- •Simplify INCREMNT Score stimulus evidence copy
- •Keep workout summary actions anchored
- •Re-center plan header title on regular-width phones
- •Adapt plan header on compact phones
- •Reset workout tab to selected day top
- •Add rest day start workout action
- •Route disabled coach to settings home
- •Restore sync settings CTAs
- •Prefetch workout AI summary
- •Clear floating tab bar in WorkoutSummaryView
- •Activate new plans immediately
- •Anchor coach input above tab bar
- +Add score filter haptics
- •Clarify score page copy
- •Refine score and exercise detail polish
- •Improve score hero headline wrapping
- •Address Hermes review feedback [codex]
- •Simplify Score education sheet
- •Hide empty Score comparison states
- •Simplify Increment Score copy and trend states
- •Polish Increment Score QA findings (onemore-u6wp)
- •Stabilise Increment Score ring polish
- •Unify muscle volume thresholds (onemore-bpwj)
- •Polish workout logger header
- •Polish workout header controls
- +Improve ad hoc workout generation
Align set row columns regardless of unit hint and keep transient workout snapshots in memory.
- •Align set row columns regardless of unit hintApp
- •Keep transient workout snapshots in memoryWatch
- •Heal stale completedDayIndices via history rebuild (#459)App
- +Allow grounded skip mentions in workout summariesAI Coach
- +Polish android mvp shell (onemore-lv5.1)General
- +Add android mvp sync path (onemore-lv5.1)General
- +Track post-workout score reveal dismissal (onemore-6u0.3)General
- +Streamline dashboard record workout flowApp
See all 64 changes
App
- •Align set row columns regardless of unit hint
- •Heal stale completedDayIndices via history rebuild (#459)
- +Streamline dashboard record workout flow
Watch
- •Keep transient workout snapshots in memory
AI Coach
- +Allow grounded skip mentions in workout summaries
General
- •Remove root header background slab
- •Stabilize Increment Score hero card width across lens switches
- •Restore score window animations
- •Hide tab bar on workout summary
- •Handle top-set backoff progression (onemore-32c2)
- •Keep completed exercise recommendations
- •Stale-hide alias fallback recommendations
- •Preserve progression recommendations
- •Revert bd-init scope creep that landed in #513
- •Preserve planned warmup ramp defaults
- •Dedupe feed and training load sessions
- •Keep watch workout sync live
- •Stabilise logger set row alignment
- •Explain score no-signal state
- •Clarify analytics event semantics
- •Clear stale active program after plan completion
- •Use estimated effort in training load preview
- •Keep TestFlight uploads from dirtying project (onemore-0399)
- •Recompute stale increment score history
- •Prevent duplicate offline android workout logs
- +Polish android mvp shell (onemore-lv5.1)
- +Add android mvp sync path (onemore-lv5.1)
- •Clean up increment score hierarchy copy
- •Clean up logger ux issues (onemore-nfkm)
- +Track post-workout score reveal dismissal (onemore-6u0.3)
- •Clean up no-plan dashboard copy (onemore-3fzo)
- •Make score workout cta solid (onemore-fi16)
- •Use fresh evidence in score reveal (onemore-uxtz)
- •Shorten post-workout score labels (onemore-9wad)
- •Make score component bars semantic (onemore-pla)
- +Add plan-aware score focus action (onemore-lti)
- •Frame first score reveal as baseline (onemore-koaw)
- +Add score-moving next actions (onemore-vs1)
- •Simplify first-run score empty state (onemore-684z)
- •Avoid planned workout CTA without plan (onemore-73qc)
- •Clarify score movement breadth component (onemore-l4z)
- •Use stored score history comparison (onemore-cf6)
- •Expose score calendar fallback quality (onemore-6u0.8)
- +Aggregate score range driver themes (onemore-kgh3)
- +Explain score delta events (onemore-w0z)
- +Add score education surface (onemore-00c)
- •Label score driver impact units (onemore-4yf)
- +Explain score trend drivers (onemore-crd)
- +Add score trend graph state (onemore-88a)
- +Add score analytics events (onemore-b1k)
- •Complete score no-signal states (onemore-b2s)
- +Add score evidence drilldown (onemore-iwo)
- •Stabilize program preview media (onemore-vth1)
- •Persist first-run branding gate (onemore-hodb)
- •Smooth feed pagination and tab chrome (onemore-qjx.6, onemore-c9pg)
- •Simplify sidebar-owned settings routes (onemore-umc.1)
- •Clarify Increment Score explanation UX (onemore-5uw onemore-ocg)
- •Focus onboarding current question (onemore-ycds)
- •Revise Trends coachmark copy (onemore-j74u)
- •Align onboarding tagline (onemore-jwj6)
- •Clarify root tab IA (onemore-4cr1)
- •Clarify onboarding benchmark step copy (onemore-iz6j)
- •Brand first-run launch state (onemore-u9n6)
- •Land on score home after onboarding (onemore-i73b onemore-brf8)
Re-tap score tab scrolls back to top (onemore-uoo) and wire increment-score history + upload handlers (onemore-f7e).
- +Re-tap Score tab scrolls back to top (onemore-uoo)App
- +Wire increment-score history + upload handlers (onemore-f7e)CLI
- +Promote score to root tab (onemore-6u0.2)General
- +Backfill increment score trend history (onemore-tqi)General
- +Persist Increment Score on every recompute (onemore-qhe)App
- +Incremnt login works headless on SSH/Termius (onemore-drq)CLI
- +Attach ProgramPhaseWindowContext to Ask Coach requests (onemore-0kv)App
- +Unify deload detection on calendar truth (onemore-gpv)App
See all 45 changes
App
- +Re-tap Score tab scrolls back to top (onemore-uoo)
- •Inset in-progress workout banner below dynamic island (onemore-s0u)
- •Tighten Live Activity rest pill to digit-width
- •Hug rest-timer pill to its digits on the lock screen
- •Restore in-progress workout banner hidden by tab header chrome (onemore-f1s)
- +Persist Increment Score on every recompute (onemore-qhe)
- •Asymmetric scroll-header deadband to stop fling jitter (onemore-dcu)
- +Attach ProgramPhaseWindowContext to Ask Coach requests (onemore-0kv)
- +Unify deload detection on calendar truth (onemore-gpv)
- •Clear floating tab bar in coach input padding
CLI
- +Wire increment-score history + upload handlers (onemore-f7e)
- •Sync package-lock.json to unblock npm ci
- +Incremnt login works headless on SSH/Termius (onemore-drq)
Dashboard
- •Parallel legend chips for Done/Planned/Rest (onemore-bphu)
- •Give EmptyGoalCard the same chrome as other cards (onemore-hbbi)
- •Label signal tiles with their titles (onemore-6i0f)
- •Promote 'Muscle Coverage' to section header style (onemore-onhi)
- •Legend explains Done/Planned/Rest chips on week strip (onemore-6zfq)
- •Completed card status semantics no longer color-drift (onemore-l560)
- •Today pill no longer overlaps right chevron
- •Show day card + signal tiles to no-plan users (onemore-3fzo)
General
- •Open blank custom programs in workout view
- +Promote score to root tab (onemore-6u0.2)
- •Trigger increment score backfill from dashboard (onemore-tqi)
- +Backfill increment score trend history (onemore-tqi)
- +Polish increment score trust detail
- •Cache dashboard increment score snapshot (onemore-c7g)
- •Coalesce feed pagination updates
- +Persist increment score snapshots (onemore-6xi)
- •Advance feed pagination cursor
- •Stabilize dashboard and feed scroll chrome
- •Clear increment score tab bar overlap
- +Improve Langfuse observability (onemore-p12.5)
- +Add increment score drilldown (onemore-8l0)
- +Calibrate increment score progression weighting
- •Consume exported increment score replay inputs (onemore-i14)
- •Make archon post-review fix-aware (onemore-2bu)
- +Add increment score replay harness (onemore-i14)
- •Preserve historical recommendation snapshots
- •Address review HIGH findings (H1/H2/H3)
- •Address remaining alias review comments
- •Address canonical recommendation review
- •Canonicalize recommendation identity
- +Attach eval scores to Langfuse traces
- +Complete Phase 2 — repair tests, sync-service phase context, sync-restore wiring (onemore-0kv)
Surface cardio context in workout summaries and acknowledge positive workout readiness.
- +Surface cardio context in workout summariesAI Coach
- +Acknowledge positive workout readinessAI Coach
- +Dashboard taste pass — runna-style cleanupApp
- +Add dashboard start workout pickerApp
- +Unify summary surfaces across app and sharesApp
- +Add ask-claim factuality checks to summary evalAI Coach
- +Surface imported plan link in coachAI Coach
- +Snap hide-on-scroll header back on any upward scrollApp
See all 130 changes
App
- •Hide dashboard start button in subviews
- •Restore compact summary header
- •Reduce perceived workout summary lag
- •Scope dashboard muscle map to the selected week
- +Dashboard taste pass — runna-style cleanup
- +Add dashboard start workout picker
- •Keep plan exercises visible after logger dismiss
- •Soften logger rest bar edge and polish muscle detail sheet
- •Tighten swiftui accessibility follow-ups
- +Unify summary surfaces across app and shares
- •Unify PR badge formatting and clean up e1RM display
- •Reserve trophy column on set rows to keep alignment
- •Soften incomplete-set progression recs
- •Surface manual programs and tighten plan completion UI
- •Stop using stale sync session after refresh failure
- •Clarify final week and completion recap state
- •Clear floating tab bar on scroll-based destinations
- •Open sidebar destinations directly without tab-swap
- •Prevent dashboard content slinking during sidebar drag on iOS 26
- •Correct plan week math for non-Monday plan starts
- •Filter expected HealthKit/ActivityKit background errors
- •Restore distinctive haptic cues lost in unification refactor
- •Center workout plan header to match other root tabs
- •Align chat composer to tab bar and match plan title size
- •Stack phase label under program title to avoid truncation
- •Center root-tab titles on screen, unify font size
- •Sidebar content slides in lockstep with drawer reveal
- •Align settings header with feed/ask pattern
- •Float sidebar content as phone-shaped card with visible curves
- •Round sidebar content edge and deepen overlay shadow
- •Plan header uses solid background with subtle elevation shadow
- •Remove scroll tracker from dashboard entirely
- •Dashboard falls back to compact-only header to stop hangs
- •Replace scroll-up snap with 3x-faster decay to stop dashboard freeze
- +Snap hide-on-scroll header back on any upward scroll
- •Smoother hide-on-scroll fade and stop dashboard crash
- •Revert to compact-only header on dashboard, plan, feed
- •Always-on liquid top strip replaces fading sticky chrome
- +Enlarge muscle thumbnail in logger weekly sets row
- •Keep plan day tabs pinned and soften sticky header seam
- +Double muscle thumbnail size in dashboard coverage rows
- •Smooth hide-on-scroll header and tighten hide thresholds
- •Revert hide-on-scroll frame collapse to stop jitter and crash
- •Unify onboarding step counter and hide-on-scroll header
- •Read safe-area top from unignored reader for sidebar drawer
- •Smooth sidebar animations and align drawer avatar
- +Enlarge muscle map diagrams on dashboard and cycle summary
- +Animate muscle map fill and promote it to its own cycle summary tab
- •Clear floating tab bar inset in AskView sheet
- •Unify avatar placement on coach and settings
- +Differentiate ask coach chips and add liquid glass input
- +Hide-on-scroll headers for dashboard, workout, feed
- •Animate sidebar close reliably
- •Remove dim scrim from sidebar content
- +Sidebar drawer entry points across root tabs
- +Refine premium social card themes
- •Tighten feed workout share card
- +Add anatomy muscle thumbnails
- •Align vitals coach notes UI
- +Unified Liquid Glass header on Feed and Workout
- •Ask coach input bar now floats just above tab bar with scroll-under
- +Float ask coach input bar over transcript with glass blur
- •Ask coach auto-scroll follows reveal; tab bar no longer bleeds on keyboard
- •Unify Feed chrome with real Liquid Glass
- •Propagate floating tab-bar height to tab-root scrollviews
- •Polish Liquid Glass chrome across tabs
- +Adopt iOS 26 Liquid Glass across tab chrome
- +Dashboard uses iOS 26 Liquid Glass toolbar
AI Coach
- +Surface cardio context in workout summaries
- +Acknowledge positive workout readiness
- •Return plan drafts on first ask reply
- •Strengthen ask coach plan draft prompt
- •Remove ask coach plan review flag gate
- •Raise ASK_MAX_TOKENS so program drafts fit in one response
- •Scope ask claim checks to referenced exercises
- +Add ask-claim factuality checks to summary eval
- +Surface imported plan link in coach
- •View imported plans without switching active
- •Stop double-counting program draft previews
- •Filter stored summary eval to current prompt cohort
- +Gated AskView UI for AI-generated program drafts
- +Add Ask Coach program draft plumbing
General
- •Deepen ask coach training decisions (onemore-0e3.5)
- •Move sync migrations out of startup (onemore-szi.1)
- •Align weekly activity with visible week
- •Restore dashboard today context card (onemore-0ft.2)
- •Improve feed scroll performance (onemore-wrh)
- •Stabilize tab-bar hide-on-scroll (onemore-cue)
- •Cron deploys must omit commitId on Render API (onemore-96a)
- +Inline failure reasons + ops playbook (onemore-2lf)
- +Weekly ops-review digest + incident template (onemore-2lf)
- +Publish promptfoo scores to Langfuse (onemore-p12.2)
- •Tighten post-change sweep signal (onemore-1ei.3)
- +Add post-change bug sweep (onemore-1ei.3)
- +Add active work visibility (onemore-kmy.8)
- +Harden typed coach memory (onemore-0e3.2)
- +Expose coach read tools (onemore-0e3.1)
- •Redact Langfuse AI payloads (onemore-do2)
- +Replace legacy coach memory with typed context (onemore-hgy)
- +Add HealthKit activity level card
- +Add Langfuse context metadata for AI surfaces
- •Adjust coach input chrome
- +Add ask routing metadata to Langfuse
- •Report OpenRouter costs to Langfuse
- +Add Langfuse observability for AI coach
- +Route ask coach context by intent
- +Auto-hide root tab bar on scroll
- +Hide dashboard tab bar on scroll
- •Simplify dashboard volume card
- •Hide dashboard start workout on scroll
- •Harden sync and share flows
- •Preserve dashboard week in history feed
- +Sunday Coach Check-in (Phases 1+2)
- +Polish dashboard volume chart
- •Size rest-timer pill to content in live activity
- +Refine dashboard signal polish
- +Review coach plans before saving
- +Polish dashboard signal surfaces
- +Streamline dashboard week flow
- •Restore chat plan creation
- +Refine dashboard hierarchy
- +Bridge ios data exchange to mobile sync transport
- •Stop worktree builds depending on local xcconfig
- •Preserve active plan when creating programs
- •Restore logger exercise note placement
- +Bridge ios scheduling to mobile core
- +Add mobile sync foundation
- +Add glass headers across app tabs
- •Add safe exit for guided plan preview
- •Make onboarding continue buttons fully tappable
Refresh dashboard muscle coverage and add coach session tracking.
- +Refresh dashboard muscle coverageGeneral
- +Add coach session trackingAI Coach
- +Redesign dashboard volume gapsApp
- +Move shared plan import to root level so it works from any tabApp
- +Dashboard visual polish — adaptive tokens + body silhouette fixApp
- +Add versioned ai output metadata to stored evalsGeneral
- +Release anonymous hosted backup on sign-inGeneral
- +Skip splash screen, offer guide/scratch choice in chatApp
See all 86 changes
App
- •Align brand logo with IN icon
- •Tighten onboarding setup transitions
- +Redesign dashboard volume gaps
- +Move shared plan import to root level so it works from any tab
- +Dashboard visual polish — adaptive tokens + body silhouette fix
- •Restore current workout recommendation pills
- •Correct anonymous backup export scopes
- •Tone down washed-out icons and drop splash logo
- •Eliminate chat flicker and input layout issues
- •Constrain Dynamic Island rest timer width
- •Treat sub-1kg e1rm gaps as milestone reached
- •Resolve blank logger on first workout after launch
- •Fall back to session recs when plan store holds deload sentinel
- •Scope drag-to-reschedule to the dragged week only
- •Equalize plan day pill widths
- •Expand historical notes card width
- •Stabilize logger nested presentation
- •Restore inline logger set metadata
- •Avoid logger teardown during sheet presentation
- •Make session note card full width
- •Persist and surface upcoming-deload rec on pre-deload session
- •Stabilize logger modal presentation
- •Stop logger history sheet dismissing itself
- •Keep bench row metadata inline
- •Align plan view week number to calendar, not cycle counter
- •Suppress progression recs for deload sessions
- •Show deload badge on exercise history rows
- •Stop anchoring post-deload progression to deload weight
- •Route fully-missed weeks to the recovery sheet
- •Format displayed 1rm values with one decimal
- •Restore muscle breakdown interactions
- •Improve muscle breakdown navigation
- •Restore PlanView as default Workout tab content
- +Skip splash screen, offer guide/scratch choice in chat
- +Chat-driven program creation from Settings
- +Add equipment labels to exercise rows and brand How It Works sheet
- +Polish plan creation onboarding UX
- •Use Monday-start calendar in recommendedActivationDate
- •Wrap plan week number for multi-cycle programs
- •Remove double-write to shouldNavigateToWorkout
- •Cancel loginTask on CloudSyncPromptSheet disappear
Watch
- •End orphaned HKWorkoutSession on recovery and replace
AI Coach
- +Add coach session tracking
- •Tighten cycle summary notes
- •Retune coach prompts and switch to gpt-5.4-mini
General
- •Stabilize ios tests and soften dashboard chrome
- •Separate exercise notes from workout notes
- •Update onboarding setup CTA copy
- •Restore dashboard top chrome
- +Refresh dashboard muscle coverage
- •Restore social profile snapshot compatibility
- •Clarify workout and exercise note UX
- +Add versioned ai output metadata to stored evals
- +Release anonymous hosted backup on sign-in
- •Round 2 of review — tighten anon endpoint + install id + priorities
- •Drop user profile from anonymous hosted snapshot
- •Strip HealthKit data from anonymous hosted snapshot
- •Real opt-out for hosted persistence + drop seed full-scope token
- +Add anonymous hosted persistence
- +Plan completion recap + next-plan handoff
- •Preserve ask coach set breakdowns
- •Persist ask coach conversations in snapshots
- •Tighten ai summary output constraints
- •Tighten ai summary eval guardrails
- •Clean up iOS compiler warnings
- •Harden coach follow-ups and watch recovery
- +Add ask coach follow-up from workout summary
- +Refresh ask coach history view
- •Avoid ask coach seeded state flicker
- •Separate ask coach link and metric styling
- +Link ask coach exercise mentions
- +Polish ask coach loading states
- +Refine ask coach reply pacing
- +Improve coach chat pacing
- +Make ask coach chat feel more native
- +Normalize recovery outcomes for coach and cli
- +Add recovery transparency summaries
- •Use active program state in ask coach context
- •Align week context and progress counts
- •Restore week phase progress handling
- +Persist planned week phases
- •Improve history calendar clarity
- •Limit adhoc workout entry to today
- •Stabilize adhoc workout handoff
- +Explain incremnt onboarding flow
- +Improve workout handoff and onboarding flow
Refine onboarding plan handoff and improve onboarding editing flow.
- +Refine onboarding plan handoffGeneral
- +Improve onboarding editing flowGeneral
- •Unify exercise action menusApp
- +Improve dashboard and workout uxApp
- +Wire up HistoryView & DashboardView performance telemetryGeneral
- +Add unfollow action to social feedGeneral
- +Replace onboarding with deterministic chatApp
- +Add external write gateway skeleton for shared program importsApp
See all 41 changes
App
- •Unify exercise action menus
- •Remove sticky workout footer
- +Improve dashboard and workout ux
- •Restore centre alignment of Weekly Sets button in bottom actions
- •Resolve UUID type mismatch in WorkoutSummaryView, add todos and dashboards
- •Accessibility, perf, and animation improvements
- •Preserve full export payload on .onemore import
- +Replace onboarding with deterministic chat
- •Harden gateway validation and personalize shared import loads
- +Add external write gateway skeleton for shared program imports
- •Keep onboarding active until completion
- •Wire preview environment objects
- •Inject navigation router in settings preview
- •Inject navigation router in previews
General
- +Refine onboarding plan handoff
- +Improve onboarding editing flow
- +Wire up HistoryView & DashboardView performance telemetry
- +Add unfollow action to social feed
- •Harden program share flows and wire CLI share parity
- +Add adaptive goal recovery flow
- +Tighten workout prompt claim discipline
- •Use working graphify rebuild command
- +Improve workout summary grounding
- •Make bakeoff result ids unique
- +Add workout prompt bakeoff tooling
- •Keep real summary eval artifacts report-only
- •Make stored summary eval test lintable
- +Add real summary eval workflows
- +Runna-style goals UX redesign
- •Exclude deload weeks from goal health score calculations
- •Strip XML fence tags from AI coach responses before display
- +Confidence-first goals UX redesign
- +Group empty strength goals by muscle
- +Refine strength goals empty state
- +Improve strength goals overview
- •Remove hardcoded .kg unit in goal fallback path
- •Track goal progress from plan start
- •Correct goal backfill baselines and cycle summary repair
- •Goal baselines inflated by post-plan progress, chart x-axis ambiguity
- •Cycle summary shows 0 sets when skipping incomplete week
- •Var to let in refreshConnectionUserProperties, bump build to 176
Add experimental rust browse engine and restore detail pane focus and scrolling.
- +Add experimental rust browse engineCLI
- +Restore detail pane focus and scrollingCLI
- +Add volume and sets deltas to workout summaryApp
- +Refine browse layout and session detail depthCLI
- +Improve browse QoL navigation and search UXCLI
- +Soften readiness copyApp
- +Beginner exercise substitutions, Decline Crunch, and media gap fillsApp
- +Filter advanced exercises from dynamic pools for beginnersApp
See all 107 changes
App
- •Use build setting variable in plists to stop dirty files
- •Restore testflight archive and bump build 171
- +Add volume and sets deltas to workout summary
- •Dismiss logger before opening vitals
- +Soften readiness copy
- +Beginner exercise substitutions, Decline Crunch, and media gap fills
- •Correct spot-check test assertion for 4-day template
- +Filter advanced exercises from dynamic pools for beginners
- +Substitute advanced exercises for beginner-safe variants in auto-generated programs
- +Improve abs variety in gym-tier templates
- +Add Decline Crunch default load and dynamic abs pools
- +Add Decline Crunch media mapping
- +Add Decline Crunch to exercise catalog
- +Add 'build from scratch' option to onboarding flow
- +Ungate goal preview — always show progression projections after program creation
- •Show working weight in plan view and prevent warmup badge clipping
- •Don't schedule workouts before plan activation date
- •Move AIFeedbackService.swift to Components/ to match project registration
- •Restore widget build and snapshot helper
CLI
- •Default browse engine back to ink
- •Sanitize ansi stripping and add rust lockfile
- +Add experimental rust browse engine
- •Show detail overflow affordance in browse
- +Restore detail pane focus and scrolling
- •Prevent browse header clipping
- +Refine browse layout and session detail depth
- •Auto-select first item when entering items pane
- +Improve browse QoL navigation and search UX
- +Align browse branding and refresh npm docs
- •Resolve browse lint regressions
- +Add mode-driven browse navigation and search
- •Render browse lists as stable line rows
- •Make tab section-only and stabilize browse redraw
- •Improve browse keyboard flow and list scrolling
- •Harden and polish browse UX
- •Add browse list viewport
- •Reduce browse flicker
- +Add Ink browse mode
- •Expand body weight lookup from exact session date to 7-day window
- •Remove unused destructuring variable in weight history sort
- +Add set progressions, weight history, and readiness band to workout coach context
AI Coach
- •Rewrite workout summary from fault-finder to coach
- •Deepen workout session notes — remove sentence limit, require data specificity
General
- •Preserve readiness context in workout summary
- •Move session note to header
- •Auto-fix plist bundle versions
- +Add workout notes to summaries
- +Strava-style profile redesign (clean branch)
- +Add fibonacci function
- +Persist AI feedback to database
- •Tighten workout coach context — 3d cardio window, real baselines, trim tokens
- •Don't assert causation in workout coach notes without supporting data
- +Extract ExerciseSetRow and fix set alignment across all views
- •Harden exercise slug migrations
- +Persist exercise slugs for identity lookups
- •Shorten default rest timers
- •Use project build version in plists
- •Tighten ui perf telemetry keys
- +Instrument production ui render timings
- •Preserve stable row identity in perf paths
- •Prepare smithery mcp publish
- +Show unread badge on feed tab
- •Delay adhoc workout start until type selection
- •Add rest day quick workout action
- •Align dashboard action rows
- •Reserve feed filter bar space and fade in on load
- •Trigger exercise animation when navigating to Workout tab
- •Plan view exercises now animate on day switch
- •Increase day card min height to prevent layout shift
- •Move day card animation to parent container
- •Show seconds instead of reps for time-based exercises in session detail
- •Center week progress ring and make it tappable
- •Update feed month title on scroll and sync to calendar mode
- •Address code review findings from multi-agent analysis
- •Address review feedback on adhoc consolidation
- •Update other-profile trophy case callback to pass scope
- •Navigate to correct leaderboard scope/week from badge history
- •Deduplicate leaderboard badge tiles in Trophy Case
- •Use snapshot PR count for milestones instead of undercounting events
- •Increase sleep session gap threshold from 2h to 4h
- +Rename Iron Crown to Session Monster, show one badge per tab
- +Add quick info row to vitals showing last night's sleep and next session
- •Backfill weekly badge history from activity data
- +Add badge award history with tap-to-leaderboard navigation
- •Show overnight sleep and schedule in vitals, not averages
- •Gracefully skip gym/group badge sections when tables missing
- •Resolve 4 pre-existing test failures
- •Move warmup badge off the set row
- •Prevent warmup set unit clipping
- •Retrigger plan day exercise animations
- +Refine social feed loading and comment profiles
- +Combine social sections with dual tilted phones, link npm package
- •Remove double Dynamic Island from mockups, increase hero tilt
- +Normalize leaderboard volume by bodyweight (xBW)
- •Prevent text clipping in set rows on completion
- •Rename stale test to match email prefix fallback behavior
- •Use email prefix as fallback display name instead of "Athlete"
- +Dim unavailable chart ranges
- +Collapse cycle history in plan details
- •Remove trapped next cycle action
- +Align coach note loading states
- +Improve dashboard week strip long press
- +Volume regression gate and workspace updates
- •Only show scheduled days on current/future weeks in monthly calendar
- +Show scheduled workouts on history calendar + long press to open
- +Show planned workouts on monthly activity calendar
- •Clean up recommendation badges and warmup label truncation
Show volume % change per week in simulation exercise tables and display volume metrics in simulation report html.
- +Show volume % change per week in simulation exercise tablesGeneral
- +Display volume metrics in simulation report HTMLGeneral
- +Add volume progression tracking to simulation diagnosticsGeneral
- +Prompt to skip or finish incomplete training weekGeneral
- •Replace rep wheel picker with text fieldApp
- •Inline rep picker and defer post-creation navigationApp
- •Drive Live Activity directly instead of relying on onChangeApp
- +Replace level picker with bench 1RM inputApp
See all 111 changes
App
- •Replace rep wheel picker with text field
- •Inline rep picker and defer post-creation navigation
- •Drive Live Activity directly instead of relying on onChange
- •Show On Track instead of Needs Attention for brand new plans
- •Put weight and reps side by side, remove level indicator
- •Purge corrupted 30s defaults in migration
- •Avoid false save prompt at min duration
- •Migrate corrupted custom rest durations under 30s
- •Can't select Abs in custom exercise muscle group picker
- •Save-as-default now saves the actual total duration
- •Increase surfaceElevated contrast in light mode
- +Replace level picker with bench 1RM input
- •Use triggering exercise name for rest timer bar
- •Replace floating diamond with inline tick on progress gauge
AI Coach
- •Improve coach prompt accuracy and deduplicate ask prompts
- •Replace deepseek with gemini 2.5 flash as primary summary model
Dashboard
- •Hide "Inactive Plan" label for adhoc workouts
General
- •Simulation now uses smartExerciseDefaults for prescribed reps
- +Show volume % change per week in simulation exercise tables
- +Display volume metrics in simulation report HTML
- +Add volume progression tracking to simulation diagnostics
- +Prompt to skip or finish incomplete training week
- +Backfill vitals on existing cycle summaries from health history
- •Show unit label on sets delta (e.g. '-3 sets' instead of '-3')
- +Add pencil icon to bodyweight card to hint it's editable
- •Uniform height for cycle summary stat cards
- +Export progression recommendations in snapshot
- •Remove recap overlay from feed card
- +Badge notification auto-opens trophy case sheet
- •Swiftlint pre-commit now lints only staged files
- +Trophy case as sheet, new badge categories, profile photos in notifications
- +Show profile photos in notification inbox
- +Add first workout, 5 workouts, PR count, and plan completion badges
- •Address review findings for trophy case
- +Add trophy case with persistent badges on social profiles
- +Add vitals snapshot card to cycle summary
- •Bodyweight edit updates cycle snapshot, only updates profile for latest cycle
- +Add bodyweight to cycle summary stats with edit and delta
- •Require at least 2 working sets for clearly-too-light bypass
- •Show 'missed' rows in report for skipped weeks
- +Add partial completion to simulation (set drops, exercise skips, missed workouts)
- •Relax clearly-too-light bypass to >= repHigh and move before fatigue check
- •Lower light isolation fatigue threshold and add 'clearly too light' bypass
- •Hide gym pill from active workout logger
- •Replace single-exercise weight metric with exercises up/down count
- +Restore feedback reason chips and store tone with vitals summaries
- •Disable model racing so Claude is always primary
- +Show 'each' for dumbbell and 'incl. bar' for barbell weights
- •Suppress exercise now also removes it from current program
- +Add 'more watches coming soon' to integrations section
- •Update progression explanation to match 2-for-2 rule and remove retry reference
- +Add simulation report with 10 persona variations
- +Add 10 missing strength standards from strengthlevel.com
- •Add same-weight check to 2-for-2 rule
- •Tune progression parameters and add 2-for-2 weight increase gate
- •Use wrapping arithmetic in simulation hash combination to prevent integer overflow
- •Exact match for BaselineLift bench press, clamp decreaseWeight in updateRecommendations
- •Guard against zero working weight in progression logic
- +Add simulation summary diagnostics
- •Correct Monte Carlo noise model issues
- +Thread BaselineLift through ProgramBuilder for bench press
- •Compute initial capacity once to fix weight cancellation
- •Handle workoutCleared message on Watch to stop phantom workout tracking
- +Add monte carlo progression baseline
- +Lock progression simulation to plan lifecycle
- +Compare progression simulation across durations
- +Add progression simulation regression suite
- +Add progression simulation test harness
- •Clarify readiness banner action
- •Stop readiness banner from dismissing on tap
- •Refresh profile report after edit
- •Keep logger gym editing in edit mode
- •Route onboarding completion to workout
- •Prevent profile tab wrapping
- •Open social profiles from avatars
- •Open profiles from follower lists
- •Prevent follow label wrapping
- •Compact warmup label on small screens
- •Disable feed sort in groups
- •Cycle feed quick filters
- •Cycle social feed filters
- •Persist ai feedback per object
- •Improve social feed recap affordance
- +AI feedback thumbs up/down across all coach surfaces
- +Backfill historical cycle summaries with volume, PRs, muscle data
- •Address self-review feedback on cycle summary
- +Swipeable cycle summary with volume, PRs, and muscle data
- •Normalize selection badges
- •Address gym feature review feedback
- +Add workout gym level support
- •Cache social avatars in feed
- +Add social feed sort toggle
- •Block self follow in social lists
- +Switch social feed to animated scroll stack
- +Make social feed cards slide in
- +Add motion to social feed transitions
- •Reduce swift concurrency warnings
- +Simplify social feed filters
- •Vendor Transmission local package
- •Default history month to today
- •Mention social feed in sync onboarding
- •Restore widget extension icon assets
- +Clean up social feed filters
- +Add social feed time filter
- •Dedupe group feed activities
- •Render group PR activities with full payload
- •Exclude warm-up sets from cascading logic and progression recommendations
- •Gate Coach and Feed tabs behind Cloud Sync sign-in
- +Exercise suppression from plan view
- •Update copy and test names to reference repFloor
- •Address readiness adaptation review issues
Stop rest timer when workout is discarded on iphone and add lottie animations for pr, workout complete, and empty states.
- •Stop rest timer when workout is discarded on iPhoneWatch
- +Add Lottie animations for PR, workout complete, and empty statesApp
- +Sliding 3-week window for progress chartApp
- +Contextual Ask Coach buttons on dashboard and program overviewAI Coach
- +Add dynamic context via tool calling to Ask CoachAI Coach
- +Derive plan goals from program exercises, not hardcoded big 5App
- +Similar exercises section in swap sheetApp
- +Wire user weight unit preference (kg/lbs) to watchWatch
See all 134 changes
App
- •Use cycle-based week numbering in progress charts
- +Add Lottie animations for PR, workout complete, and empty states
- +Sliding 3-week window for progress chart
- •Align week ring, add staggered animations, enlarge view toggle
- •Derive goal preview from program exercises, skip bodyweight
- +Derive plan goals from program exercises, not hardcoded big 5
- +Similar exercises section in swap sheet
- •Sync exercise swap to Watch immediately
- •Seed social profile fields from cache to prevent privacy toggle flash
- +Add profile header with avatar to stats and social report views
- •Make profile picture tappable in activity detail view
- •Apply textPrimary color to username in activity detail view
- •Show skeleton instead of empty state during initial feed load
- •Add explicit AI opt-in consent flow
- •Restore AI coach master toggle
- •Align set rows with monospaced digits in exercise cards
- •Add divider between feed activity cards
- •Use proportional right column in feed cards for smaller devices
- •Suppress privacy picker animation on social profile load
- •Increase dashboard greeting contrast under top chrome
- •Normalize tab header typography and top spacing
- •Add shared top safe-area chrome for status bar bleed
- •Remove social settings section and centralize setup in feed
- •Revert AI coach default back to enabled
- •Default AI coach to disabled for new users
- +Add master toggle to disable all AI coach features
- •Simplify social management UI and remove invite code flow
- •Reconcile follow conflict state in social UI
- +Improve stats deep-dive exercise picker
- •Keep social profile text readable on dark surfaces
- •Resolve effort score HealthKit race condition
- •Prevent vitals summary text from being clipped
Watch
- •Stop rest timer when workout is discarded on iPhone
- •Explicitly clear Watch state on workout discard
- •Sync rest timer skip from iPhone to Watch
- •Add memberwise init to watch CurrentWorkout and wire weightUnitLabel through
- •Add weightUnitLabel to all CurrentWorkout model copies with backward-compat decoding
- +Wire user weight unit preference (kg/lbs) to watch
- •Show secs for time-based exercises, fix BW unit display, fix dots/button spacing
- •Fix set entry layout - set counter top, name below clock, right-size Log Set button
- •Snap weight display to 2.5kg steps during crown rotation
- •Prevent exercise name overlapping clock, improve inactive button visibility
- •Restore reliable phone-watch workout clearing and sync
- •Prevent rest timer flicker after logging set
- •Prevent weight text truncation for decimal values
- •Parse Watch's setCompleted message format in iPhone handler
CLI
- •Clamp negative goal progress and filter swapped-out exercises
AI Coach
- +Contextual Ask Coach buttons on dashboard and program overview
- +Add dynamic context via tool calling to Ask Coach
Dashboard
- •Center week progress ring and make animations visible
- •Remove grey safe area scrim and greeting text
General
- •Remove similar exercises section from swap sheet, keep quick filters
- •Extract defaultTotalWeeks constant and widen peak window for 5-week cadence
- •Use progressionType instead of hardcoded % 5, clarify session override
- •Deload on week 5 instead of 4 and suppress misleading pre-deload pills
- •Remove stale WatchSyncDecisionLogic.swift references from project
- •Filter PRs feed on workout payload instead of separate pr_achieved events
- •Scope full-gradient wordmark to social exports
- •Center dashboard week ring without dropping greeting
- •Show stable previous-set date labels
- •Use rep history for bodyweight deep dive charts
- •Sync exercise state to Watch immediately on every set change
- •Route next-cycle CTA to workout plan
- •Show actual reps in progression summary
- •Use three-tier rep ranges for light isolation exercises
- •Harden social group update flow
- +Add group editing and member profile navigation
- •Show consistent header across Social tabs to reduce jarring layout shifts
- •Pass HTTP method to routeRequest to fix group creation crash
- •Revert Transmission .presentation to .fullScreenCover
- •Resilient feed decoding, duplicate header, and session backup
- •Distinguish AI Coach disabled vs sync missing errors
- +Add group feed and weekly leaderboard
- •Reduce createGroup and joinGroup from 3 to 2 API calls
- •Align plan pace value and suffix columns
- +Add coach memory for longitudinal AI context
- +Allow members to leave social groups
- +Add private social groups
- •Align social feed filters with PR activity
- •Default exercise detail to plan pace in plan context
- +Improve plan goals context and cycle summary navigation
- +Prototype logger recommendation intro
- +Improve social discovery and feed usability
- +Add Transmission library for card presentation transitions
- •Polish watch set entry layout and adaptive sizing
- •Smooth animations when switching days on Dashboard and feed
- •White checkmark on selected day pill for visibility
- •Consistent full-width separators between leaderboard and activities
- •Visible full-width separator between feed activities
- •Clean gap between feed activities matching Strava style
- •Load social profile at app startup for dashboard avatar
- •Thicker feed divider matching Strava's section separator style
- •Show day titles in plan selector, fix checkmark visibility
- •Leaderboard profile tap navigation, full-width feed dividers
- •Remove card background from leaderboard, move dots below content
- +Swipeable leaderboard card with volume + PR pages
- •Show social profile picture on dashboard header
- •Remove uuid cast in leaderboard UNION query
- +Weekly leaderboard card in social feed
- •Add program week phase to ask-coach context
- •Modernize ScrollView API and fix PR drought duplicate text
- •Feed pop-to-root using onReceive, fix PR drought duplicate text
- •Always pop to root when switching tabs
- •Ensure feed tab tap pops navigation to root
- •Align versus lift comparison values in fixed columns
- +Replace donut chart with muscle heatmap on feed cards
- +Social feed UX polish pass
- •Respect haptics toggle for all sensory feedback
- •Prevent privacy toggle flash on social profile settings load
- •Align date range and period filter on remote profiles
- •Set preferred color scheme to dark at app root
- •Correct versus comparison levels, names, and bodyweight handling
- +Add Versus comparison tab to social profiles
- •Don't fall back to logged-in user's avatar on remote profiles
- •Make feed activity divider visible
- •Parse full ISO 8601 timestamps in social exercise history
- +Social exercise history drill-down
- •Restore social moderation views to app target
- •Fully purge social reports on account deletion
- •Use visible feed cursor for pagination
- •Refresh social moderation PR
- •Review fixes for social moderation PR
- •Add feed diagnostics for social debugging
- •Add pii-safe social diagnostics to server logs
- •Restore gated social settings and improve follow-back flow
- •Polish social follow UX and username rediscovery
- •Gate feed notifications behind sync session
- •Gate social settings behind incremnt sync sign-in
- •Align feed empty state and gate ai vitals by coach setting
- •Stabilize social profile privacy state and improve feed empty state
- •Remove display-name gating from social follow flows
- •Improve iPhone compact layouts and training load empty states
- •Reconcile social follow state conflicts and upload diagnostics
- •Dedupe comments and prevent double count increments
Add mute, block, report backend endpoints and add feed engagement tracking — session duration, impressions, taps.
- +Add mute, block, report backend endpointsGeneral
- +Add feed engagement tracking — session duration, impressions, tapsApp
- +Add user-specific social profile report from feedApp
- +Repurpose stats report as profile entry pointsApp
- +Unify history card styling with workout summary + show recommendationsApp
- +AI coach settings — data toggles + tone configAI Coach
- +Shared priority-signal ranking across AI summary surfacesCLI
- +Enrich coach context with PR dates, progression, rep PRsAI Coach
See all 125 changes
App
- +Add feed engagement tracking — session duration, impressions, taps
- +Add user-specific social profile report from feed
- +Repurpose stats report as profile entry points
- •Use custom header for Feed tab and hide tab bar when keyboard is up
- •Render markdown in AI summary text instead of showing raw ** markers
- •Add missing return in WorkoutHeaderData.from(payload:) method
- •Unwrap optional URL in fetchComments guard chain
- •Show message when AI coach has no insight
- •Make set row layout adaptive for smaller screens
- •Hide Feed nav title on empty state
- •Force dark toolbar color scheme on social feed views
- •Improve contrast on social feed controls
- •Apply dark theme to social feed views
- •Add feed tab pop-to-root behavior
- •Preserve ai summary clear control gating
- •Suppress weight progression recommendations for time-based exercises
- •Allow added weight on time-based bodyweight exercises (plank, dead hang)
- •Correct history recommendation lookup and merge
- +Unify history card styling with workout summary + show recommendations
- •Harden watch live activity snapshot sync
- •Prevent set weight/reps from snapping back during editing
- •Sync Live Activity when sets are logged from Apple Watch
- •Resolve broken DateFormatter references from centralization refactor
- +Enhance activity heatmap with labels, streak, and legend
- •Modernize deprecated SwiftUI APIs
- •Replace hardcoded font sizes with semantic text styles
- •Align privacy declarations with actual data usage
- •Add scroll-to-top on tab re-tap for Vitals & Programs, fix tab toggle bug
- •Stabilise dashboard day card heights to prevent heatmap shift
- •Use Apple systemGray5 (#3A3A3C) for Watch icon background
- •Use #2C2C2E background for Watch icon for clearer mask visibility
- •Remove analytics opt-in toggle to resolve App Store guideline 5.1.2(i)
- •Update Watch app icon background to dark grey for App Store guideline 4
- •Gate vitals AI summary generation before 6am
- +Calendar scrolls to end of plan with phase labels
- •Vitals SwiftUI improvements and filter chip ordering
- •Don't show scheduled workouts in past weeks on calendar
- •Prevent readiness band label word-wrap on narrow screens
- •Disable vitals pull-to-refresh regeneration
- •Make readiness block dynamic-type friendly
- •Add 15-char name limit and remove program builder progress bar
- +Explain HealthKit read permissions and AI coaching value
- +Prefill weight from Apple Health when authorized
- +Add INCREMNT Sync info step and rename Cloud Sync
- +Add HealthKit permission step and fix Settings deep link
- •Slim down feature tour screenshot frame and remove redundant Done button
- +Add feature tour carousel
- •Ask coach UX polish and accessibility fixes
- •Handle summary-only ask history endpoint
Watch
- •Increase tap targets on set logging screen for Watch Ultra
CLI
- •Upgrade retired claude-3.5-haiku to claude-haiku-4-5
- •Treat bodyweight exercises correctly in AI summaries
- +Shared priority-signal ranking across AI summary surfaces
AI Coach
- +AI coach settings — data toggles + tone config
- •Sharpen AI prompts — silence over filler, voice alignment
- •Add plan-switch context to coach notes
- •Avoid stuck loading state after ask reset
- •Harden ask coach thread handling
- +Enrich coach context with PR dates, progression, rep PRs
General
- +Add mute, block, report backend endpoints
- +Add mute/block/report UI to feed cards, detail, and profile views
- +Add social moderation backend — mute, block, report
- •Onboarding screenshots fill width with bottom fade
- +Add account deletion backend endpoint
- +Add account deletion UI and API endpoint
- •Name OpenRouter as AI provider and add privacy/terms links
- •Bigger onboarding screenshots and tighten subtitle copy
- •Increase onboarding feature tour screenshot size
- •Icon alignment in resources section of settings
- •Social post font, empty post square, and caption design consistency
- •Always show reset data section and fix icon alignment in settings
- •Address App Review rejection for HealthKit and AI data disclosure
- •Reuse Apple Sign-In key for APNs push and normalize private key
- •Harden social v2 merge blockers and add automation coverage
- •Address PR247 review — privacy, race conditions, force unwraps
- •Address PR247 review feedback and media upload edge cases
- +Ship social v2 identity profiles media and notifications
- •Tighten username backfill guard and isolate social report scratch storage
- •Harden social profiles — table scan, LIKE injection, UserDefaults leak, cursor duplication
- +Ship identity-first social profiles and full report view
- •Catch NO_INSIGHT prefix in AI coach responses
- +Reuse session summary views in feed detail
- •Sync profile name to display_name on snapshot upload, improve follower list
- •Use 'Athlete' as final display name fallback instead of account ID
- •Social feed Phase 2 — polish and resilience
- •Skip startup dedupe when index exists, use fractional-second cursor
- •Harden social activity consistency and like state
- •Address Phase 1 review issues on social feed PR
- •Harden social follow and feed behavior
- +Add social feed — follow athletes, view workouts, like activities
- •Increase OpenRouter timeouts and update DeepSeek model ID
- •Restore vitals AI summary from persisted history before cache check
- •Show BW label for bodyweight exercises on Apple Watch
- •Default exercise progress chart to 3M view instead of All
- •Finalize open PR follow-up fixes
- •Preserve manual temperature history with wrist data
- +Source wrist temperature from Apple Watch via HealthKit
- •Harden persisted vitals summary contract
- +Persist vitals AI summaries and expose via CLI
- •Prevent onboarding text clipping on smaller screens
- •Stop AI workout summary from questioning programme selection
- •Hide AI vitals summary when user has no health data
- •Default vitals training load filter to strength
- •Use actual current 1RM from session history for goal baselines
- •Use encouraging first-week prompt for AI cycle coach
- •Prevent catch-up workout showing on freshly activated plans
- +Refresh vitals dashboard polish
- +Polish custom tab bar motion
- •Correct training load baseline behavior
- +Animate vitals gauges on appear and dim stale readings
- •Use shimmer loading and accent background for vitals AI summary
- +Vitals dashboard with health gauges and AI summary
- •Align checkpoint ai context with visible goals
- +Enhance week checkpoint with progress details and AI coaching
- +Show cycle summary on week skip and add skip context for AI coach
- •Defer tab navigation until week continuation prompt is resolved
- +Prompt to continue week on program switch and clean up rationale
- •Navigate to first workout after onboarding and program creation
- •Suppress PRs for first-time exercises and add isFirstWorkout to AI summary
- •Update audio tests for disabled feature and use vertical equipment cards
- +Promote Weak Point Focus to core quick workout presets
- •Remove rest timer audio feature and settings toggle
- •Replace Apple Health deep link with inline permissions hint
- •Clamp bodyweight input to 20–300kg and remove redundant strength level copy
- +Add AI disclaimer text to coach features
Model fallback chain with 12s per-model timeout and in-app ai ask — natural language training queries.
- +Model fallback chain with 12s per-model timeoutAI Coach
- +In-app AI Ask — natural language training queriesApp
- +Add transitions across stats, history, detail, onboarding, and muscle viewsApp
- +Enhance muscle diagram with greyed-out empty state and unified toggleApp
- +Sync latest HealthKit bodyweight on app launchApp
- +Animate logo reveal line-by-lineCLI
- +Add branding, AI notes, and auth badgeCLI
- +Show active exercise immediately when workout startsWatch
See all 143 changes
App
- •Show seconds for time-based exercises
- •Show user message immediately in Ask Coach chat
- •Use brain icon only for Ask Coach button
- •Replace empty Ask Coach icon with labeled capsule button
- •Tweak OtherWorkoutCard layout — icon right-aligned, italic title
- •Render markdown in Ask Coach responses + animation polish
- •Render markdown in Ask Coach responses
- •Address healthkit review findings
- •Clear deload sentinels when switching programs
- +In-app AI Ask — natural language training queries
- •Zoom iOS app icon to match updated watch icon
- •Rename analytics toggle to avoid App Store tracking misinterpretation
- +Add transitions across stats, history, detail, onboarding, and muscle views
- +Enhance muscle diagram with greyed-out empty state and unified toggle
- +Sync latest HealthKit bodyweight on app launch
- +Write weight to HealthKit when saved in settings
- +Add toggleable bodyweight overlay on E1RM chart
- +Add HealthKit body mass history query
- +Add App Store review prompt after workout completion
- •Skip completed program days in calendar sync for current week
- •Check completedDayIndices in hasRemainingScheduledDay
- •Handle out-of-order workout completion in dashboard week strip
- •Show all training days in future weeks of calendar feed
- •Show past planned workouts in calendar feed view
- •Resolve build warnings and version mismatch
- •Allow starting past planned workouts from dashboard and grey out inactive plan button
- •Remove custom analytics consent modal (App Store rejection 5.1.2(i))
- +Contextual recommendation explanations and badge morph animation
- +Ai summary invalidation, regen, and sparkle indicators
- +SwiftUI animation polish pass
- •Remove redundant 10-second warning notification
- •Make Cable Crossover a synonym of Cable Fly
- •Apply smart defaults for replacement exercise after swap
- •Add missing compound exercises to restTypeByName
- +4-tier rest durations — heavy compound 240s, light isolation 90s
- +Track original exercise name when user swaps during workout
- +Use movement pattern for Recommended split in PlanSwapSheet
- +Add MovementPattern enum and movementPattern(for:) to ExerciseCatalog
- •Hide AI coach UI when not signed into sync
- •Eliminate race in cycle AI summary persistence
- +Sort program exercises by equipment station after generation
- +Add EquipmentStation enum and lookup to ExerciseMetadata
- •Use correct start time for completed workout events
- •Prevent phantom recommendations for unperformed exercises
- •Prevent duplicate events from concurrent sync tasks
- +Replace feedback mailto with Plane issue creation form
- •Don't show open workout card on rest days after rescheduling
- •Reset workout timer when restoring stale drafts
- •Gate fallback metrics task and fix workout builder race condition
- •Share card export now matches in-app preview
- +Redesign Instagram share card
- +Add projected end-of-week toggle to body heatmap diagram
- +Unified 20-segment bar with per-muscle zone ticks and target marker
- +Bump existing exercises to 4 sets before adding new ones for volume targets
- +Default to first program variation, hide carousel behind toggle
- +Add volume floor augmentation and hide bodyweight equipment tier
- +Per-muscle hypertrophy thresholds for weekly volume indicators
- +Add lightIsolation rep range and program drift detection
Watch
- •Break exercise index echo loop between phone and Watch
- •Zoom watch app icon so it appears circular on Apple Watch
- +Show active exercise immediately when workout starts
- •Use per-exercise rest durations instead of single workout-level value
- •Drop body copy from no-workout screen
- •Update no-workout copy and fix app name in nav title
- •Restore startWatchApp to bring Watch to foreground
CLI
- •Use matching darkened color for logo shadow
- +Animate logo reveal line-by-line
- +Add branding, AI notes, and auth badge
- +Redesign cycle summary AI with enriched context
- +Add goals-list and goals-show endpoints
- +Include writeSchema and proposalSchema in contract output
- +Add programs show command and agent-friendly improvements
- •Correct normalizeSessionState test expectation
- •Validate server-supplied verificationUri before opening browser
- +Add styled pretty-print output as default for TTY
- +Make incremnt installable via npm and add --pretty flag
AI Coach
- •Machine-readable error codes, summary error states, hallucination guard
- •Improve Ask Coach reliability and thread UX
- •Use correct OpenRouter model ID for Haiku fallback
- +Model fallback chain with 12s per-model timeout
- •Make Ask Coach casual responses conversational
- +Reopen cycle summaries and refine notes UX
- +Improve coaching UX with plan comparison and polish
- •Rewrite coaching prompts to avoid LLM cheerleading, dim sparkle when done
Dashboard
- •Remove remaining estimateE1RM reference causing runtime error
- +Redesign dashboard UI with updated branding and styling
- •Hide Google sign-in option not yet implemented
- •Include exercises in session-show and fix field mappings
General
- •Scale AI coach response length to question specificity
- +Add bodyweight history to snapshot and AI coach context
- •Update default OpenRouter model — llama-3.1-8b removed
- +Surface HealthKit workouts in calendar and AI coach context
- •Reclassify muscle groups — Delts and Lats
- +Upgrade Ask Coach prompt and raise max_tokens to 500
- +Multi-turn Ask Coach conversations with full chat history
- +Rename Ask AI to Ask Coach, add tappable history rows and detail view
- +Persist AI model name alongside generated summaries
- +Add incremnt mcp install command and postinstall hint
- •Parse fractional seconds in Ask AI history dates
- •Scroll exercise filter chips to active muscle group on swap
- +Persist Ask AI conversations and show chat history
- •Add granular shoulder muscle groups (Lateral Delts, Rear Delts)
- •Speed up workout finish by deferring HealthKit and skipping redundant cache rebuild
- •Remove redundant integration toggles for Strava and Calendar
- •Address review findings from March 5 parallel agent work
- •Remove on-demand AI workout summary from web dashboard
- •Correct watch rest timer state bugs and double save loop
- +Commit review enhancements and quality of life fixes
- +AI-powered weekly training summaries with on-demand workout coaching
- •Use individual muscle groups in exercise swap picker
- •Address post-merge review gaps from PRs #115-#122
- •Sync Watch exercise navigation to iPhone for Live Activity
- •Swap picker now filters on context muscle from the first tap
- •Cascade weight/reps to next sets when logging from Watch
- •Rename share button from Instagram-specific to generic "Share"
- •Preserve set count and weights when swapping an exercise
- +Add AI-powered weekly training summaries
- +Expose strength plan goals via CLI and sync
- •Use starter plan for Postgres database
- +Replace file-based sync store with Postgres
- •Sync status UI showing stale errors after re-auth
- •Strip query params and account IDs from request logs
- +Add request logging to sync service
- •Parse ISO8601 dates with fractional seconds from sync server
- •Recalculate strength goals after session deletion
- •Show fallback icon for exercises without video to fix alignment
- •Derive week session counter from history instead of completedDayIndices
- •Break infinite recursion in expired session check
- •Harden sync reliability and add sync status indicator
- •Streamline CLI login to skip approval form
- +Hosted-first sync UX and test coverage
- •Migrate legacy sync credentials
- •Harden cloud sync auth and store state
- •Hide "-0kg · Deload" for bodyweight exercises in cycle summary
- •Post-deload smart defaults use template weights, not deload session
- •Calendar/dashboard sync and completed workout navigation
- •Address critical security and correctness issues from cloud sync code review
- •Persist hosted sync state for repeat uploads
- •Correct dashboard plan-day display and currentDayIndex rollback on delete
- •Use hosted session for initial sync backfill
- •Persist hosted sync session fallback
- •Allow workout sync sign-in before config preflight finishes
- •Surface apple auth exchange failures
Streamline hosted workout sync onboarding and generate apple auth client secrets in service.
- +Streamline hosted workout sync onboardingGeneral
- +Generate apple auth client secrets in serviceGeneral
- +Add apple provider support to hosted cli authGeneral
- +Surface hosted google login in cliGeneral
- +Rename command to incremntCLI
- +Add program summary and explanation commandsCLI
- +Add snapshot insights query cliCLI
See all 100 changes
CLI
- +Rename command to incremnt
- +Add program summary and explanation commands
- +Add snapshot insights query cli
General
- •Add syncService analytics integration + swift 6 actor isolation fixes
- +Streamline hosted workout sync onboarding
- +Generate apple auth client secrets in service
- +Add apple provider support to hosted cli auth
- +Surface hosted google login in cli
- +Resolve hosted google device logins
- •Build hosted sync service from repo root
- +Add hosted sync service preflight checks
- +Streamline hosted sync setup links
- +Hash sync service tokens at rest
- +Add default hosted login resolution
- +Open browser during device login
- +Add browser approval flow for device login
- +Add device login flow for hosted sync
- +Issue remote sessions for cli auth
- +Harden sync service for hosted deployment
- +Add phone developer sync uploads
- +Add incremnt dev email login
- +Add incremnt sync dev launcher
- +Add incremnt sync snapshot uploads
- +Add incremnt per-user sync store
- +Add incremnt sync service package
- •Harden incremnt remote auth and base urls
- +Extract incremnt sync service contract
- +Verify incremnt remote contract handshake
- +Add incremnt session persistence helpers
- +Add incremnt cli auth shell commands
- +Add incremnt cli logout
- +Distinguish incremnt expired auth sessions
- +Normalize incremnt cli session state
- +Publish incremnt cli capability metadata
- +Add incremnt cli transport selection
- +Polish strava workout titles
- +Expose incremnt cli contract metadata
- +Harden incremnt cli read contract
- •Persist adhoc drafts for watch sync
- +Streamline developer snapshot sharing
- •Improve workout finish feedback
- •Sync watch exercise selection with iphone
- •Rest timer animation, overlap with weekly sets panel, dead code
- +Move rest timer inline below last set
- •Chart time range filter applies to delta and single-point fallback
- •Normalize alias matching in progression flows
- •Harden deload and exercise alias matching
- •Restore watch heart rate display fallback
- •Unify bodyweight added-load display across workout surfaces
- •Make workout finish action direct from header
- •Tighten weighted bodyweight rules
- •Clear xcode build warnings
- +Add retention analytics backbone
- •Reconcile logger draft sets with planned day counts
- +Prompt to persist added exercises to program
- •Fix rest timer bar Skip button squishing on small screens
- •Use pre-deload program weight for deload explanation text
- •Add WatchWidgetExtension bundle ID to match provisioning profiles
- +Track pr_achieved event on personal record detection
- +Track workout_started and workout_completed events
- +Track onboarding_completed and onboarding_skipped events
- +Add analytics opt-out toggle, settings_opened and feedback_tapped events
- +Wire consent modal and app_opened event on launch
- +Add analytics consent modal
- •Remove watch connectivity logging, keep rest timer grace period fix
- +Add structured e2e Watch connectivity logging + fix rest timer kill bug
- •Stop cancelled rest timer task from flooding speech synthesizer queue
- +Improve week strip — checkmarks for completed days, clearer selection, dashboard tap resets to today
- •Bodyweight exercises default to BW with rep-based PRs
- +Add WatchWidgetExtension complication for watch face
- +Watch exercise navigation — per-exercise TabView pages, remove dead controls tab
- +Include activeExerciseIndex in Watch workout payload
- +Add activeExerciseIndex to CurrentWorkout model
- •Reset 10s warning flag in addTime() and start() for correctness
- •Add T-10s warning haptic to Watch rest timer
- •Replace pulse-tone system sounds with speech so audio session bypasses silent switch
- •Refresh notification authorization status on app foreground
- •Add T-10s background warning notification and remove scheduling race
- •Show BW/BW+X weight label for bodyweight exercises on Watch
- +Extend BW label and added-weight support to all bodyweight exercises
- •Stop ghost rest timer haptics after workout discard
- •Watch rest timer survives sleep and restore HR streaming on iOS 26+
- •End Watch workout session when iPhone workout finishes or is discarded
- •Add workout-processing background mode to Watch app
- •Show effort rating without HealthKit and hide HR spinner without Watch
- •Recover active workout session so watch app auto-foregrounds
- •Cancel rest timer notification when finishing ad-hoc workout
- •Restore sets on launch for devices mid-deload on older build
- •Deload only reduces weight, no longer removes sets
- •Retroactively apply deload transition for devices already mid-deload
- •Remove duplicate experience selection screen from onboarding
- +Bidirectional watch-iOS sync with weight/reps editing
- •Show deload badges on plan view and workout logger during deload weeks
- •Detect deload week via preDeloadWeights for mid-deload app updates
- +Rewrite watch UI with active set view, rest timer sync, and set logging
- •Use program template weights during deload and post-deload weeks
- •Resolve close-grip bench press missing media icon
- •Resolve 5 deload week bugs — lost sets, skip week, units, phase pill, rounding
- •Correct smartExerciseDefaults rep prediction and legacy startTime decoding
- +Show deload recommendation badge on exercises during deload week
Show current week phase pill (w4 · deload) in planview header and style deload progression pills amber with explanatory header in cyclesummaryview.
- +Show current week phase pill (W4 · Deload) in PlanView headerGeneral
- +Style deload progression pills amber with explanatory header in CycleSummaryViewGeneral
- +Intercept cycle boundary to apply deload instead of progression at week 4/8General
- +Add applyDeloadTransition and applyPostDeloadTransition to ProgramStoreGeneral
See all 114 changes
Add justfile with local testflight upload commands and refactor historyview to split-view pattern with muscle-colored calendar dots.
- +Add Justfile with local TestFlight upload commandsGeneral
- +Refactor HistoryView to split-view pattern with muscle-colored calendar dotsGeneral
- +Add local TestFlight upload scriptGeneral
- +Replace exercise pills with muscle breakdown donut chart in feed cardsGeneral
- +Redesign dashboard and program overviewApp
- •Remove duplicate title from workout descriptionApp
See all 34 changes
App
- +Redesign dashboard and program overview
- •Remove duplicate title from workout description
General
- +Add Justfile with local TestFlight upload commands
- •Address code review feedback
- +Refactor HistoryView to split-view pattern with muscle-colored calendar dots
- •Add missing Match certificate step
- +Add local TestFlight upload script
- +Replace exercise pills with muscle breakdown donut chart in feed cards
- +Enhance muscle breakdown visualization and refine colors
- +Add privacy manifest for App Store compliance
- •Resolve build issues and merge TCX generator
- +Enhance Strava upload with HealthKit data & update app icons
- •Simplify strava upload description format
- •Use system timer for live activity countdown
- +Refactor exercise search with color-coding, inline guided start, and restore goal donut chart
- •Remove exercises without media from first-pass full gym list
- •Avoid false media availability and infer equipment for new lifts
- +Add first-pass media-backed full gym exercises
- •Support sectioned JEFIT CSV exports
- •End live activities reliably across workout flows
- •Polish live activity and harden Strava + calorie handling
- •Remove NSExtensionPrincipalClass from widget Info.plist
- •Resolve 'components' scope error in Strava OAuth handler
- •Remove bare 'rear delt fly' alias that conflates dumbbell and machine exercises
- •Move tokens to Keychain, fix code style issues
- •Extract bodyweightDisplay to shared formatter, fix categorization
- •Add @MainActor to KeyboardDismissal for thread safety
- •Broaden live heart-rate fallback sampling window
- •Always render latest heart-rate value in adhoc workout header
- •Always render latest heart-rate value in workout header
- •Attach calories independently and improve live heart-rate fallback
- •Stream watch heart rate via resilient healthkit fallback without watch app
- •Improve heart-rate capture resilience during workouts
- +Overhaul ProgramBuilder, modernize HealthKit, and polish UI
Enhance daydetailview exercise cards with metadata and media button and redesign goaldetailview with hero ring and compact goal rows.
- +Enhance DayDetailView exercise cards with metadata and media buttonGeneral
- +Redesign GoalDetailView with hero ring and compact goal rowsGeneral
- +Redesign dashboard for better visual hierarchy and densityGeneral
- +Add guided start flow for adhoc workoutsGeneral
See all 17 changes
General
- +Enhance DayDetailView exercise cards with metadata and media button
- •Enforce 44pt touch targets and add accessibility labels across logger
- +Redesign GoalDetailView with hero ring and compact goal rows
- +Redesign dashboard for better visual hierarchy and density
- +Add guided start flow for adhoc workouts
- +Wire MuscleDetailView sheet from weekly progress panel bar tap
- +Add MuscleDetailView for muscle set breakdown
- +Add allTimeGrouped method to WeeklySetsCalculator
- •Resolve Xcode build errors from incomplete PR #60 merge
- •Apply P1 code review fixes to data import/export
- •Harden and optimize data import pipeline
- +Add workout data import/export runtime
- +Apple Watch companion, Instagram export & workout templates
- +Polish rest timer haptic feedback
- +Complete rest timer haptics polish implementation
- •DateFormatter locale/timezone bugs and remove unused inefficient logic
- +PR celebration with confetti, haptics, and toast
Enhance exercise type lookup and harden dateformatter usage and add onboarding goal selection screen.
- •Enhance exercise type lookup and harden DateFormatter usageGeneral
- +Add onboarding goal selection screenGeneral
- •Improve exercise name resolution for PRs and metadata lookupsGeneral
- +Implement WorkoutKit integrationGeneral
- +Add video icon button and fix bodyweight exercise displayGeneral
Show est. badge on start column when value is ratio-based and add last activity date indicator to programs.
- +Show Est. badge on Start column when value is ratio-basedGeneral
- +Add last activity date indicator to programsGeneral
- +Add match move animation and fix post-creation navigationGeneral
- +Add dynamic exercise context to rest timer notificationsGeneral
- +Add GoalDetailView with full progress breakdownApp
- +Show checkpoint/completion modals on launchApp
- +Update goal progress when workouts completeApp
- +Integrate BaselineAssessment and GoalPreview into flowApp
See all 125 changes
App
- +Add GoalDetailView with full progress breakdown
- +Show checkpoint/completion modals on launch
- +Update goal progress when workouts complete
- +Integrate BaselineAssessment and GoalPreview into flow
- +Add PlanCompletionView for Week 8 celebration
- +Add CheckpointView for Week 3/6 progress check-ins
- +Add GoalPreviewView showing 8-week targets
- +Add BaselineAssessmentView with equipment-aware input
- +Add GoalProjectionCalculator with strength ratios and targets
- +Add E1RMCalculator with Epley formula and rounding
- +Rename View History to Exercise Details
- +Wire chart button to ExerciseDetailSheet
- +Add ExerciseDetailSheet container view
- +Add MuscleVolumeBreakdown component
- +Add ExerciseStatsRow component
- +Improve keyboard accessibility in input forms
Dashboard
- +Integrate GoalProgressCard
- +Add GoalProgressCard widget
General
- •Improve small screen layout compatibility for iPhone 12 mini
- •Add write permissions for version bump commit
- •Remove alpha channel from app icons for App Store
- •Add CI keychain setup to prevent signing hangs
- •Explicitly set match git branch to master
- +Show Est. badge on Start column when value is ratio-based
- +Add last activity date indicator to programs
- •Use match profile env var for code signing
- •Remove matchedGeometryEffect causing console warnings
- •Improve program activation animation visibility
- •Use actual user bodyweight for pull-up e1RM calculations
- +Add match move animation and fix post-creation navigation
- •Trigger glow animation consistently when activating programs
- •Wrap reset data alert in DEBUG to match function
- •Configure manual code signing for CI builds
- •Decouple goals from plan start date - historical data now recognized
- •Preserve rest timer context across app backgrounding
- •Address code review feedback
- +Add dynamic exercise context to rest timer notifications
- +Add custom exercises management to Settings
- +Add Straight Arm Pulldown to exercise catalog
- •Update custom exercise UI to match app design system
- •Custom exercises no longer default to bodyweight
- +Add CI/CD pipeline for TestFlight deployment
- •Remove watchOS-only HKWorkoutSession APIs from iOS app
- •Wrap watchOS-only HKLiveWorkoutBuilder in #if os(watchOS)
- +Use absolute strength standards for goal targets
- •Add NameInputView.swift to Xcode project
- •Resolve high-severity bugs in goals and recommendations
- +Add user name collection and personalization throughout app
- +Add program rename, duplicate, and QoL improvements
- •Don't record duplicate misses on decreaseWeight recommendation
- •Update plan strengthLevel when changing target levels
- +Add automated performance test suite
- •Address 3 bugs in Logger views and rest timer
- •Address 3 bugs in Goal-related views
- +Optimize PR checks and historical lookups to O(1)
- •Improve rest timer notification reliability
- •Update RecommendationExplanation tests for new API
- +Add GoalLevelPickerSheet for individual goal editing
- +Add goal section to ExerciseDetailSheet (WIP)
- +Add Adjust Level button to GoalDetailView
- +Add LevelAdjustmentSheet for bulk goal editing
- +Add goal target level editing methods to store
- +Set targetLevel when creating goals
- +Add targetLevel property to LiftGoal model
- •Resolve goal tracking bugs and add hasLoggedData support
- +Add goal creation, program builder improvements, and plan factory
- •Add finishDate computed property to StrengthPlan
- +Integrate RecommendationBadge into all views
- +Enhance GoalDetailView with live data and improved UX
- +Wire MissTrackingStore into recommendation flow
- +Add RecommendationBadge with explanation popover
- +Add RecommendationExplanation for user-facing copy
- +Format retry recommendations
- +Implement retry logic in progression algorithm
- +Add MissTrackingStore for retry logic
- +Add retry case to ProgressionRecommendation enum
- •Resolve goal update logic and UI staleness issues
- •PR calculation history and dynamic progression increments
- •Code review fixes for Stats Tab (DateFormatter, timezone, bounds)
- •Drop reps to bottom of band when weight increases
- •Stub WorkoutKitManager for iOS 26 API compatibility
- +Show 1RM for all completed sets and add leg exercises
- •Use calendar week (Mon-Sun) for weekly sets instead of rolling 7 days
- +Store point-in-time recommendations with each workout session
- •Pass exerciseRecommendationStore to AdhocLoggerView and migrate historical data
- •Show smart defaults and recommendations in Plan View
- •Smart defaults now correctly populate when starting fresh workout
- •Address critical bugs found in deeper code review
- •Code review improvements for Stats tab implementation
- •Preserve set order in progression logic and optimize history lookup
- +Standardize exercises and enhance strength reports
- •Resolve StrengthReportView scope error by consolidating code into StatsView.swift
- •Restore missing logic and add unit preference support to Strength Report cards
- •Remove extraneous closing brace causing build error in StatsView
- +Add Strength Report tab to StatsView showing classifications for all 12 exercises
- •Correctly display rep-based standards (Push Ups) in SettingsView without unit conversion
- +Add remaining requested strength standards and update UI lists
- +Update strength standards with extrapolated data from StrengthLevel.com
- •Restore navigation functionality in SettingsView by wrapping in NavigationStack
- •Add missing semantic colors to AppColors
- •Resolve models compilation errors by adding SwiftUI import and correct types
- •Resolve StrengthLevel scope issues by moving models to Models.swift and fix closure inference
- •Resolve compilation errors in ProgramBuilderFlow and view scoping
- +Integrate strength standards into guided program builder for smart defaults
- +Add strength standards reference in settings
- •Sync exercise values across program days and initialize logger with history
- •Compilation error in ExerciseDeepDiveSection
- •Timer negative value bug and StatsView compilation error
- +Audit haptics and remove history from plan view
- +Add PR summary card to exercise deep dive
- +Second-round redesign of StatsView with global filters and premium tabs
- +Redesign StatsView, add Dashboard history button, and auto-start workouts
- +Refactor exercise selection, fix chart alignment, and add day deletion
- +Add test data mode with historical session generation
- +Enhance stats and dashboard views with completion charts and heatmaps
- +Add manual program creation flow and fix navigation
- +Add empty state for Stats tab
- +Add Records & PRs section with ATH badges
- +Add Training Frequency section with heatmap and streaks
- +Add Volume Breakdown section with muscle sets and balance
- +Add Exercise Deep Dive section with E1RM and volume charts
- +Add time period selector and data range header to Stats
- +Add Stats tab to navigation
- •Haptics respect settings toggle and exercise-specific animation
- +Exercise view polish - navigation, animations, and UI improvements
Add swipe actions for exercises in plan view and add permanent removal option for exercises in loggerview.
- +Add swipe actions for exercises in Plan viewGeneral
- +Add permanent removal option for exercises in LoggerViewGeneral
- +Show weight in Plan view and handle time-based exercisesGeneral
- +Add custom exercise equipment lookupGeneral
See all 89 changes
General
- •Replace swipe actions with context menu in Plan view
- +Add swipe actions for exercises in Plan view
- +Add permanent removal option for exercises in LoggerView
- •Show "bodyweight" for bodyweight exercises in Plan view
- •Tapping Workout tab now pops to root when in History view
- •Execute onConfirm before dismissing confirmation modal
- +Show weight in Plan view and handle time-based exercises
- •Add completionDate helper for sessions
- •Address code review issues for custom exercises
- +Add custom exercise equipment lookup
- +Add swipe-to-delete for custom exercises
- +Add custom exercise support to AdhocLoggerView
- +Add custom exercise support to SwapExerciseSheet
- +Sort history sessions by completion time
- +Backfill completedAt for legacy sessions
- +Add custom exercise button to AddExerciseSheet empty state
- +Wire CustomExerciseStore into app environment
- +Add AddCustomExerciseView for creating custom exercises
- •Save history edits on exit
- •Persist logged values to program and simplify rep recommendations
- +Add CustomExerciseStore for persistence
- +Add CustomExercise model
- •Improve progression UI and ensure smart defaults propagate
- +Add animation mappings for final 7 exercises
- +Add animation mappings for 13 more exercises
- •Add missing animation URLs for 11 more exercises
- +Implement smart defaults for ad-hoc exercises
- •Add missing animation for cable fly and expand media sheet
- +Redesign history cards with editable session detail view
- •Weekly sets panel counts all exercises for muscle group
- +Implement refined progression algorithm from design feedback
- •Cascade weight/reps to subsequent sets on completion
- +Navigate to dashboard after workout summary dismiss
- +Wire up enhanced progression algorithm in logger views
- +Implement enhanced progression algorithm with 2-for-2 rule
- +Add previousSets lookup to SessionStore
- +Add weight increment configuration to ExerciseMetadata
- +Add decreaseWeight recommendation type
- +Persist exercise recommendations globally across workouts
- •Resolve crash from duplicate exercise names in media catalog
- +Expand exercise database with 75 new exercises
- •Enable exercise media sheet in logger views and fix glassy appearance
- •Improve workout logger ux
- •Add keyboard Done button to IntegerTextField and remove ineffective toolbar
- •Remove redundant pr text badge, trophy icon is sufficient
- •Pr badge now moves to best set in workout
- +Add UI parity between LoggerView and AdhocLoggerView
- •Remove auto-completion from workout logging
- +Integrate FAB into custom tab bar
- •Resolve iOS 17 deprecation warnings
- +Update banner to navigate to adhoc logger
- •Make shared views internal and fix confirmationModal call
- +Add center FAB for adhoc workout
- +Add AdhocLoggerView for quick workouts
- •Handle banner navigation when PlanView not alive
- •Clear rest timer on workout end
- •Resolve orphaned workout in-progress state
- •Cancel rest timer notification when finishing workout
- •Actually cancel notification when discarding workout
- •Improve weight input fields and consolidate formatting
- •Cancel rest timer when discarding workout
- +Expand exercise catalog with ~40 new exercises
- •Restore permanent swap prompt for exercise swapping
- +Add decimal keyboard input for weight in logger view
- •Resolve glassy empty state in SwapExerciseSheet
- +Add optional rest timer notifications
- +Simplify workout preview and add context-aware recommendation labels
- •Address code review feedback
- +Auto-show weekly sets panel when all sets complete
- •Rename E1RM to 1RM in all UI labels
- •Progress chart now shows useful info with single data point
- •Resolve UI issues in full-screen logger
- +Rewrite LoggerView with paged TabView for exercise navigation
- +Add custom workout header component
- +Add full-screen exercise view component
- +Add full-screen set row component
- +Add E1RM progress chart component
- +Add adjustable rest timer bar component
- +Add custom rest duration persistence
- +Add E1RM history logic for progress charts
- •Show Resume button for in-progress workouts regardless of program
- +Improve history view and add Watch app foundation
- •Swap complete/remove set button positions for better ergonomics
- •Workout timers now continue during background/lock screen
- +Add HealthKit integration for heart rate and calorie tracking
- •Resolve white screen bug when creating program from Programs tab
- +Add workout day completion tracking and cycle summary
- +Add exercise count to day overview
- •Navigate to Workout tab after onboarding
Auto-open loggerview for pending day 1 workout and show onboardingview when user is new.
- +Auto-open LoggerView for pending Day 1 workoutApp
- +Show OnboardingView when user is newApp
- +Pass user weight to program generationApp
- +Add OnboardingView to orchestrate onboarding flowApp
- +Show projected exercises in muscle breakdown viewGeneral
- +Add user profile settings for weight, height, and ageGeneral
- +Add smooth animation for program switchingGeneral
- +Replace review step with rich summary cardGeneral
See all 91 changes
App
- +Auto-open LoggerView for pending Day 1 workout
- +Show OnboardingView when user is new
- +Pass user weight to program generation
- +Add OnboardingView to orchestrate onboarding flow
- +Add ProfileInputView for user weight and height collection
- +Integrate user weight into program generation defaults
- +Add DefaultWeightCalculator for body-weight-based defaults
- +Add pendingWorkoutDay for Day 1 handoff
- +Add hasCompletedOnboarding flag to ProgramStore
General
- •Only show PR badge on first set to beat historical record
- +Show projected exercises in muscle breakdown view
- +Add user profile settings for weight, height, and age
- •Improve program generation logic
- •UI improvements for program management
- +Add smooth animation for program switching
- +Replace review step with rich summary card
- +Add ProgramSummaryCard with body heatmap and volume breakdown
- +Add ExpandableMuscleRow component for summary
- +Add volume configuration step to builder flow
- +Add swipe-to-delete for programs
- +Add delete method to ProgramStore
- +Add exerciseContributions helper for summary card
- +Replace 5-day hybrid with bro split
- +Add dynamic volume targeting to ProgramBuilder
- +Add VolumeLevel enum and volumeLevel to Program
- •Add missing ExerciseMedia files to Xcode project
- +Project weekly sets using calendar-week program completion
- +Store program day metadata on sessions
- +Show latest recommendation on program day
- +Update program recommendations on workout finish
- +Persist latest recommendations in program store
- +Update LoggerView WeeklyProgressPanel to use shared components
- +Update DashboardView with all new components
- +Add DualBodyDiagramView with side-by-side layout and 3D-style rendering
- +Add TrainingInsightsCard and RecommendationEngine
- +Add MuscleSetBreakdownView with expandable exercise details
- +Add ExerciseContribution model and computation methods
- +Add MiniBodyIcon component for muscle identification
- +Add SegmentedSetBar component with discrete countable segments
- +Compute detailed progression recommendations
- +Add structured recommendation model and formatter
- •Resolve pbxproj id collision
- +Add tall dashboard heatmap card with toggle
- +Add front/back body diagram with improved anatomy
- +Improve logger exercise actions menu
- +Add rest timer bar formatter
- •Add BodyDiagramView.swift to Xcode project
- +Add expected duration calculator to plan view
- •Correct legend colors and muscle key casing
- +Add exercise metadata for rest and equipment
- +Add body diagram visualization to Dashboard
- +Add programs tab and workout builder
- +Update dashboard body heatmap and weekly sets styling
- •Stabilize history sheet navigation
- +Add history calendar view
- +Add history calendar logic
- +Add stable workout session ids
- +Add pr and progression to history
- +Add PR badges in logger
- +Add 1rm helpers
- +Add workout history tab
- +Add swap exercise sheet
- +Add analytics charts
- +Improve media matching and set controls
- +Autoplay exercise image frames
- +Expose exercise image frames
- +Load exercise media from bundled json
- +Add set controls and collapse
- +Add exercise animation sheet
- +Add logger options sheet
- +Add keyboard dismissal
- +Color weekly sets bars
- +Live weekly sets in logger
- +Add weekly range helper
- +Add analytics weekly sets
- +Add logger weekly progress and session save
- +Add session store
- +Add weekly sets calculator
- +Add logged session models
- +Add in-workout weekly sets progress
- +Add weekly mode toggle and sets summary
- +Add weekly sets computation
- +Add secondary muscle metadata
- +Add local session storage helpers
- +Apply progression badge logic in logger
- +Add inline editing for workout sets
- +Add progression recommendation logic
- +Add placeholder tabs for navigation
- +Add logger flow with progression badges
- +Add Plan tab with swipeable 4-day program
- +Add mock models and progression logic