Skip to content

Release history

SparkyFitness releases

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

All releases

38 shown

Review required
v1.6.0 Breaking risk
Auth

Unified versioning, workout redesign, FIT import

Review required
v0.17.3 Breaking risk
Auth RBAC Breaking upgrade

AI coach, Liquid Glass, tracking, Fitbit deprecation

Config change
v0.17.2 Breaking risk
Breaking upgrade Auth

MCP deprecation + Fitbit replacement

v0.17.1 Breaking risk
⚠ Upgrade required
  • Backup before upgrading.
  • Refresh or clear browser cache if updates are not visible.
  • Use /mcp endpoint for external integrations (n8n, OpenClaw).
Breaking changes
  • Dedicated SparkyFitnessMCP container deprecated and scheduled for removal in an upcoming release; use /mcp endpoint instead.
  • Fitbit API support removed due to Google decommissioning; replaced with Google Health API.
Notable features
  • BMR label updated to dynamically display health source name
Full changelog

BREAKING CHANGE - MUST READ BELOW

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

⚠️ SparkyFitnessMCP dedicated container is deprecated.
ChatBot will automatically connect to MCP if the AI service is configured.
MCP is now served directly from the /mcp endpoint, for example: domain.com/mcp.
Use this endpoint for external tools such as n8n, OpenClaw, and similar integrations.
The dedicated SparkyFitnessMCP container is still available from the previous release, but it will be removed in the upcoming release.

⚠️ 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.
Write-back support for Apple Health and Google Health is part of an initial release.
This feature may require multiple iterations before it becomes fully stable.

⚠️ 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

💙 Support SparkyFitness

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

What's Changed

Features

  • feat: update BMR label to use dynamic health source name by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1611

Full Changelog: https://github.com/CodeWithCJ/SparkyFitness/compare/v0.17.0...v0.17.1

v0.17.0 Breaking risk
⚠ Upgrade required
  • MCP now served at /mcp endpoint; update external tools (e.g., n8n, OpenClaw) accordingly.
  • Plan Postgres upgrade in the upcoming months; auto‑backup may fail without it.
Breaking changes
  • SparkyFitnessMCP dedicated container is deprecated and will be removed in an upcoming release; use /mcp endpoint instead.
  • Fitbit API support will be removed once Google decommissions it, replaced by Google Health API.
Notable features
  • Google Health API integration
  • Mobile: edit ingredients of a logged meal and YAZIO provider integration (food search, barcode scan)
  • Health‑Connect write‑back for nutrition and hydration to Android Health Connect
Full changelog

BREAKING CHANGE - MUST READ BELOW

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

⚠️ SparkyFitnessMCP dedicated container is deprecated.
ChatBot will automatically connect to MCP if the AI service is configured.
MCP is now served directly from the /mcp endpoint, for example: domain.com/mcp.
Use this endpoint for external tools such as n8n, OpenClaw, and similar integrations.
The dedicated SparkyFitnessMCP container is still available from the previous release, but it will be removed in the upcoming release.

⚠️ 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.
Write-back support for Apple Health and Google Health is part of an initial release.
This feature may require multiple iterations before it becomes fully stable.

⚠️ 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

💙 Support SparkyFitness

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

What's Changed

