9371df1c95
feat: recipe engine Phase 3 — StyleAdapter, LLM levels 3-4, user settings
...
Task 13: StyleAdapter with 5 cuisine templates (Italian, Latin, East Asian,
Eastern European, Mediterranean). Each template includes weighted method_bias
(sums to 1.0), element-filtered aromatics/depth/structure helpers, and
seasoning/finishing-fat vectors. StyleTemplate is a fully immutable frozen
dataclass with tuple fields.
Task 14: LLMRecipeGenerator for Levels 3 and 4. Level 3 builds a structured
element-scaffold prompt; Level 4 generates a minimal wildcard prompt (<1500
chars). Allergy hard-exclusion wired through RecipeRequest.allergies into
both prompt builders and the generate() call path. Parsed LLM response
(title, ingredients, directions, notes) fully propagated to RecipeSuggestion.
Task 15: User settings key-value store. Migration 012 adds user_settings
table. Store.get_setting / set_setting with upsert. GET/PUT /settings/{key}
endpoints with Pydantic SettingBody, key allowlist, get_session dependency.
RecipeEngine reads cooking_equipment from settings when hard_day_mode=True.
55 tests passing.
2026-03-31 14:15:18 -07:00
0d65744cb6
feat: StyleAdapter — 5 cuisine templates with element dimension biasing
2026-03-31 12:54:42 -07:00
ea22dc8b47
fix: recipes endpoint — inject session tier before all gate checks
2026-03-31 12:52:10 -07:00
ce61b5f422
feat: recipe + staple API endpoints with tier gating
2026-03-31 12:49:38 -07:00
3943a8c99d
fix: grocery_links — guard against empty ingredient names in build_links
2026-03-31 12:44:58 -07:00
e8fb57f6a2
feat: RecipeEngine Level 1-2 — grocery links + affiliate deeplink builder
...
Add GroceryLink schema model and grocery_links field to RecipeResult.
Introduce GroceryLinkBuilder service (Amazon Fresh, Walmart, Instacart)
using env-var affiliate tags; no links emitted when tags are absent.
Wire link builder into RecipeEngine.suggest() for levels 1-2.
Add test_grocery_links_free_tier to verify structure contract.
35 tests passing.
2026-03-31 12:23:07 -07:00
37737b06de
feat: RecipeEngine Level 1-2 — corpus match, substitution, grocery list, hard day mode
2026-03-31 11:50:28 -07:00
6a54204cfc
fix: store — deserialize recipe JSON columns in _row_to_dict
2026-03-31 11:33:49 -07:00
3c4f568b3e
feat: store — recipe search, rate-limit check, substitution feedback logging
2026-03-31 11:29:54 -07:00
3527d61655
fix: test fixture — add protein_delta to substitution_pairs inserts
2026-03-30 23:16:15 -07:00
96850c6d2a
feat: SubstitutionEngine — deterministic swap candidates with compensation hints
2026-03-30 23:13:49 -07:00
e44d36e32f
fix: pipeline scripts — connection safety, remove unused recipes_path arg, fix inserted counter, pre-load profile index
2026-03-30 23:10:52 -07:00
e57ae74e27
fix: staple library — consistent tofu_firm slug, load error handling, typed yield_formats, expanded test coverage
2026-03-30 23:10:51 -07:00
a03807951b
fix: ElementClassifier — guard empty input, safe JSON decode, dedup heuristic elements, strengthen test assertions
2026-03-30 23:10:49 -07:00
727336fab9
feat: staple library -- seitan, tempeh, firm tofu with yield format profiles
2026-03-30 23:01:52 -07:00
e377bd85aa
feat: ElementClassifier -- ingredient element tagging with heuristic fallback
2026-03-30 22:59:46 -07:00
bad6dd175c
feat: data pipeline -- recipe corpus + substitution pair derivation
2026-03-30 22:55:41 -07:00
27ec14b40f
feat: tiers -- leftover_mode rate-limited free, style_picker paid+, staple_library free
2026-03-30 22:50:35 -07:00
59b6a8265f
feat: data pipeline -- FlavorGraph molecule index builder
2026-03-30 22:46:53 -07:00
97203313c1
feat: data pipeline -- USDA FDC ingredient index builder
2026-03-30 22:44:25 -07:00
e56881d943
feat: migrations 005-011 — fix receipts column bug + recipe engine tables
2026-03-30 22:33:25 -07:00
18fde9747f
chore: add recipe engine pipeline dependencies
2026-03-30 22:30:05 -07:00
8cbde774e5
chore: initial commit — kiwi Phase 2 complete
...
Pantry tracker app with:
- FastAPI backend + Vue 3 SPA frontend
- SQLite via circuitforge-core (migrations 001-005)
- Inventory CRUD, barcode scan, receipt OCR pipeline
- Expiry prediction (deterministic + LLM fallback)
- CF-core tier system integration
- Cloud session support (menagerie)
2026-03-30 22:20:48 -07:00