Cybersecurity-Projects/PROJECTS/advanced
CarterPerez-dev d01fc57989 fix(monitor/frontend): DShield panel matches actual snapshot.scan_firehose shape
The panel crashed at runtime with "(ds.topports ?? []).slice is not a
function" because Plan 5 assumed shapes that didn't match what the Phase 2
DShield collector actually emits. Reality:

  topports: Record<string, Port>      // dict keyed "0".."N", not Array
  port field: targetport              // not "port"
  topips[].source                     // the IP — not "ip"
  topips[].reports                    // the count — not "records"
  topips                              // has no country/CC field
  dailysummary[].date                 // ISO date string, ascending order

toArray() helper accepts both Record<string,T> and T[] defensively (so
either shape works if the backend changes its mind). Both lists sort by
rank before slicing. The CC column is dropped (data doesn't carry it);
its slot becomes the per-source target count which the data does carry.
Daily summary picks the latest entry by date instead of index 0 (the
order is ascending, so [0] would be the oldest day).

Bigger discovery: most snapshot keys (cve_new / kev_added /
ransomware_victim / coinbase_price / etc.) are LATEST-event payloads,
not the recent-list arrays Plan 5 anticipated. Tasks 15-21 will need
per-topic Zustand stores that accumulate over time, populated by Task 24
from snapshot bootstrap + WS messages. Will discuss with Carter before
committing to that architecture.
2026-05-03 09:12:36 -04:00
..
ai-threat-detection Merge pull request #190 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/ai-threat-detection/backend/python-dotenv-1.2.2 2026-04-26 23:53:53 -04:00
api-rate-limiter chore(deps): bump python-multipart 2026-04-17 22:49:17 +00:00
bug-bounty-platform Merge remote-tracking branch 'origin/main' into chore/haskell-reverse-proxy-finish 2026-04-28 17:57:03 -04:00
encrypted-p2p-chat chore(deps): bump vite in /PROJECTS/advanced/encrypted-p2p-chat/frontend 2026-04-29 07:15:53 +00:00
haskell-reverse-proxy fix: extract Aenebris.Net.IP to dedupe SockAddr rendering (Finding 10) 2026-04-29 02:19:56 -04:00
honeypot-network Update README.md 2026-04-19 13:27:28 -04:00
monitor-the-situation-dashboard fix(monitor/frontend): DShield panel matches actual snapshot.scan_firehose shape 2026-05-03 09:12:36 -04:00