phase.fitness

Changelog

Current version: v.13b1018

October 9, 2026 — Your Garmin, your say

Latest

Garmin brings your activities, and nothing else

Write the plan here and train it on your Garmin: that doesn't change. What comes back from Garmin is now your activities only. Sleep, body battery, stress, HRV and the rest of Garmin's wellness data are no longer collected. Wellness from Intervals.icu is unchanged.

The AI uses your Garmin activities only if you allow it

Finished Garmin activities still come back and mark your planned sessions done. The AI reads them to adapt your plan only if you say yes — when you connect Garmin, or later in Settings → Garmin, where you can turn it off again at any time.

Asked before anything goes to Garmin Connect

Before workouts are sent to your Garmin Connect account, you're asked first: when you connect, or the first time you send. You can change your answer in Settings → Garmin.

Garmin data, labeled with your device

Wherever data from your watch shows up — an activity, a chart, the calendar — it carries the device that recorded it, as in “Garmin Forerunner 965”. AI text built in part from your Garmin activities says so underneath.

September 21, 2026 — Routines that stay as planned

Your routines don't change on their own

Until now a daily update rewrote the week's sets from what you had logged and sent them to Liftosaur and Garmin. It's gone. A routine keeps its sets for the whole phase, and the player, Today and the calendar show each week's numbers from the plan written with the phase, deload included. Nothing reaches your apps unless you send it.

September 18, 2026 — Programs built on your numbers

Your goal, understood

Write your goal in your own words and the AI answers with how it will program it — asking up to three short questions when something is missing, and never blocking you. The goal it confirms reaches every session of every phase. When the goal is a lift, the program is built around that lift, and the other main lifts are held at 6 to 10 sets a week: enough to keep them, not enough to steal recovery.

Your maxes, in one place

The same lift could have three different maxes — in your profile, in your goal, estimated from old sets — and a program could load from one while promising another. Now you confirm your one-rep maxes on bench press, squat, deadlift and overhead press once, before generating, and every load is calculated from them, rounded to 2.5 kg. A suggestion from your logged sets always shows its evidence. Variants such as front squat, Romanian deadlift and incline bench get a max estimated from their parent lift, on the cautious side.

Tell it how you like to train

Three optional sliders when you create a program: free weights or machines, familiar or varied exercises, fewer or more exercises per session. Left in the middle they change nothing. You can also ask for a 5-minute warm-up circuit at the start of every session, shown as its own section.

Closer to failure, and progress that reaches your apps

Muscle-building sets now end at RPE 8–9, with a load that matches the effort instead of a light weight labelled hard. Week to week, hit your reps and the next week adds one; beat them by two and the load goes up. The new week is written into the routines themselves, so Hevy, Liftosaur, Garmin and the player all get the same numbers.

Supersets that give you time back

When a session runs longer than you asked for, opposing muscles are paired — nothing between the two, two minutes after — until it fits. Heavy sets and your goal lift stay on their own. Supersets are marked in the routine, the phase view and the printed booklet.

How to perform, and what to eat

Every fundamental lift has instructions written by hand — setup, movement, the mistake to avoid — wherever the exercise opens. Your profile now estimates daily calories and a protein range from your stats, your training and your goal.

Print a phase, export your data

Print opens an A4 booklet of a phase, one session per page, with columns to fill in with a pen. Settings → Your data downloads a zip of JSON and CSV — the whole account, the plan, or your training history — with the counts shown first.

Meet Moss

A tardigrade now lives in the quiet corners of the app — empty screens, errors, the end of a workout — with a line of its own on Today every day. Dress it up in Settings, keep it out of the way, or turn it off.

Smaller things

Tapping a day on the calendar shows the session instead of asking how it went. Collapse all and Expand all fold a long main workout to one line per exercise. Every strength exercise the AI picks has a hand-checked match in Hevy, so it syncs as the same exercise. The missed-sessions email waits for a full week without training, and never comes in a program’s first week. Every calisthenics exercise has an illustration, sign-in pages wear the app’s colours, and product analytics run only if you accept them.

