Pulse/pkg/licensing
rcourtman 943389827f Scrub stale monitored-system caps on self-hosted uncapped tiers
v5-migrated installations can persist a legacy max_monitored_systems value
(e.g. Community=1) in the license claims. After 5914a4127 made all
self-hosted tiers uncapped, EffectiveLimits() only scrubbed Lifetime and
v5-grandfathered Pro, so migrated Community / Pro / Relay installs kept
emitting the old cap and the "Over plan" banner still rendered on rc.2.

Extend the scrub to every self-hosted tier whose TierMonitoredSystemLimits
entry is 0, and stop monitoredSystemContinuityStatusLocked() from falling
back to the grant's plan limit when the license says uncapped. 0 is now
a first-class "unlimited" signal, not a missing-data sentinel.

The grandfather-floor continuity is still captured for audit, but no
longer enforces on self-hosted tiers. Cloud and MSP limit resolution is
untouched.

Refs #1429
2026-04-17 13:52:02 +01:00
..
metering feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
activation_store.go Canonicalize fixed alerts and licensing paths 2026-03-29 14:14:36 +01:00
activation_store_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
activation_test_helpers_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
activation_types.go Preserve grandfathered monitored-system floors for v5 upgrades 2026-04-08 17:02:21 +01:00
activation_types_test.go Scrub stale monitored-system caps on self-hosted uncapped tiers 2026-04-17 13:52:02 +01:00
billing_state_normalization.go Preserve grandfathered recurring billing baselines 2026-04-15 14:32:46 +01:00
billing_state_normalization_test.go Preserve grandfathered recurring billing baselines 2026-04-15 14:32:46 +01:00
billing_store.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
capability_aliases.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
capability_aliases_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
cloud_paid_guardrails_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
commercial_migration.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
commercial_migration_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
contracts.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
conversion_api_helpers.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
conversion_api_helpers_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
conversion_config.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
conversion_config_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
conversion_events.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
conversion_events_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
conversion_metrics.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
conversion_metrics_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
conversion_quality.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
conversion_quality_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
conversion_recorder.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
conversion_recorder_metering.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
conversion_recorder_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
conversion_store.go Fix non-root storage hardening for Helm startup 2026-04-16 21:26:02 +01:00
conversion_store_queryplan_test.go Fix non-root storage hardening for Helm startup 2026-04-16 21:26:02 +01:00
database_source.go Grandfather active v5 Pro customers as uncapped 2026-04-15 00:35:24 +01:00
database_source_test.go Grandfather active v5 Pro customers as uncapped 2026-04-15 00:35:24 +01:00
dev_mode_dev.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
dev_mode_features.go Exclude placeholder capabilities from dev entitlements 2026-03-26 22:45:07 +00:00
dev_mode_release.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
entitlement_lease.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
entitlement_lease_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
entitlement_payload.go Explain monitored-system over-plan legitimacy 2026-04-15 13:38:57 +01:00
entitlement_payload_test.go Explain monitored-system over-plan legitimacy 2026-04-15 13:38:57 +01:00
entitlement_source.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
entitlements.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
evaluator.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
evaluator_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
feature_map.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
feature_map_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
features.go Make self-hosted core monitoring uncapped 2026-04-16 01:21:57 +01:00
features_test.go Make self-hosted core monitoring uncapped 2026-04-16 01:21:57 +01:00
grant_claims_contract_test.go Grandfather active v5 Pro customers as uncapped 2026-04-15 00:35:24 +01:00
grant_refresh.go Track v6 install version through licensing runtime 2026-04-14 11:44:59 +01:00
grant_refresh_test.go Scrub stale monitored-system caps on self-hosted uncapped tiers 2026-04-17 13:52:02 +01:00
grant_verification_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
host_lifecycle.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
host_lifecycle_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
hosted_subscription.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
hosted_subscription_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
http.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
http_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
legacy_v5_monitored_system_limit_aliases.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
license_server_client.go Make billing recovery route-owned and unblock governed commits 2026-04-08 22:11:10 +01:00
license_server_client_test.go Make billing recovery route-owned and unblock governed commits 2026-04-08 22:11:10 +01:00
models.go Scrub stale monitored-system caps on self-hosted uncapped tiers 2026-04-17 13:52:02 +01:00
models_test.go Scrub stale monitored-system caps on self-hosted uncapped tiers 2026-04-17 13:52:02 +01:00
monitored_system_limit.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
monitored_system_limit_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
overflow_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
persistence.go Fix non-root storage hardening for Helm startup 2026-04-16 21:26:02 +01:00
persistence_test.go Fix non-root storage hardening for Helm startup 2026-04-16 21:26:02 +01:00
public_key.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
public_key_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
purchase_return.go Split commercial posture from billing entitlements 2026-04-07 13:24:55 +01:00
purchase_return_test.go Split commercial posture from billing entitlements 2026-04-07 13:24:55 +01:00
quickstart_bootstrap.go Support entitlement-backed quickstart bootstrap 2026-04-03 21:09:41 +01:00
quickstart_credits.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
quickstart_credits_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
revocation_poll.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
revocation_poll_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
service.go Scrub stale monitored-system caps on self-hosted uncapped tiers 2026-04-17 13:52:02 +01:00
service_activate_test.go Scrub stale monitored-system caps on self-hosted uncapped tiers 2026-04-17 13:52:02 +01:00
stripe_subscription.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
stripe_subscription_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
subscription_state.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
subscription_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
subscription_transitions.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
token_source.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
token_source_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
trial_activation.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
trial_activation_release_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
trial_activation_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
trial_start.go fix(hosted): normalize AI defaults and seed quickstart credits 2026-03-25 15:22:17 +00:00
trial_start_test.go fix(hosted): normalize AI defaults and seed quickstart credits 2026-03-25 15:22:17 +00:00
types.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
upgrade.go Split commercial posture from billing entitlements 2026-04-07 13:24:55 +01:00
upgrade_reasons.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
upgrade_test.go Split commercial posture from billing entitlements 2026-04-07 13:24:55 +01:00
user_limit.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
user_limit_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00