Fix live reporting pipeline and release 1.6.30 - #176
Conversation
7b7c1e3 to
e6c3b63
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7b7c1e38d7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| var hasHybridAuthority = session.Client.CanUseHybridReportPlanner(device); | ||
| var plans = hasHybridAuthority | ||
| ? Array.Empty<ReportControlPlan>() | ||
| : Iec61850ReportPlanner.BuildPlans(device, session.Points.Values); |
There was a problem hiding this comment.
Re-run hybrid planning after reconnect
When a monitored device reconnects after a transient transport failure, the initial session has taken this new hybrid-authority branch, but TryReconnectAsync still creates plans with Iec61850ReportPlanner.BuildPlans and starts the legacy path at lines 1418–1419. Consequently, the session silently loses the authoritative static/dynamic RCB assignments and fresh availability revalidation introduced here, while the hybrid validation tracker also stops receiving evidence from the replacement legacy plans. The reconnect path should rebuild and start hybrid plans whenever the device retains a live discovery model.
Useful? React with 👍 / 👎.
| var planning = _planning; | ||
| var plans = _plans.Values | ||
| .OrderBy(state => state.Plan.EngineAcquisitionKind, StringComparer.OrdinalIgnoreCase) |
There was a problem hiding this comment.
Synchronize physical-validation snapshots
If CaptureHybridReportPhysicalValidation is called while monitoring is active, this enumeration can race with Reset, RecordActivation, or RecordSlice on the monitor task. Those methods mutate the same Dictionary, List, HashSet, counters, and timestamps without synchronization, so capture can throw a collection-modified exception or return a torn snapshot. Protect tracker state with a lock or capture immutable copies under synchronization.
Useful? React with 👍 / 👎.
Summary
Validation
Evidence boundary
The IEDScout/KM Test Loop probe was read-only and validates discovery, direct MMS value/quality/timestamp reads, RCB availability, and acquisition planning. It did not enable an RCB or claim receipt of physical report frames; runtime evidence keeps setup and received frames distinct.