c1c68c9134
48-task plan across 10 phases (Contracts split, shared sections, router/picker, 9 typed pages, retire generic editor, live status, Test Connect, Reconnect/Restart, address pickers, E2E). Tracked in sibling .tasks.json with dependency graph.
74 lines
8.1 KiB
JSON
74 lines
8.1 KiB
JSON
{
|
|
"planPath": "docs/plans/2026-05-28-adminui-driver-pages-plan.md",
|
|
"designPath": "docs/plans/2026-05-28-adminui-driver-pages-design.md",
|
|
"tasks": [
|
|
{"id": "0.1", "subject": "Create AdminUI test project + slnx entry + placeholder test", "status": "pending"},
|
|
|
|
{"id": "1.1", "subject": "Driver.Modbus.Contracts — extract ModbusDriverOptions", "status": "pending", "blockedBy": ["0.1"]},
|
|
{"id": "1.2", "subject": "Driver.AbCip.Contracts — extract AbCipDriverOptions", "status": "pending", "blockedBy": ["0.1"]},
|
|
{"id": "1.3", "subject": "Driver.AbLegacy.Contracts — extract AbLegacyDriverOptions", "status": "pending", "blockedBy": ["0.1"]},
|
|
{"id": "1.4", "subject": "Driver.S7.Contracts — extract S7DriverOptions", "status": "pending", "blockedBy": ["0.1"]},
|
|
{"id": "1.5", "subject": "Driver.TwinCAT.Contracts — extract TwinCATDriverOptions", "status": "pending", "blockedBy": ["0.1"]},
|
|
{"id": "1.6", "subject": "Driver.FOCAS.Contracts — extract FocasDriverOptions", "status": "pending", "blockedBy": ["0.1"]},
|
|
{"id": "1.7", "subject": "Driver.OpcUaClient.Contracts — extract OpcUaClientDriverOptions", "status": "pending", "blockedBy": ["0.1"]},
|
|
{"id": "1.8", "subject": "Driver.Galaxy.Contracts — extract GalaxyDriverOptions", "status": "pending", "blockedBy": ["0.1"]},
|
|
{"id": "1.9", "subject": "Driver.Historian.Wonderware.Client.Contracts — extract options", "status": "pending", "blockedBy": ["0.1"]},
|
|
{"id": "1.10", "subject": "Add ProbeTimeoutSeconds to all 9 Options classes + slnx validation", "status": "pending", "blockedBy": ["1.1","1.2","1.3","1.4","1.5","1.6","1.7","1.8","1.9"]},
|
|
|
|
{"id": "2.1", "subject": "DriverFormShell.razor", "status": "pending", "blockedBy": ["0.1"]},
|
|
{"id": "2.2", "subject": "DriverIdentitySection.razor", "status": "pending", "blockedBy": ["0.1"]},
|
|
{"id": "2.3", "subject": "DriverResilienceSection.razor", "status": "pending", "blockedBy": ["0.1"]},
|
|
{"id": "2.4", "subject": "Wire shared sections into existing DriverEdit.razor", "status": "pending", "blockedBy": ["2.1","2.2","2.3"]},
|
|
|
|
{"id": "3.1", "subject": "DriverTypePicker.razor (route: /drivers/new)", "status": "pending", "blockedBy": ["2.4"]},
|
|
{"id": "3.2", "subject": "DriverEditRouter.razor with DynamicComponent dispatch","status": "pending", "blockedBy": ["2.4"]},
|
|
{"id": "3.3", "subject": "Hand /drivers/new from DriverEdit to DriverTypePicker","status": "pending", "blockedBy": ["3.1"]},
|
|
{"id": "3.4", "subject": "Hand /drivers/{id} from DriverEdit to DriverEditRouter (fallback to DriverEdit)", "status": "pending", "blockedBy": ["3.2","3.3"]},
|
|
|
|
{"id": "4.1", "subject": "ModbusDriverPage.razor + serialization test", "status": "pending", "blockedBy": ["1.10","3.4"]},
|
|
{"id": "4.2", "subject": "AbCipDriverPage.razor + serialization test", "status": "pending", "blockedBy": ["1.10","3.4"]},
|
|
{"id": "4.3", "subject": "AbLegacyDriverPage.razor + serialization test", "status": "pending", "blockedBy": ["1.10","3.4"]},
|
|
{"id": "4.4", "subject": "S7DriverPage.razor + serialization test", "status": "pending", "blockedBy": ["1.10","3.4"]},
|
|
{"id": "4.5", "subject": "TwinCatDriverPage.razor + serialization test", "status": "pending", "blockedBy": ["1.10","3.4"]},
|
|
{"id": "4.6", "subject": "FocasDriverPage.razor + serialization test", "status": "pending", "blockedBy": ["1.10","3.4"]},
|
|
{"id": "4.7", "subject": "OpcUaClientDriverPage.razor + serialization test", "status": "pending", "blockedBy": ["1.10","3.4"]},
|
|
{"id": "4.8", "subject": "GalaxyDriverPage.razor + serialization test", "status": "pending", "blockedBy": ["1.10","3.4"]},
|
|
{"id": "4.9", "subject": "HistorianWonderwareDriverPage.razor + serialization test", "status": "pending", "blockedBy": ["1.10","3.4"]},
|
|
|
|
{"id": "5.1", "subject": "Delete DriverEdit.razor + remove fallback in DriverEditRouter", "status": "pending", "blockedBy": ["4.1","4.2","4.3","4.4","4.5","4.6","4.7","4.8","4.9"]},
|
|
|
|
{"id": "6.1", "subject": "DriverHealthChanged DPS message contract", "status": "pending", "blockedBy": ["5.1"]},
|
|
{"id": "6.2", "subject": "Publish DriverHealthChanged from each driver actor (IDriverHealthPublisher)", "status": "pending", "blockedBy": ["6.1"]},
|
|
{"id": "6.3", "subject": "DriverStatusHub", "status": "pending", "blockedBy": ["6.1"]},
|
|
{"id": "6.4", "subject": "DriverStatusSignalRBridge + InMemoryDriverStatusSnapshotStore", "status": "pending", "blockedBy": ["6.2","6.3"]},
|
|
{"id": "6.5", "subject": "DriverStatusPanel.razor + wire into all 9 driver pages", "status": "pending", "blockedBy": ["6.4"]},
|
|
|
|
{"id": "7.1", "subject": "IDriverProbe interface + TestDriverConnect messages", "status": "pending", "blockedBy": ["5.1"]},
|
|
{"id": "7.2", "subject": "AdminOperationsActor handler for TestDriverConnect", "status": "pending", "blockedBy": ["7.1"]},
|
|
{"id": "7.3", "subject": "TCP probes (Modbus, AbCip, AbLegacy, S7)", "status": "pending", "blockedBy": ["7.1"]},
|
|
{"id": "7.4", "subject": "Specialty probes (FOCAS, TwinCAT, OPCUA, Galaxy, Historian)", "status": "pending", "blockedBy": ["7.1"]},
|
|
{"id": "7.5", "subject": "AdminProbeService + DriverTestConnectButton.razor + wire into pages", "status": "pending", "blockedBy": ["7.2","7.3","7.4"]},
|
|
|
|
{"id": "8.1", "subject": "RestartDriver + ReconnectDriver messages + AdminOperationsActor handlers", "status": "pending", "blockedBy": ["6.5","7.5"]},
|
|
{"id": "8.2", "subject": "DriverOperator authorization policy + docs/Security.md update", "status": "pending", "blockedBy": ["6.5"]},
|
|
{"id": "8.3", "subject": "Wire Reconnect/Restart buttons into DriverStatusPanel", "status": "pending", "blockedBy": ["8.1","8.2"]},
|
|
|
|
{"id": "9.1", "subject": "DriverTagPicker.razor modal shell", "status": "pending", "blockedBy": ["5.1"]},
|
|
{"id": "9.2", "subject": "Modbus address picker body + unit test", "status": "pending", "blockedBy": ["9.1"]},
|
|
{"id": "9.3", "subject": "AbCip address picker body + unit test", "status": "pending", "blockedBy": ["9.1"]},
|
|
{"id": "9.4", "subject": "AbLegacy address picker body + unit test", "status": "pending", "blockedBy": ["9.1"]},
|
|
{"id": "9.5", "subject": "S7 address picker body + unit test", "status": "pending", "blockedBy": ["9.1"]},
|
|
{"id": "9.6", "subject": "TwinCat address picker body + unit test", "status": "pending", "blockedBy": ["9.1"]},
|
|
{"id": "9.7", "subject": "FOCAS address picker body + unit test", "status": "pending", "blockedBy": ["9.1"]},
|
|
{"id": "9.8", "subject": "OpcUaClient picker body (free-text NodeId)", "status": "pending", "blockedBy": ["9.1"]},
|
|
{"id": "9.9", "subject": "Galaxy picker body (free-text tag_name.AttributeName)", "status": "pending", "blockedBy": ["9.1"]},
|
|
{"id": "9.10","subject": "Historian.Wonderware picker body + unit test", "status": "pending", "blockedBy": ["9.1"]},
|
|
|
|
{"id": "10.1", "subject": "DriverTestConnectE2eTests (Modbus/AbCip/S7 vs Docker sims)", "status": "pending", "blockedBy": ["8.3","9.10"]},
|
|
{"id": "10.2", "subject": "DriverReconnectE2eTests", "status": "pending", "blockedBy": ["8.3","9.10"]},
|
|
{"id": "10.3", "subject": "DriverStatusHubE2eTests", "status": "pending", "blockedBy": ["8.3","9.10"]},
|
|
{"id": "10.4", "subject": "Manual smoke checklist (documented)", "status": "pending", "blockedBy": ["10.1","10.2","10.3"]}
|
|
],
|
|
"lastUpdated": "2026-05-28"
|
|
}
|