Conversation
wesrupert
commented
Sep 14, 2026
Contributor
- Prevent user from skipping login during onboarding
- Add some additional checks to AI pages when a user is not signed in
michelinewu
approved these changes
Sep 14, 2026
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Critical and moderate issues remain in onboarding test flows and Vision/AI authentication lifecycle.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
This PR prevents skipping login during onboarding and adds signed-out protections for Streamlabs AI.
Changes:
- Updates onboarding flow, translations, tests, and helpers.
- Gates AI settings and landing-page controls by authentication.
- Prevents or manages Vision startup based on login state.
File summaries
| File | Summary |
|---|---|
test/regular/onboarding.ts |
Critical (3 votes): Anonymous flow remains on Login while the test proceeds to hardware setup. |
test/regular/obs-importer.ts |
Updates onboarding selectors. |
test/helpers/modules/onboarding.ts |
Critical (3 votes): skipOnboarding cannot skip the logged-out Login step, causing default suites to fail. |
app/services/vision/index.ts |
Moderate (2 votes): Vision may not retry startup after login. Critical (2 votes): Vision remains active after logout. |
app/services/onboarding/onboarding-v2.ts |
Moderate (1 vote): Recording mode can still show Continue on the logged-out login step. |
app/i18n/en-US/onboarding.json |
Adds onboarding translation updates. |
app/i18n/en-US/ai.json |
Adds AI authentication messaging. |
app/components-react/windows/settings/AISettings.tsx |
Gates AI settings for signed-out users. |
app/components-react/pages/AILanding.tsx |
Moderate (2 votes): The page may not rerender when authentication changes, leaving stale AI controls and guards. |
app/components-react/modals/onboarding/Splash.tsx |
Simplifies the onboarding entry point. |
Review details
Suppressed comments (2)
app/services/onboarding/onboarding-v2.ts:156
isSkippableonly controls the Skip link.RecordingLoginis not inNO_BUTTON_STEPS(app/components-react/modals/onboarding/Onboarding.tsx:15), so when recording mode is enabled and the user is logged out the footer still renders Continue;takeStep()can then advance past login (and complete if OBS is absent). Hide Continue forRecordingLoginor require authentication before advancing.
isSkippable: modifiers.loggedIn,
app/services/vision/index.ts:229
- This early return does not reconcile Vision with auth transitions. Because the enabled state is persisted, a logged-out startup with AI enabled returns here and never retries after a later login; conversely, logging out while Vision is running does not call
stop(), so the process/EventSource can continue for a signed-out user. Tie startup/shutdown to the UserService login/logout lifecycle (or reset the persisted enabled state) so the login requirement holds in both directions.
if (!this.userService.isLoggedIn) {
this.log('Vision is not supported for logged-out users.');
return;
}
- Files reviewed: 10/10 changed files
- Comments generated: 5
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+226
to
+229
| if (!this.userService.isLoggedIn) { | ||
| this.log('Vision is not supported for logged-out users.'); | ||
| return; | ||
| } |
| if (onboardingAppeared) { | ||
| await clickWhenDisplayed('a=Log In', { timeout: 5000 }); | ||
| await clickWhenDisplayed('button=Skip', { timeout: 5000 }); | ||
| await clickWhenDisplayed('button=Get Started', { timeout: 5000 }); |
|
|
||
| // Complete login | ||
| if (login) { | ||
| if (newUser || login) { |
| const visionActions = VisionService.actions; | ||
| const visionState = useRealmObject(VisionService.state); | ||
|
|
||
| const isLoggedIn = UserService.views.isLoggedIn; |
Comment on lines
+226
to
+229
| if (!this.userService.isLoggedIn) { | ||
| this.log('Vision is not supported for logged-out users.'); | ||
| return; | ||
| } |
BundleMonFiles updated (1)
Unchanged files (3)
Total files change -553B 0% Final result: ✅ View report in BundleMon website ➡️ |
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.