Skip to content

SparkyFitness

v0.17.3 Breaking

This release includes 2 breaking changes for platform teams planning a safe upgrade.

Published 20d Productivity & Wikis
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

ai artificial-intelligence fitness fitness-app fitness-tracker health
+3 more
health-coaching healthcheck self-hosted

Affected surfaces

auth rbac breaking_upgrade

Summary

AI summary

Broad release touches Key Highlights, fix, Other Changes, and nix.

Full changelog

💙 Support SparkyFitness

Support development if you find SparkyFitness useful — There is approximately $54 in remaining project expenses from mac mini, apple & google fees.

Key Highlights

  • 🤖 Your AI coach is now available on mobile
  • ✨ Experience the refreshed Liquid Glass design (refer settings in mobile app)
  • 💊 Medication tracking is now available on web
  • 🌸 Period tracking is now available on web (refer settings)
  • 🤰 Pregnancy tracking is now available on web (refer settings)

⚠️ Backup before upgrading.
If you do not see the latest updates, please refresh the page or clear your browser cache.

⚠️ SparkyFitnessMCP - This is now decommissioned as it is now part of /mcp endpoint.

⚠️ Fitbit API is being replaced.
As Google is decommissioning the Fitbit API, it is being replaced with the Google Health API.
Fitbit support will be removed once decommissioning is complete.

⚠️ Use caution with write-back functionality.

⚠️ Though you don't need to immediately upgrade, in the upcoming months the Postgres upgrade will be mandated.
Have caution. Below guide might have flaws. Research yourself before performing the upgrade. Some funcationality like auto backup within SparkyFitness will not work if you don't upgrade.

https://codewithcj.github.io/SparkyFitness/install/postgres-upgrade

What's Changed

Features

  • feat(ci): migration tests by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1618
  • feat(mobile): dashboard settings screen, settings fixes by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1627
  • Feature/Use native tabs on iOS by @thorethy1 in https://github.com/CodeWithCJ/SparkyFitness/pull/1515
  • feat(ai): add xAI (Grok) as an AI service provider by @jsandai in https://github.com/CodeWithCJ/SparkyFitness/pull/1643
  • feat(mobile): liquid glass tab bar toggle by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1646
  • feat(food-search): unified single-field food search (Phase 1) by @jsandai in https://github.com/CodeWithCJ/SparkyFitness/pull/1607
  • feat: chat bot web fixes and mobile port by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1651
  • Implementation of medication & GLP management. by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1637
  • feat(food-search): All Providers aggregated search (mobile, phase 2) by @jsandai in https://github.com/CodeWithCJ/SparkyFitness/pull/1654
  • fix(mobile): sync Health Connect/HealthKit hydration to water intake by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1663
  • [Feature]: Allow sub-tenth food quantities (e.g. 0.25 cup) by @jsandai in https://github.com/CodeWithCJ/SparkyFitness/pull/1665
  • [Feature]: Add a "Duplicate" action to the meal Actions menu by @jsandai in https://github.com/CodeWithCJ/SparkyFitness/pull/1667
  • feat: openai compat fix, test connection, vision specific ai by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1673
  • Feature/liquid glass native banners by @thorethy1 in https://github.com/CodeWithCJ/SparkyFitness/pull/1661
  • feat(security): isolate family sharing permissions and MCP Goal fix by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1671
  • feat(onboarding): Persist skipping onboarding by @ikogan in https://github.com/CodeWithCJ/SparkyFitness/pull/1687
  • [feature] Custom Nutrient mapping to provider nutrient for auto import while importing a food from online by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1684
  • feat(meals): implemented re-usable meals (linked sub-meals) by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1699
  • feat(food-search): All Providers aggregated search on web (phase 3) by @jsandai in https://github.com/CodeWithCJ/SparkyFitness/pull/1695
  • feat: default food provider selector by @jsandai in https://github.com/CodeWithCJ/SparkyFitness/pull/1697
  • feat(food-search): Load more for single-provider online results by @jsandai in https://github.com/CodeWithCJ/SparkyFitness/pull/1705
  • native-header tests by @thorethy1 in https://github.com/CodeWithCJ/SparkyFitness/pull/1682
  • feat: upgrade to expo 56 by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1709
  • feat: update whats new section of app by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1719
  • (feat) Add period & pregnancy tracking by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1717
  • feat: update labels for adaptive TDEE and fix tdee settings by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1730

Fixes

  • Check-in numbers rounding by @gPinato in https://github.com/CodeWithCJ/SparkyFitness/pull/1606
  • fix(garmin): garmin login change revert by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1617
  • fix: use env variable for provider_id instead of hardcoded 'oidc-env' by @l0r3v in https://github.com/CodeWithCJ/SparkyFitness/pull/1628
  • fix(reports): make maximized charts fit the viewport and stop Y-axis label clipping by @jsandai in https://github.com/CodeWithCJ/SparkyFitness/pull/1630
  • fix: coerce string-typed pagination fields in food search response (#1619) by @MohammadYusif in https://github.com/CodeWithCJ/SparkyFitness/pull/1620
  • fix(ai): drop Zod email() from the published manage_profile tool schema by @jsandai in https://github.com/CodeWithCJ/SparkyFitness/pull/1650
  • fix: preserve external data credentials on edit by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1655
  • fix(oidc): persist admin_group on provider update by @l0r3v in https://github.com/CodeWithCJ/SparkyFitness/pull/1647
  • fix(server): resolve TypeError when creating meal templates with non-default variants by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1662
  • fix: allow decimal values for exercise duration by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1664
  • db: fix current_user_id() RLS crash during API key authentication by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1669
  • Fix: FatSecret search calorie mismatch by @BryceKrispiess in https://github.com/CodeWithCJ/SparkyFitness/pull/1679
  • fix: preserve Garmin sync freshness on phase failure by @ag-linden in https://github.com/CodeWithCJ/SparkyFitness/pull/1677
  • fix(mobile): sync Heart Rate Variability (HRV) from Apple Health by @OlegA-X in https://github.com/CodeWithCJ/SparkyFitness/pull/1676
  • fix(mobile): show over calories as negative by @BryceKrispiess in https://github.com/CodeWithCJ/SparkyFitness/pull/1698
  • fix(mobile): chat input flicker by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1700
  • fix: locale-dependent date crash by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1706
  • Native header screen fixes by @thorethy1 in https://github.com/CodeWithCJ/SparkyFitness/pull/1681
  • Resolve an HTTP 500 error ("rawBody.startsWith is not a function") on POST /api/measurements/health-data when using Content-Type: application/json. by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1708
  • fix: main site crash. remove redefinition of foodProviderOptions by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1707
  • fix: chat messages and keyboard now slide into place by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1718
  • fix: resolve sleep stage overlap and correct time asleep by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1722
  • fix: anchor Google Health sleep entries to the wake up day by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1724
  • fix: Update dev docs and compose file by @garakangas in https://github.com/CodeWithCJ/SparkyFitness/pull/1725
  • fix: YAZIO error when global provider by @kszkristof in https://github.com/CodeWithCJ/SparkyFitness/pull/1721
  • fix(frontend): support running container as non-root on port 8080 by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1729
  • fix(mcp): normalize null optional parameters to undefined by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1731

Documentation

  • fix docker-compose.yml download by @therumbler in https://github.com/CodeWithCJ/SparkyFitness/pull/1683

Other Changes

  • Fix nix update branch by @dlip in https://github.com/CodeWithCJ/SparkyFitness/pull/1623
  • chore(nix): update pnpm deps hashes by @github-actions[bot] in https://github.com/CodeWithCJ/SparkyFitness/pull/1624
  • chore(nix): update pnpm deps hashes by @github-actions[bot] in https://github.com/CodeWithCJ/SparkyFitness/pull/1641
  • chore(nix): update pnpm deps hashes by @github-actions[bot] in https://github.com/CodeWithCJ/SparkyFitness/pull/1644
  • chore(nix): update pnpm deps hashes by @github-actions[bot] in https://github.com/CodeWithCJ/SparkyFitness/pull/1656
  • chore(nix): update pnpm deps hashes by @github-actions[bot] in https://github.com/CodeWithCJ/SparkyFitness/pull/1674
  • chore(nix): update pnpm deps hashes by @github-actions[bot] in https://github.com/CodeWithCJ/SparkyFitness/pull/1693
  • chore(nix): update pnpm deps hashes by @github-actions[bot] in https://github.com/CodeWithCJ/SparkyFitness/pull/1702
  • removal of SparkyFitnessMCP by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1726
  • chore(nix): update pnpm deps hashes by @github-actions[bot] in https://github.com/CodeWithCJ/SparkyFitness/pull/1727

New Contributors

  • @l0r3v made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1628
  • @MohammadYusif made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1620
  • @therumbler made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1683
  • @ag-linden made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1677
  • @OlegA-X made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1676
  • @garakangas made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1725
  • @kszkristof made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1721

Full Changelog: https://github.com/CodeWithCJ/SparkyFitness/compare/v0.17.2...v0.17.3

Breaking Changes

  • SparkyFitnessMCP endpoint removed (now part of /mcp).
  • Fitbit API support will be removed after Google decommissioning.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track SparkyFitness

Get notified when new releases ship.

Sign up free

About SparkyFitness

SparkyFitness: Built for Families. Powered by AI. Track food, fitness, water, and health — together.

All releases →

Related context

Related tools

Beta — feedback welcome: [email protected]