FABRIC/notes/bf-dm8v.md
jedarden b5df74a321
Some checks are pending
CI / test (18.x) (push) Waiting to run
CI / test (20.x) (push) Waiting to run
CI / test (22.x) (push) Waiting to run
docs(bf-dm8v): note that feature was already complete
The OOM event detection and alert banner was implemented in commit ea1406a.
This notes file documents the implementation summary.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 10:39:32 -04:00

1.5 KiB

OOM Event Detection - Already Complete

This task (bf-dm8v) was already implemented in commit ea1406a on 2026-06-07.

Implementation Summary

The OOM event detection and alert banner feature was fully implemented with:

Backend (systemCgroupMonitor.ts)

  • getOomState() function for lightweight OOM polling
  • Tracks: oomKillCount, lastOomAt, oomDetected, memoryCurrentAtOom
  • Reads from /sys/fs/cgroup/user.slice/user-1001.slice/memory.events

API (server.ts)

  • GET /api/system/oom-state endpoint returns current OOM state
  • Includes formattedMemoryCurrent for human-readable memory value

Frontend (OomAlertBanner.tsx)

  • Polls /api/system/oom-state every 30 seconds
  • Shows persistent red alert banner when oomDetected=true
  • Displays: OOM kill count, timestamp, memory at detection
  • Dismissible via X button
  • Auto-clears after 1 hour using localStorage
  • CSS styling: red background, warning icon, dismiss button

Integration (App.tsx)

  • Banner rendered at top of dashboard (line 640)
  • oomBannerDismissed state tracks dismissal

Files Modified in ea1406a

  • src/systemCgroupMonitor.ts - +66 lines (getOomState, OomState interface)
  • src/web/server.ts - +11 lines (/api/system/oom-state endpoint)
  • src/web/frontend/src/components/OomAlertBanner.tsx - +115 lines (new component)
  • src/web/frontend/src/App.tsx - +3 lines (import and render)
  • src/web/frontend/src/index.css - +68 lines (banner styling)

Total: 263 lines added