[WIP] First-install owner setup and keyboard-accessible seed confirmation #168

Closed
chaum wants to merge 14 commits from pr/feat/first-install-owner-network-20261112 into main
Collaborator

Requires UI/UX UAT approval from the maintainer

Summary

Add unique owner username, hostname, password and optional Wi-Fi collection to the first ISO install. Use the installer password for the OS owner and first dashboard login, keep service/root accounts locked and SSH key only, and retain optional signer onboarding. Correct the encrypted kernel receipt handoff, installer failure/reboot presentation and boot artwork. Make the recovery seed confirmation usable without a mouse: Tab reaches the checkbox, the short-screen scroll cue focuses it, Space confirms it, and Continue receives focus.

Screens and flows to review

  1. ISO BIOS and UEFI boot menus: inspect branded layout and keyboard selection on desktop and small displays.
  2. Live installer: choose owner username, hostname and password; confirm matching password, Wi-Fi scan and password, no-adapter skip, failed Wi-Fi retry/skip, disk selection, installation completion, USB removal prompt and reboot. Check loading, error and success states; verify the selected disk is disposable.
  3. Installed kiosk and console: automatic kiosk launch, chosen owner console login, chosen hostname and network; verify service/root logins remain locked and SSH accepts keys only.
  4. /onboarding/seed: inspect generated words, QR tab, warning and confirmation checkbox at desktop and phone widths, light and dark themes and kiosk. With no mouse, Tab from Words through QR code to the checkbox, press Space, then Enter on Continue. On a short screen, focus the “One more step below” cue, press Enter, verify it focuses the unchecked checkbox, press Space, then Continue. Check loading, retry/error, unchecked and checked states.
  5. /onboarding/seed-verify, /onboarding/done and /login: verify seed challenges, then “Log In” with the installer password rather than a second password setup. Check wrong password and success, optional Add signer and skip signer, on desktop and phone widths, light and dark themes and kiosk.

Checks

  • Installer owner focused unit tests: 5 passed.
  • Seed scroll and focus unit tests: 6 passed.
  • Chromium keyboard flow at narrow kiosk width: Tab → checkbox, Space → checked, Enter → seed verification; scroll cue → focused unchecked checkbox.
  • UI type check, installer shell syntax and Git whitespace checks passed.
  • Operator reports a physical installer/reboot/kiosk/onboarding run succeeded except for the mouse-free seed confirmation. The new checkbox focus change still needs maintainer UAT and production artifact qualification.

Release note

This draft targets main and includes the current Gitea main commit. It was opened on Gitea as a temporary review path because ngit currently rejects publication with divergent visible main tips. Link the eventual ngit proposal before merging. The earlier private RC6 ISO is not a qualified release artifact. Do not merge or publish an OTA/ISO until the UI/UX UAT and release gates pass.

Accepted canonical integration

Integrated and reviewed through the canonical ngit proposal, merged as 375d30e7c28ac9d498ccc14b2b4cfc6c53eef827 on both mirrors for 2.1.23. This temporary draft is closed in favor of that accepted result; the original feature branch is preserved.

The maintainer confirmed RC6 as the accepted installer baseline and approved the later keyboard seed-confirmation change and Settings release notes. Integrated source checks passed: 3,188 backend tests (29 ignored), 2,778 frontend tests across 310 files, full typecheck, and focused installer/ISO permission/firewall checks. The superseded old-FIPS overwrite workaround was excluded in favor of the qualified managed-firewall package.

Production artifact, signed OTA, Companion and ISO publication/clean-install gates remain separate. Source integration does not claim that 2.1.23 is already publicly released.

Requires UI/UX UAT approval from the maintainer ## Summary Add unique owner username, hostname, password and optional Wi-Fi collection to the first ISO install. Use the installer password for the OS owner and first dashboard login, keep service/root accounts locked and SSH key only, and retain optional signer onboarding. Correct the encrypted kernel receipt handoff, installer failure/reboot presentation and boot artwork. Make the recovery seed confirmation usable without a mouse: Tab reaches the checkbox, the short-screen scroll cue focuses it, Space confirms it, and Continue receives focus. ## Screens and flows to review 1. ISO BIOS and UEFI boot menus: inspect branded layout and keyboard selection on desktop and small displays. 2. Live installer: choose owner username, hostname and password; confirm matching password, Wi-Fi scan and password, no-adapter skip, failed Wi-Fi retry/skip, disk selection, installation completion, USB removal prompt and reboot. Check loading, error and success states; verify the selected disk is disposable. 3. Installed kiosk and console: automatic kiosk launch, chosen owner console login, chosen hostname and network; verify service/root logins remain locked and SSH accepts keys only. 4. `/onboarding/seed`: inspect generated words, QR tab, warning and confirmation checkbox at desktop and phone widths, light and dark themes and kiosk. With no mouse, Tab from Words through QR code to the checkbox, press Space, then Enter on Continue. On a short screen, focus the “One more step below” cue, press Enter, verify it focuses the unchecked checkbox, press Space, then Continue. Check loading, retry/error, unchecked and checked states. 5. `/onboarding/seed-verify`, `/onboarding/done` and `/login`: verify seed challenges, then “Log In” with the installer password rather than a second password setup. Check wrong password and success, optional Add signer and skip signer, on desktop and phone widths, light and dark themes and kiosk. ## Checks - Installer owner focused unit tests: 5 passed. - Seed scroll and focus unit tests: 6 passed. - Chromium keyboard flow at narrow kiosk width: Tab → checkbox, Space → checked, Enter → seed verification; scroll cue → focused unchecked checkbox. - UI type check, installer shell syntax and Git whitespace checks passed. - Operator reports a physical installer/reboot/kiosk/onboarding run succeeded except for the mouse-free seed confirmation. The new checkbox focus change still needs maintainer UAT and production artifact qualification. ## Release note This draft targets `main` and includes the current Gitea main commit. It was opened on Gitea as a temporary review path because ngit currently rejects publication with divergent visible main tips. Link the eventual ngit proposal before merging. The earlier private RC6 ISO is not a qualified release artifact. Do not merge or publish an OTA/ISO until the UI/UX UAT and release gates pass. ## Accepted canonical integration Integrated and reviewed through [the canonical ngit proposal](https://gitworkshop.dev/nevent1qqs04f7hl4m6kl0s0w4l03svw3anza0es0w3zldwa6gkvyarpthrxrcpz3mhxue69uhhyetvv9ujumn8d96zuer9wcgul8l5), merged as `375d30e7c28ac9d498ccc14b2b4cfc6c53eef827` on both mirrors for 2.1.23. This temporary draft is closed in favor of that accepted result; the original feature branch is preserved. The maintainer confirmed RC6 as the accepted installer baseline and approved the later keyboard seed-confirmation change and Settings release notes. Integrated source checks passed: 3,188 backend tests (29 ignored), 2,778 frontend tests across 310 files, full typecheck, and focused installer/ISO permission/firewall checks. The superseded old-FIPS overwrite workaround was excluded in favor of the qualified managed-firewall package. Production artifact, signed OTA, Companion and ISO publication/clean-install gates remain separate. Source integration does not claim that 2.1.23 is already publicly released.
chaum added 14 commits 2026-11-13 15:33:15 +00:00
chaum closed this pull request 2026-11-14 12:07:29 +00:00

Pull request closed

Please reopen this pull request to perform a merge.
This pull request is marked as a work in progress.
Sign in to join this conversation.