Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- Upgraded Vercel AI SDK from v5 to v6. [#969](https://github.com/sourcebot-dev/sourcebot/pull/969)
- Added support for using bearer tokens with anthropic. [#967](https://github.com/sourcebot-dev/sourcebot/pull/967)
- Updated to Next.JS 16. [#970](https://github.com/sourcebot-dev/sourcebot/pull/970)

## [4.13.1] - 2026-02-28

Expand Down
16 changes: 0 additions & 16 deletions packages/web/next.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,6 @@ const nextConfig = {

export default withSentryConfig(nextConfig, {
// For all available options, see:
// https://www.npmjs.com/package/@sentry/webpack-plugin#options

org: process.env.SENTRY_ORG,
project: process.env.SENTRY_WEBAPP_PROJECT,
authToken: process.env.SENTRY_SMUAT,
Expand All @@ -70,23 +68,9 @@ export default withSentryConfig(nextConfig, {
// Upload a larger set of source maps for prettier stack traces (increases build time)
widenClientFileUpload: true,

// Automatically annotate React components to show their full name in breadcrumbs and session replay
reactComponentAnnotation: {
enabled: true,
},

// Route browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers.
// This can increase your server load as well as your hosting bill.
// Note: Check that the configured route will not match with your Next.js middleware, otherwise reporting of client-
// side errors will fail.
tunnelRoute: "/monitoring",

// Automatically tree-shake Sentry logger statements to reduce bundle size
disableLogger: true,

// Enables automatic instrumentation of Vercel Cron Monitors. (Does not yet work with App Router route handlers.)
// See the following for more information:
// https://docs.sentry.io/product/crons/
// https://vercel.com/docs/cron-jobs
automaticVercelMonitors: true,
});
18 changes: 9 additions & 9 deletions packages/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@
"@replit/codemirror-lang-solidity": "^6.0.2",
"@replit/codemirror-lang-svelte": "^6.0.0",
"@replit/codemirror-vim": "^6.2.1",
"@sentry/nextjs": "^9",
"@sentry/nextjs": "^10.40.0",
"@shopify/lang-jsonc": "^1.0.0",
"@sourcebot/codemirror-lang-tcl": "^1.0.12",
"@sourcebot/db": "workspace:*",
Expand Down Expand Up @@ -151,7 +151,7 @@
"linguist-languages": "^9.3.1",
"lucide-react": "^0.517.0",
"micromatch": "^4.0.8",
"next": "15.5.10",
"next": "16.1.6",
"next-auth": "^5.0.0-beta.30",
"next-navigation-guard": "^0.2.0",
"next-themes": "^0.3.0",
Expand All @@ -163,9 +163,9 @@
"posthog-node": "^5.24.15",
"pretty-bytes": "^6.1.1",
"psl": "^1.15.0",
"react": "^19.2.1",
"react": "19.2.4",
"react-device-detect": "^2.2.3",
"react-dom": "^19.2.1",
"react-dom": "19.2.4",
"react-hook-form": "^7.53.0",
"react-hotkeys-hook": "^4.5.1",
"react-icons": "^5.3.0",
Expand Down Expand Up @@ -202,13 +202,13 @@
"@types/node": "^20",
"@types/nodemailer": "^6.4.17",
"@types/psl": "^1.1.3",
"@types/react": "19.2.1",
"@types/react-dom": "19.2.1",
"@types/react": "19.2.14",
"@types/react-dom": "19.2.3",
"@typescript-eslint/eslint-plugin": "^8.40.0",
"@typescript-eslint/parser": "^8.40.0",
"cross-env": "^7.0.3",
"eslint": "^8",
"eslint-config-next": "15.5.0",
"eslint-config-next": "16.1.6",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^5.2.0",
"jsdom": "^25.0.1",
Expand All @@ -223,7 +223,7 @@
"vitest-mock-extended": "^3.1.0"
},
"resolutions": {
"@types/react": "19.2.1",
"@types/react-dom": "19.2.1"
"@types/react": "19.2.14",
"@types/react-dom": "19.2.3"
}
}
15 changes: 13 additions & 2 deletions packages/web/src/app/page.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,21 @@
import { auth } from "@/auth";
import { redirect } from "next/navigation";
import { SINGLE_TENANT_ORG_DOMAIN } from "@/lib/constants";
import { getOrgFromDomain } from "@/data/org";
import { prisma } from "@/prisma";

// @note: we were hitting `PrismaClientInitializationError` errors during
// build time. Next.js performs a static generation probe on all pages during
// `next build`, running each page component to determine if it's static or
// dynamic. `force-dynamic` skips the probe entirely so this page is always
// rendered at request time.
export const dynamic = 'force-dynamic';

export default async function Page() {
const org = await getOrgFromDomain(SINGLE_TENANT_ORG_DOMAIN);
const org = await prisma.org.findUnique({
where: {
domain: SINGLE_TENANT_ORG_DOMAIN
}
});

if (!org || !org.isOnboarded) {
return redirect("/onboard");
Expand Down
19 changes: 6 additions & 13 deletions packages/web/src/data/org.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,11 @@ import 'server-only';
import { prisma } from '@/prisma';

export const getOrgFromDomain = async (domain: string) => {
try {
const org = await prisma.org.findUnique({
where: {
domain: domain
}
});
const org = await prisma.org.findUnique({
where: {
domain: domain
}
});

return org;
} catch (error) {
// During build time we won't be able to access the database, so we catch and return null in this case
// so that we can statically build pages that hit the DB (ex. to check if the org is onboarded)
console.error('Error fetching org from domain:', error);
return null;
}
return org;
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { NextResponse } from 'next/server'
import type { NextRequest } from 'next/server'
import { SINGLE_TENANT_ORG_DOMAIN } from '@/lib/constants'

export async function middleware(request: NextRequest) {
export async function proxy(request: NextRequest) {
const url = request.nextUrl.clone();

if (
Expand Down
2 changes: 1 addition & 1 deletion packages/web/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"jsx": "react-jsx",
"incremental": true,
"plugins": [
{
Expand Down
Loading