Phase 7 Stream H — exit gate compliance script + closeout doc #187

Merged
dohertj2 merged 1 commits from phase-7-stream-h-exit-gate into v2 2026-04-20 20:27:20 -04:00
Owner

Closes Phase 7. Ships the check-everything PowerShell script + the human-readable exit-gate doc covering scripting runtime + virtual tags + scripted alarms + historian sink + Admin UI + address-space integration.

Scripts

  • scripts/compliance/phase-7-compliance.ps1 — mirrors the Phase 6.x pattern. Stream-by-stream presence + pattern checks, flags 3 deferred follow-ups (SealedBootstrap composition, live end-to-end smoke, sp_ComputeGenerationDiff extension), runs full-solution dotnet test and compares against a 1300-test regression baseline.

Docs

  • docs/v2/implementation/exit-gate-phase-7.md — summarises shipped PRs (8 across Streams A-G + G follow-up = ~197 new tests), lists the compliance checks covered, names the deferred follow-ups with task IDs, and points at the compliance script for verification.

Local run result

Phase 7 compliance: PASS — 55 PASS / 0 FAIL / 3 DEFERRED. 2191 tests green vs 1300 baseline. No regressions.

What shipped in Phase 7 overall

Stream PR Summary
A #177-#179 Core.Scripting - 63 tests
B #180 Core.VirtualTags - 36 tests
C #181 Core.ScriptedAlarms - 47 tests
D #182 Core.AlarmHistorian - 14 tests
E #183 Config DB schema - 12 tests
F #185 Admin UI + test harness - 13 tests
G #184 Walker NodeSourceKind emission - 5 new
G follow-up #186 DriverNodeManager dispatch - 7 tests

Phase 7 total: ~197 new tests, all 22 locked plan decisions realised in code.

Deferred (filed as post-gate follow-ups)

  • SealedBootstrap composition root wiring
  • Live OPC UA end-to-end smoke (Client.CLI reads virtual tag + acks scripted alarm)
  • sp_ComputeGenerationDiff extension for Script/VirtualTag/ScriptedAlarm sections
Closes Phase 7. Ships the check-everything PowerShell script + the human-readable exit-gate doc covering scripting runtime + virtual tags + scripted alarms + historian sink + Admin UI + address-space integration. ## Scripts - `scripts/compliance/phase-7-compliance.ps1` — mirrors the Phase 6.x pattern. Stream-by-stream presence + pattern checks, flags 3 deferred follow-ups (SealedBootstrap composition, live end-to-end smoke, `sp_ComputeGenerationDiff` extension), runs full-solution `dotnet test` and compares against a 1300-test regression baseline. ## Docs - `docs/v2/implementation/exit-gate-phase-7.md` — summarises shipped PRs (8 across Streams A-G + G follow-up = ~197 new tests), lists the compliance checks covered, names the deferred follow-ups with task IDs, and points at the compliance script for verification. ## Local run result **Phase 7 compliance: PASS** — 55 PASS / 0 FAIL / 3 DEFERRED. 2191 tests green vs 1300 baseline. No regressions. ## What shipped in Phase 7 overall | Stream | PR | Summary | |---|---|---| | A | #177-#179 | `Core.Scripting` - 63 tests | | B | #180 | `Core.VirtualTags` - 36 tests | | C | #181 | `Core.ScriptedAlarms` - 47 tests | | D | #182 | `Core.AlarmHistorian` - 14 tests | | E | #183 | Config DB schema - 12 tests | | F | #185 | Admin UI + test harness - 13 tests | | G | #184 | Walker NodeSourceKind emission - 5 new | | G follow-up | #186 | DriverNodeManager dispatch - 7 tests | Phase 7 total: ~197 new tests, all 22 locked plan decisions realised in code. ## Deferred (filed as post-gate follow-ups) - `SealedBootstrap` composition root wiring - Live OPC UA end-to-end smoke (Client.CLI reads virtual tag + acks scripted alarm) - `sp_ComputeGenerationDiff` extension for Script/VirtualTag/ScriptedAlarm sections
dohertj2 added 1 commit 2026-04-20 20:27:12 -04:00
Ships the check-everything PowerShell script + the human-readable exit-gate doc that
closes Phase 7 (scripting runtime + virtual tags + scripted alarms + historian sink
+ Admin UI + address-space integration).

## scripts/compliance/phase-7-compliance.ps1

Mirrors the Phase 6.x compliance pattern. Checks:
- Stream A: Roslyn sandbox wiring, ForbiddenTypeAnalyzer, DependencyExtractor,
  ScriptLogCompanionSink, Deadband helper
- Stream B: VirtualTagEngine, DependencyGraph (iterative Tarjan),
  SemaphoreSlim async-safe cascade, TimerTriggerScheduler, VirtualTagSource
- Stream C: Part9StateMachine, AlarmConditionState GxP audit Comments,
  MessageTemplate {TagPath}, AlarmPredicateContext SetVirtualTag rejection,
  ScriptedAlarmSource IAlarmSource, IAlarmStateStore + in-memory store
- Stream D: BackoffLadder 1-60s, DefaultDeadLetterRetention (30 days),
  HistorianWriteOutcome enum, Galaxy.Host IPC contracts
- Stream E: Four new entities + check constraints + Phase 7 migration
- Stream F: Five Admin services + ScriptEditor + ScriptsTab + AlarmsHistorian
  page + Monaco loader + DraftEditor wire-up + declared-inputs-only contract
- Stream G: NodeSourceKind discriminator + walker VirtualTag/ScriptedAlarm emission
  + DriverNodeManager SelectReadable + IsWriteAllowedBySource
- Deferred (flagged, not blocking): SealedBootstrap composition, live end-to-end
  smoke, sp_ComputeGenerationDiff extension
- Cross-cutting: full-solution dotnet test (regression check against 1300 baseline)

## docs/v2/implementation/exit-gate-phase-7.md

Summarises shipped PRs (Streams A-G + G follow-up = 8 PRs, ~197 tests), lists the
compliance checks covered, names the deferred follow-ups with task IDs, and points
at the compliance script for verification.

## Exit-gate local run

2191 tests green (baseline 1300), 0 failures, 55 compliance checks PASS,
3 deferred (with follow-up task IDs).

Phase 7 ships.
dohertj2 merged commit c08ae0d032 into v2 2026-04-20 20:27:20 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/lmxopcua#187