Repository navigation
onboarding: UX polish for full-tab setup and Ledger (#718) - #731
Conversation
PR SummaryLow Risk Overview Passphrase steps: Adds shared Full-tab surface: Pins the landscape background ( Ledger "Show more": Exposes Reviewed by Cursor Bugbot for commit 0504863. Bugbot is set up for automated code reviews on this repo. Configure here. |
The full-tab background was a cover image sized to the body, so opening a disclosure on "Find your accounts" (or anything else that grew the page) rescaled and re-centred the image, and the landscape lurched behind the card. Pin it to the viewport instead. Refs #718
The passphrase fields sit inside the onboarding form, whose submit belongs to "Finish setup", so Enter there did nothing useful. Enter in either field now presses the step's Continue, and only when Continue is enabled (valid, matching, and not already busy). Refs #718
The Ledger setup has its own passphrase pair and a plain Continue button, so Enter there did nothing, unlike the software path after the previous commit. Move the Enter handling into a shared bindEnterToContinue beside the passphrase meter (already shared by both setups) and use it in both. Refs #718
The toast slot sits above the side panel's dock. The full-tab onboarding surface has no dock, so a toast landed on the card's bottom action (e.g. "Valid recovery phrase" over "Find my accounts"). On that surface toasts now sit in the top-right corner, which is outside the card at any width that shows the landscape and, on a narrow tab, overlaps only the card's top padding rather than its back control. Refs #718
The Ledger onboard overlay is a panel-sized sheet. Opened from first-run setup it filled the whole tab: the landscape and card vanished and every screen, its buttons and the account picker stretched edge to edge. On the onboarding surface it now shows the landscape and sets each screen in the wizard's 520px card (hiding the wizard behind it), with a wizard step's reading order: dark icon chip and headline at the top, actions pinned to the card's foot. Scoped to the full-tab surface, so the side panel is unchanged; the in-wallet add-account chooser keeps its own header layout. The surface-geometry test now admits this card among the full-page chrome allowed the largest radius. Refs #718
Follow-ups to the full-tab Ledger card, found re-checking it: - A centred grid item taller than the overlay overflowed above the scroll origin: with both account groups open, the card's top (heading and first rows) sat 232px off-screen and could not be scrolled to. Centre with auto block margins instead, which collapse for a tall card. - The overlay is now transparent around its card, so a toast showed through but sat beneath it (z 10 vs 40) and could not be clicked, e.g. an error toast's copy control. On this surface toasts stack above the Ledger layers. - The device chooser renders inside the actions block, which the card pins to its foot, so the device list fell to the bottom. Keep it under the heading and drop only Cancel to the foot. Refs #718
"Show more" read the next page from the device silently and appended it inside the Bramble and Argent groups. With no activity those groups stay closed and their summaries carry no count, so the click changed nothing on screen and looked broken. The click now opens the groups (kept open across the re-render) and marks the button busy while the device is read. Refs #718
15b7ce3 to
af6bd90
Compare
After the device read, the controller stays busy while each new candidate is described on chain. A "Show more" click in that window hit the busy guard and was dropped, after the click had already opened the groups and dimmed the button, so it looked started; the next repaint restored an idle button and the page never came (Bugbot, #731). A click while a page is still read or described is now queued and runs as soon as that page settles; the picker renders "Show more" busy and disabled for the whole wait (a new `loadingMore` on the picker view). A failure or cancel drops the queue. The derive block is compacted to keep the controller under the size cap. Refs #718
|
AI-assisted review (Claude, with an independent Codex gpt-6-astra pass), posted from @derek-flossman's account. Findings were checked against the code; treat them as review input, not approval. Reviewed: no new findings. The Bugbot "Show more" issue is fixed in f9d065c. The branch is behind |
Merged with today's release/v0.10.8, #765 and #762 each added a few lines to files this branch also grows. That left styles-onboarding.ts at 501 lines and onboard-session.ts at 502, which check:files refuses. This shortens four comments: two from this branch and the #762 one, with no code change. The files are now 497 and 499 lines. Refs #718 Refs #727 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Review follow-up (AI-assisted, by Claude), posted from @derek-flossman's account. Pushed to this branch with Derek's OK. @Ryun1, heads-up: I pushed two commits here so this can merge today.
Bugbot's "Show more can skip the next page" is fixed by f9d065c. I traced the queue:
Run on this branch merged with current
Still open from your description: a click-through of the Ledger screens with a real device. For #733, which is stacked here: |
|
Merged by the repo owner via the release-review bypass; no second review. Head 0504863 was up to date with release/v0.10.8, with fast-checks and pr-guards green. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 0504863. Configure here.
| export const ONBOARDING_LEDGER_STYLES = ` | ||
| body.onboarding-surface:has(> .ledger-onboard-overlay:not([hidden])) .onboarding-wizard { | ||
| visibility: hidden; | ||
| } |
There was a problem hiding this comment.
Enter restarts hidden Ledger setup
Medium Severity
Opening the Ledger overlay only sets the wizard to visibility: hidden, so the passphrase field can keep focus. Further Enter keydowns still hit bindEnterToContinue and call startLedgerSetup again, which runs openConnect and resets any in-flight read or picker. Keyboard users on the full-tab surface cannot reach the overlay's Connect control with Enter, and a repeat or second Enter can abort a connect that already started.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit 0504863. Configure here.


Summary
UX fixes from testing first-run onboarding, mostly on the full-tab surface. Styling and keyboard behaviour only: no change to what accounts are found, created or signed.
bindEnterToContinue, beside the passphrase meter) serves both.Not in this PR (separate PRs to follow): listing Braavos Account 0 in the recovery-phrase scan, and finding Ready/Braavos accounts in first-run Ledger setup.
Roadmap & release
release/v0.10.8Checks
bun run checkpasses. Every gate passes exceptapps/terminal"Tokens screen > defaults to AVNU and builds through the selected swap route", which fails identically on a cleanrelease/v0.10.8.bun run test:e2epasses (22/22)The Ledger screens were checked by rendering the real view code into the built onboarding page (no device in CI); worth a click-through with a Ledger.
Dependencies
none
Reminder: review before merging; Ledger behaviour has only been checked without a device.