# @nous/interp-dashboard

The fleet continual-learning monitor (Phase 177.10.1.2), in TypeScript. Turns a
`FleetSnapshot` — every robot's per-skill retention vs its certified baseline —
into forgetting alerts, rollback recommendations, a Phase-92 MLOps governance
decision, and a self-contained offline HTML dashboard.

## Modules

- **`types.ts`** — the data model: `SkillRetention`, `RobotState`,
  `FleetSnapshot`, `ForgettingAlert`, `RollbackRecommendation`, and severity
  thresholds (safety-critical skills use a tighter bound).
- **`alerts.ts`** — `classifySeverity` (BWT-banded ok/watch/warn/critical,
  safety escalation), `computeAlerts` (sorted most-severe first),
  `recommendRollbacks` (safety-critical critical regressions → revert to
  certified revision), and `fleetSummary`.
- **`governance.ts`** — `governanceGate` mapping the fleet state to `promote` /
  `hold` / `rollback` with the robots to revert.
- **`dashboard.ts`** — `renderDashboard`: a single offline HTML page (per-robot
  × per-skill retention heatmap coloured by severity, safety-critical markers,
  ranked alert + rollback panels, governance banner). Inline CSS only;
  HTML-escaped.

## Tests

`npx vitest run` (from this dir, bypassing Nx) — 14 tests: severity banding +
safety escalation, alert emission/sorting/omission, rollback triggering,
fleet-summary roll-up, governance promote/hold/rollback, and the HTML renderer
(self-contained, embeds data + governance decision, escapes injection, marks
safety-critical skills). Typechecks under `verbatimModuleSyntax`.
