Integrate Publisher and ArSubsv with sibling ARIEC61850 engine - #51
Conversation
…he sibling engine
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a74a62a3b2
ℹ️ 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".
| GenericWaveformState = _values.Count == 0 | ||
| ? "Waiting for seqOfData" | ||
| : "Raw words available · import SCL before semantic waveform and phasor analysis"; | ||
| _genericValues.ReplaceAll(BuildGenericRows(_values)); |
There was a problem hiding this comment.
Feed raw payloads into the generic explorer
When an unbound ASDU has a payload that is not one of the fixed pair counts accepted by TryDecodeAutoPayload (or is merely 4-byte-aligned rather than 8-byte-aligned), that method leaves snapshot.Values empty, so this code passes an empty _values collection to BuildGenericRows and displays “Waiting for seqOfData” even though payload bytes were received. Consequently, the new generic explorer cannot perform its core no-SCL fallback for arbitrary SV datasets or preserve trailing bytes; carry the engine's raw payload inspection result through the runtime snapshot instead of deriving it from the legacy semantic rows.
AGENTS.md reference: AGENTS.md:L14-L16
Useful? React with 👍 / 👎.
| can refresh dependency assets. Lock files will be regenerated after the paired branches | ||
| are accepted and pinned to reviewed commits. | ||
| --> | ||
| <RestoreLockedMode>false</RestoreLockedMode> |
There was a problem hiding this comment.
Keep CI and release restores locked
With RestoreLockedMode unconditionally disabled, a missing or stale committed package lock no longer fails CI or the release workflow: the initial restore can rewrite the lock, and the later coverage command's locked restore only validates that newly refreshed file. The dependency artifact uploaded by CI may therefore be generated rather than the reviewed lock state, and a tagged build can package a dependency graph different from the repository evidence; retain unlocked restore only for an explicit maintenance operation and enforce locked mode for CI/release builds.
AGENTS.md reference: AGENTS.md:L10-L10
Useful? React with 👍 / 👎.
| ARIEC61850 ref: agent/sv-core-unification | ||
| ARIEC61850 commit: 143e6ca69986cd553405eec883a9928cdfda9367 | ||
| ARIEC61850 PR: #45 |
There was a problem hiding this comment.
Point integration instructions at the committed engine pin
The newly added integration guide identifies agent/sv-core-unification at 143e6ca... as the current pairing, while the committed lock file pins main at 0f845318...; the clone commands below repeat the stale SHA and an obsolete ARSVIN branch. Following these packaged public instructions produces an engine checkout that build.ps1 immediately rejects as a pin mismatch, so the examples and pairing table should be generated from or updated to the lock file.
AGENTS.md reference: AGENTS.md:L11-L11
Useful? React with 👍 / 👎.
Purpose
Remove the embedded IEC 61850 engine from the active ARSVIN application graph so Publisher and ArSubsv Subscriber use one managed source of truth:
masarray/ARIEC61850.Architecture
Publisher, Subscriber, and ARSVIN.Tests reference the sibling engine projects. Active solution and ProjectReferences no longer use the embedded
ARSVIN.Engineimplementation.Reproducible engine pin
engines/ARIEC61850.lock.jsonpoints to the merged engine revision:CI, CodeQL, paired validation, packaging, release provenance, and SBOM processing verify the exact 40-character commit.
Governance
ARSVIN.Engineare blockedAR.Iec61850.*namespaces cannot be reintroduced in application foldersGeneric SV boundary
seqOfDataremains generic until ordered SCL or reviewed context resolves semanticsFinal validation
Final head
a74a62a3b266c0ded15f963d5dd780e7976dd491passed against the merged-main engine pin:No unresolved review thread remains.
Post-merge acceptance boundary
Live/PCAP and known-injection tests remain required before calibrated, formal-conformance, or universal-interoperability claims are made:
nofASDU=1and multi-ASDU replayThese tests remain an explicit field acceptance gate, not an automated claim.