The button previously called navigateToSetup() (sending the user *to* the
setup view) and never marked setup complete or set a directory, so App.tsx
fell back to OnboardingFlow because of the !selectedDirectory guard. The
guard existed solely to paper over this broken state.
Wire the button to a dedicated handleSkip that completes onboarding +
setup and routes to task-input, drop the App.tsx guard, and show the
button in production as well as dev. TaskInput already handles an empty
selectedDirectory via mostRecentRepo.
Generated-By: PostHog Code
Task-Id: c5a0b893-61f1-40a5-8f84-8d93c1ad2dba
Summary
The dev-only Skip setup button in the onboarding flow didn't actually skip anything — it called
navigateToSetup()(which routes to the setup view) and only flippedhasCompletedOnboarding. App.tsx then bounced the user back to<OnboardingFlow />because of a!selectedDirectoryguard that existed solely to paper over this broken state.Now:
handleSkipcallscompleteOnboarding()+completeSetup()and navigates totask-input(the home view), so the button actually skips both onboarding and the setup view.IS_DEVgate is removed, so the button is available in production too (per the request).!selectedDirectoryguard inApp.tsxis dropped —TaskInputalready handles an emptyselectedDirectoryby auto-populating frommostRecentRepoand exposing a folder picker.handleComplete(used bySignalsStepfor the normal happy-path completion) is unchanged, so the regular flow still routes throughSetupView.Test plan
localStorage.clear()), click Skip setup on the welcome screen → land on the main app's task-input view, no bounce back to onboarding.<SetupView />(unchanged).Created with PostHog Code