Release Log · v1.0
Updates
A running log of what shipped, when, and why. Updated alongside each App Store release.
-
v1.1.1 · May 2026
History calendar, personal record detection, and a cleaner home and train screen.
Stack 1.1.1 replaces the History popup sheet with a full-month calendar that stays in place, surfaces personal records from normal training sessions, and tightens the home and pre-workout screens so the information you need most is easier to find.
History calendar · The History tab now shows a full month at a glance. Tap any day and the detail expands inline below the calendar - no sheet, no navigation push. You see your workout name and duration, a stats row with sets, reps, exercises, and volume, and then any personal records or 1RM test results for that day. Today is selected on open. Days with a completed 1RM test get a star marker so they stand out at a glance.
Personal record detection from normal sessions · Stack now compares every logged set against your full history and flags weight PRs and rep PRs on the spot. Three or fewer records on a given day show as full detail rows in the day panel. More than three collapse into a compact two-column grid so the panel stays readable after a big session.
1RM test results in history · Days with a completed 1RM test show a result card in the day panel with your goal weight, what you actually lifted, and a visual callout if you hit the goal. Days with only a test and no accompanying workout session still get a proper entry in the calendar so nothing gets lost.
Home screen · Today and This Week are now one section instead of two separate cards. The weekly frequency bars are color-coded - the current week is full accent, weeks where you hit your training goal are a softer accent, and missed weeks stay muted - so you can read consistency across the month without counting. The insight line is compressed to a single row so it stays out of the way until you need it.
Train screen · The pre-workout area is simpler. The routine name is the primary element - tap it to switch routines from a half-sheet picker. A small context menu handles edit and delete so they're available without being in the way. The exercise list shows each movement and its set count, nothing more. New Routine and Start Workout sit in a fixed footer so they're always reachable without scrolling.
Theme engine fix · Custom themes now re-derive the full color palette - borders, secondary text, chart fills - from your chosen anchor colors instead of inheriting leftover values from the previous preset. If you use a custom accent or background, the rest of the palette will now shift with it as expected.
-
v1.1.0 · May 2026
Guided 1RM testing, reactive flow polish, and Train-tab quality of life.
Stack 1.1.0 turns the estimated 1RM on Bench, Squat, and Deadlift from a number derived from working sets into a number you can actually test. A guided 5-step warm-up adapts to your reps in real time, and the result lands in history with the same trust the rest of your log carries.
Test 1RM · Tap the new pill on the Big 3 trend card for Bench, Squat, or Deadlift to launch a guided NSCA-aligned warm-up ladder (50, 70, 85, 95, then 100 percent of your target). Skip-step is available on every warm-up checkpoint, the rest timer runs the lift-specific final-set protocol (3 minutes bench, 4 minutes squat and deadlift), and a failed-attempt retry path lets you drop the bar by 5 percent up to twice per session. Save commits a validated `OneRMTestResult` to history; the per-lift "1RM Tests" section on each detail view supports swipe-to-delete with a 5 second undo.
Pick your target, your way · The entry sheet now leads with a hero target weight and three modes. Improve sets +5 lb over your current PR. Estimate projects from your recent sets. Chosen lets you dial in a number of your own with the stepper. Your selected mode is remembered per lift across sessions, so opening Squat next week starts where you left off.
Reactive warm-up · Each per-step screen asks "How many reps did you get?" and defaults to the prescribed count, so the common case is one tap. If you fall short on a heavy set, or crush a warm-up that suggests room above the target, a "Heads up" card appears on the rest screen with two equal-weight options: push for the original number, or ease to a saner one. Decide before rest ends, or let it auto-keep the original. The countdown stays visible throughout.
Smarter plate loading · The first two warm-up steps now round to the simplest plate stack within 5 lb of the exact percentage. So a 50 percent set on a 180 lb target loads as one 25 per side (95 lb) instead of a fiddly 22.5 per side (90 lb). Steps 3 and up stay strict because accuracy matters more as the load approaches max. Plate-math diagrams across the app now lock to a single convention: largest plate closest to the bar, smallest on the outside.
Train-tab quality of life · Workout elapsed time is now always visible in the active session title row, no tap-to-reveal. The Weight Converter moved out of Settings and into the set logger as a one-tap sheet with auto-focused decimal pad, so unit conversion is exactly where you need it during a lift. Logging actions that change state read "Complete" instead of "Done" to remove the "am I dismissing this screen?" ambiguity.
Privacy posture unchanged · 1RM testing adds one optional analytics event so we can learn how lifters use the reactive prompts. No PII, no workout content, opt out any time in Settings → Privacy & Data. Full disclosure on the Privacy page.
-
v1.0.2 · May 2026
Smarter set re-do, friendlier onboarding, cleaner routine library, fresh default theme.
Stack 1.0.2 sharpens the in-workout flow, rebuilds onboarding around the real keypad and an optional iCloud sign-in, finally cleans up duplicated default routines that piled up across iCloud devices, and replaces the generic "Classic" picker slot with the Forest theme as the first-launch landing.
Plate math on re-do · Logging a set now remembers which bar you used (Olympic 45, Women's 35, EZ 25, or No bar with an initial machine resistance). Re-doing the next set opens the keypad's Plates view already balanced for that bar plus the prefilled weight, so you see "1 × 45 + 1 × 25 per side" instead of doing the loading math at the rack. Sets logged before this update fall back to the men's bar so you still get a plate breakdown on re-do.
Onboarding overhaul · The first-set walkthrough now uses Stack's actual numeric keypad in Plates mode, so new users learn the bar selector and plate visualizer the moment they tap "Start My First Set." A new optional iCloud sign-in step lands at the end of the flow, with a "Maybe later" skip that drops you straight into the app as a guest. Saves having to dig into Settings on every fresh install. The walkthrough is also fully visual now. It no longer leaves a phantom "Push Day" routine and "Bench Press" exercise sitting in your library after onboarding completes.
Routine library cleanup · Default routines (Push, Pull, Lower, Full Body) no longer multiply on every launch when iCloud sync is signed in. Same race that previously affected the exercise library: the local seed step ran before iCloud merged in your synced copies. Stack now collapses same-name routines into a single canonical entry and points all your workout history at the survivor. Idempotent, runs every launch, and runs again after each iCloud import.
Theme picker · The picker now leads with Forest, Stack's signature teal-on-cream identity, and drops the generic "Classic" slot that didn't belong here. First launch lands on Forest. Existing users keep whatever preset they previously chose.
Schema migration safety · Updating from 1.0.1 no longer crashes on launch. Stack's data layer was rebuilt around inferred lightweight migration with a CloudKit-backed wipe-and-restore safety net, and the playbook is now documented in the repo so future schema changes ship without the migration footguns we hit on the way to 1.0.2.
Helping us improve Stack · Stack now includes optional crash reports and lightweight usage analytics so we can spot real-world failures faster and learn which features actually help people train. Both are on by default, both can be turned off any time in Settings → Privacy & Data, and neither sends your workout content, weights, reps, or names. Full disclosure on the Privacy page.
-
v1.0.1 · May 2026
Reliability polish for sync, coverage, and workout tracking.
Stack 1.0.1 is a focused trust and correctness update. It makes iCloud sync status clearer, improves workout coverage accuracy, and tightens a few logging details found after the first public release.
Sync confidence · Settings now shows clearer iCloud sync status, including the last observed successful sync. If recent workout changes may not be synced yet, Stack warns before sign-out and offers a safer “Try Sync First” path.
Muscle coverage · Custom exercises assigned to an exact muscle area like Core now count toward muscle coverage and save back into the routine catalog for reuse. Back Extension also maps into Core coverage more accurately.
Tracking accuracy · Big 3 / 1RM trends now group canonical lift variants more reliably, so barbell bench history contributes to the Bench trend instead of splitting across duplicate entries.
Warm-up polish · Warm-up sets now start a shorter rest timer, reset cleanly after logging, and avoid a Live Activity timer race that could leave the widget without the expected timer.
Catalog cleanup · Starter templates now use the clearer Barbell Bench Press entry, while redundant legacy starter exercise entries are retired from new selection.
-
v1.0 · April 2026
Stack lands. The first public release.
The opening volume - fast set logging, split-aware muscle coverage, automatic personal records, dual-axis progression charts, and a 34-preset theme catalog. Local-first by default, with optional Sign in with Apple iCloud sync layered on top.
Logging · Three-tap working sets via the quick-adjust row, full-width logger hub with Weight / Pin / Bodyweight modes, optional timed sets in
MM:SS.CC, per-entry Setup / Variant tagging (Cable Station 1, Plate-Loaded, etc.), inline rest timer withRestTimerCombine publisher, and autofill from your latest set so the screen never asks you what you already lifted.Train flow · Routine builder with target-set control, exercise rows fully tappable, completed exercises collapse, "Done" auto-returns to the workout list, undo keeps you on the detail screen, post-workout summary with PR badges, and a bottom Active Workout banner that follows you across other tabs.
Coverage & progression · Weekly muscle coverage maps each set to the regions it actually trains (upper chest, posterior delts, long-head triceps), surfacing gaps against MV landmarks. Per-exercise dual-axis progression charts plot weight against volume across configurable ranges, with empty-state copy on first launch.
Plates & equipment · Plate visualizer with reverse plate sync, "No bar" mode and initial-resistance for plate-loaded machines, fresh-entry on keypad refocus.
Live Activity & Dynamic Island · Timer is the hero - figure icons deduped, music coexistence, completion indicator boosted in compact and minimal states, app-start cleanup of stale activities.
Sync & data · Optional iCloud sync via Sign in with Apple (CloudKit V6 schema), root-level banner for actionable iCloud failures, JSON export / import including built routines (schema v4), Files-app provider compatibility via
NSFileCoordinator, launch-time Exercise dedupe after CloudKit imports, orphan-keychain wipe on first launch.Polish & accessibility · Dynamic Type clamp on hero screens, force-unwraps removed from week strip and plate decrement, icon-only buttons labelled, mark-done save errors surfaced, hardcoded values replaced with DesignKit tokens, Settings ⇒ About section with version, legal, and support contact, marketing showcase seed in debug mode, and a goal-days badge aligned with the Mon–Sun consistency dots on Home.