From 80303f7900a37c0212e48ff7e4a17f0afe71a892 Mon Sep 17 00:00:00 2001 From: dadaloop82 Date: Sat, 16 May 2026 06:32:53 +0000 Subject: [PATCH] docs(wiki): full English pass + update for v1.7.13 and built-in scale gateway MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Features.md: translate all Italian UI strings to English (chat examples, Avvia cottura → Start Cooking, Spiega → Explain, La quantità è giusta → correct) - Android-Kiosk.md: translate Italian button labels (Concedi permessi → Grant permissions, Rileva automaticamente → Auto-discover); fix REQUEST_INSTALL_PACKAGES description (OTA kiosk self-updates, not scale APK); fix REORDER_TASKS description; add 'Header Overlay Buttons' section documenting the three web overlay buttons (✕ ↻ ⚙️) and the permanent native button hiding - Scale-Gateway.md: translate Italian button labels (Cerca Bilance Bluetooth → Find Bluetooth Scales, Leggi bilancia → Read Scale, Disconnetti/Riconnetti → Disconnect/Reconnect) - FAQ.md: translate all Italian strings (AI non disponibile → AI not available, Bring! non configurato, Leggi bilancia, Carica altri → Load more); replace outdated 'Gateway install fails' section (separate APK no longer exists for kiosk users) with 'Kiosk app update fails'; update ✕ button description to reflect the new 3-button overlay (✕ ↻ ⚙️); restore missing Getting Help section - Home.md: update What's New v1.7.13 with complete list of changes; mark evershelf-scale-gateway/ as DEPRECATED in repo structure --- docs/wiki/Android-Kiosk.md | 24 +++++++++++++++++++----- docs/wiki/FAQ.md | 26 ++++++++++++-------------- docs/wiki/Features.md | 14 +++++++------- docs/wiki/Home.md | 9 ++++++--- docs/wiki/Scale-Gateway.md | 6 +++--- 5 files changed, 47 insertions(+), 32 deletions(-) diff --git a/docs/wiki/Android-Kiosk.md b/docs/wiki/Android-Kiosk.md index 68135fb..d37f645 100644 --- a/docs/wiki/Android-Kiosk.md +++ b/docs/wiki/Android-Kiosk.md @@ -36,12 +36,12 @@ Overview of what the wizard will configure. ### Step 3 — Permissions Grant camera, microphone, and storage permissions needed by the web app. -The button transforms from "Concedi permessi" to **"✅ Permessi concessi — Continua →"** (green) once all permissions are granted. +The button transforms from **"Grant permissions"** to **"✅ Permissions granted — Continue →"** (green) once all permissions are granted. ### Step 4 — Server URL Enter your EverShelf server URL (e.g. `https://192.168.1.100/dispensa`). -**Or tap "Rileva automaticamente"** to let the wizard scan your LAN: +**Or tap "Auto-discover"** to let the wizard scan your LAN: - 60 parallel threads, TCP pre-check, ports 80/443/8080/8443 - Only scans your actual Wi-Fi/Ethernet subnet (VPN and cellular interfaces ignored) - Real-time feedback as hosts are tested @@ -62,9 +62,23 @@ All done — the web app loads in full-screen kiosk mode. --- +## Header Overlay Buttons + +Three buttons are injected into the top-left of the web header by the kiosk app: + +| Button | Action | +|--------|--------| +| **✕** | Exit kiosk mode (confirmation dialog) | +| **↻** | Hard-refresh — clears WebView cache and reloads the app | +| **⚙️** | Open EverShelf Settings | + +The native Android settings button is permanently hidden once the overlay is injected — the **⚙️** web button replaces it entirely. + +--- + ## Exiting Kiosk Mode -Tap the **✕** button in the header (top-left). A confirmation dialog appears. +Tap the **✕** button in the header overlay (top-left). A confirmation dialog appears. --- @@ -133,6 +147,6 @@ Requires Android Studio or JDK 17+ with the Android SDK. | `CAMERA` | Barcode scanning and AI photo identification | | `RECORD_AUDIO` | Voice input in AI chat | | `WAKE_LOCK` | Keep the screen on | -| `REQUEST_INSTALL_PACKAGES` | Install the Scale Gateway APK | +| `REQUEST_INSTALL_PACKAGES` | Over-the-air kiosk self-updates (installs new APK from GitHub releases) | | `ACCESS_WIFI_STATE` | LAN auto-discovery | -| `REORDER_TASKS` | Bring app to foreground after gateway launch | +| `REORDER_TASKS` | Bring the kiosk app to foreground when needed | diff --git a/docs/wiki/FAQ.md b/docs/wiki/FAQ.md index be1e574..fdc71ac 100644 --- a/docs/wiki/FAQ.md +++ b/docs/wiki/FAQ.md @@ -43,15 +43,13 @@ docker compose up -d ## AI Features -### AI features don't work / "AI non disponibile" +### "AI not available" error 1. Check that `GEMINI_API_KEY` is set in `.env` 2. Verify the key is valid at [aistudio.google.com](https://aistudio.google.com) 3. Check that you haven't exceeded the free tier quota (15 req/min, 1500 req/day) 4. Look for errors in the PHP error log -### Recipe generation stops midway - This is usually a Gemini API timeout. The app streams results via SSE — if the server PHP timeout is too low, the stream is cut short. Increase `max_execution_time` in `php.ini`: ```ini @@ -62,7 +60,7 @@ max_execution_time = 120 ## Shopping List (Bring!) -### "Bring! non configurato" message in the shopping tab +### "Bring! not configured" message in the shopping tab Add your Bring! credentials to `.env`: @@ -90,7 +88,7 @@ BRING_PASSWORD=yourpassword ### Scale shows weight but form doesn't auto-fill - The auto-fill only triggers for products with unit `g` or `ml` -- Make sure you tapped "⚖️ Leggi bilancia" first to activate the scale modal +- Make sure you tapped **"⚖️ Read Scale"** first to activate the scale modal - The weight must stabilize (stay within 10g) for the countdown to start ### Bluetooth scale not appearing in the gateway app @@ -109,19 +107,19 @@ BRING_PASSWORD=yourpassword - Try entering the URL manually instead of using auto-discovery - Check that the server responds on the expected port (80/443/8080/8443) -### Gateway install fails with an error dialog +### Kiosk app update fails -The dialog shows the exact failure code. Common causes: +The kiosk checks for a new release every 6 hours and downloads it from GitHub. If the install fails: -| Code | Cause | Fix | -|------|-------|-----| -| `STATUS_FAILURE` (1) | Generic install failure — often OEM restriction | Enable "Install from unknown sources" for the kiosk app in Android Settings | -| `STATUS_FAILURE_CONFLICT` (3) | Signature mismatch with existing install | Uninstall the old gateway app, then retry | -| `STATUS_FAILURE_STORAGE` (6) | Not enough storage | Free up space on the device | +| Symptom | Fix | +|---------|-----| +| "Install from unknown sources" dialog | Enable the setting for the EverShelf Kiosk app in Android Settings | +| Persistent failure after download | Force-stop the app, clear its data, and relaunch the update flow | +| Not enough space | Free up storage on the device | ### Exit button (✕) is not visible -The ✕ button is injected into the header by the kiosk app. If the web app's header is covered or the page failed to load, try the hard refresh (↻) button. If neither is visible, triple-tap the page title area to access the developer settings. +Three buttons are always visible in the kiosk header overlay: **✕** (exit), **↻** (refresh), **⚙️** (settings). If the page failed to load entirely, tap **↻** first. If nothing is visible, restart the device. ### App is stuck in kiosk mode after a crash @@ -139,7 +137,7 @@ The version is cached by the browser. Do a hard refresh: ### Transactions are missing from the log -The log shows the last 50 entries by default. Tap "Carica altri" to load more. Entries older than the database creation date won't appear. +The log shows the last 50 entries by default. Tap **"Load more"** to load more. Entries older than the database creation date won't appear. ### "Can only undo transactions within 24 hours" diff --git a/docs/wiki/Features.md b/docs/wiki/Features.md index b2c897d..6d89a7a 100644 --- a/docs/wiki/Features.md +++ b/docs/wiki/Features.md @@ -83,9 +83,9 @@ Recipes stream live via Server-Sent Events so results appear as they are generat ### AI Chat Assistant Open **💬 Chat** to ask questions like: -- "Cosa posso fare con le uova e la pasta?" -- "Quanti giorni dura il prosciutto cotto aperto in frigo?" -- "Suggeriscimi uno spuntino veloce" +- "What can I make with eggs and pasta?" +- "How long does cooked ham last once opened in the fridge?" +- "Suggest a quick snack" The assistant knows your current inventory. @@ -121,7 +121,7 @@ Configure `BRING_EMAIL` and `BRING_PASSWORD` in `.env` to enable. ## 🍳 Cooking Mode -Start cooking mode from any recipe by tapping **▶ Avvia cottura**. +Start cooking mode from any recipe by tapping **▶ Start Cooking**. ### Features @@ -132,7 +132,7 @@ Start cooking mode from any recipe by tapping **▶ Avvia cottura**. - Custom REST endpoint (e.g. Home Assistant) - **Built-in timers** — automatic timer suggestions based on recipe text; 10-second vocal countdown warning before expiry - **Ingredient tracking** — mark ingredients as used; leftover quantities prompt a "move to another location" flow -- **Recipe completion** — "Buon appetito!" spoken on the last step +- **Recipe completion** — "Buon appetito!" *(Enjoy your meal!)* spoken on the last step --- @@ -155,8 +155,8 @@ Actions per item: Use, Throw away, Edit, Dismiss. Swipe or tap arrows to navigat Highlights suspicious quantities (e.g. "You have 0 eggs but used 12 this month"). Actions: - One-tap correction to the suggested quantity - Inline edit with free-form quantity -- "🤖 Spiega" for AI explanation -- Dismiss (with current quantity shown: "La quantità è giusta (2 pz)") +- "🤖 Explain" for AI explanation +- Dismiss (with current quantity shown: "The quantity is correct (2 pcs)") ### Anti-Waste Report diff --git a/docs/wiki/Home.md b/docs/wiki/Home.md index b56deb0..eda2336 100644 --- a/docs/wiki/Home.md +++ b/docs/wiki/Home.md @@ -47,8 +47,11 @@ All data stays on your server. No cloud, no subscriptions. ## 🆕 What's New ### v1.7.13 (2026-05-16) -- **Critical fix:** Fresh-install crash resolved — `transactions` schema was missing the `undone` column, causing a database failure on every new installation -- **Fix:** Race condition in DB migrations no longer causes `duplicate column name` errors on concurrent first requests +- **Fix:** Kiosk Settings button (⚙️) added to the web overlay — tapping the camera button no longer accidentally opens kiosk settings +- **Fix:** Opened-item expiry badge is now consistent with the top banner: low-risk items (jams, condiments) show amber ⚠️ "Check soon" instead of misleading red ⛔ "Expired" +- **Cooking Mode:** 3D wheel UI with perspective card flip, ghost steps (prev/next), float animation, and full `prefers-reduced-motion` support +- **CI:** `data/category_ai_cache.json` added to `.gitignore` +- **Critical fix (DB):** Fresh-install crash resolved — `transactions` schema was missing the `undone` column ### v1.7.12 (2026-05-13) - "Use first" banner now shows opening date and location instead of a confusing calculated expiry @@ -81,7 +84,7 @@ EverShelf/ ├── translations/ # i18n JSON files (it, en, de) ├── docs/openapi.yaml # OpenAPI 3.0 spec ├── evershelf-kiosk/ # Android kiosk app (Kotlin) -└── evershelf-scale-gateway/ # Android BLE gateway app (Kotlin) +└── evershelf-scale-gateway/ # Android BLE gateway app (Kotlin) — DEPRECATED, built into kiosk since v1.6.0 ``` --- diff --git a/docs/wiki/Scale-Gateway.md b/docs/wiki/Scale-Gateway.md index 5a44054..12f70c5 100644 --- a/docs/wiki/Scale-Gateway.md +++ b/docs/wiki/Scale-Gateway.md @@ -75,7 +75,7 @@ In EverShelf **Settings → Scale**: ### 4. Connect your scale -Tap **"Cerca Bilance Bluetooth"** (Find Bluetooth Scales). Make sure your scale is powered on. Tap it in the list to pair and connect. +Tap **"Find Bluetooth Scales"**. Make sure your scale is powered on. Tap it in the list to pair and connect. --- @@ -84,7 +84,7 @@ Tap **"Cerca Bilance Bluetooth"** (Find Bluetooth Scales). Make sure your scale When scale integration is enabled: 1. Open the **Add** or **Use** form for any product with unit `g` or `ml` -2. A **"⚖️ Leggi bilancia"** button appears +2. A **"⚖️ Read Scale"** button appears 3. Tap it — a live weight display appears with a stability indicator 4. Step on or place the product on the scale 5. When the reading stabilizes, a **5-second countdown** starts @@ -127,7 +127,7 @@ Every 6 hours the gateway app checks GitHub releases. If a newer version is avai ### Weight not appearing in EverShelf - Confirm the Gateway URL in EverShelf Settings matches the URL shown in the gateway app - Check that the Android device and the EverShelf server are on the same network -- Tap "Disconnetti / Riconnetti" in the gateway app to refresh the WebSocket connection +- Tap "Disconnect / Reconnect" in the gateway app to refresh the WebSocket connection ### "Mixed content" error in browser - Make sure you are accessing EverShelf over HTTPS (not plain HTTP)