From 4716655ee838463c2b1009b9fa83007490de84b9 Mon Sep 17 00:00:00 2001 From: joel-metal <268409664+joel-metal@users.noreply.github.com> Date: Mon, 19 Oct 2026 20:09:49 +0000 Subject: [PATCH] simple: batch fix 4 issues Co-authored-by: Simple Agent --- .env.example | 20 ++ docs/ACCESSIBILITY.md | 25 ++ docs/FEATURE_FLAGS.md | 127 ++++++++++ instrumentation-client.ts | 115 ++++++++- instrumentation.ts | 150 +++++++++++- next.config.js | 7 + src/app/admin/feature-flags/page.tsx | 320 +++++++++++++++++++++++++ src/app/api/feature-flags/route.ts | 215 +++++++++++++++++ src/app/error.tsx | 15 +- src/app/layout.tsx | 10 +- src/components/Breadcrumb.tsx | 119 +++++----- src/components/ErrorBoundary.tsx | 24 +- src/components/HelpTooltip.tsx | 288 +++++++++++++++++++++++ src/components/Navbar.tsx | 16 ++ src/components/OnboardingFlow.tsx | 33 ++- src/contexts/FeatureFlagContext.tsx | 333 +++++++++++++++++++++++++++ src/lib/analytics.ts | 57 +++++ src/lib/config.ts | 138 ++++++++++- 18 files changed, 1937 insertions(+), 75 deletions(-) create mode 100644 docs/FEATURE_FLAGS.md create mode 100644 src/app/admin/feature-flags/page.tsx create mode 100644 src/app/api/feature-flags/route.ts create mode 100644 src/components/HelpTooltip.tsx create mode 100644 src/contexts/FeatureFlagContext.tsx create mode 100644 src/lib/analytics.ts diff --git a/.env.example b/.env.example index d0a5c51d..cfa1b07a 100644 --- a/.env.example +++ b/.env.example @@ -14,3 +14,23 @@ VAPID_SUBJECT=mailto:support@example.com # from /api/settings/branding/logo/... with CDN-style immutable cache headers # (fine for local dev and CI). BLOB_READ_WRITE_TOKEN= + +# --------------------------------------------------------------------------- +# Error tracking & crash reporting (Sentry) +# --------------------------------------------------------------------------- +# See docs/ERROR_TRACKING.md for setup, grouping, sourcemaps, privacy, and +# alert rules for critical errors. +# +# NEXT_PUBLIC_SENTRY_DSN: client-side DSN used by the browser SDK. Leave empty +# to disable error reporting (e.g. local dev and CI). This value is public. +NEXT_PUBLIC_SENTRY_DSN= + +# SENTRY_ORG / SENTRY_PROJECT: used by the Sentry CLI/Webpack plugin to upload +# sourcemaps during the build so stack traces are readable. +SENTRY_ORG= +SENTRY_PROJECT= + +# SENTRY_AUTH_TOKEN: server-only token with `project:releases` scope for +# sourcemap uploads. Never expose this to the client. Leave empty to skip +# sourcemap upload (builds still succeed, traces will be minified). +SENTRY_AUTH_TOKEN= \ No newline at end of file diff --git a/docs/ACCESSIBILITY.md b/docs/ACCESSIBILITY.md index e82b2510..6b42e749 100644 --- a/docs/ACCESSIBILITY.md +++ b/docs/ACCESSIBILITY.md @@ -53,6 +53,31 @@ The initial audit surfaced the following categories of critical/serious violatio - **Browser coverage locally vs. CI.** A fresh dev sandbox may only have the Chromium Playwright browser installed. CI installs Chromium, Firefox, and WebKit via `npx playwright install --with-deps`, so the merge gate is multi-engine even when a local run (`npx playwright test --grep @a11y`) only exercises Chromium. - **Moderate/minor axe findings are not gated on.** Only `critical`/`serious` impact violations fail the build, per the acceptance criteria. Any moderate/minor findings surfaced by axe during a run are not currently tracked separately. +## Breadcrumbs and contextual help + +The breadcrumb navigation (`src/components/Breadcrumbs.tsx`) and contextual help system (`src/components/HelpTooltip.tsx`) are covered by the same axe gate and have an explicit accessibility contract: + +### Breadcrumbs + +- Rendered as a `