Problem
There is no observability across the stack. A repo-wide grep for sentry|crashlytics|bugsnag|datadog|posthog|opentelemetry returns zero matches. Backend has only stdlib logging to stdout; the mobile app swallows failures silently (~27 .catch(() => {}) sites) and has no ErrorBoundary — a render-time exception (or a thrown useProgress must be used inside a ProgressProvider) white-screens the whole app with no fallback.
Evidence — no reporter deps in mobile/package.json / backend/requirements.txt; no ErrorBoundary/componentDidCatch in mobile/; App.tsx provider tree has no boundary; swallow sites e.g. ConceptActions.tsx share catch {}.
Impact — The app auto-ships OTA to production on every release. A bad bundle, a JS crash on a phone, a failed OTA, a Gemini/generation error, or a reminder-worker failure produces no alert, no crash report, no metric — the team is blind in production.
Suggested direction — Add crash/error reporting (Sentry has first-class Expo + FastAPI SDKs), a root ErrorBoundary with a recover/reload fallback, and minimal request/worker metrics on the backend. At minimum, __DEV__ logging in the swallow sites.
Problem
There is no observability across the stack. A repo-wide grep for
sentry|crashlytics|bugsnag|datadog|posthog|opentelemetryreturns zero matches. Backend has only stdlibloggingto stdout; the mobile app swallows failures silently (~27.catch(() => {})sites) and has noErrorBoundary— a render-time exception (or a thrownuseProgress must be used inside a ProgressProvider) white-screens the whole app with no fallback.Evidence — no reporter deps in
mobile/package.json/backend/requirements.txt; noErrorBoundary/componentDidCatchinmobile/;App.tsxprovider tree has no boundary; swallow sites e.g.ConceptActions.tsxsharecatch {}.Impact — The app auto-ships OTA to production on every release. A bad bundle, a JS crash on a phone, a failed OTA, a Gemini/generation error, or a reminder-worker failure produces no alert, no crash report, no metric — the team is blind in production.
Suggested direction — Add crash/error reporting (Sentry has first-class Expo + FastAPI SDKs), a root
ErrorBoundarywith a recover/reload fallback, and minimal request/worker metrics on the backend. At minimum,__DEV__logging in the swallow sites.