Fix onboarding skipping profile and model steps#151
Merged
Conversation
The legacy hasShownWelcomeWindow key was set at presentation time, not completion. Migrating it to onboardingCompleted caused the app to skip profile and model selection for both upgrading users and fresh installs where the old key lingered. Remove the migration so only the new completion-time flag controls whether onboarding is shown. Co-Authored-By: Claude Opus 4.6 (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.
Summary
hasShownWelcomeWindow→onboardingCompletedmigration that caused the app to skip profile and model selection stepsonboardingCompletedkey (set when user taps "Start Using tabby") controls whether onboarding showsTest plan
🤖 Generated with Claude Code
Greptile Summary
This PR removes the one-time migration that copied
hasShownWelcomeWindowintoonboardingCompleted, because that legacy key was written at window-presentation time rather than at wizard completion — causing the profile and model-selection steps to be silently skipped for affected users.isOnboardingCompletedis simplified to a singleUserDefaultsread ofonboardingCompleted, with an inline doc comment explaining why the legacy key is deliberately not migrated.legacyHasShownWelcomeDefaultsKeyconstant is removed entirely; upgrading users who only had the legacy key set will see the onboarding wizard once more, which is the correct trade-off.Confidence Score: 5/5
Safe to merge — the change is a focused, well-documented removal of a single faulty migration path with no risk of data loss or new regressions.
The diff is a net deletion of 10 lines and a rewrite of one computed property. The new implementation is simpler and correct: only users who genuinely completed the wizard (had
onboardingCompletedwritten at the 'Start Using tabby' step) will skip the wizard on relaunch. The behaviour change for users who only had the legacy key is intentional and clearly documented. No other logic is touched.No files require special attention.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A[App Launch] --> B{isOnboardingCompleted?\nonboardingCompleted key} B -- true --> C{presentPermissionReminderIfNeeded} B -- false --> D[showWelcome wizard] C -- permissions granted --> E[No window shown] C -- permissions missing --> F[showPermissionReminder] D --> G[User completes wizard\n'Start Using tabby'] G --> H[completeOnboarding\nsets onboardingCompleted = true\nin UserDefaults] H --> I[Close welcome window] style D fill:#f9a825,color:#000 style H fill:#2e7d32,color:#fffReviews (1): Last reviewed commit: "Fix onboarding skipping steps due to leg..." | Re-trigger Greptile