September 8, 2026 — Weekly volume, from your data

The volume chart now shows your volume

The bars above the calendar used to be drawn from the phase's intensity setting: they rose inside a phase and reset at every phase boundary, whatever you had planned or done. They now count hard sets — warm-up sets excluded — from the progression schedule of every exercise in the week, so a week is as tall as the work in it.

Tap a week for its sessions

The filled part of a bar is what you have done and the light part is what is still planned. Tap a week and you get its sessions with sets, reps and cardio minutes, which of them were skipped or missed, and the calendar below scrolls to that week. There is a table view for the same numbers.

Programs, sports and methodology on the site

Ninety-odd new pages: a program page for twenty-one sports, the classic splits and eight calisthenics skills; a page for each kind of athlete; and the training-science documents the generator reads before it writes a phase, published in full with their references.

September 6, 2026 — Phases that close themselves

A phase closes when it’s done

Closing a phase was a button, and almost nobody pressed it — so the next phase had no analysis to be built on. Now a phase closes by itself when its weeks are over and you trained at least 80% of it, and the end-of-phase analysis no longer costs a credit. Below 80%, an alert asks you what to do. The 80% check itself was counting routines instead of scheduled sessions, which let a half-done phase through; it now counts sessions.

Workload changes are instant, and free

Deload, more or less volume, more or less intensity: these were a request to the AI that took twenty seconds, cost a credit, and could multiply RPE 8 into RPE 9.6. They’re now plain arithmetic — instant, free, and the same every time. Intensity adds to RPE in half-point steps, and the warm-up is never touched.

A player that remembers

The weight you just used carries over to the next set, and you can add RPE to a set after finishing it.

Cardio planned for the whole phase

Cardio days are written for a full phase, starting from where you are today — creating a program now asks — and conditioning for a team or court sport is no longer just running.

An athlete profile that stays current

Your AI athlete profile now rewrites itself every 30 days once eight new sessions are in, instead of freezing on the day it was generated. It no longer fills gaps with numbers it doesn’t have, and refreshing it by hand is free.

Integrations you can switch off

Every integration card has an on/off switch, and your key stays saved while it’s off. The cards are more compact, with the setup steps tucked in a drawer.

More to start from

The Library grew from seven ready-made programs and sessions to thirty-three, and workout blocks from 29 to 46: specific warm-ups for squat, deadlift, bench and running, cuff and hamstring work, a cool-down after a run, carries and sled finishers.

Garmin knows more of your exercises

A hundred and fifty exercises Garmin watches didn’t recognise now arrive on the watch with their own name.

A credit means the AI worked for you

Analysing a logged session costs 1 credit, charged only when the analysis arrives. Calisthenics sessions, the athlete profile and the end-of-phase analysis cost nothing. The tasks panel now says which step a long job is on, instead of “Starting…”.

August 25, 2026 — Template Library, Garmin & Pricing

A library of programs and sessions

Start from something that already works. There are ready-made programs and sessions to pick from, you can save anything you've built as your own template, and you can publish it if you want other people to train with it. Dropping a template session into a phase updates your calendar straight away and costs no AI credits — it comes from the template, not from the model. Templates are snapshots: editing the original never changes the copy someone else took.

Garmin works in both directions

Connect Garmin Connect once and your sessions arrive the moment the watch syncs — pushed, not polled, so there's no sync button to remember. The cardio and strength workouts the AI planned go the other way, onto Fenix, Forerunner and Edge. Sleep, body battery and recovery feed the next block it writes.

Synced activities were being counted twice

Some Intervals.icu sessions had been imported under two different keys and ended up in your history twice, crowding real workouts out of what the AI reads. Those duplicates are gone and can't come back. The weekly summary was also reporting zero cardio sessions for everyone — it was looking for a label nothing ever wrote. Both are fixed, and your cardio now counts.

PRO is now billed every three months

