dependabot[bot]
1cb4ae13f1
ci: bump gradle/actions from 3 to 6
...
Bumps [gradle/actions](https://github.com/gradle/actions ) from 3 to 6.
- [Release notes](https://github.com/gradle/actions/releases )
- [Commits](https://github.com/gradle/actions/compare/v3...v6 )
---
updated-dependencies:
- dependency-name: gradle/actions
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-16 06:04:55 +00:00
github-actions[bot]
189b640309
chore: auto-merge develop → main
...
Triggered by: da4bd63 feat: professional repo cleanup + community infrastructure
2026-05-16 06:04:18 +00:00
dadaloop82
da4bd635db
feat: professional repo cleanup + community infrastructure
...
- README: remove Recent Updates section, clean roadmap (pending only),
replace Screenshots with demo link, add 6 new badges (stars, last
commit, contributors, discussions, CI), invite GIF contributions
- CHANGELOG: translate all Italian entries to English, add v1.7.13
(DB fresh-install crash fix)
- database.php: add missing 'undone' column to transactions schema;
wrap ALTER TABLE calls in try/catch to prevent race-condition errors
on concurrent first requests
- Wiki: Android-Kiosk v1.5.0 → v1.6.0, Step 5 rewritten (BLE scan,
no external APK), removed gateway troubleshooting section
- Wiki: Scale-Gateway promoted to deprecated with redirect banner
- Wiki: Home What's New updated to v1.7.12 / v1.7.13
- Wiki: Features.md, kiosk README Italian UI strings translated
- .github: add bug_report.yml, feature_request.yml issue templates,
config.yml (blank issues off, links to FAQ/Discussions/Security),
PULL_REQUEST_TEMPLATE.md with checklist
- .github: FUNDING.yml (Ko-fi), dependabot.yml (monthly action updates)
- .github/workflows/security.yml: Trivy docker + fs scan, SARIF upload
- .github/workflows/build-scale-gateway.yml: disabled (deprecated)
- SECURITY.md: responsible disclosure policy, supported versions, scope
- CODE_OF_CONDUCT.md: Contributor Covenant 2.1
- Settings UI: About section with version display, Report Bug button,
Changelog and GitHub links; reportBugManual() + _loadAboutSection()
- Translations: added 'about' key group (9 keys × 3 languages)
2026-05-16 06:02:18 +00:00
dadaloop82
ab6aca2f01
Merge branch 'develop' into main
2026-05-15 11:41:59 +00:00
dadaloop82
850c5047b8
Fix noisy consumption alerts and make predictions adaptive
2026-05-15 11:41:29 +00:00
dadaloop82
3e44f5bb24
merge: scale thresholds correction from develop
2026-05-14 14:53:45 +00:00
dadaloop82
02964ecf23
fix(scale): revert autofill min to 10g; keep 2g only for stability filter and live box
2026-05-14 14:53:42 +00:00
dadaloop82
49e5319f4c
merge: scale 2g noise filter from develop
kiosk-1.7.2
2026-05-14 14:49:58 +00:00
dadaloop82
3ebe551b9e
fix(scale): ignore weight variations < 2g everywhere (stability, live box, autofill)
2026-05-14 14:49:56 +00:00
dadaloop82
0e1eccfe33
merge: kiosk update check fixes from develop
2026-05-14 14:47:50 +00:00
dadaloop82
4624811707
fix(kiosk): periodic update check every 30min + persist pending update across restarts
2026-05-14 14:47:47 +00:00
dadaloop82
3607ebf1d7
merge: move modal fixes from develop
kiosk-1.7.1
2026-05-14 12:22:47 +00:00
dadaloop82
8bb6c01b7d
fix: move modal countdown stops on touch; vacuum btn no longer triggers native settings
2026-05-14 12:22:45 +00:00
dadaloop82
b1a882f92d
merge: kiosk crash detection from develop
2026-05-14 11:47:12 +00:00
dadaloop82
1b7b271b43
fix(kiosk): detect ANR/OOM/native crashes on restart via ApplicationExitInfo + dirty sentinel
2026-05-14 11:47:05 +00:00
dadaloop82
8d22b36b0f
merge: v1.7.12 from develop
kiosk-1.7.0
2026-05-13 11:40:27 +00:00
dadaloop82
2d70e7a688
chore: release v1.7.12 — banner aperti, fix ricette pz, fix usa-tutto
2026-05-13 11:40:05 +00:00
dadaloop82
8da627f8a6
Merge branches 'main' and 'main' of github-evershelf:dadaloop82/EverShelf
2026-05-12 15:31:40 +00:00
dadaloop82
d3492a38f7
release: v1.7.11 — scan redesign, AI OCR, anomaly fixes
2026-05-12 15:31:23 +00:00
dadaloop82
34e13075ea
chore: release v1.7.11 — scan redesign, AI OCR, anomaly fixes
2026-05-12 15:31:07 +00:00
dadaloop82
bba0f4715a
fix: remove datalist suggestions from quick-name input (scan page)
2026-05-12 15:29:40 +00:00
github-actions[bot]
e3ae2d10b2
chore: auto-merge develop → main
...
Triggered by: 696a9c6 feat: scan page redesign — fixed 2x zoom, torch, camera flip, tabs, recents, AI number OCR
2026-05-12 14:57:53 +00:00
dadaloop82
696a9c6d11
feat: scan page redesign — fixed 2x zoom, torch, camera flip, tabs, recents, AI number OCR
...
- Always-on 2x hardware zoom (CSS scale fallback)
- Torch button with toggle + visual feedback
- Camera flip (front/back) with settings persistence
- 3-tab input panel: Barcode / Name / AI
- Recent products chips (last 6 scanned, from localStorage)
- Live barcode code overlay during partial detection
- Confirm overlay (checkmark + name) on successful scan
- AI number OCR (Gemini reads barcode digits from image, shown after 4s)
- Guide corners frame in viewport
- PHP: gemini_number_ocr action + rate-limited
- Translations: new scan.* keys in it/en/de
2026-05-12 14:55:14 +00:00
github-actions[bot]
35de42657a
chore: auto-merge develop → main
...
Triggered by: 27ba417 fix: consumption predictions require >=5 txns, 7-day spread, and >=15% predicted consumption ratio
2026-05-12 14:33:12 +00:00
dadaloop82
27ba41700f
fix: consumption predictions require >=5 txns, 7-day spread, and >=15% predicted consumption ratio
2026-05-12 14:31:24 +00:00
github-actions[bot]
2f040ee041
chore: auto-merge develop → main
...
Triggered by: 2c34387 fix: remove 'untracked' anomaly direction — incomplete purchase history is normal, not an anomaly
2026-05-12 05:53:53 +00:00
dadaloop82
2c34387592
fix: remove 'untracked' anomaly direction — incomplete purchase history is normal, not an anomaly
2026-05-12 05:52:09 +00:00
dadaloop82
3e65c7ee43
Merge branch 'main' of github-evershelf:dadaloop82/EverShelf
2026-05-11 17:40:22 +00:00
dadaloop82
49ac0b4ce8
release: v1.7.10 — banner fixes, opened tracking, anomaly detection improvements
2026-05-11 17:40:13 +00:00
dadaloop82
9e2722f7a4
chore: update CHANGELOG and README for v1.7.10
2026-05-11 17:40:01 +00:00
github-actions[bot]
c47eba3ddb
chore: auto-merge develop → main
...
Triggered by: d056a6a fix: expired section hides items with quantity=0
2026-05-11 17:37:45 +00:00
dadaloop82
d056a6a116
fix: expired section hides items with quantity=0
...
Query was missing AND i.quantity > 0, so thrown-away items (qty=0)
with a past expiry_date kept appearing in the expired list.
Also cleaned up the orphan row for Aglio in the DB.
2026-05-11 17:35:53 +00:00
github-actions[bot]
cdc776d7c7
chore: auto-merge develop → main
...
Triggered by: cb39b63 fix: drastically reduce false-positive consumption anomaly banners
2026-05-11 17:33:31 +00:00
dadaloop82
cb39b63997
fix: drastically reduce false-positive consumption anomaly banners
...
Two changes:
1. Skip prediction when expected_qty=0 — model says 'should be finished'
but user simply restocked or consumed less. Not actionable.
2. Raise 'more than expected' threshold to 400% (was 30%).
Having more than expected almost always means a restock the model
doesn't know about yet — only truly extreme cases (>4x) are flagged.
'Less than expected' stays at 30% (still actionable: unregistered use).
2026-05-11 17:31:41 +00:00
github-actions[bot]
1eb7a6733c
chore: auto-merge develop → main
...
Triggered by: 5b401f8 fix: consumption predictions false positives after restocking
2026-05-11 17:26:31 +00:00
dadaloop82
5b401f8d5f
fix: consumption predictions false positives after restocking
...
Root cause: baseline was 'restockQty' (only the new items added) but
actualQty = pre-existing stock + new items → always looked like 'more than expected'.
New approach: baseline = current_qty + consumed_since_restock.
This correctly reflects the true starting point regardless of pre-existing stock,
eliminating all false positives after shopping trips.
2026-05-11 17:24:44 +00:00
github-actions[bot]
448a8237f6
chore: auto-merge develop → main
...
Triggered by: 20c1640 fix: inventory_update now records compensating transactions
2026-05-11 17:23:38 +00:00
dadaloop82
20c16401d2
fix: inventory_update now records compensating transactions
...
When a user manually edits quantity (e.g. after restocking), the diff
is recorded as 'in' or 'out' transaction with note '[Correzione manuale]'.
This prevents the anomaly detector from flagging manual edits as phantom
or missing consumption.
2026-05-11 17:21:57 +00:00
github-actions[bot]
5ffc4581f4
chore: auto-merge develop → main
...
Triggered by: a9a512e fix: clear opened_at on sealed packages row during split
2026-05-11 17:20:37 +00:00
dadaloop82
a9a512e014
fix: clear opened_at on sealed packages row during split
...
When usage splits a row into 'whole sealed packages' + 'opened fraction',
the sealed row was updated without clearing opened_at — if it had been
opened previously, the stale flag would persist and wrongly show
'aperto da N giorni' on intact packages.
Now all 3 split paths (conf early-split, conf post-split, g/ml/l split)
explicitly set opened_at = NULL on the sealed row.
2026-05-11 17:19:00 +00:00
github-actions[bot]
7cc4ce91a9
chore: auto-merge develop → main
...
Triggered by: 3391106 feat: banner opened items show 'aperto da X giorni in frigo' instead of 'scaduto'
2026-05-11 17:12:53 +00:00
dadaloop82
3391106010
feat: banner opened items show 'aperto da X giorni in frigo' instead of 'scaduto'
...
When inventory item has opened_at set, the expired banner now shows:
- Title: '[Nome] — Aperto da troppo tempo!' (instead of '— Scaduto!')
- Detail: 'Aperto da N giorni in [icon] [location] · hai ancora X'
Also removed hardcoded Italian 'scade il' string from non-opened expired detail.
2026-05-11 17:11:07 +00:00
github-actions[bot]
184042a0ae
chore: auto-merge develop → main
...
Triggered by: 85090ec fix: generic 'latte' opened shelf life 4→7 days (UHT default)
2026-05-11 17:09:26 +00:00
dadaloop82
85090ecc9f
fix: generic 'latte' opened shelf life 4→7 days (UHT default)
...
Fresh milk is explicitly matched by 'latte fresco/intero/parzial/scremato' (3 days).
Generic 'Latte' without qualifier is almost always UHT in Italian households — 7 days.
2026-05-11 17:07:59 +00:00
github-actions[bot]
27238a39cb
chore: auto-merge develop → main
...
Triggered by: 8407dea fix: editBannerNoExpiry load inventory before opening edit modal
2026-05-11 16:58:48 +00:00
github-actions[bot]
6cb7aeaf5b
chore: auto-merge develop → main
...
Triggered by: e3975b7 fix: editBannerNoExpiry called undefined openEditInventoryModal
2026-05-11 16:57:11 +00:00
dadaloop82
8407dea781
fix: editBannerNoExpiry load inventory before opening edit modal
...
currentInventory is empty on dashboard. Fetch inventory_list first
(same pattern as editReviewItem and weighBannerItem).
2026-05-11 16:57:00 +00:00
dadaloop82
e3975b7d2e
fix: editBannerNoExpiry called undefined openEditInventoryModal
...
Replace with correct editInventoryItem() call — same function used
by all other banner edit handlers.
2026-05-11 16:55:26 +00:00
github-actions[bot]
b5789bbc8b
chore: auto-merge develop → main
...
Triggered by: 38c6c5a fix: auto-create data dir on first Docker run (HY000[14])
2026-05-11 15:56:26 +00:00
dadaloop82
38c6c5aac3
fix: auto-create data dir on first Docker run (HY000[14])
...
When a Docker named volume is first mounted at /var/www/html/data,
the directory may be owned by root (the volume is created empty before
the image's chown step applies). This caused PDO::__construct to throw:
SQLSTATE[HY000][14] unable to open database file
Fix: _ensureDataDir() checks/creates the directory and attempts chmod
before every getDB() call. On subsequent calls the is_dir+is_writable
checks are O(1) stat calls with no overhead.
Fixes #34 (also closes #28 #29 #30 #31 #32 #33 )
2026-05-11 15:54:40 +00:00