feat: pantry drag-to-recategorize, always-show categories, auto-categorize; fix category label + merge quantity mismatch (v0.84.0)

Pantry items can now be dragged between category sections (dnd-kit, cross-category drop only — no sortOrder column to persist within-category reorder). All 9 categories always render as sections, even empty ones, instead of only ones with items. Added an "Auto-categorize" action mirroring the shopping list's guessAisle heuristic.

Fixed: the edit dialog's category dropdown displayed the raw stored slug/"__other__" instead of its translated label (SelectValue needs a value->label render function, same pattern shopping-list-view.tsx already used elsewhere). Fixed: merge-duplicates now merges by ingredient identity alone, not identity+unit — two rows merge even with mismatched, missing, or different-unit quantities, only summing when safe to do so.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Arnaud
2026-07-24 15:51:05 +02:00
parent 93936eae10
commit ebe3216c04
11 changed files with 218 additions and 69 deletions
+10
View File
@@ -2,6 +2,16 @@
All notable changes to Epicure are documented here. This file is mirrored in-app at `/changelog` (and in the admin dashboard) via `apps/web/lib/changelog.ts` — update both together.
## 0.84.0 — 2026-07-24 20:00
### Added
- Pantry items can be dragged between categories, like the shopping list. All 9 categories now always show (even empty ones) as drop targets, instead of only categories that already have items.
- Pantry has an "Auto-categorize" action, same heuristic as the shopping list's.
### Fixed
- Pantry item edit dialog's category dropdown showed the raw stored value (e.g. "__other__", "produce") instead of its translated label.
- Merging duplicate pantry items now works even when quantities differ, are missing, or use different units — previously two rows only merged if their units matched exactly, so "garlic" (no quantity) and "ail" (3, no unit) wouldn't merge at all.
## 0.83.0 — 2026-07-24 19:00
### Added