docs: HANDOFF update — TICKET-008 complete, v1 feature-complete

This commit is contained in:
Craig
2026-07-26 17:45:39 +01:00
parent 731e541013
commit fc30b28921
+24 -2
View File
@@ -20,11 +20,33 @@ pending user testing), and OpenFoodFacts lookup/search.
| 005 Frontend daily view | ✅ done, QA passed | `b69661c` | | 005 Frontend daily view | ✅ done, QA passed | `b69661c` |
| 006 OFF + barcode scan/search flows | ✅ done, QA passed (backend `32461b7`, frontend below) | `32461b7` + frontend | | 006 OFF + barcode scan/search flows | ✅ done, QA passed (backend `32461b7`, frontend below) | `32461b7` + frontend |
| 007 Meals (from-log, unpack, recursion) | ✅ done, QA passed | `a8aed9a` + `7db6484` | | 007 Meals (from-log, unpack, recursion) | ✅ done, QA passed | `a8aed9a` + `7db6484` |
| 008 Food library view + restore | **next** | — | | 008 Food library view + restore | ✅ done, QA passed | `0c239cd` + `731e541` |
Test counts at HEAD: backend **174 passed** (`cd backend && uv run pytest`), **All milestones M1M4 COMPLETE — v1 feature-complete.**
Test counts at HEAD: backend **180 passed** (`cd backend && uv run pytest`),
frontend **23 vitest passed** + `npm run build` green. frontend **23 vitest passed** + `npm run build` green.
## TICKET-008 notes (session 3, continued)
- Backend: `POST /api/foods/{id}/restore` (idempotent — restoring a live food
returns it unchanged; 404 unknown id; nutrition/created_at/history intact).
- Frontend: `FoodLibrary.svelte` (was a scaffold placeholder) — search,
limit/offset pagination (fetches PAGE_SIZE+1 to detect next page),
include_deleted toggle, confirm-then-soft-delete, restore. Edit routes
through FoodEditor: regular foods get a new edit mode (`food.id` present →
`api.updateFood`, preserves `is_meal`); meals route to the ticket-007 meal
component editor. Nav via "🍔 Foods" button on dashboard. Editor closes call
`refreshDayData()` since food edits retroactively change log rendering (§2.1).
- Gotcha fixed: initial load must use `onMount`, not `$effect` — an effect
tracks the search-box state and re-fetches on every keystroke.
## After v1
Remaining loose ends: phone-camera scan checklist (§8.4, needs Caddy HTTPS +
user testing), README.md user edit uncommitted (user's call), deferred spec §5
items (deployment, CSV export, extra nutrients in UI, PWA manifest).
## TICKET-007 notes (session 3) ## TICKET-007 notes (session 3)
- Backend: `routers/meals.py` (from-log, unpack, PUT components — each one - Backend: `routers/meals.py` (from-log, unpack, PUT components — each one