💙 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.
Planning to buy an Android phone for app development and testing 📱 Your sponsorship helps cover the cost. Thank you for your support! 🙏
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!
Uninstall & re-install Android app if you were using the one from Github. No impact to those installed from Android playstore closed testing or iOS iPhone app
🚀 Key Highlights
- Adaptive calorie budgets: Dynamic Goal and Percentage Earn-Back no longer add activity calories or optional BMR credit to an Adaptive target a second time. Remaining calories may be lower after upgrading because these duplicate credits are removed. Recorded activity remains visible, and Manual targets retain their existing earn-back behavior.
What's Changed
Features
- feat: lab-result markers table by @Jerrys-modz in #3237
- feat(mcp): add OAuth 2.1 authorization by @damupi in #3011
- ci: add a whats-new skill and a drift check for the What's New screen by @Jerrys-modz in #3263
- feat: look up the weather for GPS-recorded activities by @Jerrys-modz in #3264
- feat(ai): add a training review to the AI assistant's exercise stats tool by @Jerrys-modz in #3265
- feat(mobile): ship the Wear OS app through GitHub releases and EAS by @CodeWithCJ in #3293
- feat(mobile): enter sodium as grams of salt in the food form by @surfnterd in #3292
Fixes
- fix(export): count device Active Calories once in the CSV burned calories row by @SisyphusMD in #3261
- fix: classify the lab tables in the RLS permission matrix by @SisyphusMD in #3275
- fix(server): create the RLS policy state table in a migration by @SisyphusMD in #3255
- fix(backup): refuse an in-app restore while other instances are connected by @SisyphusMD in #3266
- fix(server): bridge the undici Agent to Node's built-in fetch by @DUC750 in #3274
- fix: stop the run goals API schema shadowing its database schema by @Jerrys-modz in #3278
- fix(server): keep the COROS daily FIT download budget in the database by @SisyphusMD in #3279
- build(frontend): decouple validate checks from production build by @CodeWithCJ in #3281
- fix(mobile): show logged meal photos in the diary by @FTBCraig in #3286
- fix(sleep): count a day's naps with its night in sleep debt by @surfnterd in #3294
- fix(demo): take turns on the demo account across server instances by @SisyphusMD in #3280
Documentation
- docs: add the RLS permission matrix to the new-migration checklist by @Jerrys-modz in #3277
Other Changes
- chore(helm): update chart version to 1.10.0 by @github-actions[bot] in #3252
- chore(helm): update chart version to v1.10.0 by @github-actions[bot] in #3253
- chore(umbrel): update app package to v1.10.0 by @github-actions[bot] in #3254
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #3269
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #3270
- chore(nix): update pnpm deps hashes by @github-actions[bot] in #3271
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #3273
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #3282
- chore(i18n): sync translations from Weblate by @github-actions[bot] in #3297
New Contributors
Full Changelog: 1.10.0...v1.11.0