Skip to content

P6.1 #144: targeted live RCB reconciliation without full discovery - #151

Draft
masarray wants to merge 2 commits into
feat/144-p6-canonical-acquisition-preflightfrom
feat/144-p61-targeted-live-rcb-reconcile
Draft

masarray wants to merge 2 commits into
feat/144-p6-canonical-acquisition-preflightfrom
feat/144-p61-targeted-live-rcb-reconcile

Conversation

@masarray

@masarray masarray commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

Stacked follow-up to PR #150.

Goal

Give Open SCL and Discovery the same engine-owned runtime bridge from canonical static coverage to actual live RCB evidence without forcing a full IED discovery.

PR #150 correctly refuses to promote SCL/canonical structural inventory into operational live evidence. The missing next step is obtaining just enough live evidence, cheaply and deterministically.

Runtime strategy

For selected static coverage only:

  1. extract the exact MMS domains and required RCB families (BRCB/URCB) from canonical coverage;
  2. enumerate NamedVariable only for those domains;
  3. parse only real live RCB candidates from that live directory evidence;
  4. discard unrelated RCB classes/domains;
  5. read whole-RCB structure only for those required-family candidates;
  6. if DatSet was not exposed by the structure, read only its exact DatSet attribute;
  7. return a LiveMmsObserved inventory;
  8. feed that into PR P6 #144: source-aware canonical static acquisition preflight #150 exact canonical -> live target resolution and PR P4 #144: targeted RCB hot path and association-scoped static DataSet evidence #147 targeted availability.

No FC-point discovery, DataSet-list discovery, unrelated-domain enumeration, dynamic DataSet mutation, sibling-name fabrication or full-discovery fallback is introduced.

Performance boundaries

  • domains are de-duplicated locally before network work;
  • independent domain GetNameList chains reuse negotiated outstandingCalling limits;
  • domain and RCB-candidate budgets are hard fail-closed guards;
  • budget overflow never probes an arbitrary partial subset;
  • RCB enrichment is limited to exact required family candidates;
  • no fixed sleeps or retry loops.

New engine entry point

PrepareCanonicalStaticAcquisitionSmartAsync(...)

This is the intended thin-consumer contract:

canonical model + selected signals
        ↓ local
configured static coverage
        ↓ bounded network
targeted live RCB reconciliation
        ↓
exact live RCB target
        ↓
targeted availability

Full discovery is not implied.

Tests

  • multiple selected DataSets in the same LD collapse to one domain enumeration;
  • BRCB/URCB requirements are merged per domain;
  • fallback domain extraction remains exact;
  • domain-budget overflow authorizes zero network work;
  • no-static-coverage path performs zero network work even on a disconnected session.

Teamwork

This PR remains engine-only. It does not modify ARSAS PR #425 or its engine lock. Once software-gated, ARSAS issue #446 can consume this contract on a stacked child of #425 instead of adding more application-side protocol logic.

Software gate

Combined P0-P6.1 exact integration head 9c5292570f55dd81be1b3a6b56f937e5ba1ed276 passed .NET CI #759 end-to-end:

  • source/provenance verification;
  • restore;
  • Release build;
  • complete test suite;
  • package;
  • artifact upload;
  • diagnostics upload.

This is CodeVerified only. It is not yet a production/main merge or PhysicalVerified claim.

This branch has not been deployed

No deployments
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