Skip to content

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

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

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.

Copy link
Copy Markdown
Owner Author

Staging reconciliation 2026-10-22: this old standalone PR's intended functional scope exists in the newer staging implementation, but the old branch still diverges from the newer code. Do NOT cherry-pick the historic file snapshots. Original HEAD c674518f9458846ce0b4a77a57bcd2e911579e75 is not claimed an ancestor of staging.

Code and test evidence: Staging has PrepareCanonicalStaticAcquisitionSmartAsync, MmsCanonicalStaticLiveReconciliationPlanner, bounded per-domain reconciliation and tests. MmsCanonicalStaticLiveReconciliationPlannerTests.cs is byte-identical between original branch and staging, while staged runtime extends it with more recent candidate pagination.

This source scope passed Windows PR #192 synthetic merge CI #39782663272: 1,262/1,262 tests, zero warnings/errors, exact staging SHA 44ac7554f43f2ba06763f3895242cb569b2e6a1c. Closing old PR as functionally superseded (without merge); Git branch/commits retained, and staging→main #192 stays DRAFT pending consumer and physical acceptance. Reopen if a specific missing invariant is documented.

@masarray masarray closed this Oct 22, 2026
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