v1.1.3-dev01
Pre-releaseFirst dev pre-release of the 1.1.3 patch. Workout persistence fix (foreground no longer bloats programs with duplicate sets), Trace chat markdown rendering, catalog re-import history preservation, and clear-chat confirmation.
Added
- Trace chat renders markdown properly (#52, thanks @backmind). Lists, bold, tables, and code blocks in the coach's replies now render instead of showing raw asterisks and pipes. Assistant bubbles only; user messages stay plain text. Renderer loads lazily on first Trace open, so users who never open Trace pay no bundle cost.
Fixed
-
Every foreground of the app no longer adds a full extra layer of sets to your program's exercises. A combination of debounced save + lifecycle handlers (
visibilitychange/App.pause/pagehide) was re-firing the same save entry with freshly regenerated set uuids each time; the server-side per-uuid merge treated the fresh uuids as new sets and appended them onto the existing ones. Set counts now stay stable across foreground/background cycles.Existing workouts already inflated by this bug stay inflated. The fix stops the leak but doesn't clean up prior damage. Recover by opening the affected day, tapping Clear on the workout, and re-loading the template. Reload resurrects cleanly since uuids stay stable across the save now.
-
Exercise catalog clear + re-import no longer silently unlinks workout history (#49, diagnosed by @backmind). Both clear paths (built-in sources and imported catalogs) previously did a hard
DELETE, so the re-import minted new autoincrement ids while everyexercise_idinworkout_log/workout_templates/coach_prescriptionsJSON blobs still pointed at the deleted rows. Muscle Balance then bucketed every affected set as "other" and per-exercise Progress returned empty. Clearing now soft-deletes via the existingdeleted_atcolumn; the next matching re-import resurrects the row in place instead of minting a new one, preserving the id so historical references stay valid. -
Clearing the Trace chat now asks for confirmation (#50, thanks @backmind). A single tap on the header button previously wiped the entire conversation with no way back. Also fixes a z-index bug where the confirm dialog opened behind the Trace panel and looked like nothing happened.
-
Statistics summary cards and plate calculator no longer show units in capitals (#48, thanks @backmind). Follow-up to #42 now that the strings sit in i18n keys. Reads
MAX kg/TOTAL min/TARGET WEIGHT (kg)instead ofMAX KG/TOTAL MIN/TARGET WEIGHT (KG).kgis kilograms;KGis not a unit.
Security
- No new dependencies.
npm auditreports 0 vulnerabilities.
services:
lifttrace:
image: ghcr.io/traceapps/lifttrace:dev
# ...