Files
John O'Keefe d15f115505 fix(devices): pairing input moves into the Add Device modal
The pairing field sat at the bottom of the Devices page, below the
device grid — unreachable on any account with more than a screenful of
devices (the user's dev account has ~480 accumulated test devices;
scrolling 224k px to reach the field is a non-starter). The Add Device
button at the top of the page is where pairing intent already lives,
so the code input and Find device button now sit inside the Connect a
KOReader Device modal as instruction step 6, with the confirm card
swapping into the same modal (container keeps the pairing-lookup ids;
the htmx error-toast listener scopes to #add-device-modal now).

Verified live: modal renders the full instruction list + input, a
wrong code swaps the templ error partial inside the modal, and claim
still HX-Refreshes on success (modal state resets with the reload,
paired device appears in the grid).

ui-controls glossary where-fields and the COVERAGE row updated with
the control's new home.
2026-11-02 16:56:32 -05:00
..

tests/ui — Playwright sweep (plan §7.5)

Real-browser sweep of the SSR/HTMX frontend. Dev server must be up on localhost:8765. Run inside the official image (no host browsers needed):

cd tests/ui
docker run --rm --network host \
  -v "$PWD":/work -w /work \
  mcr.microsoft.com/playwright:v1.49.0 \
  bash -c "npm install --no-audit --no-fund && npx playwright test"

Personas (see rls_sweep.spec.ts): testuser (admin) and rls-phone (restricted — Audiobooks hidden from them).

Coverage: COVERAGE.md enumerates every swept page/control per the plan; new pages/controls get a line when added.