[Improve] Let users choose a setup provider even when its env vars are already configured#388
Merged
brunobergher merged 4 commits intoJul 15, 2026
Conversation
Contributor
Author
|
No new code issues found. See task
Reviewed 8291afa |
brunobergher
approved these changes
Jul 15, 2026
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.
Related issue
N/A — internal Roomote work.
Why this PR exists
What changed
In the signed-in setup wizard, choosing a communication provider (e.g. Slack) or a source-control provider (e.g. GitHub) was skipped entirely whenever that provider was already configured by runtime env vars — the user was taken straight into that provider's sign-in flow with no choice.
Now the wizard always shows the provider chooser:
auth-providerandsource-control-providerchooser steps render even when a provider is fully configured by env vars."Roomote needs access to your repositories to work on your codebase. Since <Provider> is already configured, let's go with it."to just"Connect to continue"(applies to both the GitHub App copy and the token-backed provider copy).configSatisfiedByRuntimeEnv) rather than a global lock flag, so choosing an unconfigured provider while a different provider has env vars set no longer shows the "already configured" wording.saveAuthProviderChoice) and only marked pending/navigated on a successful save, so a reload keeps the user's choice even when the config step is auto-skipped for a runtime-configured provider, and a failed save never prematurely skips the chooser with an unsaved selection. Previously the comms choice lived only in local component state and could be lost on reload, which could then preselect a different provider. This mirrors how the source-control and compute choosers already persist their choice. Telegram stays on its existing UI-only path.Back, and theDo this laterskip link are all disabled, so the user cannot navigate away mid-save and have the later save callback override that navigation.Scope: signed-in setup wizard only. The signed-out first-admin bootstrap flow is intentionally left unchanged.
How it was tested
hooks.client.test.tsx): the comms/source-control choosers are now shown when a provider is only runtime-configured with no saved choice, and the connect step is reached once a runtime-configured provider is chosen.StepSourceControlConnect.client.test.tsx) for the new"Connect to continue"copy, plus a regression test asserting that a selected unconfigured provider keeps its own copy when a different provider is runtime-configured.StepAuthProvidertests covering the disabled-while-saving state for the provider buttons,Back, and the skip link.pnpm --filter @roomote/web check-typesandpnpm lintpass.Visual proof was not captured: reaching the runtime-configured connect/reload state in the seeded dev sandbox is not possible without fabricating contradictory setup state (no communication or source-control provider env vars are configured for this environment), and there is no matching Storybook story for these setup steps.
Checklist
pnpm lintandpnpm check-typespass locallypnpm changeset