Skip to content

Latest commit

 

History

History
36 lines (29 loc) · 1.91 KB

README.md

File metadata and controls

36 lines (29 loc) · 1.91 KB

Error Reporting

Documents

Key Files

  • src/renderer/src/util/message.ts - showError() entry point for non-critical errors
  • src/renderer/src/util/errorHandling.ts - withTrackedActivity, recordErrorSpan, terminate (renderer)
  • src/main/src/errorHandling.ts - terminate / terminateAsync for main-process crashes
  • src/main/src/errorReporting.ts - reportCrash() — short-lived OTel provider for crash spans
  • src/main/src/telemetry/RingBufferSpanProcessor.ts - Circular buffer; auto-exports on ERROR status
  • src/main/src/telemetry/setup.ts - createMainTelemetryProvider, OTLP exporter config
  • src/main/src/telemetry/ipcHandler.ts - Renderer→main span IPC bridge; analytics opt-in watcher
  • src/shared/src/telemetry/spans.ts - recordErrorOnSpan shared utility
  • src/shared/src/errors.ts - computeErrorFingerprint for deduplication

Flow

error occurs
  └─ recordErrorOnSpan()        sets ERROR status + fingerprint on span
       └─ span.end()
            └─ RingBufferSpanProcessor.onEnd()
                 └─ status == ERROR?
                      yes ──> extract all spans for this traceId
                               isTelemetryEnabled()?
                                 yes ──> OTLPTraceExporter → vortex-collector.nexusmods.com

Renderer spans are forwarded to main via IPC (telemetry:forward-span) before entering the ring buffer.