# TODO — Recipe Manager **Last Updated:** 2026-03-25 **Current Milestone:** v1.0 — Recipe Import --- ## ✅ MVP (v0.1) Status MVP is functionally complete (core app + docs + tests). ### Completed - Backend API (recipes + tags) - Frontend UI (list/detail/form/cook mode) - Search + tag management + error handling - Dockerfiles + docker-compose - API docs + user guide + README setup - ADR-001 (sql.js decision) ### Deferred / Manual Host Validation - [ ] Manual Docker host test (`docker compose up`) on host machine with Docker installed --- ## 🎯 Active Tasks — v1.0 Recipe Import ### Phase 1: URL Import Foundation - [x] Add backend import endpoint: `POST /api/import/url` - [ ] Implement Schema.org Recipe JSON-LD parser service - [ ] Normalize parsed recipe into internal Recipe draft format - [ ] Add import endpoint tests (valid recipe page, non-recipe page, malformed JSON-LD) ### Phase 2: Import UI - [ ] Add “Import from URL” UI page/form in frontend - [ ] Show parsed preview (title, ingredients, steps, source URL) - [ ] Allow edit-before-save flow, then save to existing create recipe API - [ ] Add frontend error states (invalid URL, parse failure, timeout) ### Phase 3: Fallback Parsing + Hardening - [ ] Add heuristic fallback parser when Schema.org missing - [ ] Add timeout/retry + user-friendly import failure messages - [ ] Add logging/telemetry for import success/failure reasons ### Phase 4: Browser Extension (after URL import stable) - [ ] Scaffold browser extension project (Manifest v3) - [ ] Add “Send to Recipe Manager” action to call import API - [ ] Add extension settings for Recipe Manager base URL --- ## 📋 Backlog (Post-v1) ### v1.1 - [ ] Recipe scaling (adjust servings) - [ ] Print styles - [ ] Advanced search filters - [ ] Random recipe suggestion ### v2.0 (AI Features) - [ ] AI ingredient substitutions - [ ] Meal planning - [ ] Shopping list generation - [ ] Fintrove cost tracking integration --- ## 🚧 Blocked / Needs Decision - **CopyMeThat export path:** confirm whether Anne/Elizabeth can export directly, or we rely on URL import + browser extension. - **Tag filtering in recipe list:** currently UI-only, backend filter by tag_id pending. --- ## Notes for Agents - Work from top to bottom in the **Active Tasks — v1.0** section. - Pick the **first unchecked task** only. - One task = one commit. - If blocked: mark task with reason and continue next unblocked task only with explicit note. --- _This is the authoritative task queue for harness iterations._