Features

  • feat: add Google Health API integration by @ZeSlammy in https://github.com/CodeWithCJ/SparkyFitness/pull/1474
  • feat(mobile): edit ingredients of a logged meal by @jsandai in https://github.com/CodeWithCJ/SparkyFitness/pull/1482
  • feat(mobile): YAZIO provider integration - mobile food search, barcode scan and serving display by @thorethy1 in https://github.com/CodeWithCJ/SparkyFitness/pull/1480
  • Extend MCP tools for structured food, exercise, goals, and report data by @lev-ok in https://github.com/CodeWithCJ/SparkyFitness/pull/1485
  • Mobile Bug fixes + additions by @BryceKrispiess in https://github.com/CodeWithCJ/SparkyFitness/pull/1444
  • feat: Add Duplicate action to the food Actions menu by @jsandai in https://github.com/CodeWithCJ/SparkyFitness/pull/1511
  • Sync nutrition diary from Garmin Connect + by @gPinato in https://github.com/CodeWithCJ/SparkyFitness/pull/1506
  • feat: add outbound proxy support for HTTPS requests by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1520
  • feat: Add off-today date cues by @geracobo in https://github.com/CodeWithCJ/SparkyFitness/pull/1500
  • feat(health-connect): ingest Android Health Connect nutrition as food entries by @izadiegizabal in https://github.com/CodeWithCJ/SparkyFitness/pull/1503
  • Adaptive & Manual Goal mode implementation by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1519
  • added supported for USDA to import multiple unit type variants by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1538
  • feat(ai): add exponential backoff for Gemini quota errors (429) by @zeusal in https://github.com/CodeWithCJ/SparkyFitness/pull/1549
  • Added ability to copy from/copy to foods & meals from family member. by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1556
  • Removal of super user extensions in postgres by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1558
  • feat(web): add barcode manual entry and camera scanning to custom food form by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1562
  • Import BMR from mobile by @BryceKrispiess in https://github.com/CodeWithCJ/SparkyFitness/pull/1521
  • feat: add check-in progress photos (front, back, side) by @zeusal in https://github.com/CodeWithCJ/SparkyFitness/pull/1533
  • feat(health-connect): write nutrition & hydration back to Health Connect (Android) by @izadiegizabal in https://github.com/CodeWithCJ/SparkyFitness/pull/1529
  • swissfood implementation for mobile app by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1568
  • Formatted Whats New dialog and also added BREAKING CHANGE warning by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1573
  • github issue template update and pr transaltion automation from Spark… by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1578
  • feat: mobile date context improvements by @geracobo in https://github.com/CodeWithCJ/SparkyFitness/pull/1526
  • feat(mobile): copy a logged meal to another day by @jsandai in https://github.com/CodeWithCJ/SparkyFitness/pull/1574
  • feat: apple health nutrition sync and writeback by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1585
  • fix(mobile): send Origin header during login to satisfy better-auth CSRF checks by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1589
  • feature: Added Global Food & Exercise data provider. by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1590
  • Mobile Fast Tracking by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1598
  • Added ability to view, modify custom nutrients in the food form and food detail screens. by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1593
  • feat(writeback): remove SparkyFitness data from the OS health store (rollback) by @izadiegizabal in https://github.com/CodeWithCJ/SparkyFitness/pull/1599
  • added ability to hide/resize widgets on the diary page by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1604
  • feat: add exercise water loss to daily goal and activity report stats by @gPinato in https://github.com/CodeWithCJ/SparkyFitness/pull/1605
  • Add NixOS module by @dlip in https://github.com/CodeWithCJ/SparkyFitness/pull/1602
  • Add NixOS module by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1609

Fixes

  • fix(mobile): show active calories by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1499
  • Keep nutrition fields editable when Auto-Scale is on by @jsandai in https://github.com/CodeWithCJ/SparkyFitness/pull/1513
  • fix: DATE column timezone shift by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1518
  • fix(measurements): repair DELETE /measurements/check-in/{id} (500 on every delete) by @bamonroe in https://github.com/CodeWithCJ/SparkyFitness/pull/1530
  • fix(foods): close Edit Food dialog correctly when cancelling past enrties sync by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1534
  • fix: support user weight units in active workout playback and preset stats by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1535
  • Backup setting fixes for web by @BryceKrispiess in https://github.com/CodeWithCJ/SparkyFitness/pull/1537
  • Next/prev month buttons on android not showing in dark/Amoled by @BryceKrispiess in https://github.com/CodeWithCJ/SparkyFitness/pull/1528
  • Fix zero body measurements from Garmin overwriting valid historical data by @gPinato in https://github.com/CodeWithCJ/SparkyFitness/pull/1542
  • Check in error/bug fixes by @BryceKrispiess in https://github.com/CodeWithCJ/SparkyFitness/pull/1546
  • split child RLS policies and enforce ownership check on variant deletion by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1552
  • fix(server): resolve adaptive TDEE overestimation, tighten safety cap to ±500 kcal, and downgrade confidence for young trackers or logging gaps by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1555
  • Fix garmin nutrition sync data loss by @gPinato in https://github.com/CodeWithCJ/SparkyFitness/pull/1544
  • Use adjusted calorie goal for summary and per meal targets by @gPinato in https://github.com/CodeWithCJ/SparkyFitness/pull/1543
  • fix(tandoor): handle literal "null" string and malformed source_url in recipe mapping by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1559
  • fix(mobile): only show updated measurements on diary by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1567
  • fix for AI ChatBot using old 50 messages isntead of recent 50 messages. by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1570
  • fix for missing nutritional value while creating meal via ChatBot by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1577
  • fix(server): simplify meal retrieval by leveraging RLS for family library sharing by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1582
  • fix(auth): resolve OIDC group sync, provider endpoint mapping, and client token auth issues by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1583
  • fix: do not count both active calories and workouts by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1588
  • fix(garmin): resolving authentication usage by @dhruvinsh in https://github.com/CodeWithCJ/SparkyFitness/pull/1603

