Build 17 — Search, swipe, pin, resume

The workout library learns the gestures you expect: pull down to search by name or tag, swipe left to delete, swipe right to pin favorites to the top. An active session resumes from a banner on the list, the runner gets a tap-to-jump session overview, and any workout duplicates into an editable copy.

← All changes

Library gestures

  • Pull down to search. The Workouts list gets a search field that matches names and tags, case-insensitively.
  • Swipe left to delete. The iOS convention for destructive actions. Deletion keeps its confirmation dialog — it also removes the workout’s JSON from iCloud, so it stays a two-step.
  • Swipe right to pin. Pinned workouts sort to the top with a small pin glyph, Mail-style. Pinning survives template re-imports — updating a workout’s JSON never unpins it.

Session flow

  • Resume banner. When a session is active (or the app was killed mid-workout), a coral-edged banner at the top of the list shows the workout, sets progress, and start time. One tap re-enters the runner.
  • Session overview. Tap the runner’s progress bar for a sheet of all exercises with their done/total counts (or SKIPPED), the active one marked. Tap any row to jump — the rest timer keeps running.
  • Duplicate workout. “Duplicate” in the card’s context menu creates a fresh copy at v1 and drops you straight into the editor. The usual reason to duplicate is to tweak.