🤖 fix: onboarding wizard and narrow-viewport dogfood issues#3721
🤖 fix: onboarding wizard and narrow-viewport dogfood issues#3721ibetitsmike wants to merge 4 commits into
Conversation
- SplashScreen: cap dialog height (85vh) with scrollable body so tall wizard
steps keep Next/Skip clickable at short viewports; declare no dialog
description (aria-describedby={undefined}) to fix Radix a11y warning
- ProjectService.create: map EACCES/EPERM/EROFS/ENOTDIR mkdir/stat failures
to friendly errors instead of leaking raw Node errno strings
- ProjectAddForm/wizard: report inline error state upward and hide the
'Click Next to add this project.' nudge while an error is shown
- Sidebar overlay now gates on width (max-width: 768px) instead of width +
coarse pointer, so a narrow non-touch window no longer crushes main content
> Mux worked on behalf of Mike.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e5e6442042
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
|
Codex Review: Didn't find any major issues. Delightful! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Summary
Fixes the four issues found during the dogfood UAT pass of the onboarding wizard and narrow-viewport layout (1 low, 3 medium).
Background
A full-app dogfood session on a fresh MUX_ROOT surfaced:
Failed to create project: EACCES: permission denied, mkdir '/nonexistent', with the contradictory "Click Next to add this project." helper still visible below the error.(max-width: 768px) and (pointer: coarse), so a narrow non-touch window kept the 288px sidebar in-flow, leaving ~90px for content (clipped controls, overlapping labels).DialogContent.Implementation
SplashScreen: cap the dialog at85vhand scroll the body while the footer stays pinned (grid-rows-[auto_minmax(0,1fr)_auto]), so Next/Skip remain clickable on short viewports. Declarearia-describedby={undefined}(existing repo pattern) since splash bodies are rich content, not a description.ProjectService.create: mapEACCES/EPERM/EROFS/ENOTDIRfailures from the stat/mkdir path into friendly messages (e.g.Cannot create folder "...": permission denied) instead of returning raw errno strings. Intentional mkdir-p auto-creation behavior is unchanged.ProjectCreateForm/ProjectCloneForm/ProjectAddForm: new optionalonErrorChange(hasError)callback (mirrorsonIsCreatingChange); the onboarding wizard uses it to hide the "click Next" nudge while an inline error is shown.globals.css/LeftSidebar: the sidebar overlay rules (fixed overlay, backdrop, off-canvas collapse, hamburger button) now gate on width only (max-width: 768px); touch-specific rules (44px targets, text-size adjust, sticky header) stay behind the coarse-pointer gate. Narrow non-touch windows now get the same overlay behavior phones already had, and the hamburger reopens the hidden sidebar.Validation
Risks
hasTouch: trueand match the same width gate.Generated with
mux• Model:anthropic:claude-fable-5• Thinking:xhigh• Cost:$79.63