Documentation

  • external database doc update. by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1565

Other Changes

  • Subtract dietary fiber caloric contribution from calorie target before calculating macro targets by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1531
  • added pretieer for translation PR workflow by @CodeWithCJ in https://github.com/CodeWithCJ/SparkyFitness/pull/1580
  • chore(i18n): sync translations from Weblate by @github-actions[bot] in https://github.com/CodeWithCJ/SparkyFitness/pull/1581

New Contributors

  • @ZeSlammy made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1474
  • @lev-ok made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1485
  • @gPinato made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1506
  • @izadiegizabal made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1503
  • @bamonroe made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1530
  • @zeusal made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1549
  • @github-actions[bot] made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1581
  • @dhruvinsh made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1603
  • @dlip made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1602

Full Changelog: https://github.com/CodeWithCJ/SparkyFitness/compare/v0.16.9...v0.17.0

Upgrade now
v0.16.9 Breaking risk
Breaking upgrade

Docker fix + perf boost + new food providers

Config change
v0.16.8 Breaking risk
Auth

Missing user ID fix

Config change
v0.16.7 Breaking risk
Auth

Mobile UI enhancements + config requirements

Review required
v0.16.6.3 Breaking risk
Breaking upgrade

Food photo + Net Carbs + Mobile fixes

No immediate action
v0.16.6.2 Breaking risk

Auto-scale nutrition

v0.16.6.1 Breaking risk

Fixed the crypto.randomUUID undefined error.

Full changelog

⚠️ Backup before upgrading. If you don’t see the latest updates, please refresh or clear your browser cache.
⚠️ Android App – Google Play closed testing URL has changed. Refer to the updated link in the Wiki.
⚠️ 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.
https://codewithcj.github.io/SparkyFitness/install/postgres-upgrade

💙 Support SparkyFitness

Support development if you find SparkyFitness useful — Approximately $250 in remaining project expenses.

What's Changed

Fixes

  • fix: crypto.randomUUID is not a function by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1227
  • fix: calendar dropdown missing by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1228
  • fix(1214): prevent re-presenting AddSheet after dismiss by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1231
  • fix: assume decimal for period and comma in number inputs by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1232

Full Changelog: https://github.com/CodeWithCJ/SparkyFitness/compare/v0.16.6.0...v0.16.6.1

v0.16.6.0 Breaking
⚠ Upgrade required
  • Backup data before upgrading.
  • Android Play closed testing URL has changed – refer to the updated link in the Wiki.
  • Postgres upgrade will be mandated in upcoming months; review the migration guide at https://codewithcj.github.io/SparkyFitness/install/postgres-upgrade.
Full changelog

⚠️ Backup before upgrading. If you don’t see the latest updates, please refresh or clear your browser cache.
⚠️ Android App – Google Play closed testing URL has changed. Refer to the updated link in the Wiki.
⚠️ 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.
https://codewithcj.github.io/SparkyFitness/install/postgres-upgrade

