{ "planPath": "docs/plans/2026-06-18-opcuaclient-read-events.md", "designPath": "docs/plans/2026-06-18-opcuaclient-read-events-design.md", "branch": "feat/opcuaclient-read-events (merged to master, deleted)", "baseSha": "bd791e79", "designCommit": "400bef47", "mergeHead": "7a3d2712", "executionState": "COMPLETE", "tasks": [ {"id": 534, "subject": "Task 1: Pure cores — BuildBaseEventFilter + MapHistoryEvents + unit tests", "classification": "standard", "status": "completed", "commits": ["e8599638", "d48674ba (review fix)"], "reviews": "spec ✅ compliant; code APPROVED (I2 UTC-kind sentinel + M4 ns-0 test applied)"}, {"id": 535, "subject": "Task 2: ReadEventsAsync wire-in + remove stale comment + flip contract test", "classification": "standard", "status": "completed", "commits": ["045f9ca2", "68637396 (doc fix)"], "reviews": "spec ✅ 16/16; code APPROVED (IHistoryProvider DIM comment corrected; session-capture-before-gate race = pre-existing follow-up, not introduced)"}, {"id": 536, "subject": "Task 3: Integration smoke + docs + build + live /run + finish", "classification": "small", "status": "completed", "commits": ["7a3d2712"], "reviews": "final integration review = SHIP (no Critical/Important)", "liveRun": "PASS — event smoke 1/1 + full integration suite 4/4 green against a live opc-plc on localhost:50000 (wire path proven; non-empty events infra-gated)"} ], "reviewFollowUps": [ "Session-capture-before-gate race in the 4 history methods (ReadRaw/Processed/AtTime/Events): apply the ReadAsync re-read-inside-gate idiom to all four together (pre-existing ExecuteHistoryReadAsync pattern; not introduced by this branch; theoretical disposed-session race during a reconnect mid-gate-wait).", "Bridging a driver IHistoryProvider into the OtOpcUa server HistoryRead path (the server currently dispatches only to the single IHistorianDataSource; the driver capability is not server-consumed) — larger, separate concern.", "Non-empty event-history live proof is infra-gated: needs an upstream OPC UA server that historizes events (opc-plc is not a historian)." ], "lastUpdated": "2026-06-18" }