feat(integrations): free organizations get the Pro Features dialog for Linear and GitHub
What & why
Follows #7985 (merged as 52756c528a). Merge only after that deploy is live in production: the web list, the pages and the CLI call integration.syncAllowed, which #7985 adds (see packages/trpc/AGENTS.md, rule 9).
Free organizations never reach the Linear or GitHub integration pages, so neither page needs a Pro state of its own.
- Web:
/integrations/linearand/integrations/githubredirect an organization outside the sync policy to/settings/billing. Clicking either card in/integrationslands on the upgrade. - Desktop, Settings → Integrations: on a free plan, the Linear and GitHub rows show the PRO badge, and Manage/Connect opens the existing Pro Features dialog instead of the web page. Linear opens Tasks ("Track and manage tasks synced from Linear") and GitHub opens Remote Access (cloud workspaces, which the GitHub App backs). This uses the desktop's own plan check (
usePaywall), so the desktop part calls no new procedure. - CLI:
superset integrations github connectstops with the Pro hint instead of opening the browser and polling for 10 minutes.
How I tested it
Against this worktree's local stack and Neon branch.
- Web, with curl and the dev session: free org
/integrations/linearand/integrations/githubreturn 307 to/settings/billing, and/integrations/slackreturns 200. On a Pro org all three return 200. - Web, in headless Chrome: a real click on the Linear card in
/integrationslands on/settings/billing(Free plan, Upgrade to Pro). - Desktop, over CDP on this worktree's Electron (renderer
localhost:9125), signed in as satya@superset.sh on the Superset org, navigating with real clicks (Settings → Integrations):- Pro: no badges, and every row shows Manage.
- The org's subscription was set to canceled 30 days ago on the branch only, then restored afterwards:
- Linear and GitHub show PRO, and Slack and the others don't.
- Linear's Manage opens the Pro Features dialog on Tasks.
- GitHub's Manage opens it on Remote Access.
- No browser window opened.
- After restoring, the badges are gone.
- Typecheck for desktop, web and cli. Biome.
check:i18n(no new strings).
Screens: https://app.superset.sh/page/linear-github-pro-gate-ym3qx0
Not tested: the CLI command run end to end (typecheck only).
Checklist
- PR title follows conventional commits (
type(scope): subject) -
bun run lintandbun run typecheckpass (CI fails on lint warnings too) - "Allow edits from maintainers" is checked on fork PRs
Summary by cubic
Routes free organizations away from the Linear and GitHub integrations into a shared Pro Features dialog, across web, desktop, and CLI. Must merge after #7985 is live in production, because every change calls integration.syncAllowed, which that PR adds.
New Features
- Web: the Linear and GitHub integration pages and connect/install routes redirect a free organization to
/integrations?pro=<provider>, which opens the Pro Features dialog (Tasks for Linear, Remote Access for GitHub); Get Superset Pro goes to billing. - Desktop: on a free plan, the Linear and GitHub rows show the PRO badge, and Manage/Connect opens the Pro Features dialog instead of the web page.
- CLI:
superset integrations github connectstops with the Pro hint instead of opening the browser and polling. - The dialog is extracted to
@superset/ui/pro-features-dialog, shared by desktop and web, and emitspaywall_*analytics events.
Summary by CodeRabbit
- New Features
- Added a Pro features dialog highlighting available features and providing options to cancel or upgrade.
- Linear and GitHub integrations now show Pro badges when access requires a plan upgrade. Selecting a gated integration opens the relevant feature details.
- Improvements
- Attempts to connect to or open gated Linear and GitHub integrations now direct users to the appropriate Pro feature information instead of billing settings.