diff --git a/VERSION b/VERSION index a985a9dcd..b2e3f7622 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.2.0-rc.6 +6.2.0-rc.7 diff --git a/deploy/helm/pulse/Chart.yaml b/deploy/helm/pulse/Chart.yaml index 366bcf569..2466593f9 100644 --- a/deploy/helm/pulse/Chart.yaml +++ b/deploy/helm/pulse/Chart.yaml @@ -2,9 +2,9 @@ apiVersion: v2 name: pulse description: Helm chart for deploying the Pulse hub and optional Docker, Kubernetes, or OpenShift monitoring agent. type: application -version: 6.2.0-rc.6 -appVersion: "6.2.0-rc.6" -icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.2.0-rc.6/docs/images/pulse-logo.svg +version: 6.2.0-rc.7 +appVersion: "6.2.0-rc.7" +icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.2.0-rc.7/docs/images/pulse-logo.svg keywords: - monitoring - proxmox @@ -32,7 +32,7 @@ annotations: description: Smoke tests with kind cluster deployment artifacthub.io/links: | - name: Documentation - url: https://github.com/rcourtman/Pulse/blob/v6.2.0-rc.6/docs/KUBERNETES.md + url: https://github.com/rcourtman/Pulse/blob/v6.2.0-rc.7/docs/KUBERNETES.md - name: Support url: https://github.com/rcourtman/Pulse/discussions artifacthub.io/maintainers: | diff --git a/deploy/helm/pulse/README.md b/deploy/helm/pulse/README.md index d93082c36..b550e4e15 100644 --- a/deploy/helm/pulse/README.md +++ b/deploy/helm/pulse/README.md @@ -1,6 +1,6 @@ # pulse -![Version: 6.2.0-rc.6](https://img.shields.io/badge/Version-6.2.0--rc.6-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.2.0-rc.6](https://img.shields.io/badge/AppVersion-6.2.0--rc.6-informational?style=flat-square) +![Version: 6.2.0-rc.7](https://img.shields.io/badge/Version-6.2.0--rc.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.2.0-rc.7](https://img.shields.io/badge/AppVersion-6.2.0--rc.7-informational?style=flat-square) Helm chart for deploying the Pulse hub and optional Docker, Kubernetes, or OpenShift monitoring agent. diff --git a/docker-compose.yml b/docker-compose.yml index 327853c61..d7c049615 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.8' services: pulse: - image: ${PULSE_IMAGE:-rcourtman/pulse:6.2.0-rc.6} + image: ${PULSE_IMAGE:-rcourtman/pulse:6.2.0-rc.7} container_name: pulse restart: unless-stopped logging: diff --git a/docs/RELEASE_NOTES.md b/docs/RELEASE_NOTES.md index fc0aed811..6857d0fe6 100644 --- a/docs/RELEASE_NOTES.md +++ b/docs/RELEASE_NOTES.md @@ -7,10 +7,12 @@ For historical v4 notes that previously lived in this repo, see: `docs/releases/RELEASE_NOTES_v4.md` For the current v6 support release candidate packet, see: -- `docs/releases/RELEASE_NOTES_v6.2.0-rc.6.md` -- `docs/releases/V6_CHANGELOG_v6.2.0-rc.6.md` +- `docs/releases/RELEASE_NOTES_v6.2.0-rc.7.md` +- `docs/releases/V6_CHANGELOG_v6.2.0-rc.7.md` For historical v6.2 support release candidate packets, see: +- `docs/releases/RELEASE_NOTES_v6.2.0-rc.6.md` +- `docs/releases/V6_CHANGELOG_v6.2.0-rc.6.md` - `docs/releases/RELEASE_NOTES_v6.2.0-rc.5.md` - `docs/releases/V6_CHANGELOG_v6.2.0-rc.5.md` - `docs/releases/RELEASE_NOTES_v6.2.0-rc.4.md` diff --git a/docs/UPGRADE_v6.md b/docs/UPGRADE_v6.md index b92e29e83..87c362e02 100644 --- a/docs/UPGRADE_v6.md +++ b/docs/UPGRADE_v6.md @@ -4,11 +4,13 @@ This guide covers practical upgrade steps for existing Pulse installs moving to For the current v6 support release candidate packet, see: -- `docs/releases/RELEASE_NOTES_v6.2.0-rc.6.md` -- `docs/releases/V6_CHANGELOG_v6.2.0-rc.6.md` +- `docs/releases/RELEASE_NOTES_v6.2.0-rc.7.md` +- `docs/releases/V6_CHANGELOG_v6.2.0-rc.7.md` For historical v6.2 support release candidate packets, see: +- `docs/releases/RELEASE_NOTES_v6.2.0-rc.6.md` +- `docs/releases/V6_CHANGELOG_v6.2.0-rc.6.md` - `docs/releases/RELEASE_NOTES_v6.2.0-rc.5.md` - `docs/releases/V6_CHANGELOG_v6.2.0-rc.5.md` - `docs/releases/RELEASE_NOTES_v6.2.0-rc.4.md` diff --git a/docs/release-control/v6/internal/subsystems/deployment-installability.md b/docs/release-control/v6/internal/subsystems/deployment-installability.md index 5c1c110f1..aaf7e9f42 100644 --- a/docs/release-control/v6/internal/subsystems/deployment-installability.md +++ b/docs/release-control/v6/internal/subsystems/deployment-installability.md @@ -1167,21 +1167,21 @@ host-local redirect contract as runtime token minting and exchange. Proof input must reject absolute, scheme-relative, backslash-authority, encoded-separator, and control-character targets before constructing the handoff request. -The active support prerelease `v6.2.0-rc.6` cut sets the repo-root `VERSION`, +The active support prerelease `v6.2.0-rc.7` cut sets the repo-root `VERSION`, repo-root `docker-compose.yml` image default, `scripts/install-docker.sh` -fallback, and Helm chart release metadata to the same `6.2.0-rc.6` release +fallback, and Helm chart release metadata to the same `6.2.0-rc.7` release version. This support prerelease keeps `rollback_version=v6.1.2`, publishes a versioned public GitHub prerelease plus versioned Docker and Helm artifacts, and does not move stable/latest install pointers or stable semver aliases. Stable install pointers stay on `v6.1.2`, whose active stable cut is recorded below and -continues to govern the stable line until this candidate is promoted. The sixth -`v6.2.0` candidate is a corrective cut that supersedes `v6.2.0-rc.5`: it -restores aggregate Proxmox workloads and the Alert thresholds page, repairs -partial agent removals, preserves Windows custom-CA and Skip TLS installer -commands, deduplicates direct PBS plus agent identity, and removes false Agent -Doctor profile warnings. The exact `main` SHA must pass the integrated release -checks and immutable-candidate build before the single-build workflow crosses -its public mutation boundary. +continues to govern the stable line until this candidate is promoted. The +seventh `v6.2.0` candidate is a continuity and operator-workflow cut that +supersedes `v6.2.0-rc.6`: it preserves Proxmox guest and renamed-host identity, +corrects TrueNAS and host metrics, makes platform tables and filters responsive, +ships the in-app documentation set, and hardens installer and private Pro +release recovery. The exact `main` SHA must pass the integrated release checks +and immutable-candidate build before the single-build workflow crosses its +public mutation boundary. Every release cut, including a prerelease, now gates that mutation boundary on the complete frontend unit suite, frontend type-checking, and a deterministic render smoke against the verified frontend bundle. The smoke must render @@ -1192,12 +1192,18 @@ diagnostics. The same release workflow also executes the generated self-signed and custom-CA Windows installer commands through Windows PowerShell 5.1 before release assembly, so the first HTTPS fetch is release proof rather than a string-shape assertion. -The `v6.2.0-rc.6` server cut is classified +The `v6.2.0-rc.7` server cut is classified `existing-mobile-build-compatible`. The synchronized Pulse Mobile 1.0.0 iOS -build 11 and Android versionCode 9 candidates, both using runtime version 2, -remain distributed to the existing beta cohort. RC6 has no new mobile-facing -behavior beyond RC5, and no new companion upload or public store rollout is -part of this cut. +build 12 and Android versionCode 9 candidates, both using runtime version 2, +remain distributed to the existing beta cohort through TestFlight and Play +open testing. The current beta candidates cover the server contract used by +this cut; no additional companion upload or public store rollout is part of +RC7. +The preceding `v6.2.0-rc.6` candidate used the same support-prerelease path +with `rollback_version=v6.1.2` and pinned the same four install surfaces to +`6.2.0-rc.6`. It is superseded by this cut and no longer governs the install +pins; its packet stays in `docs/releases/` as the historical candidate record +for the `v6.2.0` line. The preceding `v6.2.0-rc.5` candidate used the same support-prerelease path with `rollback_version=v6.1.2` and pinned the same four install surfaces to `6.2.0-rc.5`. It is superseded by this cut and no longer governs the install @@ -1372,8 +1378,8 @@ For the active stable `v6.1.2` cut, the repo-root compose default and `scripts/install-docker.sh` fallback must both pin `6.1.2` whenever the governed `VERSION` is that stable cut. The stable promotion guard remains in force and rejects leftover `-rc.` defaults. -For the active support prerelease `v6.2.0-rc.6` cut, the repo-root compose -default and `scripts/install-docker.sh` fallback must both pin `6.2.0-rc.6` +For the active support prerelease `v6.2.0-rc.7` cut, the repo-root compose +default and `scripts/install-docker.sh` fallback must both pin `6.2.0-rc.7` until the next governed stable cut moves them forward. The stable promotion guard remains in force and must reject leftover `-rc.` defaults when the governed `VERSION` returns to a stable release. Each new candidate on the diff --git a/docs/releases/RELEASE_NOTES_v6.2.0-rc.7.md b/docs/releases/RELEASE_NOTES_v6.2.0-rc.7.md new file mode 100644 index 000000000..c013ffe6d --- /dev/null +++ b/docs/releases/RELEASE_NOTES_v6.2.0-rc.7.md @@ -0,0 +1,92 @@ +# Pulse v6.2.0-rc.7 Release Notes + +`v6.2.0-rc.7` is a release candidate for the next Pulse v6 minor line. It +follows stable `v6.1.2` and supersedes `v6.2.0-rc.6`. This candidate focuses on +resource identity continuity, platform correctness, responsive operator +workflows, in-app documentation, and safer install and release recovery. + +## Highlights + +- Proxmox guests keep one canonical identity when they move between cluster + nodes, and host identity forks caused by hostname changes heal without + detaching findings or operator state. +- TrueNAS ZFS ARC is treated as reclaimable cache, host-relative memory trends + are calculated consistently, and valid virtio, Xen, and non-SMART block + devices remain eligible for host disk I/O collection. +- Platform tables, filter bars, saved views, tabs, and View menus are more + consistent and remain usable on narrow screens. +- The documentation set linked from Pulse now ships with the application and + renders in-app, including a dedicated transparency statement for Pulse AI + features and operator-facing agent integration guidance. +- Install and release paths gained safer auto-update bootstrap, Windows command + handling, bounded configuration-backup retention, and recoverable private Pro + publication retries. + +## Fixed + +- Preserved Proxmox guest identity, guest metadata, alert overrides, and finding + references across cluster node migrations and hostname changes. +- Corrected Proxmox workload type and attention filtering, filtered totals, + backup saved views, and active tab visibility. +- Corrected TrueNAS memory accounting for ARC cache and fixed host-relative + memory history so current and historical values use the same trust model. +- Kept virtio, Xen, and other real block devices in disk I/O collection while + continuing to exclude virtual pseudo-devices. +- Prevented resource state reads from queueing behind registry rebuilds and + removed the obsolete `resource_metadata` shadow table. +- Showed digest-pinned container images as `Pinned`, named both relevant digests + when an update preflight refuses a change, and kept empty Docker View menus + out of the interface. +- Normalized filter reset, saved-view, Add filter, active-tab, and horizontal + scrolling behavior across Alerts, Patrol, Storage, Machines, Proxmox, + Kubernetes, and Docker surfaces. +- Created the configuration directory before enabling auto-updates, kept copied + Windows install commands on one line, and moved the installer TLS callback to + a compiled type compatible with Windows PowerShell 5.1. +- Rotated configuration backups instead of allowing unbounded growth. +- Classified license-server transport failures as retryable and made + promotion-only private Pro publication failures reuse the already built proof + packet instead of attempting to overwrite it. + +## Release Qualification + +- The v6 control plane reports all 44 readiness assertions and all 25 release + gates passed for this release-preparation checkpoint. +- Release publication still builds and validates one immutable `main` SHA before + creating or publishing the GitHub prerelease, Docker image, Helm chart, and + private Pro packet. +- Browser-verification receipts are now enforced for user-visible frontend + changes, including desktop and narrow viewport proof tied to staged content. +- Targeted regression coverage locks Proxmox identity succession, hostname-rename + healing, TrueNAS ARC memory, workload filtering, installer bootstrap, Windows + TLS command execution, responsive tables, saved views, and release retry + behavior. + +## Upgrade Notes + +Use the normal v6 install or update flow for `v6.2.0-rc.7` only when you are +comfortable testing an RC. The rollback target is stable `v6.1.2`. + +The exact rollback reinstall command is: + +```bash +./scripts/install.sh --version v6.1.2 +``` + +Existing configurations remain valid and no manual data migration is required. +The identity-healing migrations are conservative: ambiguous matches remain +separate instead of being merged automatically. + +This server candidate is compatible with the current Pulse Mobile 1.0.0 beta +candidates. iOS build 12 is distributed through the TestFlight public beta link, +and Android versionCode 9 remains available through Play open testing; both use +runtime version 2. No public mobile-store rollout is part of this RC. + +Windows Unified Agent binaries in this candidate keep checksum and +detached-signature verification, but they are not yet Authenticode-signed and +Windows may show an unknown-publisher warning. No unsigned-Windows exception +applies to any `v6.2.0` release. Stable `v6.2.0` must publish Windows agents +through the mandatory SignPath Authenticode path. + +Paid Pulse Pro, Relay, and eligible legacy customers should continue to use the +private download page and private runtime image for paid runtime features. diff --git a/docs/releases/V6_CHANGELOG_v6.2.0-rc.7.md b/docs/releases/V6_CHANGELOG_v6.2.0-rc.7.md new file mode 100644 index 000000000..b069d4254 --- /dev/null +++ b/docs/releases/V6_CHANGELOG_v6.2.0-rc.7.md @@ -0,0 +1,55 @@ +# Pulse v6.2.0-rc.7 + +_This changelog describes the changes since `v6.2.0-rc.6`. +`v6.2.0-rc.7` remains a prerelease and rolls back to stable `v6.1.2`._ + +## Added + +- In-app rendering for the documentation set linked from Pulse. +- A public AI transparency statement and clearer agent integration guidance. +- Enforced, content-bound browser verification receipts for user-visible + frontend changes. +- A provider MSP evaluation flow that can issue its bounded evaluation licence + without requiring an operator to provision one manually. + +## Improved + +- Centralized platform View controls, saved views, filter presentation, active + item visibility, and narrow-screen table behavior. +- Made registry-backed state reads independent of registry rebuild latency. +- Rotated configuration backups and strengthened auto-update bootstrap. +- Made private Pro promotion-only release failures recoverable by reusing the + immutable proof packet from the original build. + +## Fixed + +- Preserved canonical Proxmox guest identity and metadata across node migrations. +- Healed safe hostname-rename identity forks while preserving findings, alert + overrides, and operator state. +- Corrected Proxmox workload type and attention filtering, filtered totals, + saved views, and navigation state. +- Treated TrueNAS ZFS ARC as reclaimable cache and corrected host-relative + memory trends. +- Retained valid virtio, Xen, and non-SMART block devices in disk I/O metrics. +- Corrected digest-pinned container status and update-preflight diagnostics. +- Kept Windows install commands on one line and executed the TLS callback + through a compiled type compatible with Windows PowerShell 5.1. +- Classified license-server transport failures as retryable. + +## Release Metadata + +- Version: `v6.2.0-rc.7` +- Previous candidate: `v6.2.0-rc.6` +- Previous stable: `v6.1.2` +- Rollback target: `v6.1.2` +- Rollback command: `./scripts/install.sh --version v6.1.2` +- Promotion path: exact-SHA single-build release candidate from `main`, + published as a support prerelease that does not move stable or latest + install pointers +- Windows signing decision: Authenticode through SignPath is the mandatory + signing backend and no unsigned-Windows exception applies to any `v6.2.0` + release +- Mobile decision: `existing-mobile-build-compatible`; Pulse Mobile 1.0.0 iOS + build 12 is distributed through the TestFlight public beta link and Android + versionCode 9 remains on Play open testing, both using runtime version 2. No + public store rollout is part of this candidate diff --git a/frontend-modern/public/docs/UPGRADE_v6.md b/frontend-modern/public/docs/UPGRADE_v6.md index b92e29e83..87c362e02 100644 --- a/frontend-modern/public/docs/UPGRADE_v6.md +++ b/frontend-modern/public/docs/UPGRADE_v6.md @@ -4,11 +4,13 @@ This guide covers practical upgrade steps for existing Pulse installs moving to For the current v6 support release candidate packet, see: -- `docs/releases/RELEASE_NOTES_v6.2.0-rc.6.md` -- `docs/releases/V6_CHANGELOG_v6.2.0-rc.6.md` +- `docs/releases/RELEASE_NOTES_v6.2.0-rc.7.md` +- `docs/releases/V6_CHANGELOG_v6.2.0-rc.7.md` For historical v6.2 support release candidate packets, see: +- `docs/releases/RELEASE_NOTES_v6.2.0-rc.6.md` +- `docs/releases/V6_CHANGELOG_v6.2.0-rc.6.md` - `docs/releases/RELEASE_NOTES_v6.2.0-rc.5.md` - `docs/releases/V6_CHANGELOG_v6.2.0-rc.5.md` - `docs/releases/RELEASE_NOTES_v6.2.0-rc.4.md` diff --git a/scripts/install-docker.sh b/scripts/install-docker.sh index d2ed18cba..73f33874a 100755 --- a/scripts/install-docker.sh +++ b/scripts/install-docker.sh @@ -6,7 +6,7 @@ set -euo pipefail SCRIPT_DIR="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)" DOCKER_IMAGE_REPO="${DOCKER_IMAGE_REPO:-rcourtman/pulse}" -CANONICAL_DEFAULT_PULSE_VERSION="6.2.0-rc.6" +CANONICAL_DEFAULT_PULSE_VERSION="6.2.0-rc.7" resolve_default_pulse_version() { if [ -n "${PULSE_IMAGE_VERSION:-}" ]; then diff --git a/scripts/installtests/build_release_assets_test.go b/scripts/installtests/build_release_assets_test.go index a88d5eec2..9fed41576 100644 --- a/scripts/installtests/build_release_assets_test.go +++ b/scripts/installtests/build_release_assets_test.go @@ -492,17 +492,17 @@ func TestCurrentSupportPrereleasePacketTracksInstallMetadata(t *testing.T) { "`v"+version+"` is a release candidate", "## Highlights", "stable `v"+previous+"`", - "supersedes `v6.2.0-rc.5`", - "Proxmox VE workloads are visible again", - "guest filesystems whose usage value is absent", - "repair half-removed installations", - "custom-CA trust and Skip TLS verification", - "Direct PBS connections and their Unified Agent reports collapse into one", - "Agent Doctor no longer invents a deployed `v0`", - "complete frontend unit suite", + "supersedes `v6.2.0-rc.6`", + "Proxmox guests keep one canonical identity", + "TrueNAS ZFS ARC is treated as reclaimable cache", + "remain usable on narrow screens", + "documentation set linked from Pulse now ships with the application", + "bounded configuration-backup retention", + "hostname changes heal without detaching findings", + "browser-verification receipts are now enforced", "Windows PowerShell 5.1", - "iOS build 11 on TestFlight", - "Android versionCode 9 on Play open testing", + "iOS build 12 is distributed through the TestFlight public beta link", + "Android versionCode 9 remains available through Play open testing", "No public mobile-store rollout is part of this RC", "not yet Authenticode-signed", "No unsigned-Windows exception applies to any `v6.2.0` release", @@ -510,21 +510,21 @@ func TestCurrentSupportPrereleasePacketTracksInstallMetadata(t *testing.T) { ) assertFileContainsAllNormalized(t, changelogPath, "Version: `v"+version+"`", - "Previous candidate: `v6.2.0-rc.5`", + "Previous candidate: `v6.2.0-rc.6`", "Previous stable: `v"+previous+"`", "Rollback target: `v"+previous+"`", "Promotion path: exact-SHA single-build release candidate from `main`", - "This changelog describes the changes since `v6.2.0-rc.5`", - "Restored PVE workloads on the aggregate Proxmox page", - "Prevented the Alert thresholds page from crashing", - "Repaired half-removed installations", - "Preserved Windows custom-CA and Skip TLS verification behavior", - "Unified direct PBS API connections with matching agent reports", - "Removed false Agent Doctor `Needs attention` states", - "All release cuts now gate publication on frontend unit tests", + "This changelog describes the changes since `v6.2.0-rc.6`", + "Preserved canonical Proxmox guest identity and metadata across node migrations", + "Healed safe hostname-rename identity forks", + "Treated TrueNAS ZFS ARC as reclaimable cache", + "Retained valid virtio, Xen, and non-SMART block devices", + "Centralized platform View controls", + "Enforced, content-bound browser verification receipts", "Windows signing decision: Authenticode through SignPath is the mandatory signing backend", "Mobile decision: `existing-mobile-build-compatible`", - "iOS build 11 and Android versionCode 9", + "iOS build 12 is distributed through the TestFlight public beta link", + "Android versionCode 9 remains on Play open testing", "No public store rollout is part of this candidate", ) assertFileContainsAll(t, repoFile("docs", "RELEASE_NOTES.md"), @@ -559,7 +559,7 @@ func TestCurrentSupportPrereleasePacketTracksInstallMetadata(t *testing.T) { "This support prerelease keeps `rollback_version=v"+previous+"`, publishes a versioned public GitHub prerelease plus versioned Docker and Helm artifacts, and does not move stable/latest install pointers or stable semver aliases.", "For the active support prerelease `v"+version+"` cut, the repo-root compose default and `scripts/install-docker.sh` fallback must both pin `"+version+"` until the next governed stable cut moves them forward.", "The `v"+version+"` server cut is classified `existing-mobile-build-compatible`.", - "RC6 has no new mobile-facing behavior beyond RC5, and no new companion upload or public store rollout is part of this cut.", + "The current beta candidates cover the server contract used by this cut; no additional companion upload or public store rollout is part of RC7.", ) } diff --git a/scripts/installtests/install_docker_sh_test.go b/scripts/installtests/install_docker_sh_test.go index 09e8a990e..2e3a02465 100644 --- a/scripts/installtests/install_docker_sh_test.go +++ b/scripts/installtests/install_docker_sh_test.go @@ -131,6 +131,7 @@ func TestPreviousStableForPrereleaseVersionCrossesMinorBoundaries(t *testing.T) {version: "6.2.0-rc.4", want: "6.1.2"}, {version: "6.2.0-rc.5", want: "6.1.2"}, {version: "6.2.0-rc.6", want: "6.1.2"}, + {version: "6.2.0-rc.7", want: "6.1.2"}, } for _, test := range tests { @@ -338,15 +339,16 @@ func TestInstallDockerProofTracksSupportPrereleaseContract(t *testing.T) { assertFileContainsAllNormalized(t, repoFile("docs", "release-control", "v6", "internal", "subsystems", "deployment-installability.md"), "The active support prerelease `v"+version+"` cut sets the repo-root `VERSION`, repo-root `docker-compose.yml` image default, `scripts/install-docker.sh` fallback, and Helm chart release metadata to the same `"+version+"` release version.", "This support prerelease keeps `rollback_version=v"+previous+"`, publishes a versioned public GitHub prerelease plus versioned Docker and Helm artifacts, and does not move stable/latest install pointers or stable semver aliases.", - "is a corrective cut that supersedes `v6.2.0-rc.5`: it restores aggregate Proxmox workloads and the Alert thresholds page, repairs partial agent removals, preserves Windows custom-CA and Skip TLS installer commands, deduplicates direct PBS plus agent identity, and removes false Agent Doctor profile warnings", + "is a continuity and operator-workflow cut that supersedes `v6.2.0-rc.6`: it preserves Proxmox guest and renamed-host identity, corrects TrueNAS and host metrics, makes platform tables and filters responsive, ships the in-app documentation set, and hardens installer and private Pro release recovery", + "The preceding `v6.2.0-rc.6` candidate used the same support-prerelease path with `rollback_version=v6.1.2` and pinned the same four install surfaces to `6.2.0-rc.6`.", "The preceding `v6.2.0-rc.5` candidate used the same support-prerelease path with `rollback_version=v6.1.2` and pinned the same four install surfaces to `6.2.0-rc.5`.", "The preceding `v6.2.0-rc.4` candidate used the same support-prerelease path with `rollback_version=v6.1.2` and pinned the same four install surfaces to `6.2.0-rc.4`.", "The preceding `v6.2.0-rc.3` candidate used the same support-prerelease path with `rollback_version=v6.1.2` and pinned the same four install surfaces to `6.2.0-rc.3`.", "The preceding `v6.2.0-rc.2` candidate used the same support-prerelease path with `rollback_version=v6.1.2` and pinned the same four install surfaces to `6.2.0-rc.2`.", "The preceding `v6.2.0-rc.1` candidate used the same support-prerelease path with `rollback_version=v6.1.2` and pinned the same four install surfaces to `6.2.0-rc.1`.", "The `v"+version+"` server cut is classified `existing-mobile-build-compatible`.", - "Pulse Mobile 1.0.0 iOS build 11 and Android versionCode 9 candidates, both using runtime version 2, remain distributed to the existing beta cohort.", - "RC6 has no new mobile-facing behavior beyond RC5, and no new companion upload or public store rollout is part of this cut.", + "Pulse Mobile 1.0.0 iOS build 12 and Android versionCode 9 candidates, both using runtime version 2, remain distributed to the existing beta cohort through TestFlight and Play open testing.", + "The current beta candidates cover the server contract used by this cut; no additional companion upload or public store rollout is part of RC7.", "Authenticode signing through SignPath is the canonical Windows signing backend for the `v6.2.0` line.", "For the active support prerelease `v"+version+"` cut, the repo-root compose default and `scripts/install-docker.sh` fallback must both pin `"+version+"` until the next governed stable cut moves them forward.", )