$34.90 for three months, or $104.70 a year — twelve months for the price of nine. We stopped selling a single month because one month is one training block, and the part that makes phase.fitness worth having happens between blocks, when the AI reads what you actually lifted and writes the next one from it. Free stays free, and you can still cancel any time.

Phases behave themselves

Regenerating a phase used to leave the old gym sessions behind, so a two-session week could quietly become four. Ungenerated phases no longer claim to be "in progress", the 80% rule before generating the next phase is back on both screens — with a clear way to override it — and adding or removing a day now asks first and tells you what it costs.

August 23, 2026 — Mobile, Installable App & Today

Install phase.fitness on your phone

phase.fitness is now installable as a PWA — a web app you add to your home screen, not a native app from a store. It opens full-screen, keeps you signed in, and shows a real offline page instead of a browser error when the signal drops. Add it from Safari's Share menu on iPhone, or from Chrome's install prompt on Android. We're not planning a native app: you plan a training block once or twice a week, and that rhythm doesn't justify a download and a fortnightly update.

Today is the entry screen

Signing in now lands on Today — today's session, the week at a glance, and your active phase — instead of the wide dashboard. Opening a routine from Today takes you to the phase view, which is now also reachable from any program's Phases tab. "Open calendar" opens the calendar, and everything that used to say "plan" now says "program".

Workouts readable on a phone

Workout tables now use the full width instead of sitting inside four nested borders, sets collapse per exercise, and the tab bar sits against the top of the screen. One user bar instead of two. No page scrolls sideways at 375px any more — and a test now fails the build if one starts to.

The player keeps the screen on

Your screen stays awake while you train, and the rest timer plays a sound when it ends — so the phone can sit on the bench between sets.

Exercise previews

Exercises now carry video and image previews — calisthenics included — shown in the catalog and inside the player, so you can check a movement without leaving the app.

Bug hunt

Report bugs, use Pro free. Clear terms, a welcome email that explains how it works, a short structured form at the start and one a month, and a limited number of spots. Up to six months of Pro, renewable for exceptional contributions.

Under the hood

Every API endpoint is now protected by default rather than by listing them one by one. Two generations started at the same moment used to be charged as one — now the database does the counting. The AI model behind each feature is configurable without a deploy, and every model in use can be tested from one place.

June 4, 2026 — Liftosaur, Workout Completion & Background Tasks

Liftosaur integration

Connect Liftosaur as your strength source. phase.fitness pushes each training phase to Liftosaur as a ready-to-run program — with target weights seeded from your estimated 1RM — and pulls your logged workouts back into your history, calendar, and analytics. Exercises with no Liftosaur equivalent are skipped rather than mis-substituted.

Workout completion: done vs planned

Every logged workout now shows how much of the plan you actually completed — done-vs-planned reps and a completion %, with a Skipped or partial badge per exercise. Analytics tracks your average completion across recent sessions. Works across all strength sources.

Background tasks dock

Long-running operations — program generation, phase refinement, syncs — now run in the background with a live progress dock. Navigate away freely; the dock keeps the result with a link straight to it when it's done.

Faster, more reliable AI generation

Program generation now builds each training day in parallel, so big plans are faster and no longer time out. After you create a program, its first phase is generated automatically in the background.

Fixes & polish

Workout times now display in your local timezone, and a range of sync and UI rough edges were smoothed out.

May 27, 2026 — Unified Sync v1.0

One activity feed, three sources

Workouts from Hevy, Strava, and Intervals.icu now live in a single canonical feed. Analytics, the calendar, and the AI all read from the same place, so duplicates between providers are merged automatically and your history stays consistent across every screen.

Per-integration Sync & Re-sync

Each integration card in Settings now has its own Sync Now and Re-sync history buttons. Sync Now pulls only what's new since the last sync; Re-sync history re-imports up to 5 years and refreshes the metrics on existing activities.

Auto-backfill on connect

Connecting Strava, Hevy, or Intervals.icu now kicks off a full historic import automatically — no extra button to press. New activities continue to sync incrementally afterwards.

