Turn the half-wired error capture into a real Sentry-like product: keyed ingest, issue grouping/lifecycle, source maps, breadcrumbs, releases, alerting, and a proper issue UI.
Tracks (17):
- #67 — Errors: route the SDK through the API-key-gated ingest (key is currently unused)
- #68 — Errors: authenticate /errors/collect by DSN + reject unkeyed payloads
- #69 — Errors: require auth + project membership on all error READ endpoints
- #70 — Errors: proper SDK init — sdk.init({ dsn, environment, release, sampleRate })
- #71 — Errors: manual capture API — captureException / captureMessage
- #72 — Errors: issue grouping by normalized stack-trace fingerprint
- #73 — Errors: issue lifecycle — unresolved/resolved/ignored + auto-regression
- #74 — Errors: source maps upload + stack symbolication
- #75 — Errors: breadcrumbs (events leading up to the error)
- #76 — Errors: releases — version tagging, first-seen, regression-by-release
- #77 — Errors: rich context — user, tags, environment, request/URL, browser/OS
- #78 — Errors: issue detail UI — framed stack, occurrences over time, affected users/urls
- #79 — Errors: issue list UI — search/filter/sort (state, level, release, assignee)
- #80 — Errors: alerting — evaluate new-issue / spike / rate alerts + notify
- #81 — Errors: sampling, ignore rules, per-project quotas + rate limiting
- #82 — Errors: assignment & ownership (assign issues to members) [stretch]
- #83 — Errors: data model + retention (issue rollups, occurrence counts, TTL, indexes)
Part of the Fathom + Sentry product backlog. See #44 for the original roadmap.