Skip to content

D22 P7.6: read-only dual-ingress field diagnostic intake, bounded fail-closed tests - #759

Merged
masarray merged 2 commits into
release/arsas-integrated-rc0-20261024from
field/p7-d22-dual-ingress-readonly-validator-20261027
Oct 27, 2026
Merged

masarray merged 2 commits into
release/arsas-integrated-rc0-20261024from
field/p7-d22-dual-ingress-readonly-validator-20261027

Conversation

@masarray

Copy link
Copy Markdown
Owner

D22 — restore missing P7.6 local dual-ingress diagnostic consistency intake (from historical #479)

Source baseline: protected integrated RC #727/#729, exact 817c3910e8223fa2ac531a4426ada5d2d4bbbe50. HEAD: fc8712c30b01480ef58cc59fe344bbb15dabb523. DRAFT/DO NOT MERGE automatically.

The historical #479 has three missing unique files in the RC: read-only field diagnostic verifier, offline safety tests, and engineer procedure. Rather than blindly merging the diverged old branch, D22 ports these three files onto the current RC and updates a fourth file, the existing lightweight CI-P0 workflow, to run their tests. No runtime C#/XAML, ARIEC/native engine, MMS association, control/write/GOOSE, ARDIREC, installer, pin, stable release or RC changes.

Verifier: parses one full local ARSAS Copy Diagnostic exact IED block. Requires semantic SHA match across Discovery/Open SCL, real per-target ROUTED snapshot evidence, both BRCB+URCB, nonzero signal coverage, zero uncovered, complete bounded target inventory (only <=8 printed target slots per ingress), timezone-aware report receipt, and explicit single selected SCD AccessPoint. It rejects ambiguous/empty/forged/truncated reports and merely structural report matches. Uses 8 MiB input cap and atomically writes verdict; on failed rerun, stale earlier PASS is replaced by NOT_ESTABLISHED.

Authority strictly bounded: physicalVerification=false, wirePcapVerification=false. Even PASS means diagnostic text consistency ONLY; real wire PCAP, second association, E2E 7SX85/GE/F650 physical test still required. No local network or customer report uploaded.

CI efficiency: 20 sanitized Python unittest cases in scripts/test-p7-dual-ingress-diagnostic.py, routed into the existing Ubuntu CI P0 Workflow Integrity (no new workflow, no new runner category). Source-level static check counted 20 tests and two trigger entries; actual CI result pending. Only one draft PR wave planned; do not rerun already green Windows CI without concrete error.

Related #446 interoperability remains OPEN and original #479 remains OPEN until code is truly integrated/qualified; no physical release promotion. Parallel safety #753–#756, Write #726/#716, SG7 #688, IP GUI #732 and #757 CI-P4 draft must remain untouched.

Copy link
Copy Markdown
Owner Author

D22 verification checkpoint — exact fc8712c30b01480ef58cc59fe344bbb15dabb523: CI P0 Workflow Integrity 40419547619 SUCCESS, with newly integrated sanitized P7.6 field diagnostic step explicitly SUCCESS (Ran 20 tests in 0.099s / OK) and unchanged structural/budget checks. CI P1 Advisory 40419547848 SUCCESS. Build ARSAS 40419547617 is still IN PROGRESS at this snapshot, so the combined PR is NOT yet fully green. Do not rerun successful tests or merge while source-build unresolved.

Scope exactly 4 paths: two offline Python files, engineer how-to doc, one existing CI-P0 workflow addition. All runtime C#/XAML/engine locks, protected RC/main/stable, safety #753–756, Write #726/#716, SG7 #688 and GUI #732 unchanged. The validator is a read-only diagnostic consistency tool: its PASS is NEVER proof of physical IED, wire PCAP or release qualification. Fail-closed bounded capture/AP/target acceptance and negative-on-rerun semantics are new over historic #479. Historical #479 and #446 remain OPEN until actual RC adoption and field acceptance respectively.

Full D22 source audit, exact CI evidence and D23 handoff. Keep PR DRAFT / no auto-merge, no CI retry spam.

Copy link
Copy Markdown
Owner Author

D23 source-build qualification COMPLETE at immutable HEAD fc8712c30b01480ef58cc59fe344bbb15dabb523 and base RC 817c3910e8223fa2ac531a4426ada5d2d4bbbe50.

  • Build ARSAS run 40419547617 SUCCESS on attempt 1, including canonical .NET build+full regression, pinned ARIEC/ARDIREC checkout, native CTest, exact-SHA test attestation, real direct portable EXE smoke, sealed package verification and uploads. Confirmed 6 emitted GitHub artifacts (test evidence, source snapshot, canonical native CTest, sealed Windows package, direct EXE, maintenance dependency inventory) on the same PR HEAD.
  • CI P0 run 40419547619 SUCCESS, including 20/20 sanitized read-only dual-ingress validator tests, 0.099 s; original CI workflow topology and budget tests remain green. CI P1 run 40419547848 SUCCESS. All three workflows at this exact SHA are completed success, no rerun.
  • Changes exactly four paths: local verifier, its tests, how-to field intake and existing Ubuntu CI-P0 step. No C#/XAML runtime, MMS, safety, control/write, engine-lock, release, or RC modification. Diagnostic consistency result keeps physicalVerification=false and wirePcapVerification=false; this does NOT qualify real IED PCAP or authorize FAT/promotion.
  • GitHub reports mergeable=true and no submitted reviews or unresolved review threads. However main/RC branch-protection required checks are still not readable by this app (403), and the utility needs owner review for field procedure/security before integration.

Decision: mark PR ready for review only, preserving a normal reviewer/required-check gate; DO NOT MERGE, DO NOT ENABLE AUTO-MERGE or close historical #479 until code is actually integrated. Retain #446/#520 physical acceptance and independent parallel-owner safety #753–756, Write #726/#716, SG7 #688, GUI #732.

@masarray
masarray marked this pull request as ready for review October 26, 2026 23:49
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-26T23:51:36.715185Z fc8712c Draft marked ready
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fc8712c30b

ℹ️ 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".

Comment thread scripts/verify-p7-dual-ingress-diagnostic.py
Comment thread scripts/verify-p7-dual-ingress-diagnostic.py

Copy link
Copy Markdown
Owner Author

D24 engineering checkpoint — exact-head P7.6 review hardening

Fixed both concrete inline review findings in commit 43b7eed without altering the protected integrated RC or app/native engine:

  • Require per-ingress/per-family actual target binding incidence totals to equal their BRCB/URCB coverage counters; preserve overlapping bindings vs unique IEC point count.
  • Bound all eight numeric capture groups to ASCII decimals of at most 10 digits; malicious 5,000-digit ingress/traffic/target fields fail safely and replace stale PASS with NOT_ESTABLISHED.
  • Four additional offline unittest methods and updated engineer guide. Both original P2 review threads now have fix/test replies and are resolved.

Current exact-SHA GitHub Actions: CI P0 #40427176048 SUCCESS (24/24 P7.6 tests in 0.181s), CI P1 #40427176092 SUCCESS; Build ARSAS #40427176051 still in progress at checkpoint, awaiting its complete .NET/native/EXE/artifact gate. No manual reruns or new workflow.

Read D24→D25 audit checkpoint.

Do not merge automatically. GitHub App cannot inspect branch protection (403), owner approval is not established and no offline diagnostic PASS proves physical PCAP/R7/R10 device FAT. Preserve #479 open until this replacement is truly integrated; protect #757, safety #753–756, Write #726/#716, SG7 #688 and GUI #732.

Copy link
Copy Markdown
Owner Author

D25 exact-tree Windows qualification complete (no integration)

Validated full Windows CI #40427176051: SUCCESS, attempt 1, all 36 displayed steps green. Windows tested PR synthetic merge b44df9716b5ce201c392522e02b8998eb06dfb10 whose parents are protected RC 817c3910... and current PR HEAD 43b7eed.... Both have identical Git tree 5040e51664bb53adc964c6135b5410c12804637c, GitHub compare: zero file changes. Thus Windows tests actually cover exactly the candidate source tree (not a different code snapshot).

Measured regression log: 2,987/2,987 ARSAS, 24/24 pinned engine, 6/6 packaged native bridge, 9/9 native CTest; portable EXE smoke, package sealing and all six unexpired artifacts succeeded. P0 #40427176048 and P1 #40427176092 also SUCCESS. No reruns; no new runner/job or source push.

Exact artifact IDs and GitHub archive digests, tested synthetic-merge SHA vs PR HEAD proof, limitations and D26 gates: D25 checkpoint.

Still not a merge approval. Both P2 discussions are resolved, but no APPROVE review; owner-only required checks inaccessible (403). Keep #759 open until explicit owner/ruleset decision. Do not merge protected RC #727/#729, retire historical #479, repin engine or publish stable from CI alone. No independent PCAP/physical IEC 61850 R7/R10 authority established.

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