docs+code: close Theme 1 — 24 design-doc / XML-doc drift findings
Doc/XML-comment drift + small adherence fixes across 17 modules. Highlights: - Host-017: site CoordinatedShutdown ordering — SiteStreamGrpcServer gains CancelAllStreams() (refuse new streams, cancel active), wired into Program.cs site branch via ApplicationStopping. - InboundAPI-021: ParentExecutionId now travels on RouteToGet/SetAttributes symmetric with RouteToCallRequest; RouteHelper stamps from _parentExecutionId. - ClusterInfra-012: ClusterOptionsValidator now requires both seed nodes. - Comm-018: SiteCommunicationActor.HeartbeatMessage.IsActive derived from cluster leader check (was hardcoded true). - DM-020: reconciliation audit row attributes the current user, not prior deployer. - SEL-019: EventLogPurgeService early-exits on standby via active-node check. - Plus comment/XML-doc accuracy fixes across AuditLog, ConfigurationDatabase, NotificationOutbox, SiteRuntime, SiteCallAudit; doc refreshes for Component- Commons / -ManagementService / -CLI / -ExternalSystemGateway / -HealthMonitoring / -Transport / -ConfigurationDatabase; CD-023 index-name doc alignment. 11 new regression tests (RouteHelper x4, SiteStreamGrpcServer x2, ClusterOptionsValidator x1, SiteCommunicationActor x1, DeploymentService x1, EventLogPurgeService x3). Build clean (0 warnings); InboundAPI/Communication/ Host suites all green. README regenerated: 112 open (was 136).
This commit is contained in:
@@ -908,8 +908,8 @@ caller, so the reply skips the coordinator.)
|
||||
|--|--|
|
||||
| Severity | Low |
|
||||
| Category | Design-document adherence |
|
||||
| Status | Open |
|
||||
| Location | `src/ScadaLink.Communication/Actors/SiteCommunicationActor.cs:357-371` |
|
||||
| Status | Resolved |
|
||||
| Location | `src/ScadaLink.Communication/Actors/SiteCommunicationActor.cs:376-465` |
|
||||
|
||||
**Description**
|
||||
|
||||
@@ -939,6 +939,16 @@ consume `IsActive`; or (b) drop the `IsActive` field from `HeartbeatMessage`
|
||||
(additive-only-evolution: deprecate the field, default to `true`, plan
|
||||
removal in a major message contract revision).
|
||||
|
||||
**Resolution (2026-05-28):** Took option (a). `SiteCommunicationActor` now
|
||||
accepts an optional `Func<bool>? isActiveCheck` (default = real `Cluster.Get`
|
||||
leader check mirroring `ActiveNodeGate` / `ActiveNodeHealthCheck`) and
|
||||
`SendHeartbeatToCentral` stamps `HeartbeatMessage.IsActive` with the result.
|
||||
A try/catch keeps the heartbeat tick alive when the cluster state is
|
||||
unreadable (warm-up / TestKit without cluster plugin) — falls back to
|
||||
`IsActive: false`, the safe non-claiming value. Added parameterised test
|
||||
`Heartbeat_StampsIsActive_FromInjectedCheck`. Tests green (199/199 in
|
||||
Communication.Tests).
|
||||
|
||||
---
|
||||
|
||||
### Communication-019 — `LoadSiteAddressesFromDb` does not pass a `CancellationToken` to the repository
|
||||
|
||||
Reference in New Issue
Block a user