From 4e506614833f59f65704b2cd1c2b153d513ab058 Mon Sep 17 00:00:00 2001
From: pyr0ball
Date: Mon, 11 May 2026 12:41:58 -0700
Subject: [PATCH] =?UTF-8?q?feat(find):=20invert=20flow=20=E2=80=94=20auto-?=
=?UTF-8?q?suggest=20on=20tab=20open,=20collapsible=20Refine=20panel=20(cl?=
=?UTF-8?q?oses=20#132)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Auto-suggest (L1/L2 only):
When the Find tab is activated with a non-empty pantry and no existing
results, suggestion fires immediately without user action. L3/L4 are
excluded to avoid unintended VRAM allocation and AI quota charges.
After the first auto-suggest completes, the Refine panel collapses so
the results are the first thing the user sees.
Live re-suggest (L1/L2 only):
A single filterKey computed wraps all filter state as JSON. Any filter
change while on the Find tab with existing results triggers a debounced
(1.2s) re-suggest, keeping the result list live without button clicks.
Refine collapsible:
Time budget, Dietary preferences, and Nutrition/Advanced filters are
wrapped in a v-show panel controlled by filtersOpen (persisted to
localStorage under kiwi:find_filters_open, default open). Level
selector, Hard Day Mode, and the Suggest button remain always visible.
Toggle button shows active filter count badge when any filter is set.
---
frontend/src/components/RecipesView.vue | 112 ++++++++++++++++++++++++
1 file changed, 112 insertions(+)
diff --git a/frontend/src/components/RecipesView.vue b/frontend/src/components/RecipesView.vue
index eb996ab..b946918 100644
--- a/frontend/src/components/RecipesView.vue
+++ b/frontend/src/components/RecipesView.vue
@@ -147,6 +147,19 @@
Tap "Find recipes" again to apply.