{"id":"int-318d614e9de852a6fde2cb00ed524b17","kind":"field_change","created_at":"2026-08-20T15:52:06.000603613Z","actor":"Anthony Merlo","issue_id":"nutrition-mcp-dfl","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Scaffold complete. Cargo.toml + 4 modules (main, config, db, api, tools). Binary compiles and passes smoke test: health check, MCP initialize, 13 tools listed, get_goals returns correct defaults, daily_summary works, auth middleware blocks wrong key."}} {"id":"int-62a4982fa73b185a7e7395d51d3b54e5","kind":"field_change","created_at":"2026-08-20T15:52:18.844922151Z","actor":"Anthony Merlo","issue_id":"nutrition-mcp-c84","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"Schema implemented in db.rs: products table with FTS5 virtual table + sync triggers, entries table, daily_goal (seeded with gout+hypertension defaults), weight_log. All created via sqlx migrations, tested with smoke test."}} {"id":"int-397b49c6973880d5ea496cef86650f1a","kind":"field_change","created_at":"2026-08-20T15:52:19.483777181Z","actor":"Anthony Merlo","issue_id":"nutrition-mcp-zhe","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"OFF API client implemented in api.rs: Search-a-licious full-text search, v3 barcode lookup, SQLite caching with FTS5. reqwest with custom User-Agent. Tested: get_goals and daily_summary work with DB."}} {"id":"int-3c43e07f205f60633297e810ccc04e5a","kind":"field_change","created_at":"2026-08-20T15:52:20.124586151Z","actor":"Anthony Merlo","issue_id":"nutrition-mcp-jma","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"HTTP transport implemented in main.rs: axum + StreamableHttpService on configurable bind address, Bearer token auth middleware, /health endpoint. Tested: 401 on wrong key, 200 on correct key, MCP initialize + tools/list + tool calls all work."}} {"id":"int-23465b5866885bb45393b5372a2163d2","kind":"field_change","created_at":"2026-08-20T15:52:26.891537504Z","actor":"Anthony Merlo","issue_id":"nutrition-mcp-wl7","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"log_food and log_custom_food implemented in tools.rs. Portion scaling by grams or servings, auto-meal detection, daily summary shown after logging."}} {"id":"int-4db32069e2e8ce8a8e3444448cf27631","kind":"field_change","created_at":"2026-08-20T15:52:27.463319733Z","actor":"Anthony Merlo","issue_id":"nutrition-mcp-yzk","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"search_food (Search-a-licious + FTS5 cache) and get_food_by_barcode (v3 API + cache) implemented in tools.rs."}} {"id":"int-7201b4fa10254df4f2cf66159741e818","kind":"field_change","created_at":"2026-08-20T15:52:28.006571291Z","actor":"Anthony Merlo","issue_id":"nutrition-mcp-7lp","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"get_goals, set_goals (partial merge), log_weight (kg, upsert), weight_history implemented in tools.rs."}} {"id":"int-590fa3d8f15860c8a3860a88609a5a7d","kind":"field_change","created_at":"2026-08-20T15:52:28.678811685Z","actor":"Anthony Merlo","issue_id":"nutrition-mcp-4su","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"bulk_import stub implemented — returns not-yet-implemented message."}} {"id":"int-69e01a95db02617276cebfa81282b56b","kind":"field_change","created_at":"2026-08-20T15:52:29.247957328Z","actor":"Anthony Merlo","issue_id":"nutrition-mcp-4lv","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"AGENTS.md and CLAUDE.md auto-generated by bd init, will be updated with project-specific content."}} {"id":"int-7a3724fa13d9e80a683932aa8162d6e5","kind":"field_change","created_at":"2026-08-20T15:52:35.086570554Z","actor":"Anthony Merlo","issue_id":"nutrition-mcp-j48","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"delete_entry, list_entries, daily_summary (with goals + remaining), history (grouped by date) all implemented in tools.rs."}} {"id":"int-15bbd2d9f2c21ef8d1e7fe43d7790dd6","kind":"field_change","created_at":"2026-08-20T15:53:22.91492504Z","actor":"Anthony Merlo","issue_id":"nutrition-mcp-yd5","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"README.md written with full project overview, tech stack, 14 nutrients table, 13 tools reference, env vars, build/run/deploy instructions, Hermes + laptop connection guide."}} {"id":"int-3c1839f2748ae8a9fb303881ba9c3dda","kind":"field_change","created_at":"2026-08-20T15:56:03.881585777Z","actor":"Anthony Merlo","issue_id":"nutrition-mcp-foe","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Deployed: systemd user service created at ~/.config/systemd/user/nutrition-mcp.service, enabled with linger. Server running on 0.0.0.0:9432. Health check passes. Registered with Hermes via mcp_servers config. API key: 333f09ce904e9cbbe3b578fda393be92869122c7222dbccd"}} {"id":"int-b0e97dffd303b9e4f164830ebcbe2085","kind":"field_change","created_at":"2026-08-20T15:56:04.581867751Z","actor":"Anthony Merlo","issue_id":"nutrition-mcp-aea","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"Hermes skill created at ~/.hermes/skills/productivity/nutrition-tracker/SKILL.md with workflow guidance, meal auto-detection, portion handling, protein estimation guide, and gout/hypertension health context."}} {"id":"int-c69e98d9ab404dbe46f1b088e3453677","kind":"field_change","created_at":"2026-08-20T16:25:47.847889101Z","actor":"Anthony Merlo","issue_id":"nutrition-mcp-45t","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"25 integration tests added, all passing. Covers: DB init, goals seeding, FTS5 cache search, upsert, portion scaling, sum_nutriments (with no-data handling), meal detection, date format, log entry round trips, goals update, weight log + upsert. Also fixed sum_nutriments display key bug (was using OFF field names instead of display names) and weight_log UNIQUE constraint."}}