Skip to content

RC0 CONSOLIDATION GATE — SSOT responsive + FAT Write; preserve SMV/IED Browser - #727

Draft
masarray wants to merge 33 commits into
integration/arsas-ssot-performance-p0-20261024from
release/arsas-integrated-rc0-20261024
Draft

masarray wants to merge 33 commits into
integration/arsas-ssot-performance-p0-20261024from
release/arsas-integrated-rc0-20261024

Conversation

@masarray

Copy link
Copy Markdown
Owner

DRAFT, DO NOT MERGE INTO MAIN OR PUBLISH A RELEASE. Single handoff and RC staging lane for consolidation of the accepted performance/SSOT report engine with exact field-accepted FAT Write + fresh post-Write readback. Base b1d177885ff8cba6515e19f0aec33d1fc887519b; source integration commit 6cc3aa1ab7aa6ea7cb1f2f580f00becca7a51255; full handoff and release acceptance plan in docs/handoff/HANDOFF_ARSAS_ALL_THREADS_TO_RC_2026-10-24.md. Code changes are only the exact ten Write/SSOT files from #679/#726 (byte-for-byte matches), plus this markdown. No SMV or layout/engine changes. CI must run exact SHA (Build Windows, R7, P0/P1, Reference Guard, SV, IO List, COMTRADE). Readiness mainline R10 must not be bypassed; run physical FAT on three IEDs, verify 77/77 SG7 and 4/4 RCB, integer BSC TapChg, Command Dock Status Only, Browser 6-section fixed order, blue-white SMV, Smart IP, WPF responsiveness, SOE BufOvfl before release. Do NOT close #679/#726/#721 until promotion and provenance checked; preserve historic checkpoints.

masarray and others added 20 commits October 13, 2026 16:02
…gine while preserving historical physical qualification
Qualify combined SV/IO/FAT path filters with both regression guards.

Canonical Windows: 1761/1761 ARSAS, 19/19 engine, 6/6 native managed tests; portable smoke and sealed package; SV/IO and all 12/12 PR workflows green.

Supersedes draft PRs #562 and #564; no runtime, engine lock, or stable release modifications.

Copy link
Copy Markdown
Owner Author

RC integration progress / M0-M2 source audit — 2026-10-24

Single release lane: PR #727 / release/arsas-integrated-rc0-20261024 @ 77c6cd2. No update to main.

Subordinate staging integration PR #728, head 416d01e (NOT YET MERGED).

…release lane

Validated source tree 156663e. Windows Build #40065679419, SV #40065679411, P1 #40065679583 green at synthetic merge 195a272; ARSAS 2955/2955, pinned native bridge 6/6 and packaged EXE smoke. Remaining R7/IO/COMTRADE/Reference Guard on final RC head and physical FAT still mandatory. No production/main promotion.

Copy link
Copy Markdown
Owner Author

RC0 M3 — exact-source CI and portable candidate PASS (2026-10-24)

