# Changelog All notable changes to EverShelf will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [1.3.0] - 2026-04-18 ### Added - **Expired product banner** — Dashboard notifications for expired products with use, throw away, edit, and dismiss actions - **Expiring soon banner** — Dashboard notifications for products expiring within 3 days with use, edit, and dismiss actions - **Priority-sorted notifications** — Banner alerts sorted by urgency: expired > expiring > suspicious quantities > consumption predictions - **Swipe navigation** — Touch swipe left/right to browse banner notifications, with dot indicators and arrow buttons - **Quick-access buttons** — Inventory page shows 4 recently used and up to 8 most popular products for quick selection - **Recent & popular products API** — New `recent_popular_products` endpoint - **Auto-refresh** — Banner notifications refresh every 5 minutes while on the dashboard - **Edit from expiry banner** — Correct expiry dates directly from expired/expiring notifications ### Fixed - **Negative scale values** — BLE scale readings with negative weight are now ignored - **Banner re-appearing after edit** — Editing from a banner now persists the confirmation so it doesn't reappear on dashboard reload - **False consumption predictions** — Manual inventory edits (updated_at > last restock) now use the correct baseline for prediction calculations - **Kiosk overlay blocking header** — Removed injected exit/refresh buttons from the web app header in kiosk mode ## [1.2.0] - 2026-04-13 ### Changed - **Project renamed** from "Dispensa Manager" to **EverShelf** - Contact email updated to `evershelfproject@gmail.com` - Docker service, container, and volume renamed to `evershelf` - SQLite database renamed from `dispensa.db` to `evershelf.db` - All localStorage keys migrated: `dispensa_*` → `evershelf_*` - Apache config file renamed to `evershelf.conf` - CI workflow Docker image/container names updated - App name updated in all translations (it, en, de) - Navigation title updated to EverShelf across all languages ### Added - Version badge (`v1.2.0`) in the app header ### Fixed - JS file truncation caused by `sed` in-place edit on large files - Browser cache invalidation via bumped asset version strings (`?v=20260413a`) ## [1.0.0] - 2026-04-10 ### Added - Complete pantry inventory management (Pantry, Fridge, Freezer, Other) - Barcode scanning with QuaggaJS - Open Food Facts barcode lookup - Google Gemini AI integration (product identification, expiry reading, recipes, chat) - Bring! shopping list integration - Smart shopping predictions with cron-based caching - Cooking mode with step-by-step guidance and TTS support - Opened product tracking with reduced shelf-life calculation - Vacuum-sealed product support with extended expiry - Waste vs. consumption tracking (30-day chart) - Expired product safety assessment by category - Weekly meal plan configuration - DupliClick online grocery ordering integration - PWA support (installable, mobile-first) - Local database backup script - Multi-device settings sync via SQLite ### Security - Centralized `.env` configuration (secrets never in code) - Removed all hardcoded credentials and personal data - Input validation on inventory operations - Parameterized SQL queries throughout