refactor(comm): retire ClusterClient naming after the gRPC cutover

Phase 4 of the ClusterClient -> gRPC migration deleted the Akka transports
but left the naming behind: `ClusterClientSiteAuditClient` was transport-
agnostic and worked unchanged, so it survived the deletion under a name
that now describes a transport the repo no longer has. Same for a scatter
of doc-comments still framing gRPC as "the new transport" beside an Akka
one that is gone.

Renames it to `SiteCommunicationAuditClient` (and its test file) and
rewrites the stale comments to describe the single transport that exists.
Also tightens CLAUDE.md: drops the self-describing directory listing and
the 27-component enumeration in favour of the non-obvious parts only.

Behaviour-neutral: names and prose only. Recorded as the Phase 4
follow-up in docs/plans/2026-07-22-clusterclient-to-grpc-plan.md.
This commit is contained in:
Joseph Doherty
2026-07-27 15:40:01 -04:00
parent b3dc17a5fe
commit 63c16d6912
57 changed files with 193 additions and 244 deletions
@@ -27,8 +27,8 @@ namespace ZB.MOM.WW.ScadaBridge.SiteRuntime.Actors;
/// crashes on these failures.
/// </para>
/// <para>
/// The pass runs after a small startup delay (so the central ClusterClient has time to
/// register) and is driven entirely off the actor thread: the Ask + fetch + write happen in
/// The pass runs after a small startup delay (so the site's central transport has time to
/// connect) and is driven entirely off the actor thread: the Ask + fetch + write happen in
/// an awaited continuation whose summary is captured in an internal message
/// <see cref="ReconcilePassResult"/> piped back to <c>Self</c>. The actor thread never blocks.
/// </para>
@@ -60,14 +60,14 @@ public sealed class SiteReconciliationActor : ReceiveActor, IWithTimers
/// <param name="configFetcher">Fetches a deployment's flattened config JSON from central over HTTP.</param>
/// <param name="siteCommunicationActor">
/// The site's <c>SiteCommunicationActor</c>; it forwards the
/// <see cref="ReconcileSiteRequest"/> over the registered central ClusterClient and routes
/// <see cref="ReconcileSiteRequest"/> over the site's central transport and routes
/// the <see cref="ReconcileSiteResponse"/> back to this actor's Ask.
/// </param>
/// <param name="siteIdentifier">This node's site identifier (resolved by central).</param>
/// <param name="nodeId">This node's semantic id (e.g. <c>node-a</c>/<c>node-b</c>), for logging/diagnostics.</param>
/// <param name="logger">Logger.</param>
/// <param name="initialDelay">
/// Delay before the single startup pass, giving the central ClusterClient time to register.
/// Delay before the single startup pass, giving the site's central transport time to connect.
/// Defaults to 5 seconds.
/// </param>
/// <param name="askTimeout">Round-trip timeout for the reconcile Ask to central. Defaults to 30 seconds.</param>
@@ -105,7 +105,7 @@ public sealed class SiteReconciliationActor : ReceiveActor, IWithTimers
protected override void PreStart()
{
base.PreStart();
// One-shot pass after a small delay so the central ClusterClient can register first.
// One-shot pass after a small delay so the site's central transport can connect first.
// Non-blocking: the timer fires RunReconcile back onto this actor's mailbox.
Timers.StartSingleTimer(StartupTimerKey, RunReconcile.Instance, _initialDelay);
_logger.LogInformation(
@@ -74,7 +74,7 @@ public class ScriptRuntimeContext
/// <summary>
/// Notification Outbox: the site communication actor that <c>Notify.Status</c>
/// queries central through (via the ClusterClient command/control transport).
/// queries central through (via the gRPC command/control transport).
/// </summary>
private readonly ICanTell? _siteCommunicationActor;
@@ -175,7 +175,7 @@ public class ScriptRuntimeContext
/// <param name="externalSystemClient">Optional client for external system API calls.</param>
/// <param name="databaseGateway">Optional gateway for database connection and cached write access.</param>
/// <param name="storeAndForward">Optional store-and-forward service for notification delivery.</param>
/// <param name="siteCommunicationActor">Optional actor for site-to-central communication (ClusterClient).</param>
/// <param name="siteCommunicationActor">Optional actor for site-to-central communication.</param>
/// <param name="siteId">Identifier of the site where this instance is running.</param>
/// <param name="sourceScript">Optional name of the source script for audit trail identification.</param>
/// <param name="auditWriter">Optional writer for audit log entries.</param>