From 279de657bdd177c8f43b521eea8797342c9083f1 Mon Sep 17 00:00:00 2001 From: Brendan Kellam Date: Tue, 17 Feb 2026 21:40:44 -0800 Subject: [PATCH 1/2] feat(backend): replace backend_repo_index_job_completed with backend_repo_first_indexed Replaces the high-volume per-index PostHog event with one that fires only on the first successful index of a repo, enabling accurate tracking of unique repositories ever indexed without flooding the event stream. Co-Authored-By: Claude Sonnet 4.6 --- packages/backend/src/posthogEvents.ts | 3 +-- packages/backend/src/repoIndexManager.ts | 11 ++++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/backend/src/posthogEvents.ts b/packages/backend/src/posthogEvents.ts index abfa96245..d7a1d0871 100644 --- a/packages/backend/src/posthogEvents.ts +++ b/packages/backend/src/posthogEvents.ts @@ -19,9 +19,8 @@ export type PosthogEventMap = { jobType: 'INDEX' | 'CLEANUP', type: string, }, - backend_repo_index_job_completed: { + backend_repo_first_indexed: { repoId: number, - jobType: 'INDEX' | 'CLEANUP', type: string, }, } diff --git a/packages/backend/src/repoIndexManager.ts b/packages/backend/src/repoIndexManager.ts index 0307c0ac0..5c3fbeaaf 100644 --- a/packages/backend/src/repoIndexManager.ts +++ b/packages/backend/src/repoIndexManager.ts @@ -575,11 +575,12 @@ export class RepoIndexManager { this.promClient.activeRepoIndexJobs.dec({ repo: job.data.repoName, type: jobTypeLabel }); this.promClient.repoIndexJobSuccessTotal.inc({ repo: job.data.repoName, type: jobTypeLabel }); - captureEvent('backend_repo_index_job_completed', { - repoId: job.data.repoId, - jobType: job.data.type, - type: jobData.repo.external_codeHostType, - }); + if (jobData.type === RepoIndexingJobType.INDEX && jobData.repo.indexedAt === null) { + captureEvent('backend_repo_first_indexed', { + repoId: job.data.repoId, + type: jobData.repo.external_codeHostType, + }); + } } catch (error) { Sentry.captureException(error); logger.error(`Exception thrown while executing lifecycle function \`onJobCompleted\`.`, error); From 81b782e884c2af939f9a033948343ca660ac0916 Mon Sep 17 00:00:00 2001 From: Brendan Kellam Date: Tue, 17 Feb 2026 21:41:45 -0800 Subject: [PATCH 2/2] chore: update CHANGELOG for #900 Co-Authored-By: Claude Sonnet 4.6 --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a6df2999..9a7563345 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed +- Replaced `backend_repo_index_job_completed` PostHog event with `backend_repo_first_indexed`, which fires only on the first successful index of a repo. [#900](https://github.com/sourcebot-dev/sourcebot/pull/900) + ## [4.11.0] - 2026-02-18 ### Added