- #10 Ramble box: new /ramble sticky-note board (post/pin/archive/delete),
ported from FMB. New Ramble model + migration, /api/rambles routes, nav entry.
- #6 Dark-mode toggle: sun/moon button in the top bar (dark palette already
existed in CSS, just had no control).
- #9 Pantry pull reason: structured disposition (Immediate use / Preserved /
Gave away / Waste) on ItemLog.reason, added to single + bulk pull dialogs
and the audit payload. New migration.
- #2 Suggestions: drop the stale white-card wrapper; render SuggestionsPanel
bare like FMB so it's readable and thumbnails show.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Pantry now runs on the v1 API like Inventory/Animals: service layer in
src/lib/services/pantry.ts, pure logic + tests in src/lib/pantry/core.ts,
thin routes at /api/v1/pantry/* riding the items:* scopes. Pulls write
ItemLog type USED with a structured amount (queryable consumption).
Bulk-use runs its reads inside the transaction, accumulates repeated
pulls, and reports skipped items instead of silently dropping them —
the Pull dialog now surfaces those by name. Old /api/pantry routes
deleted.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
New "Pull from pantry" button opens a dialog where you search/filter
all items, type a quantity next to each one you're taking, pick or type
a reason, and submit all in one shot. Items with amounts entered
highlight; over-stock amounts show inline error. Backed by new
POST /api/pantry/bulk-use (transactional quantity deduction + ItemLog).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>