diff --git a/.agents/architecture.md b/.agents/architecture.md index afb397d2..f1d7cbfd 100644 --- a/.agents/architecture.md +++ b/.agents/architecture.md @@ -631,6 +631,7 @@ src/ │ │ ├── noise-registry.ts # NoisePattern type + NOISE_REGISTRY — declarative noise filter definitions │ │ ├── client-filter.ts # shouldDropClientEvent — iterates registry for client/both-scoped patterns │ │ ├── server-filter.ts # shouldDropServerEvent — iterates registry for server/both-scoped patterns +│ │ ├── replay-filter.ts # isReplayHydrationError — filters replay recording events (beforeAddRecordingEvent) │ │ └── capture.ts # captureSupabaseError, captureApiError │ ├── theme.tsx # ThemeProvider + useTheme hook (light/dark/system, localStorage persistence) │ ├── toast.ts # Lazy-loaded sonner toast wrapper to reduce initial bundle size @@ -677,6 +678,6 @@ Root config files: ## Observability -- **Sentry client**: session replay (10% normal, 100% on error), route transition tracking +- **Sentry client**: session replay (10% normal, 100% on error), route transition tracking, replay hydration error filter (`beforeAddRecordingEvent` via `isReplayHydrationError`) - **Sentry server**: PII enabled, local variables, 10% trace sampling in production - **Health endpoint**: `GET /api/health` — checks DB connectivity via sequential HEAD pings (first warms connection, second measures warm latency), returns status, latency (last sample), per-sample breakdown, threshold, and dynamically computed region co-location info diff --git a/metrics/weekly/2026-W28-audit.md b/metrics/weekly/2026-W28-audit.md new file mode 100644 index 00000000..79651d91 --- /dev/null +++ b/metrics/weekly/2026-W28-audit.md @@ -0,0 +1,102 @@ +# Automation Audit — Week 28 + +## Summary +- Automations active: 17 +- PRs opened by automations: 36 +- PRs merged: 36 +- CI fixes applied: 0 +- Bug issues created: 1 (#1464 — Sentry Replay hydration error regression) + +## Per-Automation Assessment + +### Feature Builder +- Issues completed: 2 (#1452 Copy link action, #1453 Open in new tab) +- PRs merged: 2 (#1457, #1460) +- Success rate: 100% +- CI fixes: 0 +- Recurring problems: none +- Note: Both features shipped on June 29. No new features after that — backlog has been empty since. + +### Feature Planner / Product Improver +- Issues created: 1 (#1454 — content preview snippets, flagged needs-human) +- No new issues triaged. Backlog remains empty. All remaining open issues are `needs-human`. + +### Bug Fixer +- Bugs fixed: 2 (#1459 suppressHydrationWarning, #1464 replay hydration filter) +- PRs merged: 2 (#1462, #1465) +- Success rate: 100% +- CI fixes: 0 +- Recurring problems: none +- Note: Both fixes were Sentry-related hydration issues. The second (#1464) was a regression of the first — the initial fix (#1462) addressed React hydration warnings but not Sentry Replay's independent DOM diffing. The Bug Fixer correctly identified the different interception point (`beforeAddRecordingEvent` vs `beforeSend`) on the second attempt. + +### PR Reviewer +- PRs reviewed: 36 +- CI fixes: 0 +- False positives: none observed +- All 36 PRs merged cleanly. No rework cycles. + +### Post-Merge Verifier +- Verifications run: 4 (PRs #1457, #1458, #1460, #1462, #1465) +- Regressions caught: 1 (#1464 — Sentry Replay hydration error persisted after #1462 fix, leading to #1465) + +### UI Verifier +- Verifications run: 4 (PRs #1457, #1458, #1460, #1462, #1465) +- Design violations found: 0 + +### Incident Responder +- Errors triaged: 0 +- Bug issues created: 0 +- Still blocked by Sentry MCP 401 (#1305, now 33 days old). + +### Performance Monitor +- Published W27 performance report (`metrics/weekly/2026-W27-perf.md`). +- No performance issues detected. + +### Tweet Drafter +- Posts published: 21 (3× daily for June 29 – July 5) +- PRs merged: 21 +- Functioning normally. + +### Daily Metrics +- Snapshots committed: 7 (June 29 – July 5) +- All merged successfully. + +### Weekly Recap +- Published W27 recap (`metrics/weekly/2026-W27.md`). + +### Automation Auditor +- Published W27 audit (`metrics/weekly/2026-W27-audit.md`). + +### Bug Fixer (additional) +- 1 PR (#1458) documented the noModule polyfill exclusion from bundle budget — a documentation fix, not a code fix. + +### Stale Issue Reviewer / Needs-Human Requeue / PR Shepherd +- No stalled `status:in-progress` issues detected. +- No stuck PRs observed. +- `needs-human` issues remain unaddressed (see Label Hygiene below). + +## Label Hygiene +- Stalled in-progress issues (>24h): none +- Backlog issues missing priority: none (backlog is empty) +- needs-human issues open >7 days: + - #1216: feat: enable OAuth sign-in with GitHub and Google (39 days) — priority:3 + - #1245: feat: add column calculation summary row (38 days) — priority:3 + - #1252: feat: add row grouping to database table view (37 days) — priority:3 + - #1305: bug: Sentry MCP integration returns 401 (33 days) — priority:1, blocks Incident Responder + - #1344: feat: add Storybook visual snapshot auto-update workflow (25 days) — priority:3 + - #1454: enhancement: add content preview snippets to workspace home (7 days) — priority:3 + +## Knowledge Base Updates +- **AGENTS.md**: no changes +- **architecture.md**: added `replay-filter.ts` to sentry directory listing; added replay hydration error filter mention to observability section +- **conventions.md**: no changes +- **design.md**: no changes +- **quality.md**: no changes — all grades remain A, test counts (2,185 Vitest / 500 E2E) match actual + +## Recommendations + +1. **Address #1305 (Sentry MCP 401) — now 33 days old.** This is priority:1 and blocks the Incident Responder, Performance Monitor, and any Sentry-dependent automation. Production error monitoring has been manual-only for over a month. A human administrator needs to re-authorize the Sentry OAuth integration. + +2. **Triage or close the aging priority:3 needs-human issues.** Five issues (#1216, #1245, #1252, #1344, #1454) have been waiting 7–39 days for human input. Either approve them for the automation queue, provide implementation guidance, or close as not-wanted. The backlog has been empty for 3+ weeks — the Feature Builder and Bug Fixer are idle. + +3. **The hydration error fix cycle (#1459 → #1462 → #1464 → #1465) shows a pattern worth noting.** The first fix addressed the symptom (React hydration warning) but not the root cause (Sentry Replay DOM diffing). The Post-Merge Verifier correctly caught the regression, and the Bug Fixer correctly identified the different interception point on the second attempt. No process change needed — the system self-corrected within hours.