💙 Support SparkyFitness
If SparkyFitness has been useful to you & your family, please consider sponsoring on GitHub or supporting via Ko-fi. Your support helps cover recurring costs such as AI coding tools, development infrastructure, and Apple & Google Developer memberships to keep the project actively maintained.
Important
💾 Upgrade Notice: Always remember to back up your database and environment before upgrading to a new version.
👍 Community Prioritization: Want to see a specific feature or fix in the next release? Add a 👍 reaction to open Issues to help us prioritize what to build next!
🚀 Key Highlights
- Major improvements to the Mobile app, including enhancements to the Dashboard and Workout sections.
- Added COROS support. If you use COROS, please share your Mockup JSON with me via Discord or email. Only a basic review has been completed so far, so additional testing and feedback would be greatly appreciated.
What's Changed
Features
- feat(mobile): show calorie goals for custom meal types by @Jerrys-modz in #2559
- feat(workout-plans): add sequential workout plan progression mode by @CodeWithCJ in #2558
- feat(workouts): add interval, tabata, emom, and wod workout formats with active hud by @CodeWithCJ in #2565
- feat(watch): live workout tracking with heart rate from the wrist to the diary by @Jerrys-modz in #2556
- feat(workouts): add guided workout mode with spoken cues and auto-advance by @CodeWithCJ in #2585
- feat(watch): show the interval format and time cap by @Jerrys-modz in #2586
- feat(workouts): optional per-set weight ramp on preset exercises by @CodeWithCJ in #2591
- feat(watch): show supersets on the workout by @Jerrys-modz in #2596
- feat(workouts): adaptive coaching with smart alternatives and session feedback by @CodeWithCJ in #2603
- Add goal lines for Weight and Hydration on Health Trends and improve y axis labels by @chaddy50 in #2594
- feat(exercises): tag inputs with suggestions for muscles and equipment by @CodeWithCJ in #2608
- feat(reports): rework the exercise progress dashboard by @Jerrys-modz in #2609
- fix(ai): add dedicated Perplexity AI provider and handle chat completions deprecation by @CodeWithCJ in #2612
- feat(workout): Add live update notification support for workouts on Android by @claucambra in #2602
Fixes
- fix(frontend): unfreeze the GitHub star count and add docs/translate links by @CodeWithCJ in #2549
- fix(mobile): send the active app language when searching and importing exercises by @DUC750 in #2545
- fix(workout): bump each set's own weight during progression overload by @Jerrys-modz in #2554
- fix stale serving unit label after editing food entry serving on mobile by @BryceKrispiess in #2557
- fix(reports): keep interval and WOD sets out of strength PR calculations by @CodeWithCJ in #2573
- fix(watch): deliver live heart rate to the diary and launch Xcode 27 builds by @CodeWithCJ in #2575
- fix(watch): keep the workout's final samples and exercise duration by @Jerrys-modz in #2578
- fix(watch): credit heart rate to the exercise logged on the phone by @Jerrys-modz in #2584
- fix(openfoodfacts): don't reuse metric variant values for household serving without serving_quantity by @georanma in #2587
- Rank manual/mobile food search results the same way the chatbot already does by @georanma in #2589
- fix(usda): restrict food search to non-branded datasets by default by @georanma in #2588
- fix(workouts): keep WOD sets out of the exercise Best record by @CodeWithCJ in #2598
- fix(watch): persist heart-rate batches until the phone has stored them by @Jerrys-modz in #2600
- fix(sleep): keep HealthKit nights intact after observer sync by @Jerrys-modz in #2607
- fix(caffeine): populate and sync entry_time for quick-add drink food entries by @CodeWithCJ in #2611
- fix(mobile): map HKWorkoutActivityType other (3000) to Other by @CodeWithCJ in #2615
- fix(mobile): use entry_time for nutrition write-back to health platforms by @CodeWithCJ in #2616
- fix(server): refuse to start with .env template placeholder secrets by @CodeWithCJ in #2617
- fix(mcp): scale food entry nutrition for consumed quantity by @CodeWithCJ in #2618
- fix(goals): resolve weekly plan preset water goal as water_goal_ml by @Jerrys-modz in #2620
- fix(docker): configure dynamic DNS resolver in nginx to prevent stale backend IP caching by @CodeWithCJ in #2621
Documentation
- Add Samsung Health import instructions by @giggio in #2555
- Correct licence spelling in README by @lizaoreo in #2592
- docs(install): add a guide for running multiple server instances by @SisyphusMD in #2597
Other Changes
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2561
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2572
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2574
- chore(nix): update pnpm deps hashes by @github-actions[bot] in #2576
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2582
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2583
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2593
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2599
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2605
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2610
New Contributors
- @giggio made their first contribution in #2555
- @lizaoreo made their first contribution in #2592
- @georanma made their first contribution in #2587
- @claucambra made their first contribution in #2602
Full Changelog: v1.7.2...v1.7.3