On-demand wellness sync

The Intervals.icu card has dedicated Sync wellness and Re-sync wellness history buttons. HRV, sleep, RHR, and readiness can now be pulled on demand in addition to the nightly cron — useful when you connect mid-week or want to refresh after a missed night.

Source priority settings

When the same ride or run lands in multiple providers (e.g. Strava and Intervals.icu), phase.fitness now picks the higher-priority source for matching against your program. Defaults are sensible (Intervals.icu for rich cardio detail, Hevy for strength) but you can override them in Settings.

Smarter analytics

Activity analytics now default to a 90-day window with a 5-year option for deep history. Empty states explain what's missing instead of just showing a blank chart. Strength queries route correctly through the Hevy detail tables again after the canonical-table migration.

Cleaner disconnect

Disconnecting an integration now properly clears its sync state — your canonical activities stay in the database (so analytics keep working) while the orchestrator stops trying to pull from a provider you've unhooked. Reconnecting later picks up from scratch with a fresh full backfill.

March 20, 2026 — Pre & Post Workout Blocks

Pre-Workout Blocks

Add structured warm-up, mobility, and muscle activation blocks before your main workout. Choose from 13 pre-workout templates across categories like Dynamic Flexibility, Muscle Activation, and General Warm-Up.

Post-Workout Blocks

Add cool-down, stretching, core finishers, and conditioning blocks after your main workout. 16 post-workout templates including Core Blast, Static Stretching, and EMOM Finishers.

Collapsible Workout Sections

Routines are now visually organized into Pre-Workout (orange), Main Workout (grey), and Post-Workout (blue) sections — each collapsible with exercise counts. Add, remove, and replace blocks with one click.

March 13, 2026 — New Dashboard, Tabbed Programs & Onboarding

Redesigned Dashboard

Completely new dashboard layout with training stats, wellness metrics, AI credits overview, connected integrations status, and quick actions — everything you need in one view.

Guided Onboarding

New 4-step onboarding flow for new users: connect your tools (Strava, Hevy, Intervals.icu), complete your athlete profile, generate your AI profile, and create your first program — all guided step by step.

Tabbed Program View

Programs are now organized in 4 tabs: Overview (phases & routines), Calendar (schedule & workload visualization), Phases (detail view with completion tracking), and Insights (AI coach suggestions).

Weekly Volume Workload Bars

The calendar tab now shows weekly volume bars visualizing your planned training intensity across phases. Color-coded by phase with progressive overload ramps — taller bars mean harder weeks, shorter bars mean deload.

Intervals.icu Activity Import

Import completed cardio workouts from Intervals.icu directly into your training log. Heart rate zones, intervals, and session data flow into your analytics automatically for a complete training picture.

Strength & Activity Analytics

New Strength tab with estimated 1RMs, volume by muscle group, weekly volume trends, and RPE distribution. Activity tab with unified feed, heart rate trends, sport breakdown, and calories — combining Strava, Hevy, and Intervals.icu.

Security & Performance

Upgraded Next.js to 15.3.6 for CVE-2025-66478. Hardened API endpoints. Calendar refactored for client-side rendering with zero database queries for volume visualization.

March 5, 2026 — Analytics Upgrade

Individual Activity Details

Open an activity from Analytics and inspect heart rate zones, timeline data, intervals, and laps from the same detail page. Intervals.icu activity IDs are now handled more reliably across cached data and direct API fetches.

Cleaner Analytics Feed

The Analytics activity list now includes cached Intervals.icu sessions while reducing duplicate entries when the same workout also exists in connected cardio sources.

Improved Cardio Insights

Analytics now better reflects Intervals.icu-derived cardio context, making it easier to review session structure, training load context, and heart rate distribution in one place.

February 17, 2026 — Training Engine Update

Cardio Routines

AI now generates structured cardio workouts — running, cycling, swimming, and rowing — with intervals, heart rate zones, and duration targets. Cardio routines appear alongside strength routines in your program, with a dedicated card view and inline editor.

Progressive Workload

