Skip to content

fix(web): give the driver picker a way forward when the device is not listed - #759

Merged
frahlg merged 1 commit into
masterfrom
757-setup-driver-not-listed
Aug 4, 2026
Merged

fix(web): give the driver picker a way forward when the device is not listed#759
frahlg merged 1 commit into
masterfrom
757-setup-driver-not-listed

Conversation

@Leitet

@Leitet Leitet commented Aug 3, 2026

Copy link
Copy Markdown
Member

Closes #757.

Step 4 of the setup wizard dead-ends when a device has no catalog entry: Continue is disabled until a driver is selected, and nothing says where more drivers live or how to ask for one. Hit in practice with a Fox ESS inverter (srcfl/device-drivers#68) — the operator had to back out of onboarding.

The picker now always ends with a "My device is not listed…" option. Selecting it keeps Continue held (there is nothing to configure) and reveals a panel with the two real ways forward:

  • more drivers install from the signed repository after setup, in Settings → Devices (the picker only shows what's on the gateway — Setup wizard never surfaces signed-repository drivers #758 tracks surfacing the repository catalog here directly);
  • a link to the driver repository's issue tracker for a device no driver serves yet;
  • Continue without this device, which goes to the devices summary when something is already configured and straight to integrations otherwise (mirrors goStepBack7's logic in reverse).

The sentinel option value is non-numeric and is handled before parseInt ever sees it, so it can never be mistaken for a catalog index — including by the fingerprint preselect loop, which skips it by filename mismatch.

Evidence

  • web/setup.test.mjs gains four structural tests (option present, sentinel handled before index parse, panel content, skip targets). Full web suite: 276/276.
  • Rendered and driven in a browser: selecting the option shows the panel with Continue held; skipUnlistedDevice() with zero configured devices lands on step 7.

Coordination

#714 also touches web/setup.js / web/setup.html, in the scan/host-entry areas (step 3/5, prefillDriverConfig). This change is confined to the step-4 picker (populateDriverDropdown, onDriverSelected, step-4 markup) — no overlapping hunks, whichever lands first.

🤖 Generated with Claude Code

… listed

A device with no catalog entry dead-ended step 4: Continue stays
disabled and the only affordance is Back. The picker now ends with a
'My device is not listed…' option that explains where repository
drivers install after setup, links to requesting a new driver, and
continues onboarding without the device.

Closes #757.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Leitet
Leitet requested a review from erikarenhill as a code owner August 3, 2026 12:32

@miravoss26 miravoss26 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.

Clean. The non-numeric NOT_LISTED sentinel, checked before parseInt ever runs on sel.value, is the right guard, and skipUnlistedDevice going straight to integrations (step 7) when nothing's configured avoids a second empty-summary dead-end. Tests cover the sentinel ordering and both forward paths, and the external issue-tracker link carries rel="noopener".

No security surface. Safe to merge from my read. Not in my auto-merge allowlist, so it's yours to land.

@frahlg
frahlg merged commit 7803081 into master Aug 4, 2026
13 checks passed
@frahlg
frahlg deleted the 757-setup-driver-not-listed branch August 7, 2026 08:14
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.

Setup wizard driver picker dead-ends when the device is not listed

3 participants