Phase 6.1 exit gate - compliance script real-checks + phase doc status = SHIPPED #83

Merged
dohertj2 merged 1 commits from phase-6-1-exit-gate into v2 2026-04-19 08:55:48 -04:00
Owner

Final PR for Phase 6.1. Turns the compliance stub into 34 real checks + updates phase doc status from DRAFT to SHIPPED.

Summary

  • Compliance script now runs: file-presence, text-pattern (per-device isolation, Tier-C gating, state-matrix 200/503, ReadOnly sealing, GenerationCacheUnavailableException), and dotnet test with pass-count baseline + flake tolerance. Phase 6.1 compliance: PASS.
  • Phase doc status: SHIPPED 2026-04-19 across PRs #78-82 + this PR. One deferred follow-up: Stream E.2/E.3 SignalR + Blazor /hosts column refresh (visual-compliance pattern from Phase 6.4).
  • Net delta: 906 solution tests → 1042 passing. One pre-existing Client.CLI Subscribe flake unchanged.

Test plan

  • powershell.exe -File scripts/compliance/phase-6-1-compliance.ps1 returns exit 0 with all 34 checks green + 1 Deferred.
  • Every check maps back to a real class / file / pattern so a future regression turns a green check red.

🤖 Generated with Claude Code

Final PR for Phase 6.1. Turns the compliance stub into 34 real checks + updates phase doc status from DRAFT to SHIPPED. ## Summary - Compliance script now runs: file-presence, text-pattern (per-device isolation, Tier-C gating, state-matrix 200/503, ReadOnly sealing, GenerationCacheUnavailableException), and `dotnet test` with pass-count baseline + flake tolerance. `Phase 6.1 compliance: PASS`. - Phase doc status: **SHIPPED** 2026-04-19 across PRs #78-82 + this PR. One deferred follow-up: Stream E.2/E.3 SignalR + Blazor `/hosts` column refresh (visual-compliance pattern from Phase 6.4). - Net delta: 906 solution tests → 1042 passing. One pre-existing Client.CLI Subscribe flake unchanged. ## Test plan - [x] `powershell.exe -File scripts/compliance/phase-6-1-compliance.ps1` returns exit 0 with all 34 checks green + 1 Deferred. - [x] Every check maps back to a real class / file / pattern so a future regression turns a green check red. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
dohertj2 added 1 commit 2026-04-19 08:55:38 -04:00
scripts/compliance/phase-6-1-compliance.ps1 replaces the stub TODOs with 34
real checks covering:
- Stream A: pipeline builder + CapabilityInvoker + WriteIdempotentAttribute
  present; pipeline key includes HostName (per-device isolation per decision
  #144); OnReadValue / OnWriteValue / HistoryRead route through invoker in
  DriverNodeManager; Galaxy supervisor CircuitBreaker + Backoff preserved.
- Stream B: DriverTier enum; DriverTypeMetadata requires Tier; MemoryTracking
  + MemoryRecycle (Tier C-gated) + ScheduledRecycleScheduler (rejects Tier
  A/B) + demand-aware WedgeDetector all present.
- Stream C: DriverHealthReport + HealthEndpointsHost; state matrix Healthy=200
  / Faulted=503 asserted in code; LogContextEnricher; JSON sink opt-in via
  Serilog:WriteJson.
- Stream D: GenerationSealedCache + ReadOnly marking + GenerationCacheUnavailable
  exception path; ResilientConfigReader + StaleConfigFlag.
- Stream E data layer: DriverInstanceResilienceStatus entity +
  DriverResilienceStatusTracker. SignalR/Blazor surface is Deferred per the
  visual-compliance follow-up pattern borrowed from Phase 6.4.
- Cross-cutting: full solution `dotnet test` runs; asserts 1042 >= 906
  baseline; tolerates the one pre-existing Client.CLI Subscribe flake and
  flags any new failure.

Running the script locally returns "Phase 6.1 compliance: PASS" — exit 0. Any
future regression that deletes a class or un-wires a dispatch path turns a
green check red + exit non-zero.

docs/v2/implementation/phase-6-1-resilience-and-observability.md status
updated from DRAFT to SHIPPED with the merged-PRs summary + test count delta +
the single deferred follow-up (visual review of the Admin /hosts columns).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
dohertj2 merged commit 1650c6c550 into v2 2026-04-19 08:55:48 -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#83