Prepare v6.4.0-rc.4 release

This commit is contained in:
rcourtman
2026-08-26 19:08:28 +01:00
parent 1b754d8bfe
commit 5194e0ca4d
13 changed files with 165 additions and 55 deletions
+1 -1
View File
@@ -1 +1 @@
6.4.0-rc.3
6.4.0-rc.4
+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.4.0-rc.3
appVersion: "6.4.0-rc.3"
icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.4.0-rc.3/docs/images/pulse-logo.svg
version: 6.4.0-rc.4
appVersion: "6.4.0-rc.4"
icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.4.0-rc.4/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.4.0-rc.3/docs/KUBERNETES.md
url: https://github.com/rcourtman/Pulse/blob/v6.4.0-rc.4/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.4.0-rc.3](https://img.shields.io/badge/Version-6.4.0--rc.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.4.0-rc.3](https://img.shields.io/badge/AppVersion-6.4.0--rc.3-informational?style=flat-square)
![Version: 6.4.0-rc.4](https://img.shields.io/badge/Version-6.4.0--rc.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.4.0-rc.4](https://img.shields.io/badge/AppVersion-6.4.0--rc.4-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.4.0-rc.3}
image: ${PULSE_IMAGE:-rcourtman/pulse:6.4.0-rc.4}
container_name: pulse
restart: unless-stopped
logging:
+6 -4
View File
@@ -7,8 +7,8 @@ For historical v4 notes that previously lived in this repo, see:
`docs/releases/RELEASE_NOTES_v4.md`
For the current v6 release candidate packet (the current v6 support release candidate packet), see:
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.3.md`
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.3.md`
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.4.md`
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.4.md`
For the current stable v6 packet, see:
- `docs/releases/RELEASE_NOTES_v6.3.2.md`
@@ -19,10 +19,12 @@ For the preceding stable v6 packet, see:
- `docs/releases/V6_CHANGELOG_v6.3.1.md`
For the preceding v6.4 release candidate packet, see:
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.3.md`
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.3.md`
For earlier v6.4 release candidate packets, see:
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.2.md`
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.2.md`
For the earlier v6.4 release candidate packet, see:
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.1.md`
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.1.md`
+7 -5
View File
@@ -4,8 +4,8 @@ This guide covers practical upgrade steps for existing Pulse installs moving to
For the current v6 release candidate packet (the current v6 support release candidate packet), see:
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.3.md`
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.3.md`
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.4.md`
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.4.md`
For the current stable v6 packet, see:
@@ -19,11 +19,13 @@ For the preceding stable v6 packet, see:
For the preceding v6.4 release candidate packet, see:
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.3.md`
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.3.md`
For earlier v6.4 release candidate packets, see:
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.2.md`
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.2.md`
For the earlier v6.4 release candidate packet, see:
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.1.md`
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.1.md`
@@ -1774,25 +1774,29 @@ 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 active prerelease `v6.4.0-rc.3` cut sets the repo-root `VERSION`, repo-root
The active prerelease `v6.4.0-rc.4` 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.4.0-rc.3` release version. It follows
`v6.4.0-rc.2` on the published `v6.4.0` candidate line. This prerelease keeps
Helm chart release metadata to the same `6.4.0-rc.4` release version. It follows
`v6.4.0-rc.3` on the published `v6.4.0` candidate line. This prerelease keeps
`rollback_version=v6.3.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. The candidate makes large-estate
workload, infrastructure, storage, and platform rendering incremental;
canonicalizes table, drawer, touch, disclosure, sorting, and navigation
behavior; adds notification delivery history and a least-privilege agent
profile; provides deliberate Docker and Kubernetes re-enrolment recovery; and
fixes metrics-history retention, Patrol startup recovery, backup pagination,
stale storage and stale container-health presentation, and backup scope
persistence. API-only Proxmox nodes also retain node metrics history without
presenting agent-only disk I/O. The changes since `v6.4.0-rc.2` do not require a Pulse Mobile
install pointers or stable semver aliases. The candidate moves resources,
Connected infrastructure, and active alerts onto keyed per-client deltas;
defers expensive realtime merges during operator input; preserves windowed-row
identity across reordered snapshots; and isolates REST recovery from the
websocket delta baseline. It also restores Proxmox network details, hardens
backup and drawer history targeting, clears committed notification delivery
warnings immediately, and keeps supported Proxmox VM/LXC lifecycle requests on
the governed action path without a QEMU guest-agent prerequisite or manual
command fallback. The changes since `v6.4.0-rc.3` do not require a Pulse Mobile
client change and preserve
the existing mobile, Relay, onboarding, and mobile-facing API contracts, so the
server cut is classified `no-mobile-impact`; no companion upload or public
mobile-store rollout is part of this candidate. The prerelease Windows path
mobile-store rollout is part of this candidate. The canonical mobile
compatibility projection and route/method/scope, request/response, pairing, and
push checks passed against Pulse Mobile revision
`57353a83eb950d1102c90074aa8fe67e1559685b`, iOS build 12, and Android build 9.
The prerelease Windows path
retains exact-SHA, checksum, and detached-signature verification without
Authenticode. Stable `v6.4.0` also skips SignPath under the standing unavailable
policy and retains the same exact-SHA, checksum, detached-signature, manifest,
@@ -1801,9 +1805,15 @@ only after the release owner explicitly confirms that production credentials
and certificate authorization are ready and a reviewed policy/code change
restores it.
The preceding `v6.4.0-rc.3` cut published from exact source SHA
`cf0ca6f127540e9997c2eb97eeed32f27619d242`. Its tag and versioned artifacts
remain immutable; `v6.4.0-rc.4` supersedes it without moving stable install
pointers or stable semver aliases from `v6.3.2`.
The preceding `v6.4.0-rc.2` publication attempt built and staged the exact
candidate artifacts but failed release convergence before public activation.
Its tag is immutable and the candidate is superseded by `v6.4.0-rc.3`; stable
Its tag is immutable and the candidate is superseded by later `v6.4.0`
prereleases; stable
install pointers and stable semver aliases remained on `v6.3.2`.
The preceding prerelease `v6.4.0-rc.1` cut set the repo-root `VERSION`,
@@ -2237,8 +2247,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 prerelease `v6.4.0-rc.3` cut, the repo-root compose default and
`scripts/install-docker.sh` fallback must both pin `6.4.0-rc.3` until the next
For the active prerelease `v6.4.0-rc.4` cut, the repo-root compose default and
`scripts/install-docker.sh` fallback must both pin `6.4.0-rc.4` until the next
governed stable cut moves them forward. Each new release moves
these two pins together with the repo-root `VERSION` and the Helm chart metadata
in the same commit; a cut that leaves any of the four on a superseded value is a
@@ -0,0 +1,33 @@
# Pulse v6.4.0-rc.4 Release Notes
`v6.4.0-rc.4` is a release candidate for the next v6 minor release. It fixes two customer-reported trust issues, restores several Proxmox views, and makes live large-estate screens steadier while data is changing.
## What's improved
- **Steadier large-estate screens** — Resource, infrastructure, and alert updates now use keyed deltas. Pulse defers expensive live merges while an operator is interacting, then applies the queued state afterward.
- **Smaller resource snapshots** — Repeated capability descriptions and default policy metadata are deduplicated without changing the resource shape consumed by the web interface.
- **More useful workload tables** — Workload IDs can be sorted, columns can be resized deliberately, and header alignment remains stable across the table.
- **Restored Proxmox network details** — Node network interfaces and their configuration are visible again in the Proxmox detail view.
- **Clearer operational API access** — API token scopes now expose the governed agent-lifecycle capability used for lifecycle operations.
## Fixes
- Delivery warnings now clear as soon as the committed notification queue becomes healthy after a retry, dismissal, cancellation, or successful delivery ([#1761](https://github.com/rcourtman/Pulse/issues/1761)).
- Assistant no longer treats the QEMU guest agent as a prerequisite for governed Proxmox VM or LXC lifecycle actions, and no longer redirects supported requests to manual `qm` or `pct` commands ([#1782](https://github.com/rcourtman/Pulse/issues/1782)).
- Keyed resource rows retain their identity when full snapshots arrive in a different order, and REST recovery no longer contaminates the websocket delta baseline.
- Proxmox backup rows keep the correct alert attribution, filter by repository correctly, and hydrate reliably when backup data arrives after the initial page state.
- Docker container history keeps the selected container identity across filtered refreshes.
- Workload and infrastructure drawers use the canonical history target, preventing one resource from showing another resource's metrics.
- Mock storage and workload histories preserve continuity so release render checks exercise the same stable chart behavior as a live runtime.
- Proxmox network detail formatting and offline-node browser coverage are back under their qualified checks.
## Before you upgrade
- This is a release candidate. Stable installations remain on v6.3.2 unless an operator explicitly selects this version.
- Existing configurations remain valid and no manual data migration is required.
- Pulse Mobile does not consume the changed browser resource stream. The canonical route, request/response, pairing, and push compatibility checks passed against Pulse Mobile 1.0.0 build 12 on iOS and build 9 on Android, so no companion update is required.
- Windows Unified Agent binaries are checksum- and detached-signature-verified but are not Authenticode-signed, so Windows may show an Unknown Publisher warning.
## Known issues
- Windows Authenticode signing remains unavailable for this candidate; use the published checksum and detached signature when verifying Windows agent downloads.
+66
View File
@@ -0,0 +1,66 @@
# Pulse v6.4.0-rc.4
_This changelog describes the changes since `v6.4.0-rc.3` included in
`v6.4.0-rc.4`._
## Added
- API token scope presentation includes the governed agent-lifecycle scope.
- Workload tables support deliberate column-width persistence and sorting by
workload ID.
- Webhook presentation retains stable message keys and explicit resource
context for language-neutral downstream handling.
## Changed
- Resources, connected-infrastructure entries, and active alerts use per-client
keyed deltas. Unkeyed or missing-baseline transitions fail safely to a full
payload instead of attempting a partial merge.
- Browser resource ingestion deduplicates capability catalogs, default policy
posture, AI-safe summaries, and self-alias identity entries while restoring
the existing consumer shape at the ingestion boundary.
- Realtime resource application defers during operator input and coalesces the
queued changes after the gesture. Windowed workload, storage, and platform
rows preserve identity while scrolling and while reordered snapshots arrive.
- REST state recovery is isolated from the websocket baseline, so a late REST
response cannot advance or replace the per-connection delta source of truth.
- History drawers resolve canonical storage, Docker, host, VM, and container
targets before querying metrics, including mock and API-only source paths.
## Fixed
- Notification queue health is reconciled immediately after committed queue
transitions, clearing stale delivery system alerts after retry, dismissal,
cancellation, purge, or successful delivery
([#1761](https://github.com/rcourtman/Pulse/issues/1761)).
- Proxmox VM/LXC lifecycle actions remain available through the governed action
path without a QEMU guest-agent prerequisite. Assistant grounding no longer
suggests manual `qm`/`pct` fallback for supported lifecycle requests
([#1782](https://github.com/rcourtman/Pulse/issues/1782)).
- Proxmox node network details render again and retain browser-qualified layout
coverage.
- Backup recovery data retains the correct source attribution, repository
filter, and delayed-hydration state.
- Docker container history retains its selected target through filtered
refreshes, and workload drawer history no longer crosses resource identities.
- Keyed platform rows retain component identity when a full snapshot reorders
otherwise unchanged entries.
- Mock storage and workload histories preserve continuity across refreshes.
- Offline-node E2E coverage returned to the qualified stable tier after its
repaired proof passed.
## Release Metadata
- Version: `v6.4.0-rc.4`
- Previous candidate tag: `v6.4.0-rc.3`
- Previous stable: `v6.3.2`
- Rollback target: `v6.3.2`
- Rollback command: `./scripts/install.sh --version v6.3.2`
- Promotion path: exact-SHA single-build release candidate from `main`
- Windows signing decision: prereleases publish checksum- and
detached-signature-verified Windows agents without Authenticode while
SignPath remains unavailable; Windows may show an Unknown Publisher warning
- Mobile decision: `no-mobile-impact`; the changed keyed stream is a browser
transport and the canonical core/mobile contract passed against Pulse Mobile
revision `57353a83eb950d1102c90074aa8fe67e1559685b`, iOS build 12, and Android
build 9, so no companion build or public store rollout is required
+7 -5
View File
@@ -4,8 +4,8 @@ This guide covers practical upgrade steps for existing Pulse installs moving to
For the current v6 release candidate packet (the current v6 support release candidate packet), see:
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.3.md`
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.3.md`
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.4.md`
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.4.md`
For the current stable v6 packet, see:
@@ -19,11 +19,13 @@ For the preceding stable v6 packet, see:
For the preceding v6.4 release candidate packet, see:
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.3.md`
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.3.md`
For earlier v6.4 release candidate packets, see:
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.2.md`
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.2.md`
For the earlier v6.4 release candidate packet, see:
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.1.md`
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.1.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.4.0-rc.3"
CANONICAL_DEFAULT_PULSE_VERSION="6.4.0-rc.4"
resolve_default_pulse_version() {
if [ -n "${PULSE_IMAGE_VERSION:-}" ]; then
@@ -887,12 +887,11 @@ func TestCurrentPrereleasePacketTracksInstallMetadata(t *testing.T) {
"## Fixes",
"## Before you upgrade",
"## Known issues",
"notification delivery",
"least-privilege",
"Saved views have been removed",
"MSP evaluation mode",
"Business tier",
"API-only Proxmox nodes now retain node metrics history",
"keyed per-client deltas",
"Delivery warnings now clear",
"QEMU guest agent",
"Restored Proxmox network details",
"Pulse Mobile does not consume the changed browser resource stream",
"not Authenticode-signed",
"Unknown Publisher warning",
)
@@ -902,17 +901,12 @@ func TestCurrentPrereleasePacketTracksInstallMetadata(t *testing.T) {
"Rollback target: `v"+previous+"`",
"Promotion path: exact-SHA single-build release candidate from `main`",
"This changelog describes the changes since `v"+comparisonVersion+"`",
"Notification delivery history",
"least-privilege Unified Agent install profile",
"Saved views have been removed",
"4.75 MB to 4.09 MB",
"Metrics-history retention releases oversized backing arrays",
"Patrol retries provider initialisation",
"backup roll-ups derive `totalPages`",
"Storage rows mark retained readings stale",
"Stopped Docker and Podman containers no longer re-fire health alerts",
"Disabled Proxmox backup collection scope persists",
"API-only Proxmox nodes retain node metrics history",
"Resources, connected-infrastructure entries, and active alerts use per-client keyed deltas",
"REST state recovery is isolated from the websocket baseline",
"Notification queue health is reconciled immediately",
"Proxmox VM/LXC lifecycle actions remain available through the governed action path",
"Proxmox node network details render again",
"Backup recovery data retains the correct source attribution",
"Windows signing decision: prereleases publish checksum- and detached-signature-verified Windows agents without Authenticode",
"Mobile decision: `no-mobile-impact`",
"no companion build or public store rollout is required",
@@ -144,6 +144,7 @@ func TestPreviousStableForPrereleaseVersionCrossesMinorBoundaries(t *testing.T)
{version: "6.4.0-rc.1", want: "6.3.2"},
{version: "6.4.0-rc.2", want: "6.3.2"},
{version: "6.4.0-rc.3", want: "6.3.2"},
{version: "6.4.0-rc.4", want: "6.3.2"},
}
for _, test := range tests {