NutriTrace
Self-hosted personal nutrition and calorie tracker
Alternative to: myfitnesspal, cronometer, lose it, waistline

About
Versions (95)
v1.1.2-dev05
2026-08-08Fixes three fourth-pass code-review findings against v1.1.2-dev04. Signed APK attached, Docker :dev tag will update via CI.
What was wrong in dev04
- Single-source OFF search skipped v3 hydration. Tapping an OFF result when the OFF chip was selected called the picker without the source hint, so the v3 fetch that restores serving-size / per-serving nutriments never ran. Hydration only worked in ALL-mode. Fixed: pass the active search source at that call site.
- Local OFF mirror broke on Lucene queries. Mirror-enabled admins would see empty results for any query with special characters or a country filter (mirror does SQL LIKE against the raw query, can’t parse Lucene syntax). Fixed on the server side: mirror now strips Lucene filter clauses + unescapes backslashes before LIKE-matching. Country filter is lost on the mirror path (mirror has no countries_tags column) but per-hit origin flag still renders.
_offHydrateCachehad no size cap. Long browsing sessions accumulated hydrated products in memory without bound. Fixed: LRU eviction with a 200-entry cap.
Review progress
- dev01 → dev02: 7 findings fixed
- dev02 → dev03: 5 findings fixed
- dev03 → dev04: 2 findings fixed
- dev04 → dev05: 3 findings (2 correctness regressions + 1 memory hygiene)
Next /code-review pass is scheduled before v1.1.2 goes to main.
docker compose pull && docker compose up -d