NutriTrace logo

NutriTrace

Self-hosted personal nutrition and calorie tracker

Alternative to: myfitnesspal, cronometer, lose it, waistline

NutriTrace screenshotNutriTrace screenshot

About Versions (95)

v1.1.2-dev05

2026-08-08

Fixes 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

  1. 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.
  2. 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.
  3. _offHydrateCache had 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