mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-10 18:45:53 +00:00
f9b10316b8
Two silent-downgrade paths in the v5→v6 migration are now visible and self-healing: License load/decrypt failure (was: one log line, no UI state): when license.enc exists but cannot be read, getTenantComponents now persists a terminal commercial_migration state with reason persisted_license_unreadable, so the licence panel and global banner tell the customer to re-enter their v5 key instead of leaving them to discover missing Pro features. Failed startup exchange (was: once per process, Community until manual restart): exchange failures classified as pending — license-server blips, DNS failures, rate limits — now schedule a background retry loop with backoff (30s → 30m cap) that re-attempts the exchange until it succeeds, hits a terminal classification, or the org's service activates through another path. The loop stops cleanly on manual activation and StopAllBackgroundLoops. Registers the new files in the subsystem registry (cloud-paid commercial-migration verification policy + shared ownership) and pins both behaviors in the cloud-paid and api-contracts contracts.