💙 Support SparkyFitness

Support development if you find SparkyFitness useful — Approximately $250 in remaining project expenses.

Full Changelog: https://github.com/CodeWithCJ/SparkyFitness/compare/v0.16.5.9...v0.16.6.0

version fix https://github.com/CodeWithCJ/SparkyFitness/issues/1215

v0.16.5.9 Breaking risk
Notable features
  • Meal creation support in app
  • iOS and Android home screen widgets
  • Goal tracking reports with calorie distribution and averages
Full changelog

⚠️ Backup before upgrading. If you don’t see the latest updates, please refresh or clear your browser cache.
⚠️ Android App – Google Play closed testing URL has changed. Refer to the updated link in the Wiki.
⚠️ 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.
https://codewithcj.github.io/SparkyFitness/install/postgres-upgrade

💙 Support SparkyFitness

Support development if you find SparkyFitness useful — Approximately $250 in remaining project expenses.

What's Changed

Features

  • feat(994): goal tracking reports by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1206
  • feat: imroved reports for nutrition data by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1212

Fixes

  • fix: auto labeling for mistakenly adds bug label by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1207
  • fix(1211): unused api endpoints by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1213

Other Changes

  • App Workout Timer by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1143
  • feat(781): meal calorie distribution for custom meals by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1145
  • fix: food unit conversion behavior for compatible and incompatible variants by @BryceKrispiess in https://github.com/CodeWithCJ/SparkyFitness/pull/1148
  • feat(566): reorder nutrients by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1149
  • feat(839): add averages to reports by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1150
  • fix(1151, 1045): wger serch doesn't respect language and endpoints are deprecated by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1152
  • Smoother App Animations by @BryceKrispiess in https://github.com/CodeWithCJ/SparkyFitness/pull/1155
  • feat: refresh dashboard and other tabs after sync automatically by @BryceKrispiess in https://github.com/CodeWithCJ/SparkyFitness/pull/1159
  • Feat: Additional app haptics by @BryceKrispiess in https://github.com/CodeWithCJ/SparkyFitness/pull/1161
  • fix(1156): secret file not working anymore by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1163
  • iOS Home Screen Widget by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1157
  • feat: improve ui for exercises and support cardio and isometric types by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1164
  • fix(1158): garmin activity sync fail by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1166
  • fix(1165): execute preflight checks before server startup by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1167
  • feat: app logs rework and expansion by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1168
  • fix: exercises add from external and public workout presets by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1171
  • fix(1169): focus for input unit keeps resetting while typing by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1172
  • fix(1139): filter active calories from workout reports by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1175
  • feat(1080): add bundled postgresql resources to helm chart by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1178
  • feat(702): support for custom uploads and backup location by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1179
  • feat: improved ui for exercise entries by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1181
  • feat(1044): equivalent variants for foods by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1182
  • feat: app: change workouts tab to library by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1183
  • fix: add sheet spacing after modal sheet by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1189
  • fix(1180): recalc sleep after merge by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1190
  • App meal creation support by @BryceKrispiess in https://github.com/CodeWithCJ/SparkyFitness/pull/1195
  • Fix(1187): misleading placement of height input by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1191
  • fix: backup doesn't work with 18.3 due to old image version by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1192
  • feat: standardize tables to allow universal filtering, pagination, bulk actions and match the UI by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1196
  • App Android Widget by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1198
  • App Meal Nutrition + UI Tweaks by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1194
  • feat: improve changelog creation and auto label pr's by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1146
  • feat: mobile nutrient display and entry details by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1205
  • feat: saving selected date to search parameters and improve calendar UI by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1209
  • fix: pr validation workflow duplicate variable by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1210

Full Changelog: https://github.com/CodeWithCJ/SparkyFitness/compare/v0.16.5.8...v0.16.5.9

v0.16.5.8 Breaking risk
⚠ Upgrade required
  • Backup data before upgrading
  • Android App: Google Play closed-testing URL has changed (refer to Wiki for updated link)
  • Postgres upgrade will be mandated in upcoming months — migration guide available
