Prepare v6.0.5 RC4 release packet

Refs #1535
This commit is contained in:
rcourtman 2026-07-08 13:10:06 +01:00
parent 16d74a75bb
commit 0d787a4b1f
12 changed files with 173 additions and 19 deletions

View file

@ -1 +1 @@
6.0.5-rc.3
6.0.5-rc.4

View file

@ -2,9 +2,9 @@ apiVersion: v2
name: pulse
description: Helm chart for deploying the Pulse hub and optional Docker monitoring agent.
type: application
version: 6.0.5-rc.3
appVersion: "6.0.5-rc.3"
icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.0.5-rc.3/docs/images/pulse-logo.svg
version: 6.0.5-rc.4
appVersion: "6.0.5-rc.4"
icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.0.5-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.0.5-rc.3/docs/KUBERNETES.md
url: https://github.com/rcourtman/Pulse/blob/v6.0.5-rc.4/docs/KUBERNETES.md
- name: Support
url: https://github.com/rcourtman/Pulse/discussions
artifacthub.io/maintainers: |

View file

@ -1,6 +1,6 @@
# pulse
![Version: 6.0.5-rc.3](https://img.shields.io/badge/Version-6.0.5--rc.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.0.5-rc.3](https://img.shields.io/badge/AppVersion-6.0.5--rc.3-informational?style=flat-square)
![Version: 6.0.5-rc.4](https://img.shields.io/badge/Version-6.0.5--rc.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.0.5-rc.4](https://img.shields.io/badge/AppVersion-6.0.5--rc.4-informational?style=flat-square)
Helm chart for deploying the Pulse hub and optional Docker monitoring agent.

View file

@ -2,7 +2,7 @@ version: '3.8'
services:
pulse:
image: ${PULSE_IMAGE:-rcourtman/pulse:6.0.5-rc.3}
image: ${PULSE_IMAGE:-rcourtman/pulse:6.0.5-rc.4}
container_name: pulse
restart: unless-stopped
logging:

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.0.5-rc.3.md`
- `docs/releases/V6_CHANGELOG_v6.0.5-rc.3.md`
- `docs/releases/RELEASE_NOTES_v6.0.5-rc.4.md`
- `docs/releases/V6_CHANGELOG_v6.0.5-rc.4.md`
For historical v6 support release candidate packets, see:
- `docs/releases/RELEASE_NOTES_v6.0.5-rc.3.md`
- `docs/releases/V6_CHANGELOG_v6.0.5-rc.3.md`
- `docs/releases/RELEASE_NOTES_v6.0.5-rc.2.md`
- `docs/releases/V6_CHANGELOG_v6.0.5-rc.2.md`
- `docs/releases/RELEASE_NOTES_v6.0.5-rc.1.md`

View file

@ -4,8 +4,8 @@ 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.0.5-rc.3.md`
- `docs/releases/V6_CHANGELOG_v6.0.5-rc.3.md`
- `docs/releases/RELEASE_NOTES_v6.0.5-rc.4.md`
- `docs/releases/V6_CHANGELOG_v6.0.5-rc.4.md`
For the current stable v6 packet and rollout references, see:

View file

@ -852,9 +852,9 @@ TLS floor in the dynamic config.
## Current State
The active support prerelease `v6.0.5-rc.3` cut sets the repo-root `VERSION`,
The active support prerelease `v6.0.5-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.0.5-rc.3` release
fallback, and Helm chart release metadata to the same `6.0.5-rc.4` release
version. This support prerelease keeps `rollback_version=v6.0.4`, publishes a
versioned public GitHub prerelease plus versioned Docker and Helm artifacts,
and does not move stable/latest install pointers or stable semver aliases. It
@ -864,8 +864,11 @@ SMART temperature fallback, legacy agent update token recovery, threshold-aware
temperature display severity, PBS backup polling memory bounds, physical disk
SMART/Proxmox merge identity, Proxmox token preservation diagnostics, legacy
OIDC SSO discovery with CSP nonce handling, mobile onboarding URL handoff
sanitization, SSO browser-session display labels, and route-aware Proxmox host
URLs behind RC validation instead of publishing another same-day stable patch.
sanitization, SSO browser-session display labels, route-aware Proxmox host
URLs, MSP report scheduling with a portal alert rollup, per-disk-type
temperature thresholds, PBS backup discovery recovery, host fingerprint
auto-discovery, and surfaced agent auth failures behind RC validation instead
of publishing another same-day stable patch.
The initial GA promotion
metadata remains
`promoted_from_tag=v6.0.0-rc.7`, `rollback_version=v5.1.35`,
@ -919,8 +922,8 @@ compose image default, standalone installer fallback constant, and packaged
Helm metadata. A draft release workflow failure caused by stale image or chart
pins is a release-packet blocker until the defaults, tests, and evidence
record are refreshed from the new branch head.
For the active support prerelease `v6.0.5-rc.3` cut, the repo-root compose
default and `scripts/install-docker.sh` fallback must both pin `6.0.5-rc.3`
For the active support prerelease `v6.0.5-rc.4` cut, the repo-root compose
default and `scripts/install-docker.sh` fallback must both pin `6.0.5-rc.4`
until the next governed stable cut moves them forward. The stable promotion
guard remains in force by rejecting leftover `-rc.` defaults when the governed
`VERSION` is a stable release.

View file

@ -0,0 +1,68 @@
# Pulse v6.0.5-rc.4 Release Notes
`v6.0.5-rc.4` is a release candidate for the next Pulse v6 patch line. It
follows stable `v6.0.4` and supersedes `v6.0.5-rc.3` with MSP report
scheduling and a provider portal alert rollup, per-disk-type temperature
thresholds, a PBS backup discovery recovery, host fingerprint auto-discovery,
surfaced agent auth failures, and additional SSO and filter improvements. It
retains the earlier support fixes for Patrol Gemini model readiness,
remembered-login submit persistence, Proxmox SMART temperature fallback for
direct SATA/SAT disks, legacy agent update token recovery, threshold-aware
temperature display severity, PBS backup polling memory bounds, physical disk
SMART/Proxmox merge identity, Proxmox token preservation diagnostics, legacy
OIDC SSO discovery with CSP nonce handling, Pulse Mobile pairing handoff
sanitization, SSO browser-session display labels, and route-aware Proxmox host
URLs.
## Added
- Reports can now be scheduled with weekly or monthly cadence, explicit
resource or tag scoping, and PDF or CSV delivery by email or to disk. The
MSP provider portal shows a per-workspace alert rollup so provider
operators see client alert pressure at a glance.
- Physical disk temperature thresholds are now configurable per disk type,
and explicit per-disk overrides beat the per-type defaults.
- OIDC provider settings now support editing requested scopes, and SSO
provider restriction fields can be cleared once set.
- Kubernetes shared toolbar filters are now URL-backed so saved views keep
exclusions, Docker container filters support `-term` search exclusions and
persistent saved views, and saved views are reachable from the FilterBar
mobile expanded body.
## Fixed
- Fixed a PBS backup discovery regression from the rc.3 bounded-polling
change: snapshot groups beyond the bound were synthesized without
verification, size, or file data, so real deployments saw backups as
Unverified with a collapsed timeline. Bounds are now derived from real
snapshot data.
- Hosts now participate in the discovery fingerprint model so they
auto-discover instead of requiring manual entry.
- Agent auth failures and staleness are now surfaced in the UI instead of an
agent silently retrying 401 responses forever while the node stayed green,
and the recovery guidance points at the Pulse UI.
- The Pro binary now blocks in-app self-update so a paid install can no
longer silently downgrade itself to the community build.
- Registry rebuilds no longer write no-op relationship-change rows, which
previously grew resource history by hundreds of thousands of rows per day
on busy deployments.
- Mock-mode data churn is paced to realistic homelab rates, so demo and
evaluation deployments stop generating phantom restart and state-flap
events.
- Docker Swarm workload dedupe now picks cluster-scoped winners
deterministically.
- Legacy 3-segment OIDC SSO login and callback paths are served again so
bookmarked or configured legacy SSO URLs keep working after upgrade.
- Relay pairing help now points at the Pulse Mobile install page so a
pairing QR has an obvious companion app to scan it with.
- v5 migration recovery states are clarified so interrupted migrations
explain what happened and what to do next.
## Upgrade Notes
Use the normal v6 install or update flow for `v6.0.5-rc.4` only when you are
comfortable testing an RC. The rollback target for this release candidate is
`v6.0.4`.
Paid Pulse Pro, Relay, and eligible legacy customers should continue to use the
private download page and private runtime image for paid runtime features.

View file

@ -0,0 +1,73 @@
# Pulse v6.0.5-rc.4
_This changelog describes the `v6.0.5-rc.4` release candidate compared with
stable `v6.0.4`._
## Added
- MSP reports now support scheduled delivery with weekly or monthly cadence,
explicit resource or tag scoping, and PDF or CSV output by email or to
disk, and the MSP provider portal now shows a per-workspace alert rollup.
- Physical disk temperature thresholds are now configurable per disk type,
with explicit per-disk overrides beating per-type defaults.
- OIDC provider settings now support editing requested scopes, and SSO
provider restriction fields can be cleared once set.
- Kubernetes shared toolbar filters are now URL-backed so saved views keep
exclusions, Docker container filters support `-term` search exclusions and
persistent saved views, and saved views appear in the FilterBar mobile
expanded body.
## Fixed
- Patrol readiness checks now detect Gemini tool-call capability from Gemini
candidate parts as well as top-level tool-call lists.
- Remembered-login state now persists the saved username when the checkbox is
enabled during submit.
- Proxmox SMART temperature collection now retries direct SATA/SAT disks with an
explicit SAT probe when smartctl auto-detection returns health but no
temperature.
- Legacy agent update token recovery now handles v5-to-v6 update paths where a
running agent can provide connection details even when stored state is absent.
- Temperature displays now resolve configured alert thresholds across node,
workload, Docker, standalone agent, and drawer surfaces.
- PBS backup polling now keeps a bounded read-state working set during backup
discovery.
- PBS backup discovery now derives its memory bounds from real snapshot data,
fixing an rc.3 regression where groups beyond the bound were synthesized
without verification, size, file, or per-snapshot time data.
- Physical disk SMART and Proxmox records now merge through canonical disk
identity so NVMe, size, SMART, and temperature metadata survive enrichment.
- Proxmox install/update flows now preserve generated token state and expose
smoke diagnostics for setup validation.
- Legacy OIDC SSO discovery now persists and advertises configured providers,
with CSP nonce handling for embedded frontend assets.
- Legacy 3-segment OIDC SSO login and callback paths are served again for
installs configured before the route consolidation.
- Pulse Mobile pairing now omits unsafe non-HTTPS Pulse web handoff URLs from
QR/deep-link payloads while keeping relay pairing usable and returning an
`instance_url_not_https` diagnostic for settings copy.
- OIDC and SAML browser sessions now expose a separate display label for app
chrome while authorization remains bound to the stable provider-scoped
principal.
- Proxmox host setup now prefers route-aware host URLs.
- Hosts now join the discovery fingerprint model so they auto-discover.
- Agent auth failures and staleness are now surfaced instead of a silent 401
retry loop, with recovery guidance pointing at the Pulse UI.
- The Pro binary now blocks in-app self-update to prevent a silent downgrade
to the community build.
- Registry rebuilds no longer emit no-op relationship-change records, keeping
resource history growth bounded on busy deployments.
- Mock-mode churn is paced to homelab rates so demo deployments stop
generating phantom change events.
- Docker Swarm workload dedupe now picks cluster-scoped winners
deterministically.
- Relay pairing help now points at the Pulse Mobile install page.
- v5 migration recovery states are clarified for interrupted migrations.
- Docker, Helm, installer, and release-helper metadata now track the active
release candidate version.
## Release Metadata
- Version: `v6.0.5-rc.4`
- Rollback target: `v6.0.4`
- Promotion path: release candidate from `main`

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.0.5-rc.3"
CANONICAL_DEFAULT_PULSE_VERSION="6.0.5-rc.4"
resolve_default_pulse_version() {
if [ -n "${PULSE_IMAGE_VERSION:-}" ]; then

View file

@ -336,6 +336,10 @@ func TestCurrentSupportPrereleasePacketTracksInstallMetadata(t *testing.T) {
"Pulse Mobile pairing",
"SSO browser-session display labels",
"route-aware Proxmox host URLs",
"MSP report scheduling",
"portal alert rollup",
"per-disk-type temperature thresholds",
"PBS backup discovery recovery",
"rollback target for this release candidate is `v"+previous+"`",
)
assertFileContainsAll(t, changelogPath,
@ -355,6 +359,10 @@ func TestCurrentSupportPrereleasePacketTracksInstallMetadata(t *testing.T) {
"Pulse Mobile pairing now omits unsafe non-HTTPS Pulse web handoff URLs",
"OIDC and SAML browser sessions now expose a separate display label",
"Proxmox host setup now prefers route-aware host URLs",
"MSP reports now support scheduled delivery",
"per-workspace alert rollup",
"Physical disk temperature thresholds are now configurable per disk type",
"PBS backup discovery now derives its memory bounds from real snapshot data",
)
assertFileContainsAll(t, repoFile("docs", "RELEASE_NOTES.md"),
"docs/releases/RELEASE_NOTES_v"+version+".md",

View file

@ -229,7 +229,7 @@ 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.",
"legacy agent update token recovery, threshold-aware temperature display severity, PBS backup polling memory bounds, physical disk SMART/Proxmox merge identity, Proxmox token preservation diagnostics, legacy OIDC SSO discovery with CSP nonce handling, mobile onboarding URL handoff sanitization, SSO browser-session display labels, and route-aware Proxmox host URLs behind RC validation",
"legacy agent update token recovery, threshold-aware temperature display severity, PBS backup polling memory bounds, physical disk SMART/Proxmox merge identity, Proxmox token preservation diagnostics, legacy OIDC SSO discovery with CSP nonce handling, mobile onboarding URL handoff sanitization, SSO browser-session display labels, route-aware Proxmox host URLs, MSP report scheduling with a portal alert rollup, per-disk-type temperature thresholds, PBS backup discovery recovery, host fingerprint auto-discovery, and surfaced agent auth failures behind RC validation",
"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.",
)
}