Skip to content

sessions: refactor welcome flow into SessionsWelcomeService#315069

Merged
sandy081 merged 2 commits into
mainfrom
sandy081/human-skunk
May 7, 2026
Merged

sessions: refactor welcome flow into SessionsWelcomeService#315069
sandy081 merged 2 commits into
mainfrom
sandy081/human-skunk

Conversation

@sandy081
Copy link
Copy Markdown
Member

@sandy081 sandy081 commented May 7, 2026

Replace the walkthrough-based welcome with a lean dialog-based flow:

  • Add SessionsWelcomeService and SessionsWelcomeWidget with sign-in detection, loading overlay, sign-in dialog, welcome dialog, and a "Signing in..." dialog shown while OAuth completes
  • Service reads setup-done state from the default profile storage via IUserDataProfileStorageService so the agents window correctly reflects completion when running in a different profile
  • Welcome/sign-in dialogs have no close button; welcome dialog completes setup on any dismissal (Escape or Get Started)
  • onSignInStarted callback in chatSetupRunner keeps the Signing in... dialog visible while auth is in flight
  • Fix codicon font-size (112px) being overridden by .monaco-workbench rule by scoping with .agent-sessions-workbench
  • Scope icon margin-bottom to .sessions-welcome-dialog; consolidate styles into sessions/browser/media/sessionsWelcome.css
  • Delete sessionsWalkthrough, welcome.contribution, sessionsChatSetupState and all associated media assets

Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com

Replace the walkthrough-based welcome with a lean dialog-based flow:

- Add SessionsWelcomeService and SessionsWelcomeWidget with sign-in
  detection, loading overlay, sign-in dialog, welcome dialog, and a
  "Signing in..." dialog shown while OAuth completes
- Service reads setup-done state from the default profile storage via
  IUserDataProfileStorageService so the agents window correctly reflects
  completion when running in a different profile
- Welcome/sign-in dialogs have no close button; welcome dialog completes
  setup on any dismissal (Escape or Get Started)
- onSignInStarted callback in chatSetupRunner keeps the Signing in...
  dialog visible while auth is in flight
- Fix codicon font-size (112px) being overridden by .monaco-workbench
  rule by scoping with .agent-sessions-workbench
- Scope icon margin-bottom to .sessions-welcome-dialog; consolidate
  styles into sessions/browser/media/sessionsWelcome.css
- Delete sessionsWalkthrough, welcome.contribution,
  sessionsChatSetupState and all associated media assets

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 7, 2026 18:30
@sandy081 sandy081 enabled auto-merge (squash) May 7, 2026 18:30
@sandy081 sandy081 self-assigned this May 7, 2026
lszomoru
lszomoru previously approved these changes May 7, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refactors the Agents window “welcome/setup” experience from a sessions walkthrough overlay into a dialog-based flow owned by a new SessionsWelcomeService, and wires it into chat setup so the UI can be gated until sign-in/setup completes (including cross-profile “setup done” detection via default profile storage).

Changes:

  • Add SessionsWelcomeService/SessionsWelcomeWidget to drive loading overlay, sign-in dialog, welcome dialog, and “Signing in…” dialog while OAuth is in flight.
  • Extend chat setup to support disableCloseButton and an onSignInStarted callback so sessions can keep progress UI visible during authentication.
  • Remove the old walkthrough-based sessions welcome contribution and associated media assets.
Show a summary per file
File Description
src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.ts Adds disableCloseButton + onSignInStarted options and applies disableCloseButton to the chat setup dialog.
src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.ts Extends trigger setup command options to pass through the new dialog/sign-in hooks.
src/vs/sessions/sessions.common.main.ts Registers ISessionsWelcomeService and removes the old welcome contribution import.
src/vs/sessions/contrib/chat/electron-browser/chat.contribution.ts Defers folder selection IPC handling until the welcome flow completes.
src/vs/sessions/common/sessionsChatSetupState.ts Deletes the old sessions chat setup state service (replaced by welcome service logic).
src/vs/sessions/browser/workbench.ts Instantiates the welcome service early to gate UI during initial setup/sign-in.
src/vs/sessions/browser/sessionsWelcomeService.ts New service/widget implementing the dialog-based welcome + cross-profile setup completion detection.
src/vs/sessions/browser/media/sessionsWelcome.css New scoped styles for the loading overlay and dialog icon spacing.
src/vs/sessions/contrib/welcome/browser/welcome.contribution.ts Removes old walkthrough-based workbench contribution and reset action.
src/vs/sessions/contrib/welcome/browser/sessionsWalkthrough.ts Removes walkthrough overlay implementation (sign-in + welcome UI).
src/vs/sessions/contrib/welcome/browser/media/sessionsWalkthrough.css Removes walkthrough overlay styles.
src/vs/sessions/contrib/welcome/browser/media/themePreviews/theme-preview-light-2026.svg Removes walkthrough theme preview asset.
src/vs/sessions/contrib/welcome/browser/media/themePreviews/theme-preview-hc-light.svg Removes walkthrough theme preview asset.
src/vs/sessions/contrib/welcome/browser/media/themePreviews/theme-preview-hc-dark.svg Removes walkthrough theme preview asset.
src/vs/sessions/contrib/welcome/browser/media/themePreviews/theme-preview-dark-2026.svg Removes walkthrough theme preview asset.
src/vs/sessions/contrib/welcome/browser/media/themePreviews/agents-window-light-2026.svg Removes walkthrough theme preview asset.
src/vs/sessions/contrib/welcome/browser/media/themePreviews/agents-window-dark-2026.svg Removes walkthrough theme preview asset.
src/vs/sessions/contrib/welcome/browser/media/google.svg Removes walkthrough provider icon asset.
src/vs/sessions/contrib/welcome/browser/media/github-mark.svg Removes walkthrough provider icon asset.
src/vs/sessions/contrib/welcome/browser/media/apple-light.svg Removes walkthrough provider icon asset.
src/vs/sessions/contrib/welcome/browser/media/apple-dark.svg Removes walkthrough provider icon asset.

Copilot's findings

  • Files reviewed: 11/21 changed files
  • Comments generated: 1

Comment thread src/vs/sessions/browser/sessionsSetUpService.ts
…alog

- Rename SessionsWelcomeService to SessionsSetUpService and files to sessionsSetUpService.ts / sessionsSetUp.css
- Add IConfigurationService injection to SessionsSetUpWidget
- After welcome/sign-in dialogs complete, call _ensureAIFeaturesEnabled() which silently sets chat.disableAIFeatures = false if it was on
- At runtime, watch for chat.disableAIFeatures becoming true and show a dedicated Enable AI Features dialog (no close, no escape) that writes the setting to false directly via configuration service
- Scope icon margin-bottom to sessions-main-welcome-dialog only
- Force chat.disableAIFeatures to workspace target in sessions config service
- Add warning comment in configuration.contribution.ts

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@sandy081 sandy081 added this to the 1.120.0 milestone May 7, 2026
@sandy081 sandy081 merged commit 82008ac into main May 7, 2026
26 checks passed
@sandy081 sandy081 deleted the sandy081/human-skunk branch May 7, 2026 19:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants