Skip to content

FAT v2 P4: SCL DataSet workspace and live Value 1/Value 2 capture - #238

Closed
masarray wants to merge 12 commits into
feat/fat-v2-source-bundlefrom
feat/fat-v2-scl-importer
Closed

masarray wants to merge 12 commits into
feat/fat-v2-source-bundlefrom
feat/fat-v2-scl-importer

Conversation

@masarray

@masarray masarray commented Sep 1, 2026 •

Copy link
Copy Markdown
Owner

P4 — GO

Stacked on exact proven P3 head cb785bb06d95f838e8bafad5e1978699bc56e117.

Final exact proven P4 head:
8e548356ad2269a1f2636feb88b0cb4213a82e28

This slice connects real SCL files to the additive FAT v2 domain and completes the P4 workspace/live-capture UX without routing analog/Other members through the legacy ON/OFF IO-list model.

Contract delivered

  • one or multiple SCL files are opened only through ARIEC SclWorkspaceService.OpenAsync
  • original source SHA-256 is cross-checked against the P3 source identity and staged immutably
  • every authoritative static DataSet membership becomes one FAT v2 row
  • no ST/MX inclusion filter; Other members remain in scope
  • duplicate static membership identity stays distinct
  • conflicting engineering sources for the same IED/AccessPoint fail closed
  • source-selection order does not change source-set/workspace identity
  • launcher keeps the proven workbook FAT path intact and adds Open SCL for FAT v2
  • FAT v2 grid uses generic Value 1 / Value 2 terminology
  • digital rows consume the existing live runtime stream and atomically capture a genuine semantic edge as previous raw value = Value 1 and new raw value = Value 2
  • repeated digital edges append historical evidence before replacing the current Value 1 / Value 2 pair
  • analog and Other rows show the current live value and provide explicit compact capture actions for Value 1 and Value 2
  • analog/Other recapture appends history before replacing the current slot pointer
  • operator-only Remove from FAT plus Removed Signals search/select-all/deselect/restore UI
  • removed rows receive no new evidence until restored
  • remove/restore preserves existing evidence
  • no injected/reference value, tolerance, error %, or analog auto-PASS logic
  • no ARIEC engine-pin change

Regression coverage

  • engine-backed Siemens-like 58-member SCL => exactly 58 included FAT rows (36 digital + 22 analog)
  • multi-SCL order-independent source/workspace identity
  • non-ST/MX static member retained as Other
  • competing same IED/AP sources blocked
  • source staging preserves original bytes
  • genuine digital edge produces generic Value 1 / Value 2 evidence
  • repeated digital recapture replaces current evidence while retaining history
  • duplicate static memberships sharing one runtime reference remain distinct FAT rows
  • removed row is isolated from live capture until restored
  • operator snapshot capture and recapture preserve historical evidence
  • runtime observation binding remains IED/reference scoped

Scope audit

Compare P3 exact -> P4 exact:

  • ahead_by: 12
  • behind_by: 0
  • 8 changed files
  • no ARIEC lock change
  • no protocol/control changes
  • no report-planner changes
  • no new SCL/XML parser

Changed files:

  1. FatVerificationWindow.cs
  2. MainWindow.FatV2.cs
  3. MainWindow.SclLiveModelAuthority.cs
  4. Services/IoTesting/FatLiveCaptureCoordinator.cs
  5. Services/IoTesting/FatOperatorSnapshotCaptureService.cs
  6. Services/IoTesting/FatSclWorkspaceBootstrapService.cs
  7. tests/ARSAS.Tests/FatLiveCaptureCoordinatorTests.cs
  8. tests/ARSAS.Tests/FatSclWorkspaceBootstrapRegressionTests.cs

Exact-head CI evidence

All required workflows completed successfully on exact head 8e548356ad2269a1f2636feb88b0cb4213a82e28:

  1. Validate IO List Testing #546 — run 33505550402 — SUCCESS

    • focused restore SUCCESS
    • focused IO testing build SUCCESS
    • IO testing regression suite SUCCESS
  2. Validate SV evidence bundles #712 — run 33505550432 — SUCCESS

    • focused compiler SUCCESS
    • deterministic SV evidence regression suite SUCCESS
  3. Build ARSAS #1603 — run 33505550426 — SUCCESS

    • source/website/license boundaries SUCCESS
    • premium UX/GOOSE/SMV/SAS/release invariants SUCCESS
    • immutable ARIEC API verification SUCCESS
    • solution restore/build SUCCESS
    • full ARSAS application regression suite SUCCESS
    • portable single EXE publish SUCCESS
    • portable single EXE smoke test SUCCESS
    • portable artifact upload SUCCESS

Two earlier intermediate heads exposed compile-only integration defects (duplicate static MainWindow constructor and launcher-card type access); both were corrected before this final qualification. No runtime/regression failure is hidden by the final evidence.

P4 = GO.

PR remains draft and unmerged. The next stacked phase is P5: persistence/package/report/compatibility/release proof for FAT v2 disposition and Value 1 / Value 2 evidence.

@masarray masarray changed the title FAT v2 P4: open SCL DataSet verification workspaces FAT v2 P4: SCL DataSet workspace and live Value 1/Value 2 capture Sep 2, 2026

masarray commented Sep 3, 2026

Copy link
Copy Markdown
Owner Author

Closing as superseded by consolidated FAT PR #236. This was a divergent P4 implementation line from the shared P3 base; it is not being merged into the active workspace branch. Relevant product contracts (SCL workspace, V1/V2, remove/restore) have since been implemented and evolved on #236. Branch/commits remain preserved for reference.

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