Prepare v6.2.0-rc.7 release

This commit is contained in:
rcourtman
2026-08-03 22:17:03 +01:00
parent d1d0281bdd
commit 27948c6de4
13 changed files with 216 additions and 55 deletions
+1 -1
View File
@@ -1 +1 @@
6.2.0-rc.6
6.2.0-rc.7
+4 -4
View File
@@ -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: |
+1 -1
View File
@@ -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.
+1 -1
View File
@@ -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:
+4 -2
View File
@@ -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`
+4 -2
View File
@@ -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`
@@ -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
@@ -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.
+55
View File
@@ -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
+4 -2
View File
@@ -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`
+1 -1
View File
@@ -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
@@ -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.",
)
}
@@ -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.",
)