AUTHORITATIVE branch HEAD release/arsas-integrated-rc0-20261024 @ f177f34 (PR #727 remains DRAFT, no main merge). GitHub Actions synthetic PR merge 21c45b0, identical git tree 156663ead8efbdb1254ba6e9df64245652cc5506 to branch HEAD. Therefore packaged/tested contents exactly match the integrated RC tree, despite different synthetic merge commit identity.

SOURCE CONSOLIDATION: PR #728 merged into isolated release branch as f177f34 after premerge Build #40065679419, SV #40065679411, P1 #40065679583 all SUCCESS. 27 accepted SMV source blobs taken byte-for-byte from final field checkpoint #725; 10/10 Write/post-Write source blobs inherited unchanged from accepted #726. Engine lock f75e323e9f8443aa20e0a3818a1d5d77255b2c0f unchanged, ARDIREC lock unchanged; MainWindow.xaml, SSOT runtime, Write, Control, natural Command ordering kept from latest RC0.

EXACT RC0 CI green:

  • Build ARSAS #40066246363 SUCCESS: 2,955/2,955 application regression; selected pinned engine 24/24; native packaged bridge 6/6; portable EXE smoke SUCCESS; Windows sealed package input uploaded.
  • SCL Interoperability R7 #40066246428 SUCCESS: application 2,955/2,955, pinned ARIEC engine 1,272/1,272, canonical SCL/reconnect suite, portable smoke SUCCESS.
  • Validate SV evidence #40066246370 SUCCESS.
  • CI P1 Advisory #40066246383 SUCCESS.
  • Canonical source attestation in Build: source=21c45b0d1a46fd202bddd3c39760ac19bf6fd8e8, engine=f75e323e9f8443aa20e0a3818a1d5d77255b2c0f, tests=2955 PASS, tree=156663ead8efbdb1254ba6e9df64245652cc5506.

ONE Windows portable EXE: Actions Build #40066246363 artifact #12549765480, name ARSAS-1.6.40-win-x64-portable.exe, EXACT SHA256 2177ff41e0fb9bc043370cf1bca8df37219fc772614a83789826a08e9e54b3ae. This is RC preview candidate, not v1.6.40 public stable equivalence. Do NOT relabel version, stable/release, or previous physical acceptance.

QUALIFICATION BLOCKERS (explicit NOT-RUN, NOT PASS): standalone IO List, standalone COMTRADE integration, and Interoperability Reference Guard workflow_dispatch could not be started from this connector session (GitHub integration exposes no workflow_dispatch write; authenticated browser automation unavailable due to depleted wallet). Full ARSAS tests cover existing relevant suites, but are not a substitute for those separately required workflow attestations. Also physical combined 3-IED FAT and WPF p95/p99, SG7 event/BufOvfl/SOE continuity evidence remain pending; no real hardware action was executed by assistant. ARIEC staging PR #192 still DRAFT. Independent 17 main-only commits (release/version/RCB) not reconciled. No main merge or public release/tag.

Next operator FAT: use ONLY artifact #12549765480, record SHA256 and diagnostics with SG7 77/77 4/4 RCB (including reconnect and 13 continuity findings), ZIVAVR 8/8 1/1 with integer TapChg and exact post-Write Read, GR_X 13/13 2/2; compare SMV final cool-blue UI/stream HOLD/RAW vs 9-2LE, Smart IP, six Browser sections, Command Dock Tap-first/Status Only, report source/q/t/association, responsiveness/Stop. No unauthorized control. Preserve original accepted checkpoints as distinct physical evidence; do not claim this combined SHA has been field accepted yet.

…ected IED identity

Preserve Reports > DataSets > Data Model > Files > Setting Groups > GOOSE. Bind Name and Endpoint typography to existing reactive IsActive selection authority; no MMS/SSOT/Control/engine changes. Add explicit regressions and update the outdated root-order expectation.

Copy link
Copy Markdown
Owner Author

Operator GUI FAT finding and surgical repair — 2026-10-24

Field report from integrated RC portable version 1.6.40+21c45b0d1a46fd202bddd3c39760ac19bf6fd8e8 (same source tree as RC0 head f177f345...) showed IED Browser Objects navigation regressed to GOOSE / Reports / Setting Groups / Files / DataSets / Data Model. Requested final operator order is Reports → DataSets → Data Model → Files → Setting Groups → GOOSE, superseding the older handoff variant. Selected left-side IED name and IP:port must both be bold (unselected cards retain original typography).

RC0 fix, not a new integration lane:

  • 0c00b8d6c64b00ad3a4c0934b7da9afffe17514a: reorder only six IedBrowserPresentation.Roots categories, preserving all stable category keys, lazy load behavior and exact model data; add two scoped DataTemplate typography styles with IsActive reactive triggers (selected Name+EndpointText Bold, otherwise Semibold/Normal); add explicit root-identity and WPF source regressions; update outdated regression expectation to exact user-accepted order.
  • 68c99e5b1db3ce5d4ca874f29f64bc0a8de79689: source-clean guard rejected an external name in comment; amended comment only.
  • Current HEAD 4eb28c14294c9be7a8d4778be809ce6b094071b4: R7 compile caught missing namespace import in new test, fixed by adding using ArIED61850Tester.Models; only. No other production edits.

Changed files across this correction: Models/IedBrowserPresentation.cs, MainWindow.xaml, tests/ARSAS.Tests/IedBrowserPresentationTests.cs, tests/ARSAS.Tests/IedBrowserOperatorNavigationAndIdentityTests.cs. No changes to engine locks, Static DataSet report-only acquisition, SSOT, post-Write MMS fresh read, Command Dock control policy, Smart IP or SMV final visual.

CI on current SHA:

  • Build Windows #40068979227 (running at time of this comment)
  • R7 #40068979206 (running)
  • SV #40068979192 (running)
  • P1 #40068979196 SUCCESS.

Do NOT claim portable binary ready until Build uploads new ARSAS-1.6.40-win-x64-portable.exe exact-source artifact and succeeds. Previous portable artifact #12549765480 is a pre-fix version and will not show these UI changes. PR #727 stays DRAFT; no main merge, release, engine repin, or unrelated PR closure.

Copy link
Copy Markdown
Owner Author

M2 GUI visual FAT correction ACCEPTED BY EXACT-SOURCE CI — 2026-10-24

Final RC0 branch/PR #727 HEAD: d327e0ac0189d312776345d16ba0e57aa03513f1 (still OPEN DRAFT, not main). Source tree d5fddc713d826fdc2a5e2f715beadf3bf9c90402. Synthetic PR test/packaging commit 89773b3113efd3548e3426180db19f8bfe982b07 has the IDENTICAL TREE as branch HEAD.

Operator screenshot regression fixed:

  1. IED Browser Objects now exactly Reports → DataSets → Data Model → Files → Setting Groups → GOOSE. Stable category keys and existing lazy object loaders intact; no protocol or monitoring code changed.
  2. Selected IED Name and EndpointText (IP:port) render Bold by reactive IsActive styles in IED Card DataTemplate. Unselected cards retain Name SemiBold and endpoint Normal; avoids local FontWeight overriding trigger.
  3. Two explicit new regression tests enforce exact six titles/keys and reactive WPF style (plus stronger pre-existing root/expand tests). Existing stale order expectations reconciled, no test disabled.

Effective five changed files relative to previously green RC:

  • Models/IedBrowserPresentation.cs (root order)
  • MainWindow.xaml (selection typography only)
  • tests/ARSAS.Tests/IedBrowserPresentationTests.cs
  • tests/ARSAS.Tests/P0BrowserRcbEnabledTruthTests.cs
  • tests/ARSAS.Tests/IedBrowserOperatorNavigationAndIdentityTests.cs (new).

Exact final source CI: ALL GREEN:

  • Build ARSAS #40069214420 SUCCESS: ARSAS 2,957/2,957 PASS, selected pinned ARIEC engine 24/24 PASS, ArdIrec packaged managed regression 6/6 PASS, portable EXE smoke PASS.
  • SCL Interoperability R7 #40069214425 SUCCESS: ARSAS 2,957/2,957 PASS, pinned ARIEC61850 1,272/1,272 PASS, R7 portable smoke PASS.
  • Validate SV evidence #40069214430 SUCCESS.
  • CI P1 Advisory #40069214500 SUCCESS.

New Windows single EXE direct artifact (NOT the previous prerefix build):
https://github.com/masarray/arsas/actions/runs/40069214420/artifacts/12550941214
name ARSAS-1.6.40-win-x64-portable.exe, size 79,349,800 bytes, SHA256 2b1c4dce5cd7aef4adc47cc9106638c063f157b74b8069cb73368a93855a511e.
Source attestation in Build log: source=89773b3113efd3548e3426180db19f8bfe982b07, engine f75e323e9f8443aa20e0a3818a1d5d77255b2c0f, 2957 PASS, code tree identical with RC branch.

Previous screenshot diagnostic was taken on prefixed artifact with pre-fix SHA 1.6.40+21c45b0d...; it cannot display this patch. Operator visual retest of new EXE is mandatory for visual acceptance, separate IO/COMTRADE/Reference Guard workflows and physical 3-IED FAT still mandatory for RC qualification. No engine pin, reporting, SSOT, Write, Control, Smart IP, SMV, public release or main modification.

…and centered actions

Narrow the fixed dialog from 480 to 410 DIP, widen symmetrical content insets, stretch IPv4/IPv6 editor and history to the available column, increase octet readability and tap targets, center accessible Cancel/Connect pair. Preserve existing IP parsing, history, manual IPv6 mode and advanced port behavior. Strengthen WPF layout regression contracts.
…mpact balanced geometry

Keep all clean-room, disclosure, keyboard/history popup, palette, WPF STA and scroll safety checks. Replace obsolete 480x350 / fixed-265 expectations with 410x348 and stretch width assertions.

Copy link
Copy Markdown
Owner Author

Smart IP / Add IEC 61850 IED — compact dialog integration (2026-10-24)

Single release lane: PR #727 / release/arsas-integrated-rc0-20261024, head 1f1a471508e477df7e44abb0c21916b771d88024 (tree ce6ff240a42c76884173ca5ba64e12c5fb1c07be). PR remains DRAFT; no main/tag/stable release or engine repin.

Operator approved a narrower, balanced modern form matching the reference mockup. Production-only change is IpConnectWizardWindow.xaml at fd135c2e...: fixed 410×348 DIP vs 480×350; symmetrical internal 32 DIP left/right margins; 44-DIP-high segmented IPv4 and manual/raw IPv6 editors stretch to full content width; 44-DIP octets with larger visual gap; balanced title/subtitle/advanced spacing; footer divider and two centered 108+128 DIP action buttons. History popup remains attached to the full actual editor width. Existing segmented input listeners, pasting, raw IPv6 mode, history search/choice, advanced MMS port, default Connect, Cancel, source authority and handler files unchanged.

Regressions strengthened in tests/ARSAS.Tests/PremiumSmartIpWizardTests.cs, with layout and unchanged history/IPv6 WPF STA, default/nonstandard-port functional contract. Follow-up 1f1a471... changes ONLY stale historical 480×350 expectations in StartupVisualStabilityRegressionTests.cs and IedTaskDialogVisualRegressionTests.cs; all old checks for source-clean, WPF window initialization, contrast, keyboard navigation, history popup, and advanced disclosure retained. First R7 #40071141909 showed 2,955 PASS, 2 obsolete geometry assertions FAIL, requiring this reconciliation; do NOT claim pre-fix test green.

Exact final-head CI in progress: Windows Build #40071354642; R7 #40071354635; SV evidence #40071354652; P1 #40071354650. Do not publish or label candidate qualified until exact final-source Windows portable EXE smoke/test artifacts succeed. Previous #40069214420 portable is pre-form-redesign and does not contain the geometry fix. Hardware visual FAT at 100/125/150% DPI still required.

Copy link
Copy Markdown
Owner Author

M4 Smart IP modern compact dialog — implementation and exact-source Windows CI PASS (2026-10-24)

Single RC integration lane PR #727 HEAD 1f1a471508e477df7e44abb0c21916b771d88024 (source tree ce6ff240a42c76884173ca5ba64e12c5fb1c07be). Source-tested-and-packaged synthetic merge 1452576837004026dc9dc2cfed5e8a24dda4bcc9 has EXACT IDENTICAL TREE ce6ff240.... PR remains OPEN DRAFT; no main merge, stable release, engine repin, or unrelated code changes.

Operator-approved design implemented in IpConnectWizardWindow.xaml: 410x348 DIP vs previous 480x350, balanced left/right 32-DIP content margins, 18px heading, 12px subtitle, 44-DIP high full-width IPv4 segmented AND raw/IPv6 editor, visually spaced 44-DIP IP octets, 43-DIP history affordance, full-editor-width history popup (still ActualWidth), better Advanced disclosure spacing and centered Cancel (108 DIP) + Connect (128 DIP) actions with 40-DIP min height. Existing IpConnectWizardWindow.xaml.cs, parsing, focus/keyboard, history, saved endpoints, fallback IPv6, nonstandard port disclosure, cancellation and confirmation unchanged. Regression source tests in PremiumSmartIpWizardTests hardened to hold this geometry. Two older source-only geometry expectations updated in StartupVisualStabilityRegressionTests and IedTaskDialogVisualRegressionTests without disabling ANY existing behavior, contrast, WPF STA, source-clean, history or scroll checks. Total diff = ONLY 4 files vs previously field-tested RC head d327e0ac....

Exact integrated source CI (all completed SUCCESS):

  • Windows Build #40071354642: 2957/2957 ARSAS PASS, selected pinned engine 24/24 PASS, packaged native bridge 6/6 PASS, full portable EXE smoke PASS.
  • R7 #40071354635: 2957/2957 ARSAS PASS, pinned engine 1272/1272 PASS, R7 portable smoke PASS.
  • SV evidence #40071354652: SUCCESS.
  • P1 Advisory #40071354650: SUCCESS.

New final Windows RC preview portable (not previous artifact):
https://github.com/masarray/arsas/actions/runs/40071354642/artifacts/12551676160
Artifact name ARSAS-1.6.40-win-x64-portable.exe, size 79,349,786 bytes; binary SHA-256 9dd5285d64e44d4e3c1f289dc6ac6b5156f2d611425346345957593fa3652676. GitHub uploaded artifact SHA matches the internally computed EXE SHA in Build log.

Qualification note: CI includes WPF STA construction and source layout contracts but not actual Windows 100%,125%,150% scaled user visual comparison against approved reference; operator still needs to check final dialog screenshot. Other previously documented 3 standalone gates IO/COMTRADE/Reference Guard and integrated 3-IED physical FAT remain open. No public stable promotion.

…out reverting accepted v1.6.42 candidate

Preserve eight-tab IED Browser, cool-blue SMV, typed Write/Control, responsive SSOT v2 and latest Smart IP; import main-only safe Windows release fixes and published stable metadata, use new 1.6.42 prerelease identity, retain old stable v1.6.41 publication request without triggering automatic stable release. Main remains unchanged; prerelease/stable promotion still gated on current SHA and physical FAT.
…r and published ledger

Manual release from a non-main ref is always prerelease even when input is misconfigured; --latest is restricted to stable releases, and .release/published.json cannot be written by a public preview. Add fail-closed workflow regression. No WPF, engine, reporting, control or runtime changes.

Copy link
Copy Markdown
Owner Author

PUBLIC RC v1.6.42 — release milestone after mainline source reconcile

HEAD 2d4b6bc16182af2c4d726ea02e2083c4def217ad, branch release/arsas-integrated-rc0-20261024 (shared PR #727 + staging PR #729). No main merge or release published.

Real work done: prior 086a396... two-parent merge commit included the latest published main 45348ecc... and accepted RC 1f1a471..., with 15 main-only scoped release/provenance/CI owners retained by exact blob SHA, while newer IED Browser, responsive SSOT, SMV and Smart IP code stayed untouched. Version advanced to 1.6.42. main remains unchanged and v1.6.41 is latest stable.

New high-priority release blocker fixed in 2d4b6bc16182af2c4d726ea02e2083c4def217ad: manual workflow_dispatch publishing from any non-main ref was previously able to mark a prerelease with --latest and then overwrite .release/published.json in main claiming channel=stable. Release workflow now ALWAYS makes non-main manual published assets --prerelease, adds --latest ONLY on the stable branch, and runs the stable-updater evidence writer ONLY for main/tag stable-eligible events, never RC prerelease. New fail-closed regression tests/ARSAS.Tests/PublicPrereleaseIsolationRegressionTests.cs. No protocol/engine changes.

Gate results and status: Original #727 RC source 086a396... R7 #40078434596 SUCCESS (ARSAS 2957/2957; pinned engine 1272/1272; Windows portable 1.6.42 smoke). COMTRADE #40078434602 SUCCESS; Workflow Integrity #40078434601 SUCCESS; Windows Build/IO/SV separately in progress. Promotion PR #729 on exact 086a396... got R7 mainline gate FAIL #40078602080 (Unqualified typed-control staging pin cannot replace physical R7/R10 authority) and Reference Guard FAIL #40078602177 (Smart interoperability code-trial authority is malformed or was silently promoted). These are real physical evidence blockers, NOT compiler failures; we must not weaken them. Latest exact 2d4b6bc16182af2c4d726ea02e2083c4def217ad workflows rerunning.

Next manual prerequisite from operator: On final 1.6.42 portable, record 3-IED FAT (SG7_BCU 77/77 4/4, ZIVAVR 8/8 1/1, GR_X 13/13 2/2), initial Report/Read q/t/source parity, SG7 BufOvfl and EntryID continuity across reconnect, fail-closed control + signed BSC integer TapChg + fresh Write readback, SMV/cool-blue/Smart-IP/IED Browser order and idle/active WPF input responsiveness. Include exact binary hash + timestamp + observed failures, do NOT use pre-1.6.42 FAT as proof. Field scope acceptance must be explicit before stable.

Release route after gates: GitHub Actions .github/workflows/release-windows.yml on branch release/arsas-integrated-rc0-20261024, manual inputs version=1.6.42, publish_release=true, prerelease=true. This will build installer+portable with SBOM, provenance, SHA256; stable main/latest v1.6.41 remains unchanged, subject to post-fix CI proof. DO NOT click publish until final exact-head success and operator review, and never repin engine blindly. Stable promotion needs actual R10/Reference Guard acceptance and separate main merge approval.

…motion PR

R10 positive/negative scenarios must receive their own explicit GITHUB_BASE_REF and GITHUB_REF_NAME; an outer PR to main must not contaminate a synthetic non-main test. Actual R7 and Reference Guard physical promotion checks remain untouched and fail-closed.

Copy link
Copy Markdown
Owner Author

v1.6.42 release gate — exact final source verification at 2026-10-24

Locked promotion candidate HEAD 42fe38905334c1cda5d3641ad68bb72286e02dba, git tree 2a2977acdaaee5f3ff5c6c15d4fd3f90a699e620. Both #727 and #729 GitHub synthetic PR merge trees verified IDENTICAL to source tree (their synthetic SHA values differ only by PR base). DO NOT update this branch just to edit release notes; avoid invalidating CI.

Build and portable on EXACT SOURCE TREE:

Release engineering fix: 2d4b6bc... ensures manual non-main workflow_dispatch is always --prerelease, cannot take --latest, and cannot overwrite .release/published.json on main. 42fe389... only fixes synthetic R10 fixture env isolation; real R10 and interoperability guard stay fail-closed. Public stable remains v1.6.41. Main SHA remains 45348eccf24e941dd185e5fb729217923846c610 unchanged; PRs #727/#729 are DRAFT.

Immediate next gate for operator: Download above exact binary, run 3-IED FAT and confirm UI/reporting/Control/Write/SMV while classifying SG7 4 BufOvfl and SOE/EntryID continuity. Run manual release packaging workflow on this branch with version=1.6.42, publish_release=false, prerelease=true; this produces full installer/SBOM/checksums/provenance without publication. Only after satisfying acceptance explicitly can operator run publish_release=true and prerelease=true for a clearly labeled public PREVIEW, not stable (and never latest). Stable mainline promotion remains blocked by independent physical qualification R7/Reference Guard.

…ease branch

Filter Build ARSAS candidates by exact event PR display title before selecting latest run, preventing PR #729 synthetic merge evidence from shadowing PR #727 with the same head SHA and branch. Retain exact source SHA, engine SHA, TRX, full-test PASS, artifact run/attempt and latest-failure checks. Add adversarial same-head two-PR fixtures; no production or engine changes.

Copy link
Copy Markdown
Owner Author

M5 Exact-source CI reconciliation CLOSED — 2026-10-24

RC0 authoritative HEAD: f27ca68e6343ff0b291a343a583ff01d54bbe5a7
Git source tree: 29605986c87811307be915ac2f4e871e26ab6212
PR #727 synthetic test sha: 43aa70febb2d3976c390e69bfc8e934084cf16a0
PR #729 synthetic test sha: a97eb474e9619583d0d5cfba30fbe156d19ed147
Both synthetic merge SHA trees have been independently verified byte-identical to RC HEAD's tree, though their SHA IDs differ by PR base.

Real code fix

Four files only:

  • scripts/verify-ci-canonical-reuse.py: filter candidate workflow runs by the hosting PR's exact event display title before choosing latest canonical run, preventing a different PR's same-head newer Build from shadowing correct synthetic merge proof. Strict exact source/engine manifest, run/attempt, entire TRX PASS and last-failure checks all remain.
  • scripts/test-ci-canonical-reuse.py: five adversarial fixtures for same-head separate-PR newest success/failure, negative stale main, and missing title. Existing negative latest-failure and archive/integrity tests retained.
  • .github/workflows/validate-io-testing.yml, .github/workflows/validate-sv-evidence.yml: inject exact PR event title into verifier via env; no C# production, engine locks, WPF or FAT change.

Final exact-SHA CI results

PR #727 integration lane ALL RELEVANT GREEN:

  • Build ARSAS #40085996337 SUCCESS — app 2958/2958, pinned engine 24/24, native ArdIrec managed bridge 6/6, Windows portable smoke PASS.
  • R7 #40085996371 SUCCESS — pinned engine 1272/1272 + app regression/portable smoke PASS.
  • IO #40085996352 SUCCESS (was previously timing out on PUBLIC RC 1.6.42 GATE — integrated IEC 61850 SSOT/Write/SMV/Smart IP; reconcile v1.6.41 mainline #729 synthetic merge).
  • SV #40085996363 SUCCESS (same correction).
  • COMTRADE #40085996330 SUCCESS.
  • P0 Workflow Integrity #40085996344 SUCCESS; P1 #40085996340 SUCCESS.

PR #729 main-promotion lane (same source tree):

  • Build #40085996804 SUCCESS — app 2958/2958, native 6/6, portable smoke PASS.
  • IO #40085996770 SUCCESS; SV #40085996855 SUCCESS; COMTRADE #40085996778 SUCCESS; P0 #40085996814 SUCCESS; P1 #40085996835 SUCCESS; adoption #40085996787 SUCCESS; legacy RCB guard #40085996788 SUCCESS.
  • R7 mainline #40085996777 FAIL as intended: unqualified trial f75e323e... cannot replace physically accepted R7/R10 authority. Reference Guard #40085996766 FAIL as intended: physical authority not certified. NO weakening, bypass or reinterpretation.

ONE designated field-FAT portable (PR #727, do not mix rebuilt binaries)

Artifact: https://github.com/masarray/arsas/actions/runs/40085996337/artifacts/12557486215
Name ARSAS-1.6.42-win-x64-portable.exe, size 79,349,831 bytes.
EXE SHA256 5d955eef2f4fed51a8a0d0851f97a70de3d7bf14b7418da0c9bb7c762dbccd54.
Source/engine evidence: source synthetic 43aa70..., source tree 296059..., engine f75e323e9f8443aa20e0a3818a1d5d77255b2c0f.

Gates still open: (1) Manually run release-windows.yml on RC branch with version=1.6.42, prerelease=true, publish_release=false to verify installer, checksum, SBOM, provenance; this was NOT observed completed. (2) Operator must perform current-binary combined 3-IED FAT and explicitly classify SG7 SOE/BufOvfl and responsiveness, type/quality/source and Write/readback. (3) ARIEC engine PR #192 still DRAFT, cannot mainline-stable promote R7/Reference Guard without real physical authority. Public stable v1.6.41 unchanged; no tag/public 1.6.42 release. PRs #727/#729 remain OPEN DRAFT; main unchanged.

…GITHUB_ENV export

Manual 1.6.42 release packaging built its EXE but failed Get-FileHash because GITHUB_ENV does not populate within the writing step. Resolve, verify and hash the local EXE before exporting path and SHA to later smoke/provenance steps. Add regression for correct step-local ordering and downstream hash verification. No application/engine or stable-release authority changes.

Copy link
Copy Markdown
Owner Author

M6: Manual Windows Release packaging failure diagnosed and fixed — 2026-10-24

Failed operator workflow (correct RC branch): https://github.com/masarray/arsas/actions/runs/40091592899

  • event workflow_dispatch; branch release/arsas-integrated-rc0-20261024; exact source f27ca68e6343ff0b291a343a583ff01d54bbe5a7; version 1.6.42.
  • The product source built and full regression/native phase ran. publish-windows-portable.ps1 successfully produced ARSAS-1.6.42-win-x64-portable.exe at SHA-256 1fb662f68322d29bd224c9a486bbfcd6edd985009bad82dfb9c761d53640bbb4.
  • First ERROR: Get-FileHash : Cannot bind argument to parameter 'Path' because it is null at the step Publish real portable single EXE for manual fallback, line Get-FileHash $env:RELEASE_PORTABLE_PATH. This was caused by writing the path to GITHUB_ENV one line earlier in the SAME step; GitHub only exposes GITHUB_ENV updates to subsequent steps. The fault is release workflow orchestration, not IEC61850 engine, WPF build, field FAT, or missing installer input. The later Stage unified release regression evidence and upload succeeded; installer/SBOM/attestation steps were skipped due to previous error.
  • Preceding failure #40089047135 was separately user-selected main/ref 45348ecc... with version mismatch 1.6.41 vs desired 1.6.42. #40091592899 corrects that selection and exposes this new issue.

Surgical correction committed: 115655af103681d76f92270704526023083bfb60.

  • .github/workflows/release-windows.yml: compute $releasePortable locally, verify Test-Path, calculate Get-FileHash $releasePortable, then write exact path and its SHA to GITHUB_ENV for the downstream smoke, checksums, SBOM, provenance gates. Keeps fail-closed missing-file/invalid-hash handling.
  • tests/ARSAS.Tests/PublicPrereleaseIsolationRegressionTests.cs: new regression asserts strict assignment → existence check → same-step hash → env export ordering, downstream smoke SHA revalidation, and forbids same-step reading $env:RELEASE_PORTABLE_PATH.
  • No application, engine pin, browser UI, SSOT, Control, Write or stable-publication authority changes. Standalone CI reran automatically on this new SHA. Both P0 Workflow Integrity checks green #40092124024 and #40092125667. Remaining CI pending at time of note.
  • IMPORTANT: don't rerun failed attempt #40091592899; rerun would use old SHA and reproduce bug. For full installer, user must issue a NEW manual workflow_dispatch on release/arsas-integrated-rc0-20261024, version 1.6.42, publish_release=false, prerelease=true, once new SHA CI checks pass. The connector does not expose workflow dispatch; user must click GitHub UI.
  • Public stable remains v1.6.41; no prerelease v1.6.42 published; PR RC0 CONSOLIDATION GATE — SSOT responsive + FAT Write; preserve SMV/IED Browser #727 and PR PUBLIC RC 1.6.42 GATE — integrated IEC 61850 SSOT/Write/SMV/Smart IP; reconcile v1.6.41 mainline #729 remain draft and main promotion's physical authority gates remain intentionally fail-closed.

Copy link
Copy Markdown
Owner Author

Release manual packaging hotfix verified — 2026-10-24

Operator reported RED manual run https://github.com/masarray/arsas/actions/runs/40091592899 on exact RC branch at f27ca68e6343ff0b291a343a583ff01d54bbe5a7, version 1.6.42, publish=false, prerelease=true. Engine and application compiled; real single EXE was emitted with SHA 1fb662f68322d29bd224c9a486bbfcd6edd985009bad82dfb9c761d53640bbb4. Failed at Get-FileHash $env:RELEASE_PORTABLE_PATH: same-step GITHUB_ENV export isn't effective until NEXT step. This is a release workflow bug, not an app protocol regression.

Surgical fix HEAD: 115655af103681d76f92270704526023083bfb60, two files (.github/workflows/release-windows.yml, tests/ARSAS.Tests/PublicPrereleaseIsolationRegressionTests.cs). Explicit step-local $releasePortable, fail-closed file-exists check, step-local Get-FileHash and subsequent GITHUB_ENV exports, plus regression asserting ordering and SHA verification in downstream smoke. No GUI, IEC, engine, stable authority or publication changes.

CI on exact new HEAD (completed): PR #727 Windows Build #40092124039 SUCCESS, R7 #40092123991 SUCCESS, IO #40092123999 SUCCESS, SV #40092124098 SUCCESS, COMTRADE #40092124030 SUCCESS, P0 Workflow Integrity #40092124024 SUCCESS, P1 #40092124028 SUCCESS. PR #729 Build #40092125889 SUCCESS, IO #40092125843 SUCCESS, SV #40092125765 SUCCESS, COMTRADE #40092125886 SUCCESS, Workflow Integrity #40092125667 SUCCESS. The R7 and Reference Guard for mainline promotion remain FAIL intentionally pending real physical engine authority; do not bypass.

Still NOT yet proved: manual release workflow successful after hotfix. Next NEW workflow_dispatch must select release/arsas-integrated-rc0-20261024, version 1.6.42, publish_release=false, prerelease=true. Do NOT use Re-run jobs on #40091592899: GitHub reruns original old commit. No public release/tag, stable v1.6.41 unchanged.

Copy link
Copy Markdown
Owner Author

RC0 visual integration prepared for release — PR #733 (operator preview available)

The P0+P1 UI stack has been consolidated without merging anything to RC/main. Integration PR: #733

Independent release blockers seen on RC head 115655af: workflow SCL Interoperability R7 Build #40092125691 failed with Unqualified typed-control staging pin cannot replace physical R7/R10 authority; IEC 61850 Interoperability Reference Guard #40092125995 failed with Smart interoperability code-trial authority is malformed or was silently promoted. These failures were present on the unchanged RC parent and are not fixed, hidden, or waived by UI changes. Release owner should reconcile engine pin/evidence without weakening physical qualification gates.

DO NOT release/promote by this comment alone. See PR #733 exact-head CI and approval from preview testing first.

Copy link
Copy Markdown
Owner Author

Exact RC + P0 + P1 build is GREEN — preview ready

Integrated merge commit 4de4df48a22c6f55ca24f4a91335f5613c49f9be (parents RC 115655af and UI c47a622). No other branch was modified or merged.

Exact-head GitHub Actions:

NEW exact combined release-candidate GUI preview:
Download portable Windows x64 build (GitHub artifact #12560446537)

  • Artifact label: ARSAS-1.6.42-win-x64-portable.exe
  • GitHub artifact delivery wraps the EXE in ZIP; download, extract and run on Windows. EXE is a build artifact for visual evaluation, NOT final signed public release.
  • Candidate ARSAS-windows-package-input artifact: #12560212491.

Awaiting operator visual acceptance at 100/125/150% scaling, normal/restore/maximized positions, all tabs, GOOSE/SMV, smart IP wizard, and Command Dock. PR remains draft until user approves visuals and release owner reconciles independent physical R7/R10 interoperability authority blockers identified on the unchanged RC parent.

Integration instruction: once accepted, merge PR #733 only to release/arsas-integrated-rc0-20261024; this carries P0 #731 and P1 #732. Do not merge parent PRs again, skip physical acceptance, or push main/release automatically.

Copy link
Copy Markdown
Owner Author

P0 visual field feedback hotfix — integration order for imminent RC release

The user tested the integrated P0+P1 preview (PR #733) on 1425×835 and 1709×895 Windows screenshots and reported three visual / performance issues.

  1. Preferred Normal window 1440×840 too small; now 1740×960 for MainWindow and 1680×920 IO FAT, first-paint clamped to monitor work area with an 8 DIP inset. No forced maximize; user move/resize remain native.
  2. Active current-association RCB icon absent despite caller ownership. Existing circular padlock geometry is preserved, and the icon now shows for either verified same-association MMS read RptEna=true OR successfully activated current caller RCB (UsedByCaller); tooltips distinguish evidence. Remote in-use is not represented as current ARSAS ownership.
  3. GOOSE tab navigations previously scheduled synchronous Npcap discovery and SCL model compilation. The tab now uses asynchronous deduplicated NIC scans; model parsing remains explicit Refresh/Start or workspace-change driven. IED-card GOOSE quick start also offloads NIC routing and adapter discovery to workers using an immutable capture-list snapshot.

New hotfix PR #735 #735 — targets the #733 branch; source SHA 5236263. Four added regression tests cover sizing, verified vs owned RCB proof, tab switching, and IED quick start.

Integration: #735 CI green + Windows operator acceptance before merging #735 into #733; then merge #733 only into RC0 release branch after existing release gates. Do not ship earlier #733 portable EXE as final because it lacks these fixes, do not cherry-pick #735 separately into main, and do not waive physical R7/R10 interoperability acceptance.

No MMS, RCB remote write/enable, GOOSE capture engine, subscription authority, or SSOT changes.

Copy link
Copy Markdown
Owner Author

Field GUI hotfix consolidated — PR #735 merged into the P0+P1 preview PR #733

Merge commit on GUI candidate branch: 48808f8.
RC/main remain UNCHANGED. #733 remains draft targeting RC head 115655a.

Exact hotfix source CI (PR #735 head 5b0060a): all SUCCESS

Download hotfix GUI preview: ARSAS v1.6.42 Windows x64 portable artifact #12564825815 (GitHub provides an artifact ZIP containing the EXE; extract and run). Do not use older preview #12560446537 for hotfix visual validation.

Changes: first launch 1740×960 DIP (fit to monitor work area), truthful current-session RCB enabled/active padlock UI, asynchronous shared Npcap adapter enumeration, no GOOSE model scan on tab selection, async route selection on IED quickstart with stale-selected-device guards. No engine/MMS command modifications.

NEXT: Exact merge-commit CI on #733 head 48808f is running (Build ARSAS #40105608250 / IO #40105608282). Require its completion and operator screenshots (window 1425×835 and 1709×895, RCB icon while live, GOOSE tab timing) before merge #733 into RC. Two pre-existing R7/R10 interoperability authority failures on the RC parent remain independent blockers; do not waive. Do not merge #735 again into RC/main (it is already in #733).

This branch has not been deployed

No deployments
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