Skip to content

v5 (#1097)#1106

Open
brendan-kellam wants to merge 65 commits into
mainfrom
v5
Open

v5 (#1097)#1106
brendan-kellam wants to merge 65 commits into
mainfrom
v5

Conversation

@brendan-kellam
Copy link
Copy Markdown
Contributor

No description provided.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 10, 2026

Important

Review skipped

Too many files!

This PR contains 288 files, which is 138 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 29ee95cc-367a-4b70-bfce-444e3aa7a481

📥 Commits

Reviewing files that changed from the base of the PR and between 96af7e8 and 184cadf.

⛔ Files ignored due to path filters (12)
  • docs/images/connectors_account_page.png is excluded by !**/*.png
  • docs/images/connectors_permission_request.png is excluded by !**/*.png
  • docs/images/connectors_static_registration.png is excluded by !**/*.png
  • docs/images/connectors_toggle_off.png is excluded by !**/*.png
  • docs/images/setup_sourcebot_splash.png is excluded by !**/*.png
  • packages/web/public/claude_code.svg is excluded by !**/*.svg
  • packages/web/public/codex.svg is excluded by !**/*.svg
  • packages/web/public/cursor_dark.svg is excluded by !**/*.svg
  • packages/web/public/cursor_light.svg is excluded by !**/*.svg
  • packages/web/public/vscode.svg is excluded by !**/*.svg
  • packages/web/public/windsurf_dark.svg is excluded by !**/*.svg
  • packages/web/public/windsurf_light.svg is excluded by !**/*.svg
📒 Files selected for processing (288)
  • .env.development
  • .github/workflows/release-mcp.yml
  • AGENTS.md
  • CHANGELOG.md
  • CLAUDE.md
  • CONTRIBUTING.md
  • Makefile
  • docker-compose.yml
  • docs/api-reference/sourcebot-public.openapi.json
  • docs/docs.json
  • docs/docs/activating-a-subscription.mdx
  • docs/docs/billing.mdx
  • docs/docs/configuration/audit-logs.mdx
  • docs/docs/configuration/auth/access-settings.mdx
  • docs/docs/configuration/auth/authentication.mdx
  • docs/docs/configuration/auth/providers.mdx
  • docs/docs/configuration/auth/roles-and-permissions.mdx
  • docs/docs/configuration/config-file.mdx
  • docs/docs/configuration/declarative-config.mdx
  • docs/docs/configuration/environment-variables.mdx
  • docs/docs/configuration/idp.mdx
  • docs/docs/connections/ado-cloud.mdx
  • docs/docs/connections/ado-server.mdx
  • docs/docs/connections/bitbucket-cloud.mdx
  • docs/docs/connections/bitbucket-data-center.mdx
  • docs/docs/connections/generic-git-host.mdx
  • docs/docs/connections/gerrit.mdx
  • docs/docs/connections/gitea.mdx
  • docs/docs/connections/github.mdx
  • docs/docs/connections/gitlab.mdx
  • docs/docs/connections/indexing-your-code.mdx
  • docs/docs/connections/local-repos.mdx
  • docs/docs/deployment/docker-compose.mdx
  • docs/docs/deployment/infrastructure/architecture.mdx
  • docs/docs/deployment/sizing-guide.mdx
  • docs/docs/features/agents/agents.mdx
  • docs/docs/features/ask/ask-sourcebot.mdx
  • docs/docs/features/ask/chat-sharing.mdx
  • docs/docs/features/ask/connectors.mdx
  • docs/docs/features/mcp-server.mdx
  • docs/docs/features/permission-syncing.mdx
  • docs/docs/features/search/code-search.mdx
  • docs/docs/features/search/multi-branch-indexing.mdx
  • docs/docs/features/search/search-contexts.mdx
  • docs/docs/free-trial.mdx
  • docs/docs/license-key.mdx
  • docs/docs/misc/architecture.mdx
  • docs/docs/misc/scalability.mdx
  • docs/docs/misc/service-ping.mdx
  • docs/docs/misc/telemetry.mdx
  • docs/docs/overview.mdx
  • docs/docs/upgrade/v3-to-v4-guide.mdx
  • docs/docs/upgrade/v4-to-v5-guide.mdx
  • docs/snippets/license-key-required.mdx
  • packages/backend/src/__mocks__/prisma.ts
  • packages/backend/src/api.ts
  • packages/backend/src/ee/accountPermissionSyncer.ts
  • packages/backend/src/ee/repoPermissionSyncer.ts
  • packages/backend/src/ee/syncSearchContexts.test.ts
  • packages/backend/src/ee/syncSearchContexts.ts
  • packages/backend/src/entitlements.ts
  • packages/backend/src/github.ts
  • packages/backend/src/index.ts
  • packages/backend/src/posthog.ts
  • packages/backend/src/prisma.ts
  • packages/backend/src/utils.ts
  • packages/backend/vitest.config.ts
  • packages/db/prisma/migrations/20260502000000_remove_guest_org_role/migration.sql
  • packages/db/prisma/migrations/20260509000000_add_license_table/migration.sql
  • packages/db/prisma/migrations/20260523064558_add_repo_visit_table/migration.sql
  • packages/db/prisma/migrations/20260525214409_add_changelog_table/migration.sql
  • packages/db/prisma/migrations/20260526013307_add_user_last_active_at/migration.sql
  • packages/db/prisma/migrations/20260529214711_add_mcp_connectors_tables/migration.sql
  • packages/db/prisma/schema.prisma
  • packages/db/tools/scriptRunner.ts
  • packages/db/tools/scripts/inject-chat-data.ts
  • packages/setupWizard/README.md
  • packages/setupWizard/package.json
  • packages/setupWizard/src/azuredevops.ts
  • packages/setupWizard/src/bitbucket.ts
  • packages/setupWizard/src/genericGit.ts
  • packages/setupWizard/src/gerrit.ts
  • packages/setupWizard/src/gitea.ts
  • packages/setupWizard/src/github.ts
  • packages/setupWizard/src/gitlab.ts
  • packages/setupWizard/src/index.ts
  • packages/setupWizard/src/localRepos.ts
  • packages/setupWizard/src/models.ts
  • packages/setupWizard/src/tabCheckbox.ts
  • packages/setupWizard/src/utils.ts
  • packages/setupWizard/tsconfig.json
  • packages/shared/src/constants.ts
  • packages/shared/src/crypto.ts
  • packages/shared/src/entitlements.test.ts
  • packages/shared/src/entitlements.ts
  • packages/shared/src/env.server.test.ts
  • packages/shared/src/env.server.ts
  • packages/shared/src/index.client.ts
  • packages/shared/src/index.server.ts
  • packages/shared/src/types.ts
  • packages/shared/src/versionUtils.ts
  • packages/shared/vitest.config.ts
  • packages/web/next.config.mjs
  • packages/web/package.json
  • packages/web/src/__mocks__/prisma.ts
  • packages/web/src/actions.ts
  • packages/web/src/app/(app)/@sidebar/(routes)/(default)/[...slug]/page.tsx
  • packages/web/src/app/(app)/@sidebar/(routes)/(default)/page.tsx
  • packages/web/src/app/(app)/@sidebar/(routes)/settings/[...slug]/page.tsx
  • packages/web/src/app/(app)/@sidebar/(routes)/settings/page.tsx
  • packages/web/src/app/(app)/@sidebar/components/changelogEntryDialog.tsx
  • packages/web/src/app/(app)/@sidebar/components/defaultSidebar/chatHistory.tsx
  • packages/web/src/app/(app)/@sidebar/components/defaultSidebar/index.tsx
  • packages/web/src/app/(app)/@sidebar/components/defaultSidebar/nav.tsx
  • packages/web/src/app/(app)/@sidebar/components/defaultSidebar/repoVisitHistory.tsx
  • packages/web/src/app/(app)/@sidebar/components/settingsSidebar/header.tsx
  • packages/web/src/app/(app)/@sidebar/components/settingsSidebar/index.tsx
  • packages/web/src/app/(app)/@sidebar/components/settingsSidebar/nav.tsx
  • packages/web/src/app/(app)/@sidebar/components/sidebarBase.tsx
  • packages/web/src/app/(app)/@sidebar/components/upgradeBadge.tsx
  • packages/web/src/app/(app)/@sidebar/components/upgradeButton.tsx
  • packages/web/src/app/(app)/@sidebar/components/whatsNewSidebarButton.tsx
  • packages/web/src/app/(app)/agents/page.tsx
  • packages/web/src/app/(app)/askgh/[owner]/[repo]/components/landingPage.tsx
  • packages/web/src/app/(app)/askgh/[owner]/[repo]/page.tsx
  • packages/web/src/app/(app)/browse/[...path]/components/trackRepoVisit.tsx
  • packages/web/src/app/(app)/browse/[...path]/page.tsx
  • packages/web/src/app/(app)/browse/actions.ts
  • packages/web/src/app/(app)/browse/components/bottomPanel.tsx
  • packages/web/src/app/(app)/browse/components/pureFileTreePanel.tsx
  • packages/web/src/app/(app)/browse/layout.tsx
  • packages/web/src/app/(app)/browse/layoutClient.tsx
  • packages/web/src/app/(app)/chat/[id]/page.tsx
  • packages/web/src/app/(app)/chat/chatLandingPage.tsx
  • packages/web/src/app/(app)/chat/components/chatActionsDropdown.tsx
  • packages/web/src/app/(app)/chat/components/chatSidePanel.tsx
  • packages/web/src/app/(app)/chat/components/landingPageChatBox.tsx
  • packages/web/src/app/(app)/chat/components/mcpOAuthStatusToast.tsx
  • packages/web/src/app/(app)/chat/components/tutorialDialog.tsx
  • packages/web/src/app/(app)/chat/layout.tsx
  • packages/web/src/app/(app)/chat/page.tsx
  • packages/web/src/app/(app)/chats/chatsPage.tsx
  • packages/web/src/app/(app)/chats/page.tsx
  • packages/web/src/app/(app)/components/appearanceDropdownMenu.tsx
  • packages/web/src/app/(app)/components/appearanceDropdownMenuGroup.tsx
  • packages/web/src/app/(app)/components/banners/actions.ts
  • packages/web/src/app/(app)/components/banners/bannerResolver.test.ts
  • packages/web/src/app/(app)/components/banners/bannerResolver.tsx
  • packages/web/src/app/(app)/components/banners/bannerShell.tsx
  • packages/web/src/app/(app)/components/banners/bannerSlot.tsx
  • packages/web/src/app/(app)/components/banners/invoicePastDueBanner.tsx
  • packages/web/src/app/(app)/components/banners/licenseExpiredBanner.tsx
  • packages/web/src/app/(app)/components/banners/licenseExpiryHeadsUpBanner.tsx
  • packages/web/src/app/(app)/components/banners/licenseReboundElsewhereBanner.tsx
  • packages/web/src/app/(app)/components/banners/openBillingPortalButton.tsx
  • packages/web/src/app/(app)/components/banners/permissionSyncBanner.tsx
  • packages/web/src/app/(app)/components/banners/refreshLicenseButton.tsx
  • packages/web/src/app/(app)/components/banners/servicePingFailedBanner.tsx
  • packages/web/src/app/(app)/components/banners/trialBanner.tsx
  • packages/web/src/app/(app)/components/banners/types.ts
  • packages/web/src/app/(app)/components/banners/upgradeAvailableBanner.tsx
  • packages/web/src/app/(app)/components/meControlDropdownMenu.tsx
  • packages/web/src/app/(app)/components/navigationMenu/index.tsx
  • packages/web/src/app/(app)/components/navigationMenu/navigationItems.tsx
  • packages/web/src/app/(app)/components/navigationMenu/progressIndicator.tsx
  • packages/web/src/app/(app)/components/notFound.tsx
  • packages/web/src/app/(app)/components/pageNotFound.tsx
  • packages/web/src/app/(app)/components/searchModeSelector.tsx
  • packages/web/src/app/(app)/components/topBar.tsx
  • packages/web/src/app/(app)/components/upgradeToast.tsx
  • packages/web/src/app/(app)/components/whatsNewIndicator.tsx
  • packages/web/src/app/(app)/layout.tsx
  • packages/web/src/app/(app)/page.tsx
  • packages/web/src/app/(app)/repos/[id]/page.tsx
  • packages/web/src/app/(app)/repos/layout.tsx
  • packages/web/src/app/(app)/search/components/searchLandingPage.tsx
  • packages/web/src/app/(app)/search/components/searchResultsPage.tsx
  • packages/web/src/app/(app)/search/page.tsx
  • packages/web/src/app/(app)/settings/accountAskAgent/accountAskAgentEntitlementMessage.tsx
  • packages/web/src/app/(app)/settings/accountAskAgent/accountAskAgentPage.test.tsx
  • packages/web/src/app/(app)/settings/accountAskAgent/accountAskAgentPage.tsx
  • packages/web/src/app/(app)/settings/accountAskAgent/page.tsx
  • packages/web/src/app/(app)/settings/analytics/analyticsEntitlementMessage.tsx
  • packages/web/src/app/(app)/settings/analytics/page.tsx
  • packages/web/src/app/(app)/settings/apiKeys/apiKeysPage.tsx
  • packages/web/src/app/(app)/settings/apiKeys/columns.tsx
  • packages/web/src/app/(app)/settings/apiKeys/page.tsx
  • packages/web/src/app/(app)/settings/components/settingsCard.tsx
  • packages/web/src/app/(app)/settings/components/sidebar-nav.tsx
  • packages/web/src/app/(app)/settings/connections/page.tsx
  • packages/web/src/app/(app)/settings/general/generalPage.tsx
  • packages/web/src/app/(app)/settings/general/page.tsx
  • packages/web/src/app/(app)/settings/layout.tsx
  • packages/web/src/app/(app)/settings/license/activationCodeCard.tsx
  • packages/web/src/app/(app)/settings/license/offlineLicenseCard.tsx
  • packages/web/src/app/(app)/settings/license/onlineLicenseCard/licenseInactiveBanner.tsx
  • packages/web/src/app/(app)/settings/license/onlineLicenseCard/onlineLicenseCard.tsx
  • packages/web/src/app/(app)/settings/license/onlineLicenseCard/planActionsMenu.tsx
  • packages/web/src/app/(app)/settings/license/onlineLicenseCard/removeActivationCodeDialog.tsx
  • packages/web/src/app/(app)/settings/license/onlineLicenseCard/trialMissingPaymentMethodBanner.tsx
  • packages/web/src/app/(app)/settings/license/onlineLicenseCard/upcomingYearlyRenewalBanner.tsx
  • packages/web/src/app/(app)/settings/license/page.tsx
  • packages/web/src/app/(app)/settings/license/recentInvoicesCard.tsx
  • packages/web/src/app/(app)/settings/license/types.ts
  • packages/web/src/app/(app)/settings/license/yearlyTermSeatsUsageCard.tsx
  • packages/web/src/app/(app)/settings/linked-accounts/page.tsx
  • packages/web/src/app/(app)/settings/mcp/clientCard.tsx
  • packages/web/src/app/(app)/settings/mcp/clients.ts
  • packages/web/src/app/(app)/settings/mcp/mcpEntitlementMessage.tsx
  • packages/web/src/app/(app)/settings/mcp/mcpPage.tsx
  • packages/web/src/app/(app)/settings/mcp/page.tsx
  • packages/web/src/app/(app)/settings/members/components/inviteMemberCard.tsx
  • packages/web/src/app/(app)/settings/members/components/invitesList.tsx
  • packages/web/src/app/(app)/settings/members/components/membersList.tsx
  • packages/web/src/app/(app)/settings/members/components/requestsList.tsx
  • packages/web/src/app/(app)/settings/members/page.tsx
  • packages/web/src/app/(app)/settings/page.tsx
  • packages/web/src/app/(app)/settings/workspaceAskAgent/page.test.tsx
  • packages/web/src/app/(app)/settings/workspaceAskAgent/page.tsx
  • packages/web/src/app/(app)/settings/workspaceAskAgent/prefabConnectorPopover.tsx
  • packages/web/src/app/(app)/settings/workspaceAskAgent/workspaceAskAgentEntitlementMessage.tsx
  • packages/web/src/app/(app)/settings/workspaceAskAgent/workspaceAskAgentPage.tsx
  • packages/web/src/app/(app)/settings/workspaceAskAgent/workspaceAskAgentUnavailableMessage.tsx
  • packages/web/src/app/api/(client)/client.ts
  • packages/web/src/app/api/(server)/changelog/entries/route.ts
  • packages/web/src/app/api/(server)/chat/blocking/route.ts
  • packages/web/src/app/api/(server)/ee/.well-known/oauth-authorization-server/route.ts
  • packages/web/src/app/api/(server)/ee/.well-known/oauth-protected-resource/[...path]/route.ts
  • packages/web/src/app/api/(server)/ee/askmcp/callback/route.test.ts
  • packages/web/src/app/api/(server)/ee/askmcp/callback/route.ts
  • packages/web/src/app/api/(server)/ee/askmcp/configuration/route.test.ts
  • packages/web/src/app/api/(server)/ee/askmcp/configuration/route.ts
  • packages/web/src/app/api/(server)/ee/askmcp/connect/route.test.ts
  • packages/web/src/app/api/(server)/ee/askmcp/connect/route.ts
  • packages/web/src/app/api/(server)/ee/askmcp/connect/types.ts
  • packages/web/src/app/api/(server)/ee/askmcp/servers/route.test.ts
  • packages/web/src/app/api/(server)/ee/askmcp/servers/route.ts
  • packages/web/src/app/api/(server)/ee/askmcp/tools/route.test.ts
  • packages/web/src/app/api/(server)/ee/askmcp/tools/route.ts
  • packages/web/src/app/api/(server)/ee/audit/route.ts
  • packages/web/src/app/api/(server)/ee/chat/[chatId]/searchMembers/route.ts
  • packages/web/src/app/api/(server)/ee/chat/route.ts
  • packages/web/src/app/api/(server)/ee/chats/route.ts
  • packages/web/src/app/api/(server)/ee/chats/types.ts
  • packages/web/src/app/api/(server)/ee/mcp/route.ts
  • packages/web/src/app/api/(server)/ee/oauth/register/route.ts
  • packages/web/src/app/api/(server)/ee/oauth/revoke/route.ts
  • packages/web/src/app/api/(server)/ee/oauth/token/route.ts
  • packages/web/src/app/api/(server)/ee/permissionSyncStatus/api.ts
  • packages/web/src/app/api/(server)/ee/user/route.ts
  • packages/web/src/app/api/(server)/ee/users/route.ts
  • packages/web/src/app/api/(server)/offers/route.ts
  • packages/web/src/app/api/(server)/repos/listReposApi.ts
  • packages/web/src/app/components/anonymousAccessToggle.tsx
  • packages/web/src/app/components/authMethodSelector.tsx
  • packages/web/src/app/components/organizationAccessSettings.tsx
  • packages/web/src/app/globals.css
  • packages/web/src/app/invite/actions.ts
  • packages/web/src/app/invite/page.tsx
  • packages/web/src/app/layout.tsx
  • packages/web/src/app/login/components/loginForm.tsx
  • packages/web/src/app/login/page.tsx
  • packages/web/src/app/not-found.tsx
  • packages/web/src/app/oauth/authorize/page.tsx
  • packages/web/src/app/onboard/components/alreadyLicensedStep.tsx
  • packages/web/src/app/onboard/components/completeOnboardingButton.tsx
  • packages/web/src/app/onboard/components/trialStep.tsx
  • packages/web/src/app/onboard/page.tsx
  • packages/web/src/app/posthogProvider.tsx
  • packages/web/src/app/progressBarProvider.tsx
  • packages/web/src/app/signup/page.tsx
  • packages/web/src/auth.ts
  • packages/web/src/components/ui/alert.tsx
  • packages/web/src/components/ui/data-table.tsx
  • packages/web/src/components/ui/dialog.tsx
  • packages/web/src/components/ui/sidebar.tsx
  • packages/web/src/components/ui/switch.tsx
  • packages/web/src/components/ui/table.tsx
  • packages/web/src/components/ui/tooltip.tsx
  • packages/web/src/ee/features/analytics/actions.ts
  • packages/web/src/ee/features/analytics/analyticsContent.tsx
  • packages/web/src/ee/features/analytics/analyticsEntitlementMessage.tsx
  • packages/web/src/ee/features/audit/actions.ts
  • packages/web/src/ee/features/audit/audit.ts
  • packages/web/src/ee/features/audit/auditService.ts
  • packages/web/src/ee/features/audit/factory.ts
  • packages/web/src/ee/features/audit/mockAuditService.ts
  • packages/web/src/ee/features/audit/types.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch v5

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 10, 2026

License Audit

⚠️ Status: PASS

Metric Count
Total packages 2133
Resolved (non-standard) 11
Unresolved 0
Strong copyleft 0
Weak copyleft 38

Weak Copyleft Packages (informational)

Package Version License
@img/sharp-libvips-darwin-arm64 1.0.4 LGPL-3.0-or-later
@img/sharp-libvips-darwin-arm64 1.2.4 LGPL-3.0-or-later
@img/sharp-libvips-darwin-x64 1.0.4 LGPL-3.0-or-later
@img/sharp-libvips-darwin-x64 1.2.4 LGPL-3.0-or-later
@img/sharp-libvips-linux-arm 1.0.5 LGPL-3.0-or-later
@img/sharp-libvips-linux-arm 1.2.4 LGPL-3.0-or-later
@img/sharp-libvips-linux-arm64 1.0.4 LGPL-3.0-or-later
@img/sharp-libvips-linux-arm64 1.2.4 LGPL-3.0-or-later
@img/sharp-libvips-linux-ppc64 1.2.4 LGPL-3.0-or-later
@img/sharp-libvips-linux-riscv64 1.2.4 LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x 1.0.4 LGPL-3.0-or-later
@img/sharp-libvips-linux-s390x 1.2.4 LGPL-3.0-or-later
@img/sharp-libvips-linux-x64 1.0.4 LGPL-3.0-or-later
@img/sharp-libvips-linux-x64 1.2.4 LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm64 1.0.4 LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-arm64 1.2.4 LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x64 1.0.4 LGPL-3.0-or-later
@img/sharp-libvips-linuxmusl-x64 1.2.4 LGPL-3.0-or-later
@img/sharp-wasm32 0.33.5 Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-wasm32 0.34.5 Apache-2.0 AND LGPL-3.0-or-later AND MIT
@img/sharp-win32-arm64 0.34.5 Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-ia32 0.33.5 Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-ia32 0.34.5 Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-x64 0.33.5 Apache-2.0 AND LGPL-3.0-or-later
@img/sharp-win32-x64 0.34.5 Apache-2.0 AND LGPL-3.0-or-later
axe-core 4.10.3 MPL-2.0
lightningcss 1.32.0 MPL-2.0
lightningcss-android-arm64 1.32.0 MPL-2.0
lightningcss-darwin-arm64 1.32.0 MPL-2.0
lightningcss-darwin-x64 1.32.0 MPL-2.0
lightningcss-freebsd-x64 1.32.0 MPL-2.0
lightningcss-linux-arm-gnueabihf 1.32.0 MPL-2.0
lightningcss-linux-arm64-gnu 1.32.0 MPL-2.0
lightningcss-linux-arm64-musl 1.32.0 MPL-2.0
lightningcss-linux-x64-gnu 1.32.0 MPL-2.0
lightningcss-linux-x64-musl 1.32.0 MPL-2.0
lightningcss-win32-arm64-msvc 1.32.0 MPL-2.0
lightningcss-win32-x64-msvc 1.32.0 MPL-2.0
Resolved Packages (11)
Package Version Original Resolved Source
@react-grab/cli 0.1.23 UNKNOWN MIT LICENSE file at https://unpkg.com/@react-grab/cli@0.1.23/LICENSE
@react-grab/cli 0.1.29 UNKNOWN MIT LICENSE file at https://unpkg.com/@react-grab/cli@0.1.29/LICENSE
@react-grab/mcp 0.1.29 UNKNOWN MIT LICENSE file at https://unpkg.com/@react-grab/mcp@0.1.29/LICENSE
codemirror-lang-elixir 4.0.0 UNKNOWN Apache-2.0 LICENSE file at https://github.com/livebook-dev/codemirror-lang-elixir (Apache License Version 2.0)
element-source 0.0.3 UNKNOWN MIT LICENSE file at https://unpkg.com/element-source@0.0.3/LICENSE
lezer-elixir 1.1.2 UNKNOWN Apache-2.0 LICENSE file at https://github.com/livebook-dev/lezer-elixir (Apache License Version 2.0)
map-stream 0.1.0 UNKNOWN MIT LICENCE file at https://github.com/dominictarr/map-stream (MIT License, ©2011 Dominic Tarr; GitHub license API also reports MIT)
memorystream 0.3.1 UNKNOWN MIT npm registry 'licenses' field on memorystream@0.3.1 reports [{type: 'MIT', url: '.../LICENSE'}]
valid-url 1.0.9 UNKNOWN MIT LICENSE file at https://github.com/ogt/valid-url (MIT License, ©2013 Odysseas Tsatalos and oDesk Corporation)
posthog-js 1.369.0 SEE LICENSE IN LICENSE Apache-2.0 LICENSE file at https://github.com/PostHog/posthog-js (Apache License Version 2.0)
pause-stream 0.0.11 ["MIT", "Apache2"] MIT OR Apache-2.0 Extracted from license array field ['MIT', 'Apache2'] in package.json (dual-licensed MIT or Apache-2.0)

* wip

* remove unused hook

* Add collapse sidebar button

* refactor settings into sidebar as a override context

* chat thread styling

* notification dot

* improved rendering

* fix light mode

* imporved api key page

* add chats page

* not found nit

* guest sidebar footer

* add tooltip for sidebar collapse button

* nit

* onboard nit

* fix permission sync banner

* what's new

* profile settings

* home view settings

* general settings

* remove shadow

* changelog

* feedback
brendan-kellam and others added 5 commits April 24, 2026 08:53
* wip on service ping

* add concept of License to the database and wire it into the enitlements system

* wip on e2e checkout flow

* basic card to display current plan

* store activation code at rest

* add manage subscription button

* wip on lighthouse client

* wip on lighthouse client

* remove the concept of a plan and just rely on entitlements at the app layer

* fix sidebar

* add temporary refresh license button

* clarified org availability design

* entitlements naming nit

* remove concept of a GUEST user

* remove anonymous-access entitlement

* change offline license to support optional seats

* handle license validation for all paths

* refactor some actions

* add explicit service ping calls to user <> organization update paths

* fix refresh bug with sidebar

* add billing details card

* fix invite redemption when user already a member

User was hitting a unique constraint on UserToOrg(orgId, userId) when
redeeming an invite, because onCreateUser auto-joins new signups in
self-serve mode and redeemInvite then tried to create the same row.
Make the insert idempotent via upsert so the downstream AccountRequest
and invite cleanup still runs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* wip on license card

* further wip on license card / activaction code card

* add recent invoices UI

* nit on seats terminology

* feat(web): surface subscription cancellation on license card

Adds cancelAt to the License model and the lighthouse ping schema, and
renders "Cancels on <date>" on the current plan card when there's no
upcoming renewal. Prefers "Next renewal" when Stripe still has an
upcoming invoice — so subscriptions scheduled to end after the next
billing cycle keep showing the renewal row.

Also makes nextRenewalAt / nextRenewalAmount nullable to match the
lighthouse response, and guards new Date() against null in servicePing.

Adds a CLAUDE.md under the lighthouse feature folder pointing at the
service repo so the two schemas stay in lockstep.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(web): add offline license card to settings

Renders a dedicated card for offline (SOURCEBOT_EE_LICENSE_KEY) licenses
showing the license id, seat cap, and expiry. When an offline license
is present, the page skips the online license lookup entirely to mirror
the precedence in entitlements.ts.

Also adds a header row with a mailto link to support and an "All plans"
shortcut to the public pricing page.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(web): banner system for license + permission sync

Introduces a priority-ordered, single-slot banner system under
(app)/components/banners/. A server-side resolver picks the highest-priority
banner that matches the current context (role, license state, offline
license, permission-sync status) and renders it through a shared BannerShell
that handles per-day dismissal via cookies.

Banners included:
- License expired (everyone, non-dismissible, role-aware copy)
- License expiry heads-up (owner, dismissible, 14d window, uses
  formatDistance for relative copy)
- Invoice past due (owner, non-dismissible)
- Permission sync pending (everyone, non-dismissible, migrated from the
  prior standalone component through BannerShell)

Precedence mirrors entitlements.ts: offline license is the sole source
of truth when present, so online billing state is ignored.

Also splits getValidOfflineLicense into a decode-only path so
getOfflineLicenseMetadata can surface expired licenses to the UI.

Includes bannerResolver.test.ts covering priority, audience filtering,
dismissal filtering, offline/online expiry rules, and permission sync.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* handle failure case where lighthouse cannot be reached

* chore(web): mirror lighthouse trial + checkout schema changes

Adds trialEnd to the ping response schema and installId / requestTrial
to the checkout request schema so types match the lighthouse service.
createCheckoutSession passes the instance's SOURCEBOT_INSTALL_ID and
defaults requestTrial to false (the existing "upgrade" button is not
a trial path).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(web): trial banner + plumbing

Adds a trial banner to the owner-facing banner stack and the
surrounding plumbing:

- Schema: License.trialEnd, License.hasPaymentMethod, Org.trialUsedAt
  (durable flag that survives license deactivation). Two migrations.
- servicePing persists trialEnd / hasPaymentMethod and flips
  Org.trialUsedAt on first trial sync.
- Trial banner (owner, dismissible, priority 25): title uses
  formatDistance ("Your trial ends in 10 days"); copy + action branch
  on hasPaymentMethod. With-PM variant links to /settings/license;
  no-PM variant opens the Stripe portal via a new
  OpenBillingPortalButton (LoadingButton + createPortalSession).
- currentPlanCard gains a "Trial ends on" fallback column for the
  trial-without-PM case (where nextRenewalAt is null).
- activationCodeCard accepts isTrialEligible and flips its checkout
  button from "Purchase a license" to "Start a free trial" when the
  org hasn't trialed yet, passing requestTrial through to the checkout
  endpoint.
- Types mirror the new lighthouse fields (trialEnd, hasPaymentMethod)
  and the checkout request additions (installId, requestTrial).

Side-trips to Stripe (portal, checkout) now append ?refresh=true so
the license resyncs on return; trial-checkout also appends
?trial_used=true so Org.trialUsedAt flips immediately (closes the UX
gap between checkout completion and activation-code entry). page.tsx
handles both params, preserves any other query params, and redirects
to a clean URL.

Also: fetchWithRetry now only retries 5xx, 408, and 429 — 4xx errors
(e.g. TRIAL_ALREADY_USED at 409) propagate immediately instead of
retrying pointlessly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* add badges to invoice cards

* add basic billing docs

* refactor(lighthouse): throw ServiceErrorException on ping failure

syncWithLighthouse previously swallowed ping errors with a log and early
return, which masked real problems. Flip the model: on a lighthouse
ServiceError response, throw ServiceErrorException. The sew() middleware
already knows how to marshal that into an API response for user-initiated
paths.

Callers fall into two camps:
- Propagate (user-initiated): activateLicense and refreshLicense. The
  existing try/catch in activateLicense now correctly rolls back the
  license row when lighthouse rejects the activation code; refreshLicense
  lets the throw propagate so the UI surfaces a toast.
- Swallow explicitly (background / side-effect): license page load, the
  24h cron, user-approval, and signup paths all wrap with
  `.catch(() => { /* ignore */ })`. These happen as a side effect of
  other successful operations; a ping failure shouldn't block them.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feedback

* fix tests

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@brendan-kellam brendan-kellam marked this pull request as ready for review May 21, 2026 21:34
* wip on upsell dialog

* rename to upsell dialog

* use dynamic prices

* further polish w.r.t., how we hydrate the client with offer information

* feedback
msukkari and others added 7 commits May 27, 2026 19:59
* Add ask MCP server integration

* Merge MCP user server credentials

* Inject Prisma into MCP OAuth provider

* Scope MCP user server queries

* Add org-approved MCP servers

* feat(web): add workspace MCP configuration

* fix(web): allow MCP cleanup without OAuth entitlement

* feat(web): improve MCP server add flow

* fix(web): check DCR for prefab MCP servers

* feat(web): support static OAuth MCP credentials

* feat(web): add more prefab MCP servers

* fix(web): use official Atlassian MCP icons

* fix(web): use Atlassian prefab MCP server

* feat(web): connect approved MCP servers from chat

* feat(web): redesign MCP servers settings page

Rework the MCP servers page with a cleaner, more compact layout:
- Split servers into Connected / Suggested sections
- Add search bar with All / Connected filter tabs
- Compact card design with smaller favicons, stripped URLs, quieter status indicators
- Move Reconnect into three-dot overflow menu alongside new Disconnect option
- Add disconnectMcpServer server action to remove a user's MCP credentials
- Extract useConnectMcp hook for shared connect/reconnect logic

* Rename MCP settings to Ask Agent connectors

* feat(web): redesign workspace Ask Agent settings page

Redesign the workspace Ask Agent page with card-based layout, 3-stat
strip, connector rows with status indicators, kebab menu, and Connect
button with OAuth flow. Extract shared ConnectorRowInfo component for
reuse between workspace and account settings pages.

* feat(web): add workspace connector config link to chat toolbar

Add "Configure connectors" link to the chat toolbar's Connectors
submenu, pointing to /settings/workspaceAskAgent for workspace-level
connector management. Keep existing "Manage connectors" link to
/settings/accountAskAgent for personal connector setup.

* Add MCP connector tool metadata

* feat(web): redesign MCP tools list as compact clickable badges

Replace the full-card tool list with a compact badge grid. Clicking a
badge reveals that tool's detail panel inline; only one detail is visible
at a time. Also remove the focus ring from the tools trigger button.

* refactor(web): extract shared ConnectorCard component

Unify the duplicated card layout between AccountConnectedConnectorCard
and WorkspaceConnectorCard into a single ConnectorCard component that
owns the Collapsible state, Card shell, ConnectorRowInfo, and tool
disclosure wiring. The divergent parts (status badge, action buttons)
are passed as ReactNode slots.

* Fix Ask approval turn progress state

* Add MCP connector usage counters

* Address MCP review feedback

* Remove workspace Ask Agent connector summary cards

* Add PostHog prefab MCP server

* Add Ask MCP PostHog metrics

* Add Ask MCP tool call analytics

* Add Ask MCP connector lifecycle analytics

* Fix v5 rebase follow-ups

* Clean up Ask MCP deployment references

* Move EE MCP feature under chat

* Simplify static MCP OAuth HTTPS guard

* docs: v5 docs updates (#1244)

* [v5] feat(web): Add usage information for yearly subs (#1245)

* schema

* feat

* fix build errors after merge

* fix bug where Ask doesn't load if we dont have a license key

* refactor(web): clean up MCP OAuth provider

* Prisma Migrations

* Address various review feedback

---------

Co-authored-by: Jack Minnetian <270441393+BlueBottleLatte@users.noreply.github.com>
Co-authored-by: Michael Sukkarieh <michael.sukkarieh@mail.mcgill.ca>
}

function removeHtmlTags(value: string): string {
return value.replace(/<[^>]*>/g, '');
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.

4 participants