github-actions[bot]
6929a226b9
chore: auto-merge develop → main
...
Triggered by: 93684c5 ux: merge vacuum sealed question into move-after-use modal
2026-05-10 13:25:21 +00:00
dadaloop82
93684c5842
ux: merge vacuum sealed question into move-after-use modal
...
Instead of a separate floating prompt after use, the vacuum sealed checkbox
is now shown directly inside the 'where to put the rest?' modal:
- Always shown for container-type units (conf/g/kg/ml/l) or if previously sealed
- Pre-checked when the item was already vacuum sealed (semi-automatic)
- Saving on 'rimani qui' button also persists the vacuum state
- Saves one step: user answers location + vacuum in a single interaction
2026-05-10 13:23:40 +00:00
github-actions[bot]
7913bf4de4
chore: auto-merge develop → main
...
Triggered by: 75ca49a fix: smart shopping family suppression, shelf life pre-warming (v1.7.7)
2026-05-10 13:20:28 +00:00
dadaloop82
75ca49ac4e
fix: smart shopping family suppression, shelf life pre-warming (v1.7.7)
...
- Remove recentlyExhausted bypass from shopping_name family suppression:
products recently exhausted (<14d) were incorrectly flagged as critical
even when the same family had ample stock (Yogurt 2002g, Affettato 1022g,
Pane 400g). recentlyExhausted now only bypasses loose token-based coverage.
- Add prewarmShelfLifeCache() in cron: pre-warms opened shelf life via
Gemini AI (max 5 items/cycle) so the UI never blocks on first load.
2026-05-10 13:18:41 +00:00
github-actions[bot]
3a9051e8c8
chore: auto-merge develop → main
...
Triggered by: ed447d5 fix: codebase audit fixes — indexes, daily_rate, anomaly key, CSRF, chat pruning, shopping_name
2026-05-10 11:27:50 +00:00
dadaloop82
ed447d5811
fix: codebase audit fixes — indexes, daily_rate, anomaly key, CSRF, chat pruning, shopping_name
...
## v1.7.6
- DB: fix shopping_name Pi→Piadina, Grana→Formaggio, Prosciutto cotto→Affettato, Panna acida→Panna
- DB: composite indexes idx_transactions_type_date + idx_transactions_pid_type_undone (+ migration)
- PHP: daily_rate uses first_in→last_activity window (not first_in→now)
- PHP: anomaly dismiss key uses product_id+direction (stable, not product_id+round(expected))
- PHP: smart shopping — products exhausted within 14 days bypass token/family suppression
- PHP: chat pruning — DELETE messages beyond 200 after each chatSave()
- PHP: getStats() — 5 queries → 1 consolidated query with subselects
- PHP: bringCleanupObsolete — 300ms delay between bulk removals
- PHP: CSRF guard — POST write actions require X-EverShelf-Request:1 or Content-Type:application/json
- JS: api() — sends X-EverShelf-Request:1 on all POST requests
- JS: _opLog — prunes entries older than 30 days in addition to 200-entry cap
2026-05-10 11:26:10 +00:00
github-actions[bot]
6284116525
chore: auto-merge develop → main
...
Triggered by: f65fb43 fix: shopping list accuracy, Bring! cleanup server-side, vacuum prompt, recipe appliances
2026-05-10 10:56:16 +00:00
dadaloop82
f65fb4365c
fix: shopping list accuracy, Bring! cleanup server-side, vacuum prompt, recipe appliances
...
## v1.7.5
### Added
- Vacuum sealed prompt after item use (conf/weighted units, auto-dismiss 8s)
- Multi-function appliance awareness in Gemini recipe prompts (Cookeo/Bimby/Thermomix)
- Server-side Bring! cleanup in cron (no client page load required)
- shopping_name field in inventory_list API response
### Fixed
- Bring! cleanup: false token match (Succo/Frutta from product name tokens)
- Bring! cleanup: expired item with fresh family stock no longer flagged critical (Verdure)
- Bring! remove: catalog items now removed via German key fallback (Formaggio→Käse)
- Shopping list: isExpiringSoon false positives (requires pctLeft < 50%)
- Shopping list: expired batch suppressed when fresh restock >= 50%
- Cross-device cleanup: detect app-added items via spec markers not localStorage
- API fetch: cache: 'no-store' on all api() calls
- Shopping page: 45s polling for multi-client sync
2026-05-10 10:54:35 +00:00
github-actions[bot]
1102579ea8
chore: auto-merge develop → main
...
Triggered by: 10114da errors: report EVERY server/gateway error to GitHub Issues
2026-05-08 11:35:47 +00:00
dadaloop82
10114dae50
errors: report EVERY server/gateway error to GitHub Issues
...
PHP api/index.php:
- DB connection failure (500) now calls _phpErrorReport()
- Main router catch-all (500) now calls _phpErrorReport()
- undoTransaction DB error (500) now calls _phpErrorReport()
PHP api/cron_smart_shopping.php:
- cron Throwable catch now calls _phpErrorReport() before exit(1)
(fires even in CRON_MODE since _phpErrorReport() has its own guard)
Scale Gateway GatewayWebSocketServer.kt:
- onError() now calls ErrorReporter.report(ex, ...) in addition to Log.e
Combined with previous kiosk commit, every error path in the entire
EverShelf stack now sends an automatic GitHub Issue.
2026-05-08 11:34:06 +00:00
github-actions[bot]
9ab49c1d41
chore: auto-merge develop → main
...
Triggered by: 96d3514 kiosk: report ALL crashes via ErrorReporter
2026-05-08 11:29:01 +00:00
dadaloop82
96d3514c38
kiosk: report ALL crashes via ErrorReporter
...
- onRenderProcessGone: WebView renderer crash/OOM kill now reported
and Activity is recreated automatically (no more silent crash)
- onReceivedHttpError: HTTP 5xx from server now reported
- onLowMemory: system low-memory event reported
- onTrimMemory: moderate+ memory trim events reported
Every error path in the kiosk now sends an auto-report issue.
2026-05-08 11:27:28 +00:00
dadaloop82
584fcf5fed
Merge develop: fix price calc (pkgUnit fallback + fuzzy lookup)
2026-05-08 06:21:40 +00:00
dadaloop82
336d9091be
fix: pkgUnit fallback for /kg+/L, fuzzy smart lookup by word-prefix
2026-05-08 06:21:35 +00:00
dadaloop82
fa9bafef8f
Merge develop: fix shopping price calculations
2026-05-08 06:11:14 +00:00
dadaloop82
3e6e8dc0c7
fix: pz×container multiplication, approx badge for null-total items
2026-05-08 06:11:09 +00:00
dadaloop82
5201fb7c58
Merge develop: fix shopping price calc + use-all UX
2026-05-08 06:02:45 +00:00
dadaloop82
be8dfe9e1e
fix: shopping price calc — null for unconvertible /kg items, resolved qty in response/badge
2026-05-08 06:02:40 +00:00
dadaloop82
07e9db3442
Merge develop: fix use-all confirm HTML + disambiguation UX
2026-05-08 05:48:04 +00:00
dadaloop82
7cb1dfe285
fix: no HTML in use-all confirm dialog; rework disambiguation UX flow
2026-05-08 05:48:00 +00:00
dadaloop82
ef9a8c5c2f
fix: price crash with kg-priced items
2026-05-07 20:56:06 +00:00
dadaloop82
f4dbd151a8
fix: getAllShoppingPrices TypeError on null estimated_total for /kg items; fallback to 1-unit price
2026-05-07 20:56:03 +00:00
dadaloop82
705e1f2d95
fix: price refresh fast + button unlock
2026-05-07 20:43:28 +00:00
dadaloop82
4f98a63414
fix: refresh btn busts only total cache (fast); fix _pricesFetching button lock
2026-05-07 20:43:26 +00:00
dadaloop82
d766786e28
fix: batch price PHP timeout + refresh forces recompute
2026-05-07 20:39:46 +00:00
dadaloop82
d2e5eea05b
fix: extend PHP timeout for batch price fetch; refresh btn forces recompute
2026-05-07 20:39:44 +00:00
dadaloop82
f1237ed271
fix: prices always fetched from server, no stale client cache
2026-05-07 20:35:40 +00:00
dadaloop82
b412cc0ebe
fix: server is single source of truth for prices — no sessionStorage preload
2026-05-07 20:35:37 +00:00
dadaloop82
c28195b250
perf: batch price fetch
2026-05-07 20:29:00 +00:00
dadaloop82
7a51a44b86
perf: batch Gemini price fetch — 1 call for all missing items instead of N
2026-05-07 20:28:58 +00:00
dadaloop82
bc36c93c08
feat: screensaver shows shopping total
2026-05-07 19:29:55 +00:00
dadaloop82
c02a2fc632
feat: screensaver shopping panel with item count and estimated total
2026-05-07 19:29:53 +00:00
dadaloop82
7fd2da1d67
fix: price cache timestamp prevents stale totals across clients
2026-05-07 18:58:13 +00:00
dadaloop82
dfbdbc6efb
fix: use timestamp-based price cache validity; invalidate stale per-item cache
2026-05-07 18:58:11 +00:00
dadaloop82
12560dd4c1
release: v1.7.4 — server-side centralized price totals
2026-05-07 18:55:40 +00:00
dadaloop82
6c342a412b
fix: centralize price totals server-side; batch API call; 5-min total cache
2026-05-07 18:55:37 +00:00
dadaloop82
12934a045c
release: v1.7.4 patch — skip price reload on tab open
2026-05-07 18:50:07 +00:00
dadaloop82
a01ca583ea
fix: skip price fetch on first render when smart data empty; bump header to v1.7.4
2026-05-07 18:50:04 +00:00
dadaloop82
47fe51148f
Merge branch 'main' of github-evershelf:dadaloop82/EverShelf
2026-05-07 17:55:33 +00:00
dadaloop82
acd6ddb140
release: v1.7.4 — AI price estimation for shopping list
2026-05-07 17:55:18 +00:00
dadaloop82
13b55104a1
chore: release v1.7.4 — AI price estimation, dashboard badge, real-time total
2026-05-07 17:55:05 +00:00
github-actions[bot]
5d9eadf691
chore: auto-merge develop → main
...
Triggered by: bcd7580 fix: show price total on dashboard via sessionStorage fallback
2026-05-07 17:50:15 +00:00
github-actions[bot]
ffa3daba0e
chore: auto-merge develop → main
...
Triggered by: 1584d40 fix: replace stat-urgent with green price total badge top-right
2026-05-07 17:48:23 +00:00
dadaloop82
bcd7580729
fix: show price total on dashboard via sessionStorage fallback
2026-05-07 17:48:18 +00:00
github-actions[bot]
6c11c0105a
chore: auto-merge develop → main
...
Triggered by: 20192f9 fix: prices cached on tab switch; background price fetch every 2min; stat-price-total bigger
2026-05-07 17:47:11 +00:00
dadaloop82
1584d402e4
fix: replace stat-urgent with green price total badge top-right
2026-05-07 17:46:20 +00:00
dadaloop82
20192f902d
fix: prices cached on tab switch; background price fetch every 2min; stat-price-total bigger
2026-05-07 17:44:56 +00:00
github-actions[bot]
e06d2d506a
chore: auto-merge develop → main
...
Triggered by: b9082ea fix: log.title emoji; add price estimate total to shopping stat card
2026-05-07 17:43:27 +00:00
dadaloop82
b9082eae52
fix: log.title emoji; add price estimate total to shopping stat card
2026-05-07 17:41:41 +00:00
github-actions[bot]
60da4e6989
chore: auto-merge develop → main
...
Triggered by: 0de9a62 fix: price estimate for all items, including manually-added ones
2026-05-07 17:39:56 +00:00