Full deployment history for this project.
Merge pull request #15 from mbarbine/sentinel-fix-cron-auth-11595238284224884128 🛡️ Sentinel: [CRITICAL] Fix Information Disclosure in cron endpoint
Rebrand site to PLATPHORM PACKET LAB and add production URL Agent-Logs-Url: https://github.com/mbarbine/platphorm-packet-lab/sessions/12f9a4f2-01b0-404c-9c4b-e0e6a426199b Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
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>
Fix information disclosure in debug page by preventing access in production Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🛡️ Sentinel: [HIGH] Fix Information Disclosure in test page - Prevents public unauthenticated access to `app/test-get/page.tsx` in production environments. - Masks raw upstream error messages and status codes, preventing infrastructure detail leaks. - Safely logs internal error details to the server console. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🛡️ Sentinel: [CRITICAL] Fix missing authentication on test page 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>
🎨 Palette: Improve inline feedback for async buttons * Added a `syncing` state and disabled the "Sync with Vercel Firewall" button during API calls in `app/components/Dashboard.tsx`. * Disabled the "Refresh Stats" button and updated its text to "Refreshing..." while stats are loading in `app/components/Dashboard.tsx`. * Disabled the "Refresh Data" button and updated its text to "Refreshing..." while the table is loading in `app/components/VercelDashboard.tsx`. * Added critical learnings about inline component feedback for async actions to `.jules/palette.md`. 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