-
released this
2026-04-25 08:46:44 -07:00 | 52 commits to main since this releasekiwi v0.6.0
New: Visual Label Capture (kiwi#79)
When a barcode scan returns no product from Open Food Facts, paid-tier users see a capture offer instead of the generic manual-entry prompt.
Flow:
- Scan unknown barcode -> offer card: calm copy, no urgency
- Tap Capture label -> camera opens on nutrition panel
- Vision model extracts name, brand, serving size, nutrition, ingredients, allergens
- Review form with amber highlights on low-confidence fields
- Save stores product in captured_products cache; future scans resolve locally
Technical highlights:
- Migrations 036-038: captured_products table, source CHECK constraints updated
- Service: app/services/label_capture.py (stub-tolerant VisionRouter, KIWI_LABEL_CAPTURE_MOCK bypass)
- Endpoints: POST /scan/label-capture, POST /scan/label-confirm
- needs_visual_capture: bool added to BarcodeScanResult
- Tier gate: visual_label_capture requires paid tier (free tier sees needs_manual_entry)
- 42 new tests, 369 total passing
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
released this
2026-04-18 15:39:55 -07:00 | 93 commits to main since this releaseWhat's new in v0.5.1
Recipe Corpus Enrichment (#108)
The recipe browser now has real data behind all 10 main ingredient categories. Previously,
recipe_browser_ftscovered only ~1,215 of 3.19M corpus recipes. After running the tag inference backfill:- 1,054,663 recipes tagged via ingredient-name signal matching
- All 3.19M rows indexed in
recipe_browser_fts - Main ingredient categories now return real results: Chicken (156K), Beef (92K), Pork (149K), Pasta (61K), etc.
Bug Fixes
- #96: Community feed response now includes
total,page, andpage_sizefields - #92: Export endpoint argument type errors fixed
- #93: Household invite store connection leak closed
Shopping List
Shopping list schema, migration, and frontend (ShoppingView, ShoppingItemRow) landed — wiring to full shopping flow continues in the next milestone.
Session Endpoint
GET /api/v1/sessionnow returns the current user's tier, auth label, and household info.Docs
User-facing documentation added under
docs/: getting-started guides, user manual, architecture reference.Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
2 downloads
-
released this
2026-04-08 22:10:36 -07:00 | 203 commits to main since this releaseWhat's New
Phase 2: Recipes & Social
- Recipe browser — browse all matched recipes in a slide-out panel with full detail view
- Saved recipes — bookmark, tag, and annotate any recipe; persistent across sessions
- Recipe detail panel — ingredients, steps, prep notes, nutrition estimates, and substitution hints
- Household / shared pantry (Premium) — invite members, share inventory across accounts
Recipe Engine
- Assembly templates: 13 cuisine-style templates (burrito, stir-fry, pasta, soup/stew, etc.) fire on role satisfaction — no corpus lookup needed
- FTS5 full-text search with synonym expansion and prep-state stripping
- LLM expiry fallback via background task scheduler (VRAM-aware, cf-core)
- Nutrition macro estimates on recipe cards
UX Improvements
- Creativity levels renamed with descriptive labels: Use What I Have / Allow Swaps / Get Creative / Surprise Me
- Inline level descriptions below selector (no hover required)
- In-app feedback FAB with status probe
- Mobile layout fixes: nav FOUC, pantry scan toggle, overflow
Accessibility (WCAG)
- Icon-only buttons now have contextual
aria-label(bookmark, dismiss, remove constraint/allergy, save toggle) aria-livepolite region announces recipe count on results update- Global
:focus-visiblering in theme.css — keyboard navigation visible everywhere
Infrastructure
- cf-core LLM router + coordinator auth wired
- Feedback endpoint migrated to cf-core router
- Household invite accept on app load via URL hash
CLOUD_MODEper-user data isolation hardened
Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
3 downloads