{ "planPath": "docs/plans/2026-07-24-mtconnect-driver.md", "tasks": [ { "id": 0, "subject": "Task 0: Verify TrakHound MTConnect.NET pin (or record the hand-roll decision)", "status": "completed" }, { "id": 1, "subject": "Task 1: Scaffold the two driver projects + the test project", "status": "completed", "blockedBy": [ 0 ] }, { "id": 2, "subject": "Task 2: MTConnectDriverOptions + MTConnectTagDefinition in .Contracts", "status": "completed", "blockedBy": [ 1 ] }, { "id": 3, "subject": "Task 3: MTConnectDataTypeInference.Infer + golden type-map test", "status": "completed", "blockedBy": [ 1 ] }, { "id": 4, "subject": "Task 4: Capture the canned XML fixtures", "status": "completed", "blockedBy": [ 1 ] }, { "id": 5, "subject": "Task 5: IMTConnectAgentClient seam + return DTOs", "status": "completed", "blockedBy": [ 1 ] }, { "id": 6, "subject": "Task 6: MTConnectAgentClient \u2014 parse /probe into the device model", "status": "completed", "blockedBy": [ 4, 5 ] }, { "id": 7, "subject": "Task 7: MTConnectAgentClient \u2014 parse /current + /sample, detect the sequence gap", "status": "completed", "blockedBy": [ 4, 5, 6 ] }, { "id": 8, "subject": "Task 8: MTConnectObservationIndex + UNAVAILABLE -> BadNoCommunication", "status": "completed", "blockedBy": [ 7 ] }, { "id": 9, "subject": "Task 9: MTConnectDriver shell \u2014 IDriver lifecycle", "status": "completed", "blockedBy": [ 2, 8 ] }, { "id": 10, "subject": "Task 10: IReadable.ReadAsync \u2014 /current, ordered snapshots", "status": "completed", "blockedBy": [ 9 ] }, { "id": 11, "subject": "Task 11: ISubscribable \u2014 /sample long-poll pump + ring-buffer re-baseline", "status": "completed", "blockedBy": [ 9, 7 ] }, { "id": 12, "subject": "Task 12: ITagDiscovery.DiscoverAsync + SupportsOnlineDiscovery=true", "status": "completed", "blockedBy": [ 9, 6 ] }, { "id": 13, "subject": "Task 13: IHostConnectivityProbe + IRediscoverable (instanceId watch)", "status": "completed", "blockedBy": [ 9 ] }, { "id": 14, "subject": "Task 14: MTConnectDriverProbe : IDriverProbe", "status": "completed", "blockedBy": [ 2, 5 ] }, { "id": 15, "subject": "Task 15: MTConnectDriverFactoryExtensions", "status": "completed", "blockedBy": [ 2, 9 ] }, { "id": 16, "subject": "Task 16: Host registration + DriverTypeNames.MTConnect + guard-test parity", "status": "completed", "blockedBy": [ 14, 15 ] }, { "id": 17, "subject": "Task 17: AdminUI typed model MTConnectTagConfigModel", "status": "completed", "blockedBy": [ 3, 16 ] }, { "id": 18, "subject": "Task 18: AdminUI editor razor + map/validator registration", "status": "completed", "blockedBy": [ 17 ] }, { "id": 19, "subject": "Task 19: mtconnect/cppagent docker fixture", "status": "completed", "blockedBy": [ 16 ] }, { "id": 20, "subject": "Task 20: Env-gated integration suite against cppagent", "status": "completed", "blockedBy": [ 19 ] }, { "id": 21, "subject": "Task 21: Live /run verify on docker-dev \u2014 browse picker, editor, read, subscribe, deploy", "status": "completed", "blockedBy": [ 18, 20 ] }, { "id": 22, "subject": "Task 22: Docs + deferred-writeback note; update the tracking doc", "status": "completed", "blockedBy": [ 21 ] } ], "lastUpdated": "2026-07-27", "closureNote": "Merged at master 90bdaa44 (#506); 5-leg live gate PASSED. Marked complete 2026-07-27 (deferment.md \u00a78.5)." }