{ "planPath": "docs/plans/2026-07-24-modbus-rtu-driver.md", "tasks": [ { "id": 0, "subject": "Task 0: Add the ModbusTransportMode enum (Tcp | RtuOverTcp)", "status": "completed" }, { "id": 1, "subject": "Task 1: ModbusCrc CRC-16/MODBUS helper + golden vectors", "status": "completed" }, { "id": 2, "subject": "Task 2: ModbusRtuFraming ADU build + FC-aware length-less deframe", "status": "completed", "blockedBy": [ 1 ] }, { "id": 3, "subject": "Task 3: Extract ModbusSocketLifecycle from ModbusTcpTransport (behaviour-preserving)", "status": "completed" }, { "id": 4, "subject": "Task 4: ModbusRtuOverTcpTransport (RTU framing over socket lifecycle)", "status": "completed", "blockedBy": [ 2, 3 ] }, { "id": 5, "subject": "Task 5: ModbusTransportFactory.Create switch on Transport mode", "status": "completed", "blockedBy": [ 0, 4 ] }, { "id": 6, "subject": "Task 6: Bind Transport on options/DTO/factory (string-enum guard)", "status": "completed", "blockedBy": [ 0 ] }, { "id": 7, "subject": "Task 7: Route driver default closure + probe through ModbusTransportFactory", "status": "completed", "blockedBy": [ 5, 6 ] }, { "id": 8, "subject": "Task 8: AdminUI Transport selector on ModbusDriverForm", "status": "completed", "blockedBy": [ 6 ] }, { "id": 9, "subject": "Task 9: Docker rtu_over_tcp fixture + RTU-over-TCP integration test", "status": "completed", "blockedBy": [ 4, 7 ] }, { "id": 10, "subject": "Task 10: Live /run verification on docker-dev", "status": "completed", "blockedBy": [ 8, 9 ] } ], "lastUpdated": "2026-07-27", "closureNote": "Merged 0f38f486 (#495); live gate PASSED. Marked complete 2026-07-27 (deferment.md \u00a78.5)." }