Skip to content

Commit 019ad07

Browse files
Merge branch 'main' into brendan/fix-SOU-2040
2 parents faa5906 + 9fca705 commit 019ad07

11 files changed

Lines changed: 166 additions & 127 deletions

File tree

.env.development

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ CONFIG_PATH=${PWD}/config.json # Path to the sourcebot config file (if one exist
3030
# NEXT_PUBLIC_SENTRY_WEBAPP_DSN=""
3131
# SENTRY_ENVIRONMENT="dev"
3232
# NEXT_PUBLIC_SENTRY_ENVIRONMENT="dev"
33+
# SENTRY_TRACING_ENABLED="false" # Set to "true" to enable server and edge tracing.
34+
# SENTRY_PROFILING_ENABLED="false" # Set to "true" to enable server-side profiling. Requires tracing.
3335
# SENTRY_AUTH_TOKEN=
3436

3537
# Logtail

CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88
## [Unreleased]
99

1010
### Fixed
11-
- Fixed unary Zoekt searches retaining a gRPC channel after every request by closing each client on completion. [#1591](https://github.com/sourcebot-dev/sourcebot/pull/1591)
11+
- Upgraded `posthog-node` to `^5.51.2` and `@sentry/*` to `^10.71.0` to stop request contexts and child spans from being retained indefinitely. [#1617](https://github.com/sourcebot-dev/sourcebot/pull/1617)
1212
- [EE] Fixed MCP protocol traffic marking users as active by recording activity only for tool calls. [#1613](https://github.com/sourcebot-dev/sourcebot/pull/1613)
1313

14+
## [5.1.9] - 2026-08-22
15+
16+
### Fixed
17+
- Fixed unary Zoekt searches retaining a gRPC channel after every request by closing each client on completion. [#1591](https://github.com/sourcebot-dev/sourcebot/pull/1591)
18+
- Fixed Ask error banner persisting after transient network errors were cleared, causing stale "Network error" messages to appear after every question. [#1614](https://github.com/sourcebot-dev/sourcebot/pull/1614)
19+
1420
## [5.1.8] - 2026-08-19
1521

1622
### Added

docs/api-reference/sourcebot-public.openapi.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"openapi": "3.0.3",
33
"info": {
44
"title": "Sourcebot Public API",
5-
"version": "v5.1.8",
5+
"version": "v5.1.9",
66
"description": "OpenAPI description for the public Sourcebot REST endpoints used for search, repository listing, and file browsing. Authentication is instance-dependent: API keys are the standard integration mechanism, OAuth bearer tokens are EE-only, and some instances may allow anonymous access."
77
},
88
"tags": [

packages/backend/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
"@octokit/app": "^16.1.1",
3232
"@octokit/rest": "^21.0.2",
3333
"@sentry/cli": "^2.42.2",
34-
"@sentry/node": "^10.70.0",
35-
"@sentry/profiling-node": "^10.70.0",
34+
"@sentry/node": "^10.71.0",
35+
"@sentry/profiling-node": "^10.71.0",
3636
"@sourcebot/db": "workspace:*",
3737
"@sourcebot/schemas": "workspace:*",
3838
"@sourcebot/shared": "workspace:*",
@@ -54,7 +54,7 @@
5454
"lowdb": "^7.0.1",
5555
"micromatch": "^4.0.8",
5656
"p-limit": "^7.2.0",
57-
"posthog-node": "^5.24.15",
57+
"posthog-node": "^5.51.2",
5858
"prom-client": "^15.1.3",
5959
"redlock": "5.0.0-beta.2",
6060
"simple-git": "^3.36.0",

packages/shared/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"@google-cloud/secret-manager": "^6.1.1",
1515
"@logtail/node": "^0.5.2",
1616
"@logtail/winston": "^0.5.2",
17-
"@sentry/node": "^10.40.0",
17+
"@sentry/node": "^10.71.0",
1818
"@sourcebot/db": "workspace:*",
1919
"@sourcebot/schemas": "workspace:*",
2020
"@t3-oss/env-core": "^0.13.10",

packages/shared/src/version.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
// This file is auto-generated by .github/workflows/release-sourcebot.yml
2-
export const SOURCEBOT_VERSION = "v5.1.8";
2+
export const SOURCEBOT_VERSION = "v5.1.9";

packages/web/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,8 @@
102102
"@replit/codemirror-lang-solidity": "^6.0.2",
103103
"@replit/codemirror-lang-svelte": "^6.0.0",
104104
"@replit/codemirror-vim": "^6.2.1",
105-
"@sentry/nextjs": "^10.70.0",
106-
"@sentry/profiling-node": "^10.70.0",
105+
"@sentry/nextjs": "^10.71.0",
106+
"@sentry/profiling-node": "^10.71.0",
107107
"@shopify/lang-jsonc": "^1.0.0",
108108
"@sourcebot/codemirror-lang-tcl": "^1.0.13",
109109
"@sourcebot/db": "workspace:*",
@@ -171,7 +171,7 @@
171171
"openai": "^4.98.0",
172172
"parse-diff": "^0.11.1",
173173
"posthog-js": "^1.369.0",
174-
"posthog-node": "^5.24.15",
174+
"posthog-node": "^5.51.2",
175175
"pretty-bytes": "^6.1.1",
176176
"prom-client": "^15.1.3",
177177
"psl": "^1.15.0",

packages/web/src/ee/features/chat/components/chatThread/chatThread.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -420,11 +420,11 @@ export const ChatThread = ({
420420
}, [scrollRef]);
421421

422422

423-
// Keep the error state & banner visibility in sync.
423+
// Keep the error state & banner visibility in sync. The banner should
424+
// automatically hide when the error is cleared (e.g. when a new request
425+
// starts successfully), preventing stale error banners from lingering.
424426
useEffect(() => {
425-
if (error) {
426-
setIsErrorBannerVisible(true);
427-
}
427+
setIsErrorBannerVisible(!!error);
428428
}, [error]);
429429

430430
const onSubmit = useCallback(async (children: Descendant[], editor: CustomEditor, attachments: AttachmentData[]) => {

packages/web/src/sentry.edge.config.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,16 @@
55

66
import * as Sentry from "@sentry/nextjs";
77

8+
const isTracingEnabled = process.env.SENTRY_TRACING_ENABLED === 'true';
9+
810
if (!!process.env.NEXT_PUBLIC_SENTRY_WEBAPP_DSN && !!process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT) {
911
Sentry.init({
1012
dsn: process.env.NEXT_PUBLIC_SENTRY_WEBAPP_DSN,
1113
environment: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT,
1214

13-
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,
15+
...(isTracingEnabled ? {
16+
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,
17+
} : {}),
1418

1519
// Setting this option to true will print useful information to the console while you're setting up Sentry.
1620
debug: false,

packages/web/src/sentry.server.config.ts

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,25 @@ import { nodeProfilingIntegration } from "@sentry/profiling-node";
77
import { createLogger } from "@sourcebot/shared";
88

99
const logger = createLogger('sentry-server-config');
10+
const isTracingEnabled = process.env.SENTRY_TRACING_ENABLED === 'true';
11+
const isProfilingEnabled = isTracingEnabled && process.env.SENTRY_PROFILING_ENABLED === 'true';
1012

1113
if (!!process.env.NEXT_PUBLIC_SENTRY_WEBAPP_DSN && !!process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT) {
1214
Sentry.init({
1315
dsn: process.env.NEXT_PUBLIC_SENTRY_WEBAPP_DSN,
1416
environment: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT,
15-
integrations: [
16-
nodeProfilingIntegration(),
17-
],
18-
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,
19-
// Evaluated once per `Sentry.init()`, i.e. once per server process.
20-
profileSessionSampleRate: 1.0,
21-
// Profile only while a sampled root span is active, rather than continuously.
22-
profileLifecycle: 'trace',
17+
...(isTracingEnabled ? {
18+
tracesSampleRate: process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT === 'development' ? 1.0 : 0.1,
19+
} : {}),
20+
...(isProfilingEnabled ? {
21+
integrations: [
22+
nodeProfilingIntegration(),
23+
],
24+
// Evaluated once per `Sentry.init()`, i.e. once per server process.
25+
profileSessionSampleRate: 1.0,
26+
// Profile only while a sampled root span is active, rather than continuously.
27+
profileLifecycle: 'trace' as const,
28+
} : {}),
2329
});
2430
} else {
2531
logger.debug("[server] Sentry was not initialized");

0 commit comments

Comments
 (0)