v1.7.4 — progress judged lift by lift, and the Brief reads tomorrow
A patch about grain and horizon: progress is judged at the level where the evidence actually lives, and the day read learns to look at tomorrow before spending today.
- Progress is judged lift by lift, not day by day. A confounder on one exercise — a skipped accessory, a day shared with endurance work — no longer keeps every other lift that day from counting toward progression. Under a "push" training preference, a day pushed at your own request can earn a real overload step; every safety check applies exactly as before.
- The Brief looks one day ahead. A trip, event, or appointment on tomorrow's calendar can gently re-time an already-planned rest day into an easy session, so today doesn't lose ground to a rest that was only ever going to move by a day anyway. A rest called for your safety is never touched.
- An optional how-to layer behind every exercise. A step-by-step guide, primary and secondary muscles, equipment, and demonstration photos behind a quiet "How to" row. Nothing is fetched until you ask for it from Settings → Data, and a movement that can't be confidently matched asks a single yes/no instead of guessing.
- Art generation recovers on its own. A failing image model backs off and retries automatically instead of needing a restart, with a calm status line in Settings. The optional art model and cost overrides in
.envnow actually reach a Docker install (docker-compose.ymlpreviously never forwarded them). - Smaller calm fixes: a day you opened on purpose stays open when you return to the app, and a session's adjustments are explained once, quietly, instead of repeated on every affected exercise.
Upgrading: no new migration number — the how-to layer's table is created automatically on boot. public/ assets changed, so installed PWAs self-update on next open. Back up first, as always.
Full details in CHANGELOG.md.
Full Changelog: v1.7.3...v1.7.4