Skip to content

Discovery P7.7: bounded DataSet-first type closure beyond GetNameList limit - #155

Closed
masarray wants to merge 1 commit into
fix/144-p62-scd-serverat-authorityfrom
feat/495-dataset-first-type-closure
Closed

masarray wants to merge 1 commit into
fix/144-p62-scd-serverat-authorityfrom
feat/495-dataset-first-type-closure

Conversation

@masarray

@masarray masarray commented Oct 9, 2026

Copy link
Copy Markdown
Owner

Why

ARSAS and IEDScout field-capture comparison for F650 proves that bounded 64-page MMS GetNameList leaves eveGGIO1, CSWI1–16 beyond the initial namespace; successful DataSet directories already prove their ST/MX membership, but type GVA was only run against initial name-list LN roots. This left Discovery 24 live points vs 67 from Open SCL (8 DataSets / 124 static members and 6/6 RCB ingress matched).

Architecture

Add a pure LiveIedDataSetTypeProbePlanner in engine that admits only live-domain, successful and internally consistent FC=ST/MX DataSet directory members. It extends the association-scoped directory with exact verified member points before the existing, single, negotiated-window LN→DO→leaf type-probe ladder. No second sweep, no per-leaf guess, no cyclic MMS reads. Default limits: 48 extra LN roots and 2048 distinct positional member hints. Full original positional DataSet directories are unchanged; repeated named values are indexed once.

New backwards-compatible overload LiveIedVariableTypeProbeExecutor.ProbeSmartAsync(session, discovery, options, ct) opts into this behavior. The legacy directory overload remains untouched; ARSAS must explicitly adopt the new one after verifying engine CI. Public synthetic tests cover late LN hints, domain/FC spoofing, malformed hints, deduplication, limits and idempotent model expansion.

Delivery/validation

Exact parent 352c81e6a798635c6addcee0683235ca87ad416d (current ARSAS engine pin). No customer IID/PCAP uploaded. Draft, separate from #153/#154 and control/reporting changes. CI and actual F650 parity + MMS budget remain mandatory; do not merge this branch to public main before all gates.

Copy link
Copy Markdown
Owner Author

2026-10-22 staging→main audit triage. Keep this PR OPEN (unique/divergent functionality), do not cherry-pick or close as duplicate.

SHA 43f8935eb636967359028a0d9df293aac1812d99. Evidence: This branch has a DISTINCT LiveIedDataSetTypeProbePlanner.cs plus matching Tests.cs, both ABSENT from staging. It also modifies the already advanced LiveIedVariableTypeHierarchy and MmsClientSession.SmartDiscovery. Needed F650 namespace >64-page / DataSet-first late LN evidence cannot be declared equivalent from existing staging tests. Preserve for a separate no-overwrite reconciliation and MMS-budget gate.

Current staging SHA 44ac7554f43f2ba06763f3895242cb569b2e6a1c (CI https://github.com/masarray/ARIEC61850/actions/runs/39782663272 = 1,262/1,262 PASS), main promotion DRAFT PR #192. Reconcile on staging only, with new exact SHA and regression proof. No consumer repin or field qualification claimed. Tracking stays in #144 and #192; no duplicate issue.

masarray added a commit that referenced this pull request Oct 22, 2026
…onto current staging

Preserve the staging SmartDiscovery negotiated-window, RCB and control implementations. Copy #155 pure planner/test exact blobs and add ONLY an opt-in ProbeSmartAsync(session, discovery, options) overload plus two bounded configuration settings. Existing directory overload and default paths remain intact; no extra scans, polling, or control writes. CI qualification pending.
masarray added a commit that referenced this pull request Oct 22, 2026
Source-aware port of #155 onto newer engine, not a stale branch overwrite. Exact Windows synthetic merge 39787085722: 1264/1264 passed, zero warnings/errors. Staging only; retain ARSAS pin and main promotion gates.

Copy link
Copy Markdown
Owner Author

2026-10-22 #155 adaptively integrated into newer staging (NOT verbatim original branch merge or Git ancestor). Source HEAD 43f8935eb636967359028a0d9df293aac1812d99 holds distinct DataSet-first functionality. Reviewer-approved surgical integration PR #193 was merged into staging at d086ed5b03aeb45c91ad37cefbc8b5b5627a2718, copying the original LiveIedDataSetTypeProbePlanner.cs and LiveIedDataSetTypeProbePlannerTests.cs Git blob IDs exactly, while adding only a new opt-in ProbeSmartAsync(session, MmsDiscoveryResult) overload and two bounded tuning options to latest engine sources. Did NOT overwrite later negotiated-window RCB/control/SMV/identity code. CI #39787085722 checked out refs/pull/193/merge at aff9968: 1,264/1,264 passed, 0 errors/warnings.

Closing original #155 as functionally superseded without merging it. Original source branch, commits and field hypothesis preserved. GE F650 real-I​​ED #162 not closed: opt-in adoption and physical MMS budget/type parity still unproven. main/ARSAS engine lock untouched. Reopen if specific missing behavior confirmed.

@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