💙 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
🌍 Improved Translations
SparkyFitness translations have moved to our new dedicated translation platform.
👉 https://weblate.sparkyfitness.com/engage/sparkyfitness/
Help us bring SparkyFitness to more users by translating both Mobile and Web into your language!
📸 Manage Check-in Photos
You can now manage your check-in photos directly from the mobile app.
📊 Customize Trend Charts
Personalize your mobile trend charts to display the data you care about most.
🥗 Share Nutrition Data with OpenFoodFacts
Upload your food nutrition details directly to OpenFoodFacts. 🚧 Currently in beta.
What's Changed
Features
- feat(mobile): add Spanish (es) as a shipped locale by @zeusal in #2268
- feat(meal-types): allow deleting custom meal categories that are in use by @CodeWithCJ in #2277
- feat(food-search): allow "All Providers" as the default food provider by @jsandai in #2272
- feat(measurements): add BMR support to check-in measurements by @CodeWithCJ in #2279
- feat(food-photo): per-ingredient editing and grouped logging for AI photo estimates by @CodeWithCJ in #2282
- feat: use Health Connect total burn for projected TDEE by @Bl4nk24 in #2303
- feat(shared): add database schema parity test and fix schema drift by @CodeWithCJ in #2305
- feat(mobile): add recurring meal plan management by @Bl4nk24 in #2298
- feat(mobile): display sleep information on Dashboard, Diary, and a new Sleep Details screen by @chaddy50 in #2281
- feat(food): markdown notes for foods, meals, and diary entries by @CodeWithCJ in #2335
- feat(mobile): show ask-user options as quick replies by @romanchenkop in #2356
- feat: mobile progress photos by @zeusal in #2364
- feat(charts): introduces a new time scaled mode for charts by @lesquoyb in #2370
- feat(mobile): let users choose which Health Trends graphs show by @chaddy50 in #2374
- feat: add confirmed single-food Open Food Facts contributions by @Bl4nk24 in #2315
- feat(auth): add isolated demo mode sandbox with auto-seeding and daily reset by @CodeWithCJ in #2389
Fixes
- fix(mobile): refresh Android widgets in background by @Bl4nk24 in #2292
- fix(withings): correct OAuth token request encoding and error handling by @andrewtcrooks in #2293
- fix(mobile): normalize workout active calories by @Bl4nk24 in #2296
- fix(mobile): round displayed calorie values in food rows by @Rahulsharma0810 in #2299
- fix(mobile): keep chat scroll position while reading history by @thaildhe172591 in #2284
- fix(openfoodfacts): exclude incomplete nutrition results by @Bl4nk24 in #2311
- docs: update agent package guides and Knip configuration by @CodeWithCJ in #2321
- fix(docs): render calculation settings formulas without LaTeX by @CodeWithCJ in #2324
- fix(health): exclude workout steps from step calories by @Bl4nk24 in #2320
- fix: allow clearing food quantity input by @infectiousstupidity in #2326
- fix(food-search): paginate local food search so later matches stay reachable by @jsandai in #2334
- fix(frontend): localize remaining user-facing UI by @junek-pikovy in #2331
- fix(mobile): stop the food-search provider overriding the barcode provider by @jsandai in #2347
- fix(mobile): show a point marker on charts with a single data point by @chaddy50 in #2350
- fix(exercise): data sync orphaned child writes by @jsandai in #2360
- fix(exercise): cache the free-exercise-db dataset by @jsandai in #2368
Documentation
- docs: link the community Cronometer client from the community guides by @johnkattenhorn in #2307
Other Changes
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2278
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2280
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2304
- chore(nix): update pnpm deps hashes by @github-actions[bot] in #2317
- chore(i18n): sync translations from Weblate by @github-actions[bot] in #2319
- chore(nix): update pnpm deps hashes by @github-actions[bot] in #2323
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2342
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2363
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2380
- chore(i18n): sync translations from Weblate by @github-actions[bot] in #2385
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2387
- chore(i18n): sync translations from Weblate by @github-actions[bot] in #2391
New Contributors
- @andrewtcrooks made their first contribution in #2293
- @thaildhe172591 made their first contribution in #2284
- @chaddy50 made their first contribution in #2281
- @infectiousstupidity made their first contribution in #2326
- @junek-pikovy made their first contribution in #2331
- @romanchenkop made their first contribution in #2356
- @lesquoyb made their first contribution in #2370
Full Changelog: v1.6.4...v1.6.5