mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-11 14:00:29 +00:00
e5dbbb3145
Sibling of #1559: canonicalIDFromIdentity hashed the short hostname in its cluster arm, so two machine-keyless Docker Swarm members with FQDN hostnames sharing a first label (cloud.a, cloud.b) derived the same cluster:<swarm>:cloud canonical ID and fully merged in the registry. PVE is unaffected (single-label node names hash identically). Both hostname-derived arms now hash NormalizeFullHostname. Derivation stays a pure function of identity so store-less registries keep deriving the same IDs as the durable one. Compatibility for hosts minted under the short era: journal reads already merge both eras via ResourceIdentityPin.EraIDs, and new canonical-ID succession re-keys resource_operator_state and action_audits rows to the successor ID at pin persist (never across a contradicting machine key, never while the old ID is still live, never rewriting journal rows) so operator intent like never-auto-remediate survives the era change. Already-merged keyless pairs cannot be retroactively split; the merged rows succeed to whichever member persists first.