Back to Dev Log
v0.12.0-Feb 06, 2026Major

Engine Semantics: Optional/Swaps + Anchors + Catalog-Ready Routines

Expanded Protocol’s execution and schema model: optional and swappable exercises, skipped set semantics, anchor-aware load resolution, Monday-based weekday indexing, and catalog/template-ready routines—plus major preset expansion.

EngineSchemaPresetsProgressionCatalogMigrationWorkoutPlayer

Shipped

  • Exercise schema upgrades (flexibility without breaking progression)

    • Added is_optional for exercises that can be skipped without impacting streaks
    • Added alternative_exercise_definition_ids for swappable exercises
    • Added ladder metadata to support bodyweight ladder semantics
    • Updated execution tracking to store selected alternatives and anchor weights
    • Added UI for managing exercise variations and updating anchors
  • Workout execution semantics

    • Added set status: skipped (distinct from fail/incomplete)
    • Added “End session early” confirmation when required sets are pending
    • Updated workout log validation + streak logic to correctly interpret skipped sets
  • Anchor-aware load resolution (big engine accuracy upgrade)

    • Introduced resolve-target-load.ts to compute target loads based on:
      • anchor semantics
      • offsets
      • transposition rules
    • Added working-set and training-max modes inside exercise definitions
    • Improved validation for working-set anchors (rep counts + transposition requirements)
  • Routine schema for templates + future catalog

    • Added routines fields for template/instance and publishing workflows:
      • kind, edit_policy, template_id, template_revision
      • is_catalog_item + publisher fields
    • Added indexes for query performance on new schema fields
    • Updated ERD + backend docs + additive ownership model documentation
  • Schedule standardization + migrations

    • Standardized weekday indexing to a Monday-start week (0=Mon … 6=Sun)
    • Added migration logic to keep existing routines compatible
  • Preset expansion

    • Added multiple new presets including:
      • Starting Strength — Novice Linear Progression
      • Couch to 5K — 9 Weeks
    • Expanded exercise definitions (e.g., barbell biceps curl, skullcrusher, barbell lunge)

Why

  • Users need flexibility (optional work, swaps) without breaking progression and streak logic
  • Skipped semantics makes logs truthful and lets “partial” sessions remain coherent
  • Anchor-aware load resolution improves correctness for real programming patterns (working sets, TM, offsets)
  • Template/catalog schema lays the groundwork for sharing, publishing, and future ownership workflows
  • Monday-based weekday indexing reduces calendar confusion globally and standardizes schedule math

Notes

  • This release includes migrations and schema expansion; legacy routines/logs remain supported.
  • The engine path is now better prepared for advanced templates and future catalog workflows.

Next

  • Expand the swaps UX (smart defaults, same-modality validation, “set anchor weight on first use” flows)
  • Improve streak rules transparency (show when skips do/don’t count)
  • Continue tightening template/instance governance rules as publishing becomes real

Install App