feat: 21 meals per week (3/day) + approve/deny + generate single meal

Backend:
- Planner config: set_size=21 (was 3), top_k=30 (was 20)
- generate.py: distribute 21 recipes across 7 days × 3 meal types
- meals.py: add POST /items/{id}/approve, /items/{id}/deny
- meals.py: add POST /{plan_id}/generate-item for empty slots

Frontend:
- Dashboard: Approve/Deny buttons on pending meal cards
- Dashboard: Generate button in empty meal slots
- API client: approveItem, denyItem, generateItem methods

Build: TypeScript compiles clean, Python syntax verified.
This commit is contained in:
2026-05-15 11:44:04 -07:00
parent ddcdb962ca
commit 7b5e65087e
5 changed files with 170 additions and 12 deletions
+1 -1
View File
@@ -28,7 +28,7 @@ class PlannerConfig:
# Set selection
top_k: int = 20 # how many feasible recipes to enumerate over
set_size: int = 3 # 3 dinners/week
set_size: int = 21 # 21 meals/week (3 per day × 7 days)
p_protein: float = 0.15 # diversity penalty per shared-protein pair
p_cuisine: float = 0.10 # diversity penalty per shared-cuisine pair