fix(host): unify active-node on oldest-member semantics — purge/self-report/labels now track the singleton host

This commit is contained in:
Joseph Doherty
2026-07-08 15:48:07 -04:00
parent 6320be9954
commit da6d5ae12c
5 changed files with 70 additions and 21 deletions
@@ -13,9 +13,13 @@ public interface IClusterNodeProvider
IReadOnlyList<NodeStatus> GetClusterNodes();
/// <summary>
/// True when this node is currently the cluster leader (Primary) for the
/// provider's role scope. Used by the central report loop to decide which
/// node should generate the "central" health report.
/// True when this node is currently the oldest Up member for the provider's
/// role scope — the node the ClusterSingletonManager hosts singletons on.
/// This is the canonical product "active node" check (review 01): the site
/// event-log purge gate, the central self-report loop, and (via plan 02) the
/// S&amp;F delivery gate all consume it. It is deliberately NOT the cluster
/// leader — leadership is address-ordered and diverges from singleton
/// placement once the original first node restarts and rejoins.
/// </summary>
bool SelfIsPrimary { get; }
}