Skip to content

Fix live reporting pipeline and release 1.6.30 - #176

Merged
masarray merged 1 commit into
mainfrom
agent/fix-live-reporting-pipeline
Aug 14, 2026
Merged

Fix live reporting pipeline and release 1.6.30#176
masarray merged 1 commit into
mainfrom
agent/fix-live-reporting-pipeline

Conversation

@masarray

Copy link
Copy Markdown
Owner

Summary

  • retain live DataSet directory members during discovery so report-capable signals reach the catalog
  • consume the ARIEC61850 hybrid acquisition plan for static BRCB/URCB, verified-free dynamic RCB slots, and MMS polling residuals
  • map primary values without q/t alias ambiguity and resolve instMag quality/timestamp companions correctly
  • track physical evidence without equating successful RCB setup with received report frames
  • pin merged ARIEC61850 PR Fix live RCB CID identity and streamline export feedback #75 commit 32351b42b4719e5dccfa068fbbd797c2414a6b4b and prepare ARSAS v1.6.30

Validation

  • ARIEC61850: 573/573 tests passed before merge
  • ARSAS: 239/239 tests passed against the exact merged engine commit
  • ARSAS source-clean gate passed
  • read-only IEDScout probe: 2 DataSets / 58 members / 34 RCBs; static plans mapped 44 requested signals and a cross-LD residual planned through dynamic URCB with no polling residual

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.

@masarray
masarray force-pushed the agent/fix-live-reporting-pipeline branch from 7b7c1e3 to e6c3b63 Compare August 14, 2026 23:27

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment on lines +403 to +406
var hasHybridAuthority = session.Client.CanUseHybridReportPlanner(device);
var plans = hasHybridAuthority
? Array.Empty<ReportControlPlan>()
: Iec61850ReportPlanner.BuildPlans(device, session.Points.Values);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Comment on lines +112 to +114
var planning = _planning;
var plans = _plans.Values
.OrderBy(state => state.Plan.EngineAcquisitionKind, StringComparer.OrdinalIgnoreCase)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

@masarray
masarray merged commit 7bce3ab into main Aug 14, 2026
4 checks passed
@masarray
masarray deleted the agent/fix-live-reporting-pipeline branch August 14, 2026 23:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant