Skip to content

v2.1.1

Choose a tag to compare

@github-actions github-actions released this 19 Jun 10:41
· 366 commits to clean-main since this release

v2.1.1 — Faster plan open, polarized event-prep, citation fixes (2026-06-19)

A fast-follow patch on top of v2.1.0 — whose full feature set (block
periodization, B/C races, the smarter plan, Windows/Mac reliability) is recapped
at the end of this entry and detailed in the v2.1.0 section below. Nothing from
v2.1.0 is replaced; this adds fixes on top.

Training plan

  • Plans are now properly polarized (all goal types). Build/peak weeks were
    coming out as a few hard sessions + rest days — the weekly volume ceiling was
    trimming the easy Z2 endurance days to rest. Now, for every goal (event,
    FTP, VO2max, hybrid, general, endurance, …), the easy aerobic base fills the
    available days up to your ACWR-safe load (recent weekly TSS × 1.3, Gabbett)
    instead of resting them, so a build week is a polarized HIT + Z2 mix, not
    "hard + rest". Stepback (deload) and taper weeks keep their reduced volume.
    Evidence that high low-intensity volume builds the aerobic base:
    Seiler & Kjerland 2006,
    Stöggl & Sperlich 2015,
    Rosenblat 2019 /
    2025.
  • Opening the training plan is fast again. It stalled ~30s on "Checking what
    you actually did" because it waited for the slow, best-effort ride sync
    before the local reconcile. The sync now runs in the background, and the
    recovery/HRV read runs in parallel with the reconcile — the plan opens at
    reconcile speed.
  • Non-cycling activities no longer pollute the plan. A Strava rock-climb (or
    run / swim / hike) was being matched to planned cycling sessions. Non-cycling
    activities are now excluded from reconciliation.
  • Clearer reshuffle message. Accepting a workout reshuffle now reads "Today's
    training changed · N future sessions reflowed" instead of an ambiguous "0
    sessions reflowed".

DFA / interface

  • DFA α1 tab shows a loading screen. Opening the tab paints a spinner
    immediately while the analysis loads in the background, instead of a blank or
    stale panel.

Docs

  • Fixed 4 wrong PubMed links that pointed to unrelated medical papers
    (Sanders / Wallace / Vermeire / Hellard), linked every study in the guardrail +
    science tables, consolidated one complete scientific-reference table, and
    corrected the DFA HRVT2 citation (was reusing the LT1 paper).

Plus everything from v2.1.0 (the feature release this builds on)

v2.1.1 is a patch — the headline features all shipped in v2.1.0, recapped here
so they aren't buried (full detail in the v2.1.0 entry below):

  • Block periodization (opt-in, default off) — reorganizes build/peak into ~3–4
    week focus blocks (a VO2max block, then a threshold block toward your event),
    each keeping one complementary session (Issurin "accentuated load"). Saved with
    the plan and survives every auto re-fit. Grounded in a verified PubMed screen,
    and honest that the evidence is mixed for amateurs — hence off by default.
  • B and C races — add intermediate events alongside your A goal, each with a
    right-sized, evidence-based mini-taper (B: a 2-day volume trim that keeps
    intensity; C: a single easy/opener day), skipped inside the A taper or a deload
    week, and color-coded by priority on the calendar. A single-A plan is unchanged.
  • A plan that respects your real training — weekly volume is load-based
    (the lower of target CTL and recent 6-week TSS × 1.3, not the sum of your free
    hours), starts from your real current CTL, restores real rest weeks/days,
    keeps VO2max off race eve, and lets you choose polarized / pyramidal /
    threshold
    — all of which now hold through automatic re-fits.
  • An honest workout library — an objective-coherence check surfaces a workout's
    hidden hard work in its name (e.g. "Endurance 120min — Z2 +VO2 set"); added 24
    long pure-Z2 base rides for gran-fondo base (library now 4,220 workouts).
  • A trustworthy DFA α1 readout — per-window α1 can read down to 0.20 (hard-
    interval drops shown, not hidden), each result carries a high/medium/low
    confidence
    flag, and running activities are flagged not-fully-trusted.
  • Outdoor-ready workouts — an opt-in export wraps any workout with an off-plan
    transit warm-up + easy spin home (doesn't touch your planned load).
  • Windows + macOS reliability — profile, API-key and accented-name persistence,
    clean app relaunch (no orphaned server), and the recurring intervals.icu
    TLS fix — now on both platforms (the ICUNetworkError on Windows and the
    Mac mini / MacBook Air).
  • FTP / power / safety — eFTP no longer silently rewrites your zones (opt-in);
    the power curve self-heals missing efforts; an impossible 600%-FTP "ramp" workout
    was removed and the dangerous-workout screen tightened.