2025-12-04T07:26:03Z - 2026-06-04T06:26:03Z
Overview
12 releases published by 1 user
Tag
v0.10.0
Tag
v0.9.2
Tag
v0.9.1
Tag
v0.9.0
Tag
v0.8.0
Tag
v0.7.1
Tag
v0.7.0
Release
v0.6.0
v0.6.0 - Visual Label Capture
Release
v0.5.1
v0.5.1 — Recipe Corpus Enrichment + Bug Fixes
Tag
v0.3.0
Tag
v0.5.0
Pre-release
v0.2.0
v0.2.0 — Recipe Browser, Saved Recipes, Household & Accessibility
3 pull requests merged by 1 user
Merged
#85 fix(a11y): accessibility and ND-design audit fixes (#42-#48, #54, #80)
Merged
#69 feat: Phase 2 — saved recipes, browser, accessibility, level UX
Merged
#14 feat: feedback button, cf-core env-var LLM config, mobile polish
123 issues closed from 1 user
Closed
#149 Adopt cf_core.memory (mnemo) for persistent knowledge graph
Closed
#136 fix: recipe scan 503 — three cf-orch config bugs + DocuvisionClient API mismatch
Closed
#113 feat: wire community feed posts to cf-core.activitypub (Fediverse publishing)
Closed
#119 Community recipe submission: dedup detection and variation clustering
Closed
#134 Add "Ask" tab: RAG/chat interface as third recipe discovery path
Closed
#133 L3/L4 streaming: replace raw <pre> output with skeleton + progressive reveal
Closed
#132 Find tab: invert flow — show results first, filters on demand
Closed
#131 Find tab: surface time budget filter inline (not hidden in Settings)
Closed
#129 Find tab: global active-filter bar with clear-all
Closed
#130 Browse tab: add breadcrumb above recipe grid
Closed
#128 Settings: autosave on change (remove Save button)
Closed
#124 feat: kiwi MCP for corpus DB access
Closed
#127 manage.sh: add update command (git pull + rebuild)
Closed
#126 L3/L4 recipe generation: SSE streaming for real-time token output
Closed
#125 feat: expand infer_recipe_tags.py to cover meal:Breakfast, meal:Lunch, meal:Dessert, meal:Snack, meal:Beverage
Closed
#122 Browse: meal_type categories near-empty (Lunch, Dinner, Snack, Beverage, Side Dish)
Closed
#9 Recipe scanner: photo of cookbook/recipe card/handwritten note → structured recipe + pantry cross-reference
Closed
#123 Browse: audit and enrich domain keyword lists against actual corpus distribution
Closed
#120 design: Orbitals pattern -- task/maintenance countdowns that restart from completion
Closed
#28 Saved recipes: Magpie data flywheel hook — anonymized rating/tag contribution (Cloud opt-in)
Closed
#118 Community subcategory tagging — two-layer system for user-contributed recipe categorization
Closed
#73 Wire corrections system for LLM output training data
Closed
#27 Saved recipes: LLM style auto-classifier for tag suggestions (Paid / BYOK)
Closed
#112 feat: cooked leftovers shelf-life estimator
Closed
#79 Paid: UPC visual label capture for unenriched products
Closed
#51 feature: sensory profile filter (texture, smell, noise intensity)
Closed
#50 feature: recipe time and effort signals on cards (prep time, active vs passive)
Closed
#52 feature: time-first recipe entry — 'what can I make in 20 minutes?'
Closed
#49 feature: step-by-step cooking mode in recipe detail panel
Closed
#110 UX: Review and expand alt-use ingredient definitions (secondary window coverage)
Closed
#116 Recipe corpus scalability: pre-compute browse counts + long-term search service migration
Closed
#117 Reranker: improve recipe suggestions by pantry and dietary fit
Closed
#114 feat: multi-currency support for shopping list and affiliate links
Closed
#56 feature: negative ingredient filter — 'not this today'
Closed
#76 feat: community feed — browse, publish, fork, mDNS LAN federation, Hall of Chaos
Closed
#72 feat: anonymous guest mode — grocery list without account (affiliate revenue)
Closed
#71 feature: Shopping tab — grocery list as first-class object
Closed
#83 Expiry system deep-dive: secondary use windows and ingredient-specific post-date behavior
Closed
#106 Recipe browser shows confusing zero-count categories with no explanation
Closed
#107 nginx strips port from 307 redirect Location header on no-trailing-slash requests
Closed
#98 MEDIUM: Frontend JS errors on load — e.value.filter/find/map is not a function
Closed
#99 add_inventory_item returns null product_name in create response
Closed
#88 CRITICAL: Cloud JWT validation broken — DIRECTUS_JWT_SECRET missing base64 padding
Closed
#95 MEDIUM: GET /recipes/saved/collections missing tier gate — free users can list paid feature
Closed
#97 MEDIUM: Build Your Own recipe templates render as blank cards in cloud UI
Closed
#94 MEDIUM: POST /recipes/saved/collections returns 500 — missing member_count in INSERT RETURNING
Closed
#91 HIGH: Receipt OCR background task uses store closed by FastAPI dependency
Closed
#90 HIGH: _auth_label() reports anonymous guest sessions as "authed"
Closed
#108 Recipe browser: subcategory coverage sparse — category-level fully populated
Closed
#96 MEDIUM: community/posts response shape inconsistent — total field missing in normal path
Closed
#93 HIGH: household create_invite opens Store but never closes it — connection leak
Closed
#92 HIGH: export/json calls get_saved_recipes(1000, 0) with wrong argument types
Closed
#102 BLOCKING: recipe corpus not seeded in cloud per-user DBs — all recipe features return 0 results
Closed
#105 kiwi_guest_id cookie set with Secure flag on HTTP direct access — session lost on every request
Closed
#104 Edit item modal: purchase_date change is silently discarded
Closed
#103 Inventory status filter broken: frontend sends status= but API expects item_status=
Closed
#101 OCR approval fails: receipt_ocr not valid for inventory_items.source constraint
Closed
#100 bulk-add-by-name fails: source=shopping violates DB CHECK constraint
Closed
#89 CRITICAL: bulk-add-by-name always fails — source="shopping" violates DB CHECK constraint
Closed
#86 feat: structured auth logging for log-based analytics
Closed
#53 feature: 'Surprise me' — zero-decision recipe discovery
Closed
#55 feature: recipe complexity rating visible on cards
Closed
#57 feature: 'just pick one' — zero-decision top-match mode
Closed
#58 feature: cooking time and difficulty as browser domains
Closed
#62 feature: JSON export (data portability)
Closed
#63 feature: pantry match floor filter ('can make now' toggle)
Closed
#65 feature: barcode miss fallback chain (secondary lookup)
Closed
#60 feature: waste/disposal logging
Closed
#12 Track partial consumption / sub-unit inventory for multi-pack items
Closed
#70 feat: wire cf-text for recipe suggestions, substitutions, and expiry advice
Closed
#66 feature: recipe scaling (adjust servings)
Closed
#64 feature: cook log — 'I made this' with timestamps
Closed
#59 feature: open-package state tracking (shelf life after opening)
Closed
#61 feature: relative expiry display ('expires in 5 days')
Closed
#82 Screenshots for feedback
Closed
#81 Real units
Closed
#23 Wire Forgejo Actions CI/CD workflows (.forgejo/workflows/)
Closed
#54 verify: constraint/allergy preferences persist across sessions
Closed
#80 a11y: RecipesView audit — 6 critical, 8 high, 9 medium (WCAG 2.1 AA + ND-informed)
Closed
#48 ux/nd: notes preview in saved recipe cards hard-truncated with no expand affordance
Closed
#46 ux/nd: active nutrition filters not visible when section is collapsed
Closed
#47 ux/nd: wildcard mode warning uses anxiety-inducing status-warning styling
Closed
#44 ux/nd: direct Remove button on saved recipe cards needs confirmation
Closed
#45 ux/nd: 'I cooked this' action has no undo path
Closed
#43 ux/nd: SavedRecipesPanel empty state gives no direct path to Find or Browse
Closed
#42 ux/nd: missing ingredient framing uses deficit language and warning color
Closed
#84 Expiry system deep-dive: secondary use windows and ingredient-specific post-date behavior
Closed
#77 feat: community feed — browse, publish, and fork shared meal plans + recipe outcomes
Closed
#68 feature: grocery list as first-class object
Closed
#67 fix: leftover_mode tier discrepancy — README says Premium, tiers.py says Free
Closed
#41 ux/nd: Browse tab cold start — three decisions before any recipes appear
Closed
#40 a11y: wildcard checkbox and tag inputs missing programmatic context (WCAG 3.3.2)
Closed
#5 Phase 2: Household/shared pantry — design and pricing model
Closed
#34 a11y: aria-live missing on dynamic recipe results and status messages (WCAG 4.1.3)
Closed
#35 a11y: icon-only buttons have inadequate accessible names (WCAG 4.1.2)
Closed
#36 a11y: focus-visible styles missing or insufficient on custom button variants (WCAG 2.4.7)
Closed
#38 a11y: SavedRecipesPanel selects have no accessible labels (WCAG 3.3.2)
Closed
#39 a11y: star rating widget missing group role and aria-pressed state (WCAG 1.3.1)
Closed
#37 a11y: ingredient checkboxes had empty label elements (WCAG 3.3.2, 4.1.2)
Closed
#33 a11y: prefers-reduced-motion not respected — animations fire unconditionally (WCAG 2.3.3)
Closed
#32 a11y: tab bar missing full ARIA semantics (WCAG 4.1.2)
Closed
#31 a11y: Escape key does not close any modal (WCAG 2.1.1)
Closed
#29 a11y: remove pulse-urgent class — safety policy violation
Closed
#30 a11y: modal focus management — focus must enter/exit all dialogs (WCAG 2.4.3)
Closed
#24 Saved recipes: save, notes, star rating, manual style tags (Free tier)
Closed
#26 Saved recipes: named collections / folder organization (Paid tier)
Closed
#25 Recipe browser: domain/category navigation with pantry match badges (Free tier)
Closed
#18 Shopping mode: add purchased ingredients to pantry
Closed
#22 feat: wire Amazon Associates affiliate links into ingredient shopping URLs
Closed
#20 Recipe source links — link back to original food.com / allrecipes entry
Closed
#21 In-results recipe filtering and search
Closed
#17 Save / bookmark recipes for later
Closed
#19 Grocery list export — share or copy shopping list for a recipe
Closed
#16 Cook log UI — view and manage cooking history
Closed
#13 Pick up cf-core env-var LLM config + coordinator auth (local-first arch)
Closed
#15 [smoke] PR#14 test
Closed
#1 Menagerie alignment review — architecture, conventions, and shared patterns
Closed
#3 Phase 2: CF-core deep integration
Closed
#7 test: wire cf-orch agent registration into compose stack
Closed
#10 Wire receipt OCR to cf-docuvision managed service
Closed
#8 Recipe engine: dietary constraints, glycemic limiter, and nutrition panel
Closed
#4 Phase 3: Kiwi-specific features (recipe engine)
Closed
#2 Phase 1: Transplant Thoth source into Kiwi
141 issues created by 1 user
Opened
#1 Menagerie alignment review — architecture, conventions, and shared patterns
Opened
#2 Phase 1: Transplant Thoth source into Kiwi
Opened
#3 Phase 2: CF-core deep integration
Opened
#4 Phase 3: Kiwi-specific features (recipe engine)
Opened
#5 Phase 2: Household/shared pantry — design and pricing model
Opened
#7 test: wire cf-orch agent registration into compose stack
Opened
#8 Recipe engine: dietary constraints, glycemic limiter, and nutrition panel
Opened
#9 Recipe scanner: photo of cookbook/recipe card/handwritten note → structured recipe + pantry cross-reference
Opened
#10 Wire receipt OCR to cf-docuvision managed service
Opened
#12 Track partial consumption / sub-unit inventory for multi-pack items
Opened
#13 Pick up cf-core env-var LLM config + coordinator auth (local-first arch)
Opened
#15 [smoke] PR#14 test
Opened
#16 Cook log UI — view and manage cooking history
Opened
#17 Save / bookmark recipes for later
Opened
#18 Shopping mode: add purchased ingredients to pantry
Opened
#19 Grocery list export — share or copy shopping list for a recipe
Opened
#20 Recipe source links — link back to original food.com / allrecipes entry
Opened
#21 In-results recipe filtering and search
Opened
#22 feat: wire Amazon Associates affiliate links into ingredient shopping URLs
Opened
#23 Wire Forgejo Actions CI/CD workflows (.forgejo/workflows/)
Opened
#24 Saved recipes: save, notes, star rating, manual style tags (Free tier)
Opened
#25 Recipe browser: domain/category navigation with pantry match badges (Free tier)
Opened
#26 Saved recipes: named collections / folder organization (Paid tier)
Opened
#27 Saved recipes: LLM style auto-classifier for tag suggestions (Paid / BYOK)
Opened
#28 Saved recipes: Magpie data flywheel hook — anonymized rating/tag contribution (Cloud opt-in)
Opened
#30 a11y: modal focus management — focus must enter/exit all dialogs (WCAG 2.4.3)
Opened
#29 a11y: remove pulse-urgent class — safety policy violation
Opened
#32 a11y: tab bar missing full ARIA semantics (WCAG 4.1.2)
Opened
#31 a11y: Escape key does not close any modal (WCAG 2.1.1)
Opened
#33 a11y: prefers-reduced-motion not respected — animations fire unconditionally (WCAG 2.3.3)
Opened
#35 a11y: icon-only buttons have inadequate accessible names (WCAG 4.1.2)
Opened
#34 a11y: aria-live missing on dynamic recipe results and status messages (WCAG 4.1.3)
Opened
#36 a11y: focus-visible styles missing or insufficient on custom button variants (WCAG 2.4.7)
Opened
#37 a11y: ingredient checkboxes had empty label elements (WCAG 3.3.2, 4.1.2)
Opened
#38 a11y: SavedRecipesPanel selects have no accessible labels (WCAG 3.3.2)
Opened
#39 a11y: star rating widget missing group role and aria-pressed state (WCAG 1.3.1)
Opened
#41 ux/nd: Browse tab cold start — three decisions before any recipes appear
Opened
#40 a11y: wildcard checkbox and tag inputs missing programmatic context (WCAG 3.3.2)
Opened
#42 ux/nd: missing ingredient framing uses deficit language and warning color
Opened
#43 ux/nd: SavedRecipesPanel empty state gives no direct path to Find or Browse
Opened
#45 ux/nd: 'I cooked this' action has no undo path
Opened
#44 ux/nd: direct Remove button on saved recipe cards needs confirmation
Opened
#47 ux/nd: wildcard mode warning uses anxiety-inducing status-warning styling
Opened
#46 ux/nd: active nutrition filters not visible when section is collapsed
Opened
#49 feature: step-by-step cooking mode in recipe detail panel
Opened
#48 ux/nd: notes preview in saved recipe cards hard-truncated with no expand affordance
Opened
#51 feature: sensory profile filter (texture, smell, noise intensity)
Opened
#50 feature: recipe time and effort signals on cards (prep time, active vs passive)
Opened
#53 feature: 'Surprise me' — zero-decision recipe discovery
Opened
#52 feature: time-first recipe entry — 'what can I make in 20 minutes?'
Opened
#55 feature: recipe complexity rating visible on cards
Opened
#54 verify: constraint/allergy preferences persist across sessions
Opened
#56 feature: negative ingredient filter — 'not this today'
Opened
#57 feature: 'just pick one' — zero-decision top-match mode
Opened
#58 feature: cooking time and difficulty as browser domains
Opened
#59 feature: open-package state tracking (shelf life after opening)
Opened
#61 feature: relative expiry display ('expires in 5 days')
Opened
#60 feature: waste/disposal logging
Opened
#62 feature: JSON export (data portability)
Opened
#63 feature: pantry match floor filter ('can make now' toggle)
Opened
#65 feature: barcode miss fallback chain (secondary lookup)
Opened
#66 feature: recipe scaling (adjust servings)
Opened
#64 feature: cook log — 'I made this' with timestamps
Opened
#68 feature: grocery list as first-class object
Opened
#67 fix: leftover_mode tier discrepancy — README says Premium, tiers.py says Free
Opened
#70 feat: wire cf-text for recipe suggestions, substitutions, and expiry advice
Opened
#71 feature: Shopping tab — grocery list as first-class object
Opened
#72 feat: anonymous guest mode — grocery list without account (affiliate revenue)
Opened
#73 Wire corrections system for LLM output training data
Opened
#74 ops: set up affiliate accounts for shopping list integration
Opened
#76 feat: community feed — browse, publish, fork, mDNS LAN federation, Hall of Chaos
Opened
#77 feat: community feed — browse, publish, and fork shared meal plans + recipe outcomes
Opened
#79 Paid: UPC visual label capture for unenriched products
Opened
#80 a11y: RecipesView audit — 6 critical, 8 high, 9 medium (WCAG 2.1 AA + ND-informed)
Opened
#81 Real units
Opened
#82 Screenshots for feedback
Opened
#83 Expiry system deep-dive: secondary use windows and ingredient-specific post-date behavior
Opened
#84 Expiry system deep-dive: secondary use windows and ingredient-specific post-date behavior
Opened
#86 feat: structured auth logging for log-based analytics
Opened
#87 easter egg: BotW-style cooking animation on community meal post confirmation
Opened
#89 CRITICAL: bulk-add-by-name always fails — source="shopping" violates DB CHECK constraint
Opened
#88 CRITICAL: Cloud JWT validation broken — DIRECTUS_JWT_SECRET missing base64 padding
Opened
#93 HIGH: household create_invite opens Store but never closes it — connection leak
Opened
#91 HIGH: Receipt OCR background task uses store closed by FastAPI dependency
Opened
#90 HIGH: _auth_label() reports anonymous guest sessions as "authed"
Opened
#92 HIGH: export/json calls get_saved_recipes(1000, 0) with wrong argument types
Opened
#95 MEDIUM: GET /recipes/saved/collections missing tier gate — free users can list paid feature
Opened
#97 MEDIUM: Build Your Own recipe templates render as blank cards in cloud UI
Opened
#96 MEDIUM: community/posts response shape inconsistent — total field missing in normal path
Opened
#94 MEDIUM: POST /recipes/saved/collections returns 500 — missing member_count in INSERT RETURNING
Opened
#98 MEDIUM: Frontend JS errors on load — e.value.filter/find/map is not a function
Opened
#99 add_inventory_item returns null product_name in create response
Opened
#100 bulk-add-by-name fails: source=shopping violates DB CHECK constraint
Opened
#101 OCR approval fails: receipt_ocr not valid for inventory_items.source constraint
Opened
#102 BLOCKING: recipe corpus not seeded in cloud per-user DBs — all recipe features return 0 results
Opened
#103 Inventory status filter broken: frontend sends status= but API expects item_status=
Opened
#104 Edit item modal: purchase_date change is silently discarded
Opened
#105 kiwi_guest_id cookie set with Secure flag on HTTP direct access — session lost on every request
Opened
#106 Recipe browser shows confusing zero-count categories with no explanation
Opened
#107 nginx strips port from 307 redirect Location header on no-trailing-slash requests
Opened
#108 Recipe browser: subcategory coverage sparse — category-level fully populated
Opened
#110 UX: Review and expand alt-use ingredient definitions (secondary window coverage)
Opened
#111 Easter egg: BotW-style cooking animation for secondary-state items
Opened
#112 feat: cooked leftovers shelf-life estimator
Opened
#113 feat: wire community feed posts to cf-core.activitypub (Fediverse publishing)
Opened
#114 feat: multi-currency support for shopping list and affiliate links
Opened
#115 feat: weekly ingredient challenges (Iron Chef-style, collaborative)
Opened
#116 Recipe corpus scalability: pre-compute browse counts + long-term search service migration
Opened
#117 Reranker: improve recipe suggestions by pantry and dietary fit
Opened
#118 Community subcategory tagging — two-layer system for user-contributed recipe categorization
Opened
#119 Community recipe submission: dedup detection and variation clustering
Opened
#120 design: Orbitals pattern -- task/maintenance countdowns that restart from completion
Opened
#121 research: ND community review of sensory taxonomy (texture, smell, noise)
Opened
#122 Browse: meal_type categories near-empty (Lunch, Dinner, Snack, Beverage, Side Dish)
Opened
#123 Browse: audit and enrich domain keyword lists against actual corpus distribution
Opened
#124 feat: kiwi MCP for corpus DB access
Opened
#125 feat: expand infer_recipe_tags.py to cover meal:Breakfast, meal:Lunch, meal:Dessert, meal:Snack, meal:Beverage
Opened
#126 L3/L4 recipe generation: SSE streaming for real-time token output
Opened
#127 manage.sh: add update command (git pull + rebuild)
Opened
#128 Settings: autosave on change (remove Save button)
Opened
#129 Find tab: global active-filter bar with clear-all
Opened
#130 Browse tab: add breadcrumb above recipe grid
Opened
#131 Find tab: surface time budget filter inline (not hidden in Settings)
Opened
#132 Find tab: invert flow — show results first, filters on demand
Opened
#133 L3/L4 streaming: replace raw <pre> output with skeleton + progressive reveal
Opened
#134 Add "Ask" tab: RAG/chat interface as third recipe discovery path
Opened
#135 Integrate task-model assignment routing via cf-orch /api/inference/task
Opened
#136 fix: recipe scan 503 — three cf-orch config bugs + DocuvisionClient API mismatch
Opened
#137 feat(pipeline): live Purple Carrot scraper via Playwright virtual desktop
Opened
#138 feat(recipes): add meal-prep-friendly tag to recipe engine
Opened
#139 feat(recipe-detail): show source attribution at bottom of recipe card
Opened
#140 feat(tiers): gate LLM calls at Free tier; route Paid+ through public cf-orch
Opened
#141 Pipeline scripts: write structured logs to shared dir for Turnstone training
Opened
#142 Receipt capture: forward parsed grocery receipts to Crossbill
Opened
#143 Can't load ingredients on demo instance
Opened
#144 Corpus DB hot-reload: pick up weekly Purple Carrot additions without container restart
Opened
#145 chore: remove 86 MagicMock database files from repo root (pytest leak)
Opened
#146 feat: flavor molecule RAG — ingredient pairing and substitution via FlavorDB compound vectors
Opened
#147 feat: cooking rescue assistant — fix over-salted, over-soured, over-spiced dishes, with honest "give up" guidance
Opened
#148 Add tesseract.js for client-side receipt OCR (privacy-first, local image processing)
Opened
#149 Adopt cf_core.memory (mnemo) for persistent knowledge graph