fix(onboarding): calibration Tuner step exposed the input-select overlay underneath#577
Merged
Merged
Conversation
…elect overlay Tester: "at the tune step, pressing the Tuner button starts a second wizard at the input-select step." Root cause is stacked full-screen overlays. During onboarding the input-setup flow runs as #input-setup-overlay (z-210) on top of the onboarding modal #v3-onboarding (z-200), and note_detect's Calibration Wizard (z-300) launches on top of that. When the player opens the Tuner, that wizard minimizes itself to transparent + pointer-events:none so the Tuner (z-1000) is usable — but the input-setup overlay underneath, still showing its "select your input" card, then shows through behind the floating tuner and reads as a second wizard. Two targeted hides so only the active surface is visible: - input_setup: hide #input-setup-overlay while launchCalibration runs; restore on its onDone/onCancel (one always fires on close), so the calibration wizard / tuner own the screen. - onboarding runInputSetup: hide #v3-onboarding for the whole input-setup phase (its own overlay replaces it visually); restore in finally before advancing to the calibration-challenge step. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bug
Tester report: "I get to the point in the wizard that asks if I want to tune. If I press the tuner button, the wizard starts a second instance at the step where I need to select an input."
Root cause
Stacked full-screen overlays during onboarding:
#v3-onboarding#input-setup-overlay#tuner-plugin-uiinput_setuplaunches note_detect's Calibration Wizard on top of its own still-mounted overlay. When the player opens the Tuner, the calibration wizard minimizes itself tobackground:transparent; pointer-events:noneso the Tuner (z-1000) is usable — but the input-setup overlay underneath (still on its "select your input" card) then shows through behind the floating tuner, reading as a second wizard at the input step. The onboarding modal (z-200) sits behind that.Fix
Hide each overlay while a higher surface owns the screen:
#input-setup-overlaywhilelaunchCalibrationruns; restore on itsonDone/onCancel(note_detect'scalibrationWizardClosealways fires exactly one of them, so it can't get stuck hidden).runInputSetup— hide#v3-onboardingfor the whole input-setup phase (the input-setup overlay replaces it visually anyway); restore in afinallybefore advancing to the calibration-challenge step.Net: device-selection shows only the input-setup overlay; the calibration wizard shows alone; the Tuner shows alone over a clear screen.
Holding for Codex review (usage-limited until ~Jun 25) before merge. Related: note_detect PR #38 (the calibration-wizard tester-feedback batch) — its auto-open-tuner change would have made this overlay collision fire automatically, so this is the necessary companion fix.
🤖 Generated with Claude Code