Skip to content

Add guarded RCB availability and selected-RCB SCL export - #32

Merged
masarray merged 9 commits into
mainfrom
feat/rcb-availability-scl-filter
Jul 19, 2026
Merged

masarray merged 9 commits into
mainfrom
feat/rcb-availability-scl-filter

Conversation

@masarray

@masarray masarray commented Jul 19, 2026 •

Copy link
Copy Markdown
Owner

Summary

Adds engine-owned, read-only RCB availability inspection and object-model selected-RCB SCL export for legacy SAS workflows.

RCB availability

  • bounded batch availability check over discovered Report Control Blocks;
  • refreshes DatSet, RptID, ConfRev, RptEna, Resv / ResvTms and best-effort Owner without writing or reserving an RCB;
  • reads each distinct referenced DataSet directory once and reports exact FCDA member counts;
  • distinguishes Available, InUse, UsedByCaller, Unknown, missing DataSet, empty DataSet, and unreadable DataSet;
  • never converts missing Edition 1 reservation evidence into a false green Available state;
  • lets the caller identify RCBs owned by its own active report sessions.

SCL selected-RCB export

  • inventories ReportControl elements with stable selection keys, type, DataSet binding, member count, indexed state, and instance count;
  • clones the source document and never mutates the original;
  • retains exactly one selected ReportControl and removes every unselected RCB;
  • validates that the retained RCB resolves a populated DataSet in the same Logical Node;
  • collapses indexed RptEnabled max to one instance and can rename the exported block to the exact runtime RCB name;
  • preserves all DataSets by default; optional cleanup removes only DataSets not referenced by remaining Report/GOOSE/SV/Log controls;
  • supports filtering a typed live-discovery model to one RCB.

Legacy SAS CID exporter

  • normalizes vendor SCL through the existing interoperable converter;
  • applies the selected-RCB filter;
  • applies Edition 1 V1.6 or Edition 2 V3.1 compatibility fields;
  • writes the CID plus JSON and Markdown evidence;
  • reparses and validates that exactly one RCB and a populated DataSet remain.

Validation

  • source, provenance, wording, and license boundary checks passed;
  • Release build passed;
  • complete automated test suite passed;
  • new regression tests cover availability truthfulness, caller ownership, occupied/empty/unreadable DataSets, source immutability, indexed RCB collapse, one-RCB retention, Edition 1 profile output, and typed live-model filtering.

Safety boundary

The availability workflow is read-only. It does not write RptEna, Resv, ResvTms, Owner, or DatSet, and it does not claim conformance or universal vendor interoperability.

@masarray
masarray marked this pull request as ready for review July 19, 2026 14:03
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@masarray
masarray merged commit aa595cf into main Jul 19, 2026
1 check passed
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