{
  "planPath": "docs/plans/2026-06-11-alarm-followups-round2.md",
  "designPath": "docs/plans/2026-06-11-alarm-followups-round2-design.md",
  "branch": "feat/alarm-followups-r2",
  "baseBranch": "master",
  "baseSha": "3ad7960d",
  "status": "completed",
  "note": "Round-2 follow-ups. B (historian feeder): HistorianAdapterActor subscribes to the `alerts` DPS topic + translates AlarmTransitionEvent→AlarmHistorianEvent through the existing T2 Primary gate (kept — DPS fans the Primary's single publish to BOTH nodes' historians); AlarmTransitionEvent extended with AlarmTypeName + Comment (incl. a Core.ScriptedAlarms engine change to carry Comment through the emission); config-gated SqliteStoreAndForwardSink→Wonderware sink with Null fallback. Scripted alarms only. A (Galaxy alarm reconnect): verify+document only (gRPC keepalive unreachable — NuGet package). T1/T3/T4 mutually parallel by files; T2 after T1; T5 after T2/T3/T4. Same-assembly (Runtime) tasks serialise build/test even if files disjoint. NO bUnit, NO Configuration/EF change.",
  "tasks": [
    {"id": 249, "planTask": 0, "subject": "R2-T0: Branch + baseline", "classification": "trivial", "status": "completed", "blockedBy": []},
    {"id": 250, "planTask": 1, "subject": "R2-T1: Extend AlarmTransitionEvent + carry Comment through engine emission (B1)", "classification": "standard", "status": "completed", "blockedBy": [249], "parallelizableWith": [252, 253]},
    {"id": 251, "planTask": 2, "subject": "R2-T2: HistorianAdapterActor subscribes to alerts + translates (B2)", "classification": "high-risk", "status": "completed", "blockedBy": [249, 250]},
    {"id": 252, "planTask": 3, "subject": "R2-T3: Config-gated durable sink (AddAlarmHistorian) + Host wiring (B3)", "classification": "standard", "status": "completed", "blockedBy": [249], "parallelizableWith": [250, 253]},
    {"id": 253, "planTask": 4, "subject": "R2-T4: Galaxy alarm-reconnect acknowledger-recovery test + doc (A)", "classification": "small", "status": "completed", "blockedBy": [249], "parallelizableWith": [250, 252]},
    {"id": 254, "planTask": 5, "subject": "R2-T5: Full-suite gate + docs + finish branch", "classification": "small", "status": "completed", "blockedBy": [251, 252, 253]}
  ],
  "lastUpdated": "2026-06-15"
}
