A running record of what changed, and why.

Every shipped change is a paragraph here. No marketing polish, no versioning theater — just the decision and the diff.

  1. 11

    First-workout sweep — runner, health, video, library

    Four waves of fixes and additions from a first end-to-end workout — runner polish, HealthKit + Strava routing, in-session form video, bundled routines, and a skippable onboarding quiz.

    Addition
  2. 10

    History tab, pain trend, per-exercise progression

    Three-tab shell (Workouts / History / Settings). History surfaces a session log, a 30/60/90-day pain trend chart, and per-exercise load-over-time.

    Addition
  3. 09

    Quiet Sport redesign — the full system

    Quiet Sport lands across the app — design system, runner, rest timer, watch, rehab, shell, plus a second visual pass on palette, hero numerics, and nine new atoms.

    Redesign
  4. 08

    Watch: tempo haptics, duration and rest countdowns

    The watch gains distinct haptics for each tempo phase, a duration-countdown ring for holds, and a numeric rest countdown — while staying HR-centric.

    Addition
  5. 07

    Design direction documented

    The app philosophy and Quiet Sport aesthetic are written down — the handful of invariants that should never silently change.

    Foundation
  6. 06

    Manage workouts — edit, delete, clipboard import, Strava modes

    Edit + delete flows, a robust iCloud re-scan, pasting workout JSON from the clipboard, and Strava upload modes (always / ask / never).

    Addition
  7. 05

    Marketing site

    A public site — landing, philosophy, AI-chatbot integration guide, Privacy, Support, and this changelog — goes live.

    Addition
  8. 04

    Muscle groups per exercise, Strava descriptions

    Exercises now declare their muscle groups via a closed vocabulary; Strava uploads include a human-readable description built from the session.

    Addition
  9. 03

    Structured Weight type, ±-stepper, app icon

    Weight becomes a typed value (number + unit) across the model; runner and planner share a ±-stepper; the app icon ships.

    Addition
  10. 02

    Polish fixes — overflow, delete confirmation, sample persistence

    A pass over rough edges: SetRow horizontal overflow on iPhone, delete confirmation dialog, and persisting bundled-sample deletions across app restarts.

    Fix
  11. 01

    Foundation — schema, persistence, watch, Strava, library

    The functional base of Aski lands in one intense day: JSON schema and decoder, iCloud import, runner + session logging, watchOS + HealthKit, Strava upload, and the exercise library.

    Foundation