Full deployment history for this project.
chore: add auto approve+merge workflow
chore: add auto PR approve+merge workflow
chore: bump package version
chore: update pnpm toolchain
fix: publish valid packet discovery indexes
Merge remote updates while preserving original product branding
Consolidate 1 open pull request Merged consolidation of open PRs: #35
Merge remote-tracking branch 'origin/pr-35' into codex/consolidate-open-prs-20260720-170943
fix: support Vercel alias compliance status
fix: support Vercel alias compliance status
fix: pin deploy package manager
chore: reconcile and restore pnpm build
Merge pull request #15 from mbarbine/sentinel-fix-cron-auth-11595238284224884128 🛡️ Sentinel: [CRITICAL] Fix Information Disclosure in cron endpoint
feat(a11y): add aria-live and aria-busy to dashboards for screen readers Adds ARIA live regions and busy states to the Dashboard charts and Vercel Dashboard tables to properly communicate background data refreshes to assistive technology, while avoiding heavy DOM remounts. Also cleans up missing and duplicated ToasterProvider in the root layout. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🎨 Palette: Transparent background loading states & aria-live - Wraps VercelDashboard Table in an opacity transition with aria-busy - Adds aria-live and aria-atomic to Dashboard Recharts stat description for screen readers - Adds an aria-label to the Table in VercelDashboard Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
⚡ Bolt: Decouple initial loading to prevent Recharts remounts Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🎨 Palette: Add ToasterProvider for missing toast notifications Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
⚡ Bolt: Prevent chart unmounting during background stats refresh Decoupled the initial loading state from the generic background polling loading state in the Dashboard. This prevents the heavy Recharts `BarChart` component from unnecessarily unmounting and remounting on every subsequent refresh, reducing layout shifts and CPU overhead while preserving DOM nodes. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🎨 Palette: Add ToasterProvider to root layout to enable toast notifications Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
⚡ Bolt: Prevent unmounting of large components during background refreshes Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🛡️ Sentinel: [CRITICAL] Prevent information disclosure in cron endpoint Removed logging of raw Vercel API responses and returning of raw upstream error texts in app/pages/api/cron.js to prevent sensitive data leaks. Renamed to .ts. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
⚡ Bolt: Prevent expensive chart remounts during realtime updates Updated `fetchStats` to accept a `showLoader` parameter. When the realtime subscription fetches updated stats, it now bypasses setting `loading` to `true`. This prevents the full unmounting and remounting of the Recharts `ResponsiveContainer` and `BarChart` DOM nodes during background syncs, eliminating significant CPU spikes and layout shifts. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #15 from mbarbine/sentinel-fix-cron-auth-11595238284224884128 🛡️ Sentinel: [CRITICAL] Fix Information Disclosure in cron endpoint
🛡️ Sentinel: [CRITICAL] Fix Information Disclosure in cron endpoint Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #14 from mbarbine/jules-bolt-lazy-load-dashboards-16740099124134241468 ⚡ Bolt: Lazy load dashboard components to reduce initial JS payload
Merge pull request #12 from mbarbine/sentinel-fix-auth-2934386193541583705 🛡️ Sentinel: [CRITICAL] Fix missing authorization on update-status API
Merge pull request #11 from mbarbine/palette-a11y-landing-page-17460570144656591285 🎨 Palette: Improve keyboard navigation and screen reader accessibility on landing page
Merge pull request #10 from mbarbine/palette/a11y-chart-summary-5497083119159560165 🎨 Palette: [a11y] Accessible Chart Summaries for Recharts
⚡ Bolt: Lazy load dashboard components to reduce initial JS payload Refactored `app/page.tsx` to dynamically import `Dashboard` and `VercelDashboard` components. This splits heavy libraries (Recharts, MUI) out of the main page bundle, reducing First Load JS size and improving page performance. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #13 from mbarbine/bolt-debounce-realtime-stats-13289348754817989256
perf: debounce realtime stats fetching to prevent api flooding Introduced a 500ms debounce in `Dashboard.tsx` when fetching stats triggered by Supabase realtime events. This prevents flooding the Next.js API and the database when bulk operations or rapid updates occur on the `ja4_fingerprints` table. Also added a journal entry documenting the importance of debouncing network requests triggered by realtime subscriptions. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🛡️ Sentinel: [CRITICAL] Fix missing authorization on update-status API Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🎨 Palette: Improve keyboard navigation and screen reader accessibility on landing page Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
feat(a11y): add screen reader summary for recharts dashboard Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #7 from mbarbine/sentinel-fix-update-status-auth-13260843296564235191
Merge pull request #8 from mbarbine/palette-improve-async-feedback-and-empty-state-17690993219953263062
Merge pull request #9 from mbarbine/bolt-db-count-optimization-9726796533432609831
⚡ Bolt: [performance improvement] Offload counting to DB to prevent O(N) memory scale Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Improve async button feedback and empty states Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🛡️ Sentinel: [CRITICAL] Add authentication to update-status API Adds missing authorization check to `app/pages/api/update-status.js` using `API_SECRET_KEY` via `Authorization` header to prevent unauthenticated arbitrary fingerprint updates. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
⚡ Bolt: Fix N+1 database query in polling background task Replaced iterative Supabase queries in `processFingerprints` with a single batched `.in()` query, drastically reducing database load and latency during the scheduled 5-second polling interval. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #2 from mbarbine/vercel/react-server-components-cve-vu-hxjcn1 Fix React Server Components CVE vulnerabilities
https://vercel.com/docs/rest-api/sdk/reference#tag/security/read-system-bypass