Breaking changes
  • Goals now require explicit UserID — existing code creating goals without explicit UserID will fail
  • CommonJS support removed; ESM is now required
Security fixes
  • Helm: fixed invalid encryption key generation
Notable features
  • Improved design for workout and workout plan
  • Edit meal type for food entries
  • App sync on open option
Full changelog

⚠️ Backup before upgrading. If you don’t see the latest updates, please refresh or clear your browser cache.
⚠️ Android App – Google Play closed testing URL has changed. Refer to the updated link in the Wiki.
⚠️ 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.
https://codewithcj.github.io/SparkyFitness/install/postgres-upgrade

💙 Support SparkyFitness

Support development if you find SparkyFitness useful — $282 in remaining project expenses.

What's Changed

  • chore: migrate from commonjs to esm and from jest to vitest by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1113
  • refactor: migrate server to typescript using ts-migrate by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1118
  • refactor(exercises): reduce file length by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1125
  • fix(1033), refactor: garmin integration by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1126
  • refactor: exercise search, csv and workout preset by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1131
  • feat(1102): improved design for workout annd workout plan by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1132
  • fix: white input arrows in dark mode by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1133
  • Add unit 'whole' by @cygnim in https://github.com/CodeWithCJ/SparkyFitness/pull/1128
  • fix: loading exercise progress data, feat: textarea for description by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1135
  • feat(1107): edit meal type for food entries by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1136
  • App: Added sync on open option by @BryceKrispiess in https://github.com/CodeWithCJ/SparkyFitness/pull/1120
  • Auto-reload stale frontend chunks after app updates by @BryceKrispiess in https://github.com/CodeWithCJ/SparkyFitness/pull/1138
  • Make Goals Require Explicit UserID by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1119
  • fix(helm): Invalid encryption key generation by @wiiaam in https://github.com/CodeWithCJ/SparkyFitness/pull/1140
  • feat(849): reorder food providers by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1141
  • feat(946): hide sign up when sign up is disabled by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1142

New Contributors

  • @cygnim made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1128
  • @wiiaam made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1140

Full Changelog: https://github.com/CodeWithCJ/SparkyFitness/compare/v0.16.5.7...v0.16.5.8

v0.16.5.7 Breaking risk
⚠ Upgrade required
  • PostgreSQL upgrade to version 18.3 will be mandated in upcoming months (currently optional); review upgrade guide at https://codewithcj.github.io/SparkyFitness/install/postgres-upgrade
Notable features
  • v2 TypeScript API routes for water intake and goal presets
  • Optional authentication for food facts service
  • Dialog forms no longer close when clicking outside
Full changelog

⚠️ Backup before upgrading. If you don’t see the latest updates, please refresh or clear your browser cache.
⚠️ Android App – Google Play closed testing URL has changed. Refer to the updated link in the Wiki.
⚠️ 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.
https://codewithcj.github.io/SparkyFitness/install/postgres-upgrade

💙 Support SparkyFitness

Support development if you find SparkyFitness useful — $293 in remaining project expenses.

What's Changed

  • Exercise bug fixes by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1064
  • feat(1052): clicking outside of dialog forms no longer closes it inst… by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1068
  • fix(1065): converting units onChange leads to weird behavior by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1069
  • App Health Connect Sleep Stage Fix, Exercise Entry Distance by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1072
  • App Dashboard Calories Calculation by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1074
  • ci: add PR validation workflow and update contribution guidelines by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1076
  • fix(1061): missing file extensions in shared package by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1077
  • App: Add More Nutrients + Food Search Update by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1078
  • Fix Date Shift from UTC Conversion by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1083
  • refactor: split exercises into custom hook by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1084
  • App: Calorie Calc + Food Settings - OFF Fallback Preference by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1092
  • Fix Search for Existing Local Barcode Zod Error by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1095
  • fix(1085): workout heatmap ui issue by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1098
  • feat: add v2 TypeScript water intake routes (updated) by @Soulplayer in https://github.com/CodeWithCJ/SparkyFitness/pull/1093
  • feat: add v2 TypeScript routes for goal presets (updated) by @Soulplayer in https://github.com/CodeWithCJ/SparkyFitness/pull/1094
  • App: Fix Crash When Connecting to Old Server by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1103
  • lint: fix server eslint errors by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1097
  • App Graceful failure instead of crash by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1104
  • fix: Updating instructions to upgrade postgresql 15 to 18.3 by @Scorch038 in https://github.com/CodeWithCJ/SparkyFitness/pull/1108
  • tests: fix all server tests and enable ci again by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1106
  • chore: add yaml issue templates by @Sim-sat in https://github.com/CodeWithCJ/SparkyFitness/pull/1109
  • fix: preserve image url when editing exercise by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1110
  • Feat: Optional Only Food Facts Authentication by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1112
  • App: Fix Number Inputs Not Allowing Commas by @apedley in https://github.com/CodeWithCJ/SparkyFitness/pull/1115

