docs(plans): native alarms implementation plan (28 tasks, TDD)

Bite-sized task plan with exact file paths, code, and TDD steps for native
OPC UA A&C + MxAccess GW alarm ingestion. Phases: Commons contracts ->
config/flatten/migration -> DCL ingestion (actor + 2 adapters) -> site
runtime (NativeAlarmActor + SQLite) -> gRPC proto -> management/CLI -> UI ->
seed/docs/integration. Includes .tasks.json for executing-plans resume.
This commit is contained in:
Joseph Doherty
2026-05-29 15:27:43 -04:00
parent dadebbe227
commit 09e19db4e9
2 changed files with 1559 additions and 0 deletions
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,34 @@
{
"planPath": "docs/plans/2026-05-29-native-alarms.md",
"tasks": [
{"id": 1, "subject": "Task 1: Commons alarm core types", "status": "pending"},
{"id": 2, "subject": "Task 2: Extend AlarmStateChanged + computed-default mapping", "status": "pending", "blockedBy": [1]},
{"id": 3, "subject": "Task 3: IAlarmSubscribableConnection seam + DCL alarm messages", "status": "pending", "blockedBy": [1]},
{"id": 4, "subject": "Task 4: Entities + flattened type + Template navigation", "status": "pending"},
{"id": 5, "subject": "Task 5: EF configurations + DbSets", "status": "pending", "blockedBy": [4]},
{"id": 6, "subject": "Task 6: Repository interface + implementation", "status": "pending", "blockedBy": [4, 5]},
{"id": 7, "subject": "Task 7: EF migration AddNativeAlarmSources", "status": "pending", "blockedBy": [5]},
{"id": 8, "subject": "Task 8: Flattening ResolveNativeAlarmSources", "status": "pending", "blockedBy": [4]},
{"id": 9, "subject": "Task 9: Semantic validation", "status": "pending", "blockedBy": [4, 8]},
{"id": 10, "subject": "Task 10: DataConnectionActor alarm subscribe/route/unavailable", "status": "pending", "blockedBy": [3]},
{"id": 11, "subject": "Task 11: OPC UA A&C adapter", "status": "pending", "blockedBy": [3]},
{"id": 12, "subject": "Task 12: MxGateway StreamAlarms adapter", "status": "pending", "blockedBy": [3]},
{"id": 13, "subject": "Task 13: SiteRuntimeOptions alarm cap + retry", "status": "pending"},
{"id": 14, "subject": "Task 14: Site SQLite NativeAlarmState store", "status": "pending"},
{"id": 15, "subject": "Task 15: NativeAlarmActor", "status": "pending", "blockedBy": [1, 2, 3, 4, 13, 14]},
{"id": 16, "subject": "Task 16: InstanceActor wiring", "status": "pending", "blockedBy": [15]},
{"id": 17, "subject": "Task 17: Enrich computed AlarmActor emit", "status": "pending", "blockedBy": [2]},
{"id": 18, "subject": "Task 18: Extend sitestream.proto + regenerate", "status": "pending", "blockedBy": [2]},
{"id": 19, "subject": "Task 19: gRPC alarm mapping (server + client)", "status": "pending", "blockedBy": [2, 18]},
{"id": 20, "subject": "Task 20: Management command contracts + registry", "status": "pending", "blockedBy": [4]},
{"id": 21, "subject": "Task 21: ManagementActor handlers", "status": "pending", "blockedBy": [6, 20]},
{"id": 22, "subject": "Task 22: CLI commands", "status": "pending", "blockedBy": [20]},
{"id": 23, "subject": "Task 23: DebugView alarm table enrichment", "status": "pending", "blockedBy": [2, 19]},
{"id": 24, "subject": "Task 24: Template editor Native Alarm Sources subsection", "status": "pending", "blockedBy": [20]},
{"id": 25, "subject": "Task 25: Instance Configure native alarm source override panel", "status": "pending", "blockedBy": [20]},
{"id": 26, "subject": "Task 26: docker-env2 seed sample native alarm source", "status": "pending", "blockedBy": [22]},
{"id": 27, "subject": "Task 27: Documentation sync", "status": "pending", "blockedBy": [16, 19, 22, 23, 24, 25]},
{"id": 28, "subject": "Task 28: Integration / live verification", "status": "pending", "blockedBy": [10, 11, 12, 16, 19]}
],
"lastUpdated": "2026-05-29"
}