Clarify support pack Pro continuity wording

This commit is contained in:
rcourtman 2026-04-28 21:13:49 +01:00
parent 78c7c874fa
commit b2202b71c7
4 changed files with 25 additions and 9 deletions

View file

@ -145,11 +145,11 @@ server-side update execution surfaces.
The same guide must treat bounded monitored-system, guest, or
child-resource volume caps after self-hosted v6 activation or migration as
regressions, not as upgrade outcomes or paid-plan differentiators.
Release notes and changelog packets under `docs/releases/` must follow the
same rule when they mention licensing: historical RC context may be
preserved, but current self-hosted v6 guidance must not present
monitored-system volume, child-resource volume, or trial eligibility as the
active paid model.
Release notes, changelog packets, and operator support packets under
`docs/releases/` must follow the same rule when they mention licensing:
historical RC context may be preserved, but current self-hosted v6 guidance
must not present monitored-system volume, child-resource volume, guest
capacity, or trial eligibility as the active paid model.
The active prerelease cut must keep the repo-root `VERSION` file aligned
with the current RC packet itself: when the governed line moves from `rc.1`
to `rc.2` or later, the staged release-notes packet, changelog packet, and

View file

@ -54,8 +54,8 @@ Use this cohort breakdown:
- Legacy recurring monthly or annual subscribers from v5 or earlier who were
already active before the public v6 pricing cutover:
keep the current recurring price and uncapped monitored-system plus guest
capacity while the subscription remains continuously active.
keep the current recurring price plus uncapped self-hosted monitoring and
child-resource volume while the subscription remains continuously active.
- Existing lifetime customers:
remain permanently valid and uncapped.
- Legacy paid v5 licenses migrated into v6 outside the recurring grandfathered

View file

@ -64,8 +64,8 @@ Use this cohort breakdown:
- Legacy recurring monthly or annual subscribers from v5 or earlier who were
already active before the public v6 pricing cutover:
keep the current recurring price and uncapped monitored-system plus guest
capacity while the subscription remains continuously active.
keep the current recurring price plus uncapped self-hosted monitoring and
child-resource volume while the subscription remains continuously active.
- Existing lifetime customers:
remain permanently valid and uncapped.
- Legacy paid v5 licenses migrated into v6 outside the recurring grandfathered

View file

@ -134,6 +134,22 @@ class ReleasePromotionPolicyTest(unittest.TestCase):
self.assertIn("docs/releases/V6_CHANGELOG_RC2_DRAFT.md", release_index)
self.assertIn("docs/releases/V6_RC2_OPERATOR_SUPPORT_PACK_DRAFT.md", release_index)
def test_operator_support_packs_keep_free_first_paid_continuity_wording(self) -> None:
for rel in (
"docs/releases/V6_RC_OPERATOR_SUPPORT_PACK.md",
"docs/releases/V6_RC2_OPERATOR_SUPPORT_PACK_DRAFT.md",
):
with self.subTest(rel=rel):
support_pack = read(rel)
self.assertIn(
"current recurring price plus uncapped self-hosted monitoring and",
support_pack,
)
self.assertIn("child-resource volume while the subscription remains continuously active", support_pack)
self.assertNotIn("uncapped monitored-system plus guest", support_pack)
self.assertNotIn("uncapped monitored-system and guest capacity", support_pack)
self.assertNotIn("guest-capacity continuity", support_pack)
def test_rc1_changelog_keeps_current_free_first_licensing_posture(self) -> None:
changelog = read("docs/releases/V6_CHANGELOG_RC1.md")
normalized = normalize_ws(changelog)