Repository navigation
Staging: opt-in verified DataSet-first type hints from #155 (no rollback) - #193
Conversation
…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.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a50c946834
ℹ️ 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".
| discovery, | ||
| options.MaxDataSetTypeExtraLogicalNodes, | ||
| options.MaxDataSetTypeMemberHints); | ||
| discovery.IedDirectory.AddSupplementalPoints(verified); |
There was a problem hiding this comment.
Promote late roots only after a successful type probe
When a DataSet contains a stale or unavailable member, or the subsequent GVA fails because of a negative response, disconnect, or cancellation, this mutates discovery.IedDirectory before any type result is verified. The new LN and point therefore remain in the canonical directory and can be consumed by export and InitialFcReadPlanner.FromLiveDirectory even though probing never confirmed them. The existing ProbeDataSetMemberTypesSmartAsync path deliberately adds membership seeds only for successful responses with non-null TypeSpecification; this overload should preserve that gate rather than publishing the hints before executing the probes.
Useful? React with 👍 / 👎.
Isolated staging integration of #155 — no progress rollback
Source: old #155
43f8935eb636967359028a0d9df293aac1812d99. Destination baseline: current staged/PR #192 HEAD44ac7554f43f2ba06763f3895242cb569b2e6a1c. New isolated integration commita50c946834df4def6acc8db987f09b2ecff5cf29.Four-file surgical patch:
LiveIedDataSetTypeProbePlanner.cssource blob086ead0a6....LiveIedDataSetTypeProbePlannerTests.csblob00be466692...testing late CSWI/eveGGIO roots, domain and FC spoofing, bounded budgets and idempotent expansion.LiveIedVariableTypeProbeExecutor.ProbeSmartAsync(session, MmsDiscoveryResult, options, ct)overload to currentLiveIedVariableTypeHierarchy.cswithout replacing existing version. It admits only verified DataSet members then invokes existing single-pass root GVA type probe.MaxDataSetTypeExtraLogicalNodes=48andMaxDataSetTypeMemberHints=2048to currentMmsSmartDiscoveryOptions, keeping current negotiated-window, RCB enrichment, cancellation and other settings byte-for-byte.No vendor-specific name guesses, no extra MMS GetNameList pass, no cyclic polls, no control command changes, no retrofit of old SmartDiscovery code. This is a code gate, not a field-qualified fix for F650 issue #162; consumer must opt in, runtime field parity/latency still needs checking.
Required gates
mainpromotion or ARSAS pin update as part of this PR.Linked issue: #144 / #162.