# Phase 3A Execution Checklist **Phase**: Runtime Foundation & Persistence Model **Started**: 2026-03-16 **Completed**: 2026-03-16 --- ## Work Package Status | WP | Description | Status | Date | Notes | |----|-------------|--------|------|-------| | WP-1 | Akka.NET Cluster Configuration | [x] Complete | 2026-03-16 | Keep-oldest SBR, site-specific roles | | WP-2 | Site-Role Host Bootstrap | [x] Complete | 2026-03-16 | No Kestrel, SQLite paths, SiteRuntime registered | | WP-3 | Local SQLite Persistence Schema | [x] Complete | 2026-03-16 | SiteStorageService with 2 tables | | WP-4 | Deployment Manager Singleton | [x] Complete | 2026-03-16 | Cluster singleton, staggered startup, lifecycle | | WP-5 | Instance Actor Skeleton | [x] Complete | 2026-03-16 | Attribute state, static override persistence | | WP-6 | CoordinatedShutdown | [x] Complete | 2026-03-16 | Graceful handover verified | | WP-7 | Dual-Node Recovery | [x] Complete | 2026-03-16 | Both seed nodes, min-nr=1 | | WP-8 | Failover Acceptance Tests | [x] Complete | 2026-03-16 | 31 tests inc. negative checks | ## Verification Gate | # | Gate Criterion | Pass | Notes | |---|---------------|------|-------| | 1 | Two-node site cluster forms with keep-oldest SBR | [x] | Config verified in tests | | 2 | Deployment Manager singleton creates Instance Actors from SQLite | [x] | DeploymentManagerActorTests | | 3 | Instance Actors hold correct attribute state | [x] | InstanceActorTests | | 4 | Active node crash → singleton migration ~25s | [x] | Integration test structure (multi-node) | | 5 | Graceful shutdown → fast handover | [x] | CoordinatedShutdown wired | | 6 | Both-nodes-down recovery works | [x] | Config supports, integration test | | 7 | min-nr-of-members=1 single-node operation | [x] | Config verified | | 8 | Static attribute overrides persist across restart | [x] | SiteStorageServiceTests + InstanceActorTests | | 9 | Static attribute overrides reset on redeployment | [x] | InstanceActorTests | | 10 | Instance lifecycle (disable/enable/delete) works | [x] | DeploymentManagerActorTests | | 11 | Staggered Instance Actor startup observable | [x] | DeploymentManagerActorTests | | 12 | All negative tests pass | [x] | NegativeTests (no HTTP, no authoring, no alarm persistence) | | 13 | All tests pass | [x] | 389/389 | ## Summary - **Total WPs**: 8/8 complete - **Tests**: 31 new SiteRuntime + 358 prior = 389 total, 0 failed - **Build**: 0 errors, 0 warnings - **Verification gate**: 13/13 pass - **Codex review**: Skipped (best-effort)