import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk' /** * v1.0.0:7 — exercise library cleanup, photo-import removal, * UI honesty about AI. * * Library cleanup * - Cycling, Jump Rope, Rowing, Running: type=cardio with the * correct inputFields (duration, distance, calories — no more * reps/weight where they don't apply). * - Walking Lunge, Wall Sit, Headstand, Hip Extension: * reclassified out of "cardio" into bodyweight (they aren't * aerobic conditioning). * - Plank, Mace warmup, Hollow Body Landmine, Soccer: * inputFields fixed. * - Descriptions added for ~10 previously-cryptic exercises: * Core, Resistance Band, Stir the pot, Slide Board, * Neck Circuit, TGU, Captains of Crush, plus new descriptions * for the cardio + reclassified entries above. * * Reconcile-on-boot * - ensureExerciseLibrary.cjs is now INSERT-or-UPDATE instead of * INSERT-or-IGNORE. Existing exercise rows where isCustom = 0 * get their description/type/muscleGroups/inputFields/ * defaultWeightUnit refreshed from the curated JSON on every * boot. Rows with isCustom = 1 are skipped — the user's * customizations always win. * - PATCH /api/exercises/[id] now flips isCustom -> true on any * user edit. So the moment you edit a library exercise via the * in-app UI, it stops getting overwritten by future curated- * library refreshes. * * Photo-import (Claude vision) removed * - The /api/workouts/import endpoint that uploaded photos to * Claude is gone, along with the orphan WorkoutImportClient * component that called it. CSV import (the actually-used flow * at /main/import) is unchanged. * - The "Claude AI Integration" section in Settings has been * removed — it promised "personalized workout recommendations" * that never existed and only enabled the photo-import * feature, which is also gone. * - Schema columns User.enableClaudeAI / User.claudeApiKey stay * as harmless dead fields. They'll be removed (or repurposed) * when the model-agnostic AI work lands. * * No data migration. /data on existing installs is untouched. */ export const v_1_0_0_7 = VersionInfo.of({ version: '1.0.0:7', releaseNotes: { en_US: 'Exercise library cleanup: 19 exercises got correct inputFields / type / descriptions (Cycling/Rowing/Running/etc. now properly track duration+distance instead of reps+weight). Library reconciliation runs on every boot — maintainer-side fixes propagate to existing installs without overwriting your edits. The Claude photo-import feature and the misleading "Claude AI Integration" Settings section are gone; a real model-agnostic AI integration (with self-hosted Ollama support) is on the roadmap as its own release.', }, migrations: { up: async () => {}, down: IMPOSSIBLE, }, })