OFF stores potassium_100g, calcium_100g, magnesium_100g in grams.
Goals are in mg. sum_nutriments now multiplies these by 1000.
Before: potassium showed 0.7mg (was 0.0007g displayed as mg)
After: potassium shows 691.2mg (banana: 0.32g/100g × 216g × 1000)
Added MG_NUTRIENTS const to db.rs. Updated test assertions.
31 tests passing.
- Add vitals table (type, timestamp_utc, value JSON, source) with UNIQUE
(type,timestamp_utc) for idempotent upserts.
- POST /ingest: Bearer-protected HTTP endpoint accepting batched health
samples (weight, blood_pressure, heart_rate, spo2, steps, sleep, ...).
Weight samples are mirrored into weight_log so existing weight tools see them.
- recent_vitals MCP tool: reads back ingested vitals, grouped by type with
min/avg/max/units over a configurable window.
- 6 new tests (31 integration + 2 unit total, all passing).
- Verify live: /ingest POST -> recent_vitals round-trip over MCP protocol.