New Contributors

  • @Scorch038 made their first contribution in https://github.com/CodeWithCJ/SparkyFitness/pull/1108

Full Changelog: https://github.com/CodeWithCJ/SparkyFitness/compare/v0.16.5.6...v0.16.5.7

v0.16.5.6 New feature
Notable features
  • Timezone support for user preferences
  • Server-side step calorie calculation
  • Enhanced Garmin sync reliability
v0.16.5.4 Bug fix

Fixed Garmin sync for duplicate activity handling, multi-user errors, and distance conversions; corrected FatSecret unit mapping and variant splitting; upgraded PostgreSQL to 18.3; improved activity reporting and data validation.

v0.16.5.3 Breaking risk
Breaking changes
  • better-auth upgraded to 1.5.5
  • Tailwind CSS upgraded to v4
Notable features
  • OIDC/SSO improvements
  • TDEE calculation transparency
  • Garmin sync improvements
v0.16.5.1 New feature
Notable features
  • Barcode support for USDA/Fatsecret
  • Unified food search
  • Multi-source water tracking
v0.16.5.0 New feature
Notable features
  • Email/password mobile authentication
  • Imperial units support
  • Sleep report accuracy improvements
v0.16.4.9 New feature
Notable features
  • Adaptive TDEE system
  • AI nutrition label scanning
  • Camera selection memory
v0.16.4.8 New feature
Notable features
  • Helm Chart deployment
  • Wake-up rule for sleep tracking
  • Barcode duplication fix
v0.16.4.6 Security relevant
Security fixes
  • Neutralized critical SQL injection vulnerabilities in measurement repository
Notable features
  • MCP server implementation
  • Extended mobile sync range
  • Check-in features
v0.16.4.5 New feature
Notable features
  • Strava integration
  • Fitbit sync improvements
  • Global health data sync
v0.16.4.4 Maintenance
Notable features
  • Homepage dashboard integration
  • TanStack Query migration
  • Fitbit optimization
v0.16.4.3 New feature
Notable features
  • Polar Flow integration (partially tested)
  • Hevy integration (not tested)
  • TanStack Query migration for improved data management
v0.16.4.2 New feature
Notable features
  • iOS app on Apple App Store
  • Frontend TypeScript migration
v0.16.4.1 Breaking risk
Breaking changes
  • MFA reset required
  • Folder structure reorganization
  • New API endpoints
Notable features
  • Better-Auth migration
  • Passkey support
  • CI testing infrastructure
v0.16.4.0 Breaking risk
Breaking changes
  • JWT authentication removed
  • OIDC callback URLs changed
  • API endpoints changed
Notable features
  • Better-Auth framework integration
  • Passkey support
  • Improved CI/CD pipeline
v0.16.3.3 Bug fix
Notable features
  • Custom meals feature
  • Swagger API documentation
  • HealthKit improvements
v0.16.3.2 New feature
Notable features
  • HealthKit/HealthConnect integration
  • French translations
v0.16.3.1 New feature
Notable features
  • Garmin health dashboard
  • Tandoor recipe mapping improvements

Beta — feedback welcome: [email protected]