Releases: rfivesix/hypertrack
0.8.10
0.8.10
This is a stability and polish update focused on backup/restore robustness, analytics reliability, and small UI improvements.
Highlights
- Backup import is now more tolerant of malformed or legacy-shaped data instead of failing as easily.
- Body & Nutrition trend loading is more stable and no longer risks showing stale async results after fast range switching.
- Normalized analytics charts are more resilient against malformed inputs.
- Several small UI and robustness issues were cleaned up.
Backup / Restore
- Improved backup import safety for malformed or type-drifted rows in goals, settings, history, and health-step payloads.
- Hardened supplement settings/history restore with better legacy ID fallback handling and more tolerant parsing.
- Reduced the risk that a single bad payload row breaks the overall restore flow.
Analytics / Body & Nutrition
- Fixed a stale async update issue in the Body & Nutrition trend screen.
- Improved chart safety by filtering invalid trend points more defensively.
- Improved fallback UI and small-screen layout behavior in the Body & Nutrition drill-down screen.
Internal robustness
- Reduced the risk of synthetic workout-session ID collisions in edge cases.
- Replaced remaining raw debug print behavior in workout session restore with safer debug logging.
Notes
- This release does not introduce a major new feature set.
- The focus is on making existing flows more stable, safer, and more polished.
What's Changed
- 0.8.1 by @rfivesix in #256
- refactor(hubs): reorganize workout stats and nutrition tabs by @rfivesix in #258
- 0.8.3 by @rfivesix in #261
- wger db by @rfivesix in #263
- 0.8.4 v3 by @rfivesix in #264
- 0.8.4 v4 by @rfivesix in #265
- ci(wger): diff against published release baseline by @rfivesix in #266
- 0.8.4 v5 by @rfivesix in #267
- 0.8.4 v6 by @rfivesix in #268
- 0.8.4 v7 by @rfivesix in #269
- Release v0.8.4: harden catalog refresh and preserve workout history by @rfivesix in #270
- 0.8.5 by @rfivesix in #271
- fix off script by @rfivesix in #272
- release: 0.8.6 by @rfivesix in #273
- deps: bump file_picker from 11.0.1 to 11.0.2 in the flutter-dart-dependencies group by @dependabot[bot] in #274
- deps: bump the github-actions group with 3 updates by @dependabot[bot] in #275
- 0.8.7 by @rfivesix in #277
- 0.8.8 by @rfivesix in #282
- 0.8.9 by @rfivesix in #283
- Release v0.8.9 and update dependencies for GitHub Actions and file_picker by @rfivesix in #284
Full Changelog: v0.8.9...v0.8.10
0.8.9
0.8.9
This release improves three important areas: bodyweight vs calorie trend analysis, sleep regularity visualization, and workout heart-rate visibility.
Highlights
- Reworked Body & Nutrition analytics into a more trustworthy trend-summary model with stronger data-quality gating.
- Improved the Sleep regularity view by reusing the weekly sleep-window chart pattern for better consistency.
- Added workout heart-rate summaries and charts so recorded HR data is now actually visible after training.
Body & Nutrition
- Replaced weak “correlation”-style output with clearer trend interpretation:
- cut-like
- bulk-like
- maintenance-like
- mixed / unclear
- Added stronger confidence and insufficient-data gating.
- Introduced a new normalized dual-line chart where bodyweight and calorie trends start from the same baseline, making relative trend comparison much easier.
- Improved the Statistics hub Body & Nutrition card with:
- clearer summary values
- better relationship text
- compact normalized mini-chart
- confidence and data-basis hints
- Reworked the Body & Nutrition detail screen:
- replaced separate primary charts with one combined normalized trend chart
- simplified interpretation text
- removed the body-measurements shortcut from this feature surface
Sleep
- Reused the weekly sleep-window chart pattern inside the Sleep regularity view.
- Improved visual consistency and reduced duplicated chart logic between sleep screens.
Workouts / Heart Rate
- Added workout heart-rate visibility to post-workout and workout-detail flows.
- Workout summary now shows compact heart-rate stats after a session.
- Workout detail now includes a dedicated Heart Rate section with:
- average HR
- max HR
- min HR
- heart-rate-over-time line chart
- Added heart-rate data-quality states and clean fallback handling for sparse or missing data.
Notes
- Bodyweight vs calorie analysis remains a trend-context feature, not a causality engine.
- Workout heart-rate data is currently read on demand for MVP and may be optimized further later.
Full Changelog: v0.8.8...v0.8.9
0.8.8
0.8.8
This release focuses on UI consistency and internal codebase cleanup.
Highlights
- Replaced remaining app-owned default alert dialogs with Hypertrack’s custom glass action-sheet/dialog style for a more consistent UI.
- Unified confirmation, save, delete, and selection dialogs across key flows such as onboarding, nutrition, AI prompts, settings, and data import.
- Extended the shared custom dialog helper with stricter modal controls for critical flows.
- Completed a broader analyzer/lint cleanup and refactor pass with no intended behavior changes.
Included improvements
- Onboarding restore password prompt now uses the custom dialog style.
- Post-onboarding app-tour offer now matches the rest of the app UI.
- AI key-missing prompts were migrated to the custom dialog system.
- Nutrition edit and delete-confirmation dialogs were migrated.
- Settings dialogs such as OFF region picker and attributions/licenses were migrated.
- Data import success dialogs now use the same consistent pattern.
- Remaining analyzer issues were cleaned up, including naming consistency, constructor keys, model API polish, and minor refactors.
Notes
- Native-style blocking loading overlays used for progress feedback were intentionally kept as they are.
Full Changelog: v0.8.7...v0.8.8
0.8.7
Hypertrack 0.8.7
This release adds a new first-use app tour, continues the widget rollout, and includes a refreshed app icon.
Highlights
New optional app tour
- Added a short, optional post-onboarding app tour
- The tour guides new users through the main app structure with spotlight-style hints
- Covers the main navigation, quick actions, Diary, Workout, Nutrition, and Statistics
- Can be skipped at any time
- Can be restarted later from Settings
App icon refresh
- Updated the app icon with the new visual design
Notes
This release is primarily focused on user guidance, polish, and overall product presentation.
Full Changelog: v0.8.6...v0.8.7
0.8.6
0.8.6
This release focuses on Open Food Facts reliability, privacy-first feedback tooling, and final polish before stable rollout.
Added
- Added a full optional feedback / diagnostic report flow in Settings.
- Added a dedicated feedback screen with local report generation and preview before any sharing action.
- Added selectable report sections for:
- app/platform info
- adaptive nutrition diagnostics
- backup/restore diagnostics
- optional user note
- Added explicit user-controlled actions for feedback reports:
- copy
- save
- share
- Added privacy notice in the feedback flow clarifying that nothing is uploaded automatically.
- Added new localization strings for the feedback-report feature in English and German.
Changed
- Reordered Settings sections for a more logical user-facing flow:
- Appearance
- Diary
- AI Meal Recognition
- Steps
- Sleep
- Health Export
- Backup & Import
- Food Database
- Support
- About & Legal
- Improved OFF refresh workflow gating so downstream manifest/diff/release-note steps only run when generation truly succeeds.
- Improved OFF catalog generator diagnostics for CI debugging.
Fixed
- Fixed the OFF parquet import regression that caused country imports to produce zero products.
- Restored correct handling for
numpy.ndarrayvalues in OFF bulk import parsing. - Fixed country tag matching for parquet field runtime types.
- Fixed product name extraction for ndarray-backed OFF fields.
- Fixed nutrient extraction/parsing for ndarray-backed OFF fields.
- Hardened numeric parsing to correctly accept NumPy numeric scalar types.
- Prevented noisy secondary workflow failures caused by artifact steps running after generator failure.
- Reduced a flaky hit-test issue in sleep settings UI tests.
Privacy
- Feedback reports are generated locally only.
- No automatic upload or background transmission occurs.
- Users can review the full report before copying, saving, sharing, or emailing it.
Notes
- The new feedback-report system is intended as the first foundation for data-driven refinement of adaptive nutrition edge cases, without prematurely hardcoding unsupported rules.
- OFF multi-country refresh and region selection now work together with the latest workflow and parser fixes.
Full Changelog: v0.8.5...v0.8.6
0.8.5
0.8.5
This release expands Hypertrack’s Open Food Facts integration into a proper multi-country catalog pipeline and adds the final user-facing region selection flow in Settings.
Added
- Added multi-country Open Food Facts refresh/distribution channels:
off-foods-de-stableoff-foods-us-stableoff-foods-uk-stable
- Added country-specific OFF release artifacts:
hypertrack_off_<country>.dboff_build_report_<country>.jsonoff_catalog_manifest_<country>.jsonoff_diff_report_<country>.jsonoff_release_notes_<country>.md
- Added user-facing food database region selection in Settings:
- Germany (DE)
- United States (US)
- United Kingdom (UK)
- Added persisted OFF country selection via
OffCatalogCountryService - Added OFF startup/update adoption flow for country-specific remote catalogs
- Added widget/UI coverage for OFF region selection
- Added OFF retention coverage to preserve historically referenced products across catalog replacements
Changed
- OFF catalog generation is now country-parameterized and release-channel based
- OFF manifest validation now enforces country/channel/source consistency plus integrity checks
- OFF installed-version tracking is now country-scoped
- Settings now clearly communicate that region changes apply on the next catalog refresh/import cycle
- Workflow gating was hardened so downstream manifest/diff/release-note publication only runs after true generator success
Fixed
- Fixed OFF parquet import regression where NumPy ndarray-based field values were no longer handled correctly after refactor
- Restored robust parsing for:
countries_tagsproduct_namenutriments
- Fixed generator behavior that previously scanned the parquet successfully but imported
0products due to ndarray handling mismatch - Prevented secondary workflow noise from missing manifest/diff/release-note artifacts when generator execution fails
Safety / behavior notes
- Historical OFF continuity semantics remain preserved:
- active rows use
source='off' - historically needed stale rows use
source='off_retained'
- active rows use
- Bundled DE fallback remains intentionally included for staged rollout safety
- Region switching does not wipe historical data and does not force an unsafe in-session rebuild
Summary
v0.8.5 completes the first safe multi-country OFF rollout in Hypertrack by combining:
- release-distributed country catalogs
- manifest/integrity validation
- country-aware app adoption
- preserved historical references
- and a production-safe user-facing region selector
What's Changed
Full Changelog: v0.8.4...v0.8.5
0.8.4
v0.8.4
This release hardens the new remote exercise catalog refresh pipeline and fixes a history integrity issue around exercise resolution after catalog changes.
Added
- Added regression coverage for exercise catalog refresh behavior and historical workout restoration across catalog drift.
- Added tests to verify:
- exercise metadata updates via ID-based catalog upsert
- non-destructive retention of exercises not present in refreshed upstream payloads
- workout session restore resolving by stored
exercise_id - safe fallback behavior when an exercise row is missing
Changed
- Exercise catalog refresh now updates base exercises with non-destructive ID-based upsert semantics (
ON CONFLICT(id) DO UPDATE) instead of replace-style writes. - Workout restore and history/detail resolution now prefer stored
exercise_idover name-based lookup. - Historical set-log linkage is preserved more safely during updates, even when name-based lookup no longer matches.
- The Wger catalog refresh workflow was hardened and refactored to avoid fragile inline heredoc Python blocks.
- Diff baseline resolution now targets the previously published catalog release asset instead of the repository DB baseline.
- Catalog refresh documentation was updated to reflect the current non-destructive import semantics and historical safety model.
Fixed
- Fixed a history integrity issue where workout restore paths could fail or lose resolvability after catalog metadata or name changes.
- Fixed set-log update behavior so existing exercise linkage is not unnecessarily lost when exercise names drift.
- Fixed detail and summary resolution paths to use stable exercise IDs where available instead of relying on names alone.
- Prevented aggressive replace-style catalog writes from being used for exercise refreshes.
- Removed heredoc/indentation risk from the catalog refresh workflow by moving logic into dedicated Python helper scripts.
Notes
- Existing workout logs continue to resolve through stable exercise IDs where present.
- Exercise metadata for the same ID can update normally during catalog refresh.
- Exercises removed upstream are currently retained locally, which preserves history integrity and keeps them selectable unless this behavior is changed explicitly in the future.
Full Changelog: v0.8.3...v0.8.4
Open Food Facts Catalog (us, stable channel)
OFF Food Catalog Refresh (US)
- Version:
202604130816 - Generated at:
2026-04-13T08:16:42+00:00 - Country code:
us - Country filter tags:
en:united-states, en:united-states-of-america, en:usa - Imported products:
749072 - Rejected rows:
3655828 - Duplicate barcodes skipped:
3 - Diff removed barcodes:
0 - Diff added barcodes:
0 - Diff changed barcodes:
0
This is a data-artifact release channel used by app-side Open Food Facts catalog refresh.
Open Food Facts Catalog (uk, stable channel)
OFF Food Catalog Refresh (UK)
- Version:
202604130813 - Generated at:
2026-04-13T08:13:30+00:00 - Country code:
uk - Country filter tags:
en:great-britain, en:uk, en:united-kingdom - Imported products:
138102 - Rejected rows:
4266798 - Duplicate barcodes skipped:
2 - Diff removed barcodes:
0 - Diff added barcodes:
0 - Diff changed barcodes:
0
This is a data-artifact release channel used by app-side Open Food Facts catalog refresh.
Open Food Facts Catalog (de, stable channel)
OFF Food Catalog Refresh (DE)
- Version:
202604130815 - Generated at:
2026-04-13T08:15:35+00:00 - Country code:
de - Country filter tags:
en:germany - Imported products:
221941 - Rejected rows:
4182959 - Duplicate barcodes skipped:
0 - Diff removed barcodes:
0 - Diff added barcodes:
0 - Diff changed barcodes:
0
This is a data-artifact release channel used by app-side Open Food Facts catalog refresh.