Every exercise now has automatic week-over-week progression. Sets, reps, and load adjust based on your actual performance — with RPE-based adjustments for compounds and rep-based progression for isolation work. Deload weeks are calculated automatically. No AI credits used.

Intervals.icu Sync

Push cardio routines to Intervals.icu for Apple Watch execution. Connect your account in Settings, then sync cardio workouts with one click from the program page. Workouts appear in your Intervals.icu calendar with structured intervals and zones.

Wellness Monitoring

Track HRV, resting heart rate, sleep quality, and body weight on your dashboard. Wellness data syncs daily from Intervals.icu and feeds into the AI context — your training load adjusts automatically based on recovery signals.

February 10, 2026 — AI Athlete Profile

Mid February

AI Athlete Profile

A new AI-powered analysis of your imported training data from Strava and Hevy. The AI reads your workout history and generates a comprehensive athlete profile — sport classification, training frequency, estimated 1RMs, cardio metrics, and key insights. Available on your dashboard after connecting Strava or Hevy.

Smarter AI Context

The AI Athlete Profile is automatically injected into all AI generation prompts — program creation, routine refinement, and workload adjustments now understand your full training background, not just your manual profile.

Workload Update Overhaul

Completely redesigned workload adjustment: live spinner during processing, then a detailed result screen showing exactly what changed — per-exercise before/after comparison (sets, load%, RPE) and total working sets delta. Six preset options with percentage inputs and validation. Resilient polling that survives network glitches.

Dashboard & Guide Updates

Reorganized dashboard layout. Tutorial video moved to the User Guide page. AI Intelligence section expanded with 5-layer context explanation. Cleaner card arrangement with Programs, Credits, AI Profile, and Sync status.

February 7, 2026 — Mobile UX Overhaul

Early February

Routine Action Bar

Routine actions (Refine, Regen, Filters, Delete) are now displayed as a labeled action bar below each routine title. Bigger icons with text labels for clarity on both mobile and desktop. Rename pencil icon stays inline with the title.

Program Action Buttons

Activate, Sync, Notebook, and Export buttons now show as vertical icon+label mini-buttons with bigger touch targets. No more tiny icons on mobile.

Compact Exercise Editor

The workout table now fits on mobile screens without horizontal scrolling. Narrower inputs, shorter column headers, and compact padding in edit mode.

Programs List & Prompt Improvements

Program cards now show the delete button always visible (no more double-click). The program creation prompt area is taller and auto-resizes to fit your text.

February 2026 — v.10b767

Early February

Injury Exclusion Presets

Select injury zones (Lower Back, Shoulder, Knee, Elbow, Wrist, Hip) and the AI automatically excludes risky exercises from your workout plans. Each zone maps to curated exercise patterns matched against the full exercise catalog.

Per-Routine Constraint Overrides

Each routine can now have its own injury exclusions, equipment, and muscle group constraints — independent from the program defaults. Fine-tune exactly what the AI can use for each training day.

Unified Constraint Architecture

All constraints (equipment, muscles, injuries) now live in one place on the program. The training notebook shows them as a read-only summary, always in sync. Removed legacy text-based constraint parsing for a cleaner, more reliable system.

January 2026

Mid January

AI Memory System

Your AI coach now remembers your training sessions and learns from your progress. After each workout, insights are automatically extracted and saved to help provide better recommendations over time.

Modern Notifications

Replaced old browser alerts with beautiful toast notifications. Messages are now less intrusive and look better across all devices.

Bug Fixes & Performance

Fixed various issues with program generation, phase renaming, and Hevy sync. Improved overall app stability and performance.

December 2025

Holiday updates

RPE-Based Training

Introduced RPE (Rate of Perceived Exertion) tracking and e1RM calculations. Your workouts now adapt based on how hard each set feels, making training more intelligent and personalized.

Hevy Integration

Full integration with Hevy app for seamless workout syncing. Import your training history and sync new workouts automatically.

For support or feature requests, contact us at

hello@phase.fitness