Adds 'Best match' sort button to the recipe browser. When selected, recipes are ordered by the fraction of their ingredients that are in the user's pantry. - store.py: _browse_by_match() pushes match_pct computation into SQL via json_each() so ORDER BY can sort the full result set before LIMIT/OFFSET pagination - recipes.py: extends sort pattern validation to accept 'match'; falls back to default when no pantry_items provided - RecipeBrowserPanel.vue: adds 'Best match' button (disabled when pantry empty); watcher auto-engages match sort when pantry goes from empty to non-empty |
||
|---|---|---|
| .. | ||
| api | ||
| core | ||
| db | ||
| models | ||
| services | ||
| staples | ||
| static | ||
| styles | ||
| tasks | ||
| utils | ||
| __init__.py | ||
| cloud_session.py | ||
| main.py | ||
| tiers.py | ||