⚠️ BREAKING CHANGE
Several pages have been upgraded. While tested, not every device or connection could be covered. Please report any issues.
- Non-admin users using private Tandoor, Mealie, or Norish domains must set
ALLOW_PRIVATE_NETWORK_FOOD_PROVIDERS=true. - No impact on admin-configured food providers.
💙 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.
🚀 Key Highlights
- ⌚ SparkyFitness is now available on Apple Watch! More Apple Watch features and enhancements are coming in future releases.
- 🌐 Try SparkyFitness online with our new demo site: https://demo.sparkyfitness.com/
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
What's Changed
Features
- feat(mobile): add a Hydration graph to Health Trends by @chaddy50 in #2392
- feat: hydration and nutrition link (caffeine, alcohol, water containers) by @CodeWithCJ in #2379
- Feat/watch by @TheGothian in #2371
- feat(mobile): previous measurement hints and body fat calculator by @Dragonk in #2429
Fixes
- fix(demo): block demo password resets that identify the account by token by @CodeWithCJ in #2393
- fix(auth): forward every Set-Cookie from the demo login response by @CodeWithCJ in #2396
- fix(bmr): scope measured BMR to its own day and tighten plausibility by @CodeWithCJ in #2401
- fix(docker): build the frontend bundle natively instead of under QEMU by @CodeWithCJ in #2409
- fix(strava): replace synced details and clean historical duplicates by @SisyphusMD in #2407
- fix(strava): preserve calories when activity details are missing by @SisyphusMD in #2410
- fix(db): keep the server running after idle connection errors by @SisyphusMD in #2413
- fix(workouts): resolve missing userId in workout plan template retrieval by @CodeWithCJ in #2414
- fix(calories): use dated measurements for historical steps by @SisyphusMD in #2422
- fix(db): release clients when context initialization fails by @SisyphusMD in #2415
- Fix/adaptive tdee weight trend units by @Professorvennie in #2424
- fix(goals): support nutrient target range across diary, reports, and chatbot, and fix onboarding goal mode override by @CodeWithCJ in #2425
- fix: prevent duplicate active calories with family sharing by @SisyphusMD in #2426
- fix(sleep): use primary stage cluster for duration envelope by @gustavvelasquez in #2406
- fix(actions): validate fork reviews with read-only tokens by @SisyphusMD in #2427
- fix(mobile): respect 24-hour time format in time pickers and displays by @CodeWithCJ in #2433
- fix(polar): anchor hypnogram stages in the recording zone and stop them at wake time by @L4XB in #2432
- fix(frontend): update Withings developer portal URL in settings by @CodeWithCJ in #2438
- fix(health): carry forward episodic metrics across sparse wearable syncs by @CodeWithCJ in #2439
- fix(reports): escape quotes in custom nutrient names in report queries by @CodeWithCJ in #2440
- fix(exercises): paginate workout presets from the server total by @Dragonk in #2441
- fix(demo,admin): stop the demo request flood and preserve data on user deletes by @CodeWithCJ in #2443
- fix(demo): let the sandbox use providers and read its own API keys by @CodeWithCJ in #2445
- fix(auth): prevent false-positive IP bans from auth 4xx by @CodeWithCJ in #2446
- Dependency upgrades, auth hardening, and mobile health-sync fixes by @CodeWithCJ in #2457
- fix(server): harden access-control error handling and food-provider SSRF by @CodeWithCJ in #2463
Documentation
- chore(release): 1.7.0 + wire food-provider SSRF toggle into compose by @CodeWithCJ in #2464
Other Changes
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2408
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2412
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2444
- chore(nix): update pnpm deps hashes by @github-actions[bot] in #2450
- chore: sync db_schema_backup.sql with migrations by @github-actions[bot] in #2449
- chore(nix): update pnpm deps hashes by @github-actions[bot] in #2459
- chore(i18n): sync translations from Weblate by @github-actions[bot] in #2460
- ignore minimum days for two packages by @CodeWithCJ in #2466
New Contributors
- @SisyphusMD made their first contribution in #2407
- @Professorvennie made their first contribution in #2424
- @TheGothian made their first contribution in #2371
- @gustavvelasquez made their first contribution in #2406
- @L4XB made their first contribution in #2432
Full Changelog: v1.6.5...v1.7.0