Skip to content

feat: detect existing Slack connection at the end of a wizard run#649

Merged
gewenyu99 merged 2 commits into
mainfrom
feat/wizard-run-slack-detection
Jun 12, 2026
Merged

feat: detect existing Slack connection at the end of a wizard run#649
gewenyu99 merged 2 commits into
mainfrom
feat/wizard-run-slack-detection

Conversation

@gewenyu99

Copy link
Copy Markdown
Collaborator

What

The Connect-Slack step at the end of the default wizard run now actually detects an existing Slack connection — same behavior as the MCP tutorial.

SlackConnectScreen already polls fetchSlackConnected every 3s, but that endpoint requires the integration:read scope, which only the mcp-tutorial program requested (#648). In the default posthog-integration run the first poll 403s, the catch stops polling, and an already-connected project is nagged with the connect nudge forever. This adds integration:read to the program's scope additions (it's already inside the OAuth app ceiling), which makes the existing screen behavior work: already-connected projects flip to the ✓ connected variant on mount, and "Open Slack setup" flips live once the browser OAuth completes.

Also

  • End-screens playground tab — mounts the real SlackConnectScreen and OutroScreen against the shared store. V switches view, K toggles the Slack state (writes the same store key the poll writes), O cycles outro success/error/cancel. The demo swaps the playground's fake credentials for a localhost dead-end while mounted (and restores on unmount) so the poll can't reach a real host — credentials stay non-null because nulling them knocks the router out of the run screen and resets the tab bar.
  • Playground tab bar wrapsflexWrap="wrap" on the TabContainer tab bar, so the now-14-tab playground stacks onto extra rows instead of clipping.

Test

  • pnpm build && pnpm test && pnpm fix — 857 tests pass.
  • Drove the playground in a pty to the End screens tab: demo renders the Slack nudge variant and the tab bar wraps at 80 columns.

🤖 Generated with Claude Code

The Connect-Slack step's poll needs integration:read, which only the
MCP tutorial requested — in the default run the first poll 403s and the
screen never flips to the connected variant. Adds the scope for the
posthog-integration program.

Also adds an End-screens playground tab (SlackConnectScreen +
OutroScreen variants) and lets the playground tab bar wrap instead of
clipping overflow tabs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🧙 Wizard CI

Run the Wizard CI and test your changes against wizard-workbench example apps by replying with a GitHub comment using one of the following commands:

Test all apps:

  • /wizard-ci all

Test all apps in a directory:

  • /wizard-ci basic-integration
  • /wizard-ci error-tracking-upload-source-maps
  • /wizard-ci misc
  • /wizard-ci revenue

Test an individual app:

  • /wizard-ci basic-integration/android
  • /wizard-ci basic-integration/angular
  • /wizard-ci basic-integration/astro
Show more apps
  • /wizard-ci basic-integration/django
  • /wizard-ci basic-integration/fastapi
  • /wizard-ci basic-integration/flask
  • /wizard-ci basic-integration/javascript-node
  • /wizard-ci basic-integration/javascript-web
  • /wizard-ci basic-integration/laravel
  • /wizard-ci basic-integration/next-js
  • /wizard-ci basic-integration/nuxt
  • /wizard-ci basic-integration/python
  • /wizard-ci basic-integration/rails
  • /wizard-ci basic-integration/react-native
  • /wizard-ci basic-integration/react-router
  • /wizard-ci basic-integration/sveltekit
  • /wizard-ci basic-integration/swift
  • /wizard-ci basic-integration/tanstack-router
  • /wizard-ci basic-integration/tanstack-start
  • /wizard-ci basic-integration/vue
  • /wizard-ci error-tracking-upload-source-maps/android
  • /wizard-ci error-tracking-upload-source-maps/flutter
  • /wizard-ci error-tracking-upload-source-maps/ios
  • /wizard-ci error-tracking-upload-source-maps/next
  • /wizard-ci error-tracking-upload-source-maps/next-no-posthog
  • /wizard-ci error-tracking-upload-source-maps/node-raw
  • /wizard-ci error-tracking-upload-source-maps/node-rollup
  • /wizard-ci error-tracking-upload-source-maps/node-rollup-typescript-plugin
  • /wizard-ci error-tracking-upload-source-maps/node-webpack
  • /wizard-ci error-tracking-upload-source-maps/nuxt-3-6
  • /wizard-ci error-tracking-upload-source-maps/nuxt-4-3
  • /wizard-ci error-tracking-upload-source-maps/react-native
  • /wizard-ci error-tracking-upload-source-maps/react-vite
  • /wizard-ci error-tracking-upload-source-maps/rust
  • /wizard-ci misc/quack-quack
  • /wizard-ci revenue/stripe

Results will be posted here when complete.

@gewenyu99 gewenyu99 requested a review from sarahxsanders June 12, 2026 01:53
Comment thread src/ui/tui/playground/demos/EndScreensDemo.tsx
Comment thread src/ui/tui/primitives/TabContainer.tsx
@gewenyu99 gewenyu99 enabled auto-merge (squash) June 12, 2026 01:57
@gewenyu99 gewenyu99 merged commit 06bbf79 into main Jun 12, 2026
17 checks passed
@gewenyu99 gewenyu99 deleted the feat/wizard-run-slack-detection branch June 12, 2026 01:59
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.

2 participants