Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8c95fd7f29
ℹ️ 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".
| if (SmartDiscoveryCaptureModeEnabled) | ||
| return await DiscoverSignalsSmartForCaptureAsync(cancellationToken, progress).ConfigureAwait(false); |
There was a problem hiding this comment.
Honor the fail-closed smart-discovery switch
In every ordinary build, SmartDiscoveryCaptureModeEnabled is already hard-coded to true, so this early return permanently activates the field-capture route even though evidence/SmartDiscoveryPromotion.props still sets SmartDiscoveryProductionPromoted=false and Directory.Build.targets says normal builds must remain on the legacy route until promotion authority exists. This bypasses the production gate and ships a path that explicitly defers the supplemental, sibling, equipment, reference, and unit enrichment used by the existing workflow; route activation must remain conditional on the reviewed promotion setting.
AGENTS.md reference: AGENTS.md:L172-L178
Useful? React with 👍 / 👎.
| Assert.Contains("discovery.DataSetDirectories.SingleOrDefault", source, StringComparison.Ordinal); | ||
| Assert.Contains("TryVerifyStaticDataSetMemberOrder", source, StringComparison.Ordinal); | ||
| Assert.Contains("Members = modelDirectory.Members", source, StringComparison.Ordinal); | ||
| Assert.DoesNotContain("GetDataSetDirectoriesAsync", source, StringComparison.Ordinal); |
There was a problem hiding this comment.
Reconcile the mutually exclusive static-path regression tests
This new assertion necessarily conflicts with DeterministicStaticReportPathRegressionTests.StaticPath_BypassesAdaptiveHybridPlannerAndPolling, which still asserts that the same source file contains GetDataSetDirectoriesAsync (line 14). Since this commit removes that call, a normal ARSAS.Tests run must fail regardless of runtime behavior; update or replace the existing contract in the same change so the suite expresses one directory policy.
Useful? React with 👍 / 👎.
|
P0 implementation is now field-test candidate ready at Validated candidate paths:
P0 behavior now converges live discovery on the same post-model task flow used by an opened model:
Key locked invariants:
Do not merge this PR on CI evidence alone. Physical acceptance is still required on the same IED:
P1 capability-index/fingerprint work is intentionally isolated in stacked draft PR #340 so it cannot move this P0 field-test baseline. |
|
Text-value presentation regression is fixed on P0 head Root cause:
Fix boundary:
Regression tests added and confirmed present in the passing R7 test evidence:
All P0 workflows are green on this head, including Build ARSAS, Field Capture, R7 interoperability, Merge Execution Guard, Mainline Readiness, Production Promotion Guard, Golden Budget/Provenance, Repeat-Run Stability, and convergence guard. New R7 field-test artifact:
Physical retest should verify only that the already-accepted discovery/static-report behavior remains unchanged while Live Signal Values return to the expected operator text. PR remains Draft until that check is complete. |
|
P0.6 parity work is now staged on this draft PR. Field diagnostic root cause reproduced from the latest candidate:
Changes now on the branch:
A separate engine candidate is intentionally isolated in ARIEC61850 draft PR #139 for generic status CDC typing from exact stVal TypeSpecification. It adds no reads or wire traffic and is not merged/pinned here until its own CI and physical validation are complete. No promotion/merge is requested by this comment. Physical field evidence remains the acceptance authority. |
P0.6 checkpoint — 2026-09-20Current consumer head: CI evidence:
R7 field-test artifact:
Physical acceptance focus for this candidate:
Important boundary: ARIEC61850 PR #139 is CI-green but is intentionally not integrated into this R7 candidate. Therefore the CBClsCounter SPS->INS semantic correction is not part of this physical binary yet. |
P0.7 finishing semantic/presentation patch — 2026-09-20Physical P0.6 retest on AA1E1F06R4 established the consumer/runtime baseline before this patch:
Finishing commit: This patch is deliberately presentation/semantic-only:
Acquisition boundaries remain untouched: Smart Discovery request shape, RCB planning/activation, report projection, DataSet selection authority, and cyclic-polling prohibition are unchanged. ARIEC61850 PR #139 remains a separate engine semantic candidate for the CBClsCounter SPS->INS correction; it is not silently mixed into this consumer finishing commit. |
P0.7 finishing candidate ready for physical visual/report retestHead: Green evidence on this exact head:
Artifacts:
Focused physical retest:
Engine boundary: this artifact intentionally remains on ARIEC61850 |
P0.7 release-candidate baseline is now locked against regressionLock commit: New repository authorities:
The lock preserves the physically accepted point reached at consumer head The remaining work is explicitly scoped as SCL semantic parity, not acquisition redesign. Any future ARIEC61850 semantic integration must preserve every locked P0.7 invariant. A candidate that fixes SCL metadata but regresses reporting, polling, 58-row coverage, Save SCL, reuse, or presentation is rejected by contract. |
|
Release tracking is now explicit in ARSAS issue #341: SCL semantic parity remains the release blocker, while the P0.7 runtime/presentation baseline is frozen by commit |
|
Closing this historical P0/P0.7 candidate rather than leaving it as an apparently mergeable active workstream. Against current main, the remaining delta is only the old P0.7 release-candidate lock/evidence/test, while the accepted v1.6.40 release and post-release SCL issue #341 supersede that candidate authority. This branch is 68 commits behind main. Do not use it as a new base; historical evidence remains available in PR history. |
Goal
Make live IED discovery converge on the same post-model workflow already used by Open SCL:
Discover IED -> canonical model -> IED Actions -> Static DataSet -> report-backed live signals.Baseline protection
This branch starts from current
mainand preserves the physically proven bounded Smart Discovery / R7 engine lineage. P0.6 changes are consumer-side projection, presentation and workflow changes only; the engine semantic candidate remains isolated in ARIEC61850 PR #139 until separately validated.P0 / P0.5 already established
P0.6 additions
units.SIUnitandunits.multiplier, with inferred fallback disabled for this path;CanPublishToRuntimeremains intact;Field target
For the physical relay used during acceptance:
The 12 previously missing Analog rows are:
Required physical acceptance
CI is necessary but not sufficient. Before promotion this candidate must be physically checked for:
This PR remains a field-test candidate until physical evidence is attached.