Skip to content

Sentry decommission: gated cutover checklist across all six surfaces #8298

Description

@JSONbored

Part of epic #8286 (Phase 4 — Sunset). Gated: do not start until every gate below is green. Mirrors JSONbored/metagraphed#7766.

Gates (all required before any removal)

No fixed bake clock (pre-launch, low traffic) — the gate is demonstrated capture, not elapsed time:

  • All six Phase-1 error-tracking sub-issues closed and capturing in production (or capture forced via representative failures per surface where real traffic is too quiet — document the forced-failure verification per surface here).
  • Hosted-fleet wiring (Wire hosted control-plane + tenant containers to report to the central PostHog project (implements #4934) #7876) live.
  • Side-by-side review: no error class present in Sentry that PostHog missed over the overlap window — compare issue lists explicitly, record the comparison here.
  • PostHog alert routing live (insights/alerts sub-issue at least through error alerting + the five cron-heartbeat no-data alerts).
  • OTel bridge decision recorded here before removal: removing @sentry/node/@sentry/opentelemetry also removes buildSentryOpenTelemetryBridge and the SentrySpanProcessor path (src/selfhost/otel.ts, src/selfhost/tracing.ts). Self-host OTLP export is vendor-independent and stays; the question is whether losing the Sentry span sink before PostHog tracing GA is acceptable (see the tracing-deferral sub-issue). Decide explicitly, don't discover it in a diff.

Removal checklist (repo side)

  • src/selfhost/sentry.ts + init wiring in src/server.ts (console-wrap forwarding moves to the PostHog sink); SENTRY_MIN_SEVERITY/SENTRY_REPO_MIN_SEVERITY renamed to vendor-neutral names with back-compat handling decided here.
  • @sentry/hono middleware + WORKER_SENTRY_* from src/api/routes.ts/src/env.d.ts.
  • packages/loopover-miner/lib/sentry.ts, LOOPOVER_MINER_SENTRY_* (with a deprecation note in the miner changelog — published CLI, operators have configs), egress-allowlist Sentry-host entry.
  • discovery-index + review-enrichment: sentry modules, @sentry/cli pipelines, both repos' validate-sentry-release/validate-sourcemaps scripts (already repointed; delete the Sentry halves).
  • apps/loopover-ui/src/lib/browser-sentry.ts, VITE_SENTRY_DSN, .github/workflows/ui-sentry-release.yml, SENTRY_BUILD_SOURCEMAPS in vite.config.ts; check release-selfhost.yml for Sentry references.
  • Dependencies out: root @sentry/cloudflare/@sentry/hono/@sentry/node/@sentry/opentelemetry, miner @sentry/node, discovery-index @sentry/cli+@sentry/node, UI @sentry/react. Bundle sizes re-measured (expect wins).
  • Generated artifacts: npm run selfhost:env-reference + npm run miner:env-reference regenerated; npm run cf-typegen if Worker vars change.
  • Docs/comments sweep: grep -ri sentry across the repo (dozens of file headers document the Sentry architecture); update the self-host + miner deployment docs.
  • Sentry MCP connector removed from tooling configs once the projects are gone.
  • Sentry secrets deleted from every deploy surface (self-host docs note, Worker secrets, container secrets, CI).

Final Sentry account/project deletion is performed personally by the maintainer once real errors are visibly flowing in PostHog — never by a PR or automation. Note: discovery-index reports into the metagraphed Sentry project — coordinate that removal with metagraphed's own sunset timing (JSONbored/metagraphed#7766) rather than this repo's.

Acceptance

Zero Sentry references in the repo; production error visibility fully served by PostHog; the side-by-side comparison written up here.

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions