NutriTrace v1.0.0-rc.54 released: Health Connect sync fix, local LLM proxy support, backup fidelity pass
NutriTrace is a self-hosted nutrition tracker (Docker + Android, AGPL-3.0). Small point release focused on stability and fixes.
Fixes
-
Health Connect users’ Android sync unstuck (#89). Pending Health Connect rows on the phone were tripping a SQL bug on push, which stopped every subsequent pull. Symptom: items added on the browser weren’t reaching the phone. Every user with Health Connect enabled on the Android app was silently affected. Two independent reporters (duplaja + traebertthomas-cpu) traced this to the same root cause within days of each other. Update the app on Android; the sync error banner clears on the next sync cycle.
-
More accurate Time to Sound Sleep in Sleep Quality. Server-side ttss derivation now includes the initial 5-10 min settling-in awake segment, matching what the Fitbit app measures. Closes the consistent -5 to -7 min under-count on nights with a short initial wake segment. Applies to Health Connect and Google Health syncs.
What’s new
-
Server-side proxy for OpenAI-compatible AI providers (#90). Env-locked AI now supports
AI_PROVIDER=oai-compatalongside claude / openai / gemini. PointAI_BASE_URLat a private-network Ollama, LM Studio, LocalAI, vLLM, or similar and the server calls it directly, so the browser never has to see the endpoint. Solves the mixed-content + Docker-internal-DNS gap for self-hosters running a local LLM sidecar. Same capability added to LiftTrace and CookTrace at the same time. -
Backup + restore fidelity pass. Eight silent data-loss scenarios closed across the full backup, JSON export/import, and Android local backup flows. Highlights: OFF unit metadata (
nutrition_basis,alt_units,density_g_ml) from rc.50 now survives a restore, federation API tokens survive backups, JSON settings import correctly pushes to the server on PWA, and native restore no longer double-inserts on a second pass. -
“Copy to another date” defaults to today. Copying a meal or item from a past date now pre-fills today in the picker instead of the source date. One less tap for the “same lunch again today” case.
Install / upgrade
- Docker: pull the new image and restart your stack (see the README for compose snippets). Image is multi-arch (amd64 + arm64).
- Android: signed APK on the release page.
- Full CHANGELOG: main repo.
What is NutriTrace?
Self-hosted nutrition tracker. Diary + Foods catalog (with Open Food Facts / USDA / Mealie search + barcode scan), wellness integrations (Fitbit, Garmin, Withings, Google Health, Health Connect), workouts, goals, statistics, recipes, multi-user, OIDC SSO, federation with LiftTrace and CookTrace, AI assistant (Claude / OpenAI / Gemini / Ollama). Docker on the server, Capacitor app on Android. AGPL-3.0 licensed.
AI Disclosure
Per Rule 7 / [AIP] disclosure requirements AI was used during development as a coding assistant. Level per category:
- Design (architecture, system design): Hint — I make the architectural calls; AI suggests trade-offs and edge cases I might have missed.
- Implementation (production code): Pair — roughly 50/50. AI drafts, I review, adjust, test on real hardware, and only commit what I’ve verified. Every commit is manually reviewed before it goes to my dev repo.
- Testing (writing tests, test plans, QA): Assisted — real-device testing is manual (I test on my own PC and mobile devices before every release). AI helps draft test plans and think through edge cases.
- Documentation (docs, comments, README, CHANGELOG): Pair — release notes and changelog entries are drafted with AI then edited for tone; comments and code docs are mostly Pair as well.
- Review (code review, PR feedback): Assisted — I’m the reviewer; AI helps with security sweeps, audit passes on complex changes, and consistency checks.
- Deployment (CI/CD config): Hint — Docker/GitHub Actions/release pipeline is largely conventional; AI-suggested improvements only.
Solo maintainer; no team.
How on earth do you have 54 release candidates, each of them adding significant feature, and not bumping your versions? Wouldn’t it be nicer to just put them on the main branch and cut a semver release every now and then? At least that’ll save on the frequency of posts here
Off topic, but I’ve been enjoying CookTrace. I haven’t got all the options and all the stops pulled out yet, but working on it. Thanks.
Happy to hear! You are very welcome!
@traceapps@lemmy.world Please also include the required disclosures per rule 8, and let me know if you have any questions
Updated, thank you.
Removed by mod