Claude b0281ae8f9 feat(errors): add Sentry observability behind a sinks facade
logError / reportError now route through a pair of sinks installed at
bootstrap by each process (main + every renderer entry). No call site
knows about Sentry — if sentryDsn is empty, the sinks simply aren't
installed and logError/reportError stay console-only.

- appConfig.sentryDsn: per-env string (empty for now — populate when
  ops creates the DSNs). Empty is the no-op mode for dev.
- lib/errors.ts: installErrorSinks({ capture, breadcrumb }) gates
  Sentry.captureException / Sentry.addBreadcrumb. Everything flows
  through toUserMessage and the two existing call types.
- lib/sentry.ts: initSentryRenderer() for the main window + autoplay,
  huddle, and screen-record renderers.
- main/sentry.ts: initSentryMain() runs before anything else in
  main.ts to catch bootstrap failures. Captures uncaught exceptions
  and the crash reporter automatically.
- main/ipc-utils.ts::safeHandle now routes through reportError.
- main.ts::fetchLinkMetadata logs via logError.
2026-04-17 03:01:02 +00:00
2026-02-19 19:41:26 -08:00
2026-01-27 11:16:58 -08:00
2026-02-19 19:41:26 -08:00
2026-02-03 18:47:26 -08:00
2026-04-12 13:34:49 -07:00
S
Description
No description provided
21 MiB
Languages
TypeScript 68.6%
Go 20.6%
C++ 8.7%
CSS 0.8%
CMake 0.3%
Other 0.8%