Skip to content

chore: bench-test follow-ups — kiosk translate policy, upload-cap lockstep note, provisioning docs (NEH-185, NEH-177, NEH-187) - #246

Merged
juancobo merged 3 commits into
devfrom
chore/bench-follow-ups
Jul 25, 2026
Merged

juancobo merged 3 commits into
devfrom
chore/bench-follow-ups

Conversation

@juancobo

Copy link
Copy Markdown
Member

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.sh passed --disable-features=TranslateUI, a flag that no longer exists: Chromium renamed the feature to Translate, 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.sh now writes a managed policy — dtk-no-translate.json with {"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 carries client_max_body_size 100m, matching the backend's MAX_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:

  • Data vs charge-only cables (setting-up-gphoto2-cams.qmd) — two brand-new mini-B cables failed during validation, one with intermittent error -71 in dmesg, 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 read dmesg).
  • Auto power off drops the camera off the USB bus (same file) — a slept body is indistinguishable from a disconnected one, and the software cannot wake it. Half-press the shutter. This cost real time at the bench before we understood it.
  • Ribbon orientation (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.
  • Enable SSH when flashing (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.
  • First run camera-less (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 (operator-card-rionegro.qmd) — sudo systemctl restart dtk prints 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).

Copilot AI review requested due to automatic review settings July 25, 2026 17:08
@linear-code

linear-code Bot commented Jul 25, 2026

Copy link
Copy Markdown

NEH-185

NEH-177

NEH-187

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@juancobo
juancobo merged commit 06c6ffb into dev Jul 25, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants