Build 26 — Chained workouts are instant now

Deep performance pass on the workout runner: chained sessions start immediately, every tap during a workout responds instantly, and long sessions no longer slow the app down as they grow.

← All changes

Built for chained sessions

Chaining two or three workouts together used to make everything sluggish — the longer the session, the slower each tap. The root cause is fixed: the app was re-reading your entire session log from scratch on every screen update, and a chained session made that log two to three times bigger. It’s now read once and kept warm, so the runner reacts the same whether you’re doing 8 exercises or 30.

  • Starting a chained workout is immediate. Prefilling your last-used weights used to scan your history once per exercise — for a long chain that meant thousands of reads on a single tap. It’s now one scan for the whole session.
  • “Previous” ghost values appear without a hitch. They’re looked up in the background right when the session starts, instead of mid-workout the first time you swipe to each exercise.
  • The rest countdown is lighter. During rest the app was doing heavy bookkeeping every single second just to keep the watch in sync. The sync is unchanged — the busywork is gone.
  • The rest timer’s Live Activity no longer delays the tap. Starting it used to happen on the same frame as your set-log tap; it now starts right after, so the checkmark and haptic land first.
  • Duration sets in overtime no longer write to your log every second. The final time is recorded once, when the hold ends — same result in your history.
  • The exercise progression chart renders in one pass instead of walking your full history four times.