chore: bench-test follow-ups — kiosk translate policy, upload-cap lockstep note, provisioning docs (NEH-185, NEH-177, NEH-187) - #246
Merged
Conversation
…ep, camera-less checkpoint, operator-card wording (NEH-187)
There was a problem hiding this comment.
Pull request overview
Adds bench-test follow-ups for kiosk behavior, upload-limit maintenance, and hardware provisioning guidance.
Changes:
- Disables Chromium translation through managed policies.
- Documents nginx/backend upload-cap lockstep.
- Clarifies camera, SSH, first-run, and operator procedures.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
scripts/start-kiosk.sh |
Removes obsolete translation flag. |
scripts/install-kiosk-service.sh |
Installs translation-disabled policies. |
README.md |
Recommends camera-less first verification. |
nginx.conf |
Documents upload-cap synchronization. |
docs/users/setting-up-gphoto2-cams.qmd |
Adds cable, USB, and power-off guidance. |
docs/users/operator-card-rionegro.qmd |
Clarifies service restart behavior. |
docs/developers/sd_card_distribution.qmd |
Requires SSH for headless provisioning. |
docs/developers/device_setup_pi5_imx519.qmd |
Corrects ribbon orientation instructions. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three superproject-level items from the 2026-07-23/24 bench test, each tracked separately in Linear. No submodule pointers move here — the bump is #245.
NEH-185 — kiosk: Chromium's translate popup
start-kiosk.shpassed--disable-features=TranslateUI, a flag that no longer exists: Chromium renamed the feature toTranslate, so the switch silently did nothing and the "Translate this page?" bubble appeared over the capture UI on the bench unit. Rather than chase the new flag name,install-kiosk-service.shnow writes a managed policy —dtk-no-translate.jsonwith{"TranslateEnabled": false}— into both/etc/chromium/policies/managed/and/etc/chromium-browser/policies/managed/. Policies are a stable, versioned interface; command-line feature flags are not. The dead flag is removed from the launcher.NEH-177 — upload cap
No behavioural change. On inspection the cap was already enforced correctly: nginx's
/api/location carriesclient_max_body_size 100m, matching the backend'sMAX_UPLOAD_BYTES. What was missing was any statement that the two must move together, so a future change to one would silently diverge from the other. Added that as a comment naming both settings and explaining which is the effective guard (nginx rejects oversized bodies before Starlette spools them to a temp file; the in-app check is defence in depth for setups without nginx, i.e. dev).NEH-187 — provisioning and camera documentation
Gaps found by building a unit from the docs alone:
setting-up-gphoto2-cams.qmd) — two brand-new mini-B cables failed during validation, one with intermittenterror -71indmesg, then electrical silence. A charge-only cable produces no symptom at all: the camera simply never appears. Now stated as a requirement, with a warning callout and a new "Verify the connection" section (lsusb,gphoto2 --auto-detect, how to readdmesg).device_setup_pi5_imx519.qmd:36) — the text contradicted itself between two steps. Settled by looking at the photos: contacts face the Ethernet port, blue stiffener toward the front edge. Line 36 now agrees with line 42.sd_card_distribution.qmd) — headless provisioning is impossible without it, and on a fresh Raspberry Pi OS Lite install SSH is off by default with no way in afterwards short of attaching a keyboard.README.md) — pass the health checks with no cameras attached, then connect them and re-verify. Isolates a camera fault from a broken build.operator-card-rionegro.qmd) —sudo systemctl restart dtkprints nothing, which reads as a failed command to an operator sitting at a blank screen. Both instances now say so explicitly and give the 30-second wait plus Ctrl+Alt+F1.Script permissions verified unchanged (
100755).