Skip to content

Alarm triage tie-in (1.2.0) - #2

Merged
AddisonTech merged 5 commits into
mainfrom
claude/jolly-shannon-12vlay
Oct 16, 2026
Merged

AddisonTech merged 5 commits into
mainfrom
claude/jolly-shannon-12vlay

Conversation

@AddisonTech

@AddisonTech AddisonTech commented Oct 16, 2026 •

Copy link
Copy Markdown
Owner

The dashboard raises the alarm flood; the BMS Alarm Triage Agent cuts it to a short ranked list.

Backend

  • Journal export (triage_export.py, GET /api/export/journal): alarm journal and trend history for a window in the agent's bms-triage-journal v1 format: every alarm point with limit, deadband, priority and signal, the equipment topology, every journal entry, and the trend samples behind each point.
  • History for evidence: status values (source failed, on battery, on emergency, running, battery charge) are now stored beside the analog history, and history is stored every scan while an event plays out. A 1.1.0 database gains the columns in place.
  • POST /api/triage: finds the window around the most recent event (alarms within 5 min are one event, 5 min of history either side), exports it, and runs the agent. The agent is imported on first use, one run at a time, and an unchanged window returns the stored result. About 65 ms per run.
  • GET /api/triage/event: the latest event, for the button.
  • New GEN-1.RUN alarm (priority 4, "Generator running") so the generator start is in the journal.
  • Agent dependency pinned to the 0.2.0 merge commit 2060b45.

Front end

  • Triage tab (/#/triage): root cause first, consequences collapsed under it, trend evidence chart with the limit and the time past it, the next step, and a label saying whether the template or Claude Haiku wrote the text. Lazy loaded (3.3 kB gzipped). Works at phone width with the bottom nav at seven tabs.
  • Triage this event button under the top bar after a demo event finishes.

Hosting

No Render dashboard changes and no API key. Without TRIAGE_ANTHROPIC_KEY the template writes the text, so the hosted demo uses the template.

Simulated utility outage

24 journal entries (6 alarms, 6 returns, 12 acknowledgements and suppressions) come back as 1 ranked item: the utility failure, with UPS A and B on battery, generator running, ATS on emergency, and the generator frequency dip under it.

Tests

  • Backend: 75 pass (39 before): export checked against the agent's own parser, every demo scenario triaged from the real simulator, event windows, scan rate storage, schema upgrade, and the endpoints
  • Front end: 25 pass (11 before): triage helpers and the Triage tab rendered
  • Production build clean

@AddisonTech
AddisonTech merged commit fda1667 into main Oct 16, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant