← Back to updates

Sharper saves. Wrist-ready handstands.

A tight follow-up to v1.8.0. Two papercuts around the end-of-workout Save flow, four new wrist-and-shoulder warmups on Handstand Focus days, and a foundation layer that quietly makes Handstand practice adaptive to your current rung.

Save works on the first tap now

v1.8.0 introduced a subtle race: tapping "Save workout" at the end of a session sometimes left the summary sheet stuck open. A second tap was needed to actually land the save — which quietly wrote a duplicate run to your history.

Root cause was an iOS 17 quirk with nested full-screen covers dismissing at the same time. The fix closes both covers synchronously before the network round-trip starts, then runs the save in the background. Tap Save → the entire workout dismisses to Home in one motion → the toast lands a few seconds later once the backend confirms. Zero duplicate rows.

Side effect fixed too: the Apple-Music-style mini-player pill above the tab bar used to linger on Home for a few seconds after Save while the save was in flight — the app still treated the workout as in-progress. Now the pill vanishes at the same moment the workout cover closes. Cleaner Home, no confusing "pending" state.

Handstand days now adapt to your rung

The five Handstand Focus Split days — Wrists & Holds, Press Strength, Mobility & Endurance, Legs for Line, Skill Practice — now run through the same adaptive rung engine that powers the Foundations program. Same 5-day rotation, but the exercises inside each day resolve against your current handstand rung and your universal push/pull/core rungs, not a hardcoded catalog.

Concretely: if calibration puts you at Wall Handstand Hold, that's the main handstand slot. Crush the top of the rep range across every set with form intact for two sessions, and the next session bumps you to L-Shape Handstand. Zero manual level-picking. The 5-day rotation is the constant. The difficulty is you.

Each day now has 7 slots for consistent training volume (5 main + 2 accessory, ~40 min per session), up from the earlier pilot's 3-4. Every skill day also picks up a dedicated handstand warmup: wrist circles, wrist push-up prep, shoulder pass-throughs, scapular shrugs. Loading cold wrists into an inverted hold is the fastest route to a wrist strain — dedicated prep now happens on every session that involves being upside-down.

Behind an opt-in flag for now while we finish validation. If you're on the pilot, expect this to feel more tuned to your actual level than the previous static split.

Under the hood — Wedge D foundation

The Handstand pilot is Phase B of Wedge D, the multi-quarter migration to a single rung-based content model for every skill in the app. Once Phase C lands (rolling the same pattern out to planche, muscle-up, front lever and the eight other skill families), the app knows exactly where you are on every skill you've touched, and every recommendation — from Home to programs to the skill roadmap — points at the next rung. Onboarding's experienceLevel stops being source of truth (it becomes derived from your rung distribution).

Also this release: the universal push and pull ladders got expanded from 7 to 12 rungs each earlier this cycle — adding archer, one-arm-assisted, and one-arm variants at the top. If you're above the pushing floor, there's now room to grow inside the model.

What else

  • Backend dev tooling upgraded (ts-node-dev — internal iteration ~10× faster, no user-facing effect)
  • Template authoring cleanup — slot descriptors no longer mask the actual exercise name in the workout preview

What's next

Wedge D Phase C — the first non-handstand skill family gets the same treatment (contentBindings + templates + calibration jump-ahead). Once that pattern proves out on two skills, the rest roll out in a batch.

Bug reports and feature ideas: support@zenmotion.app.

Train well.