kiwi/app/models/schemas
pyr0ball 9350719516
Some checks are pending
CI / Backend (Python) (push) Waiting to run
CI / Frontend (Vue) (push) Waiting to run
Mirror / mirror (push) Waiting to run
Release / release (push) Waiting to run
feat(recipes): LLM style classifier (#27) + cooked leftovers shelf-life (#112)
Style classifier (kiwi#27):
- app/services/recipe/style_classifier.py: LLM prompt with curated vocab,
  cf-orch/LLMRouter fallback, JSON + regex tag extraction
- POST /recipes/saved/{recipe_id}/classify-style: Paid/BYOK tier gate,
  fetches recipe from corpus, returns {suggested_tags:[...]}
- SaveRecipeModal.vue: "Suggest tags" button with loading state; merges
  LLM suggestions into existing tags without overwriting user's choices
- 403/empty list silently ignored — button is a no-op when tier not met

Cooked leftovers shelf-life (kiwi#112):
- app/services/leftovers_predictor.py: deterministic FDA/USDA lookup table
  with shortest-component-wins for proteins and dish-type override for
  assembled dishes; special entries for ceviche (2d, acid != heat),
  fermented/cured (kimchi 14d, confit/lardo 7d), soups, rice, pasta, etc.
- POST /recipes/{recipe_id}/leftovers: free tier, no gate
- RecipeDetailPanel.vue: shelf-life section appears after "I cooked this"
  with fridge/freeze days, freeze-by advice, per-instance dismiss; calm
  framing per no-panic UX policy
- LeftoversResponse Pydantic schema added to recipe.py
2026-04-25 23:18:16 -07:00
..
__init__.py chore: initial commit — kiwi Phase 2 complete 2026-03-30 22:20:48 -07:00
household.py feat: add MessageResponse schema; wire response_model on leave + remove-member endpoints 2026-04-04 22:47:39 -07:00
inventory.py feat: visual label capture for unenriched barcodes (kiwi#79) 2026-04-24 17:57:25 -07:00
label_capture.py feat: visual label capture for unenriched barcodes (kiwi#79) 2026-04-24 17:57:25 -07:00
meal_plan.py feat: wire meal planner slot editor and meal type picker 2026-04-16 14:23:38 -07:00
ocr.py chore: initial commit — kiwi Phase 2 complete 2026-03-30 22:20:48 -07:00
quality.py chore: initial commit — kiwi Phase 2 complete 2026-03-30 22:20:48 -07:00
receipt.py chore: initial commit — kiwi Phase 2 complete 2026-03-30 22:20:48 -07:00
recipe.py feat(recipes): LLM style classifier (#27) + cooked leftovers shelf-life (#112) 2026-04-25 23:18:16 -07:00
saved_recipe.py feat: saved recipes, recipe browser, and recipe detail panel 2026-04-08 14:35:02 -07:00
shopping.py fix: recipe enrichment backfill, main_ingredient browser domain, bug batch 2026-04-18 15:38:56 -07:00