From e1cddca2d12cd395465520bb78c4de145a3e24dc Mon Sep 17 00:00:00 2001 From: rcourtman Date: Tue, 7 Jul 2026 10:50:49 +0100 Subject: [PATCH] Prepare v6.0.5 RC2 release packet Refs #1470 Refs #1471 Refs #1476 Refs #1483 Refs #1511 Refs #1515 Refs #1516 Refs #1524 Refs #1533 Refs #1534 --- VERSION | 2 +- deploy/helm/pulse/Chart.yaml | 8 ++-- deploy/helm/pulse/README.md | 2 +- docker-compose.yml | 2 +- docs/RELEASE_NOTES.md | 4 ++ docs/UPGRADE_v6.md | 4 +- docs/release-control/v6/internal/status.json | 16 ++++++- .../subsystems/deployment-installability.md | 17 ++++--- docs/releases/RELEASE_NOTES_v6.0.5-rc.2.md | 45 +++++++++++++++++++ docs/releases/V6_CHANGELOG_v6.0.5-rc.2.md | 35 +++++++++++++++ scripts/install-docker.sh | 2 +- .../installtests/build_release_assets_test.go | 13 ++++++ .../installtests/install_docker_sh_test.go | 1 + 13 files changed, 133 insertions(+), 18 deletions(-) create mode 100644 docs/releases/RELEASE_NOTES_v6.0.5-rc.2.md create mode 100644 docs/releases/V6_CHANGELOG_v6.0.5-rc.2.md diff --git a/VERSION b/VERSION index eb3a7fc0e..72dfd4f35 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.0.5-rc.1 +6.0.5-rc.2 diff --git a/deploy/helm/pulse/Chart.yaml b/deploy/helm/pulse/Chart.yaml index 1977dc9be..79843b093 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 monitoring agent. type: application -version: 6.0.5-rc.1 -appVersion: "6.0.5-rc.1" -icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.0.5-rc.1/docs/images/pulse-logo.svg +version: 6.0.5-rc.2 +appVersion: "6.0.5-rc.2" +icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.0.5-rc.2/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.1/docs/KUBERNETES.md + url: https://github.com/rcourtman/Pulse/blob/v6.0.5-rc.2/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 8b3549139..f66b2bed9 100644 --- a/deploy/helm/pulse/README.md +++ b/deploy/helm/pulse/README.md @@ -1,6 +1,6 @@ # pulse -![Version: 6.0.5-rc.1](https://img.shields.io/badge/Version-6.0.5--rc.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.0.5-rc.1](https://img.shields.io/badge/AppVersion-6.0.5--rc.1-informational?style=flat-square) +![Version: 6.0.5-rc.2](https://img.shields.io/badge/Version-6.0.5--rc.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.0.5-rc.2](https://img.shields.io/badge/AppVersion-6.0.5--rc.2-informational?style=flat-square) Helm chart for deploying the Pulse hub and optional Docker monitoring agent. diff --git a/docker-compose.yml b/docker-compose.yml index 174d00a29..b09811ed9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.8' services: pulse: - image: ${PULSE_IMAGE:-rcourtman/pulse:6.0.5-rc.1} + image: ${PULSE_IMAGE:-rcourtman/pulse:6.0.5-rc.2} container_name: pulse restart: unless-stopped logging: diff --git a/docs/RELEASE_NOTES.md b/docs/RELEASE_NOTES.md index a7032705a..d916a3805 100644 --- a/docs/RELEASE_NOTES.md +++ b/docs/RELEASE_NOTES.md @@ -7,6 +7,10 @@ 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.2.md` +- `docs/releases/V6_CHANGELOG_v6.0.5-rc.2.md` + +For historical v6 support release candidate packets, see: - `docs/releases/RELEASE_NOTES_v6.0.5-rc.1.md` - `docs/releases/V6_CHANGELOG_v6.0.5-rc.1.md` diff --git a/docs/UPGRADE_v6.md b/docs/UPGRADE_v6.md index 9fdd7b962..381b8bd96 100644 --- a/docs/UPGRADE_v6.md +++ b/docs/UPGRADE_v6.md @@ -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.1.md` -- `docs/releases/V6_CHANGELOG_v6.0.5-rc.1.md` +- `docs/releases/RELEASE_NOTES_v6.0.5-rc.2.md` +- `docs/releases/V6_CHANGELOG_v6.0.5-rc.2.md` For the current stable v6 packet and rollout references, see: diff --git a/docs/release-control/v6/internal/status.json b/docs/release-control/v6/internal/status.json index aeb83b763..e55a425bc 100644 --- a/docs/release-control/v6/internal/status.json +++ b/docs/release-control/v6/internal/status.json @@ -7420,7 +7420,21 @@ ] } ], - "work_claims": [], + "work_claims": [ + { + "id": "codex-physical-disk-lane-l15", + "agent_id": "codex-physical-disk", + "summary": "Fix physical disk inventory and SMART temperature cluster #1516/#1483/#1471", + "target_id": "v6-product-lane-expansion", + "claimed_at": "2026-07-07T08:33:32Z", + "heartbeat_at": "2026-07-07T08:33:32Z", + "expires_at": "2026-07-07T11:33:32Z", + "work_item": { + "kind": "lane", + "id": "L15" + } + } + ], "open_decisions": [], "source_of_truth_file": "docs/release-control/v6/internal/SOURCE_OF_TRUTH.md", "resolved_decisions": [ diff --git a/docs/release-control/v6/internal/subsystems/deployment-installability.md b/docs/release-control/v6/internal/subsystems/deployment-installability.md index 6a5653f44..e46f4ce38 100644 --- a/docs/release-control/v6/internal/subsystems/deployment-installability.md +++ b/docs/release-control/v6/internal/subsystems/deployment-installability.md @@ -821,16 +821,19 @@ TLS floor in the dynamic config. ## Current State -The active support prerelease `v6.0.5-rc.1` cut sets the repo-root `VERSION`, +The active support prerelease `v6.0.5-rc.2` 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.1` release +fallback, and Helm chart release metadata to the same `6.0.5-rc.2` 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 queues the v6.0.4 stable line's customer-support fixes for Gemini Patrol -tool-call readiness, remembered-login submit persistence, and Proxmox -SATA/SAT SMART temperature fallback behind RC validation instead of publishing -another same-day stable patch. +tool-call readiness, remembered-login submit persistence, Proxmox SATA/SAT +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, and route-aware Proxmox host URLs +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`, @@ -884,8 +887,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.1` cut, the repo-root compose -default and `scripts/install-docker.sh` fallback must both pin `6.0.5-rc.1` +For the active support prerelease `v6.0.5-rc.2` cut, the repo-root compose +default and `scripts/install-docker.sh` fallback must both pin `6.0.5-rc.2` 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. diff --git a/docs/releases/RELEASE_NOTES_v6.0.5-rc.2.md b/docs/releases/RELEASE_NOTES_v6.0.5-rc.2.md new file mode 100644 index 000000000..9f9336fa0 --- /dev/null +++ b/docs/releases/RELEASE_NOTES_v6.0.5-rc.2.md @@ -0,0 +1,45 @@ +# Pulse v6.0.5-rc.2 Release Notes + +`v6.0.5-rc.2` is a release candidate for the next Pulse v6 patch line. It +follows stable `v6.0.4` and bundles the earlier support fixes for Patrol Gemini +model readiness, remembered-login submit persistence, and Proxmox SMART +temperature fallback for direct SATA/SAT disks. It supersedes `v6.0.5-rc.1` +with the additional support fixes needed for reporter retesting across SSO, +Proxmox auth, physical disk inventory, temperature display severity, PBS backup +polling, and legacy agent updates. + +## Fixes + +- Fixed Patrol readiness checks for Gemini models so tool-call capability is + detected from Gemini candidate parts as well as top-level tool-call lists. +- Fixed the login form so enabling "remember me" during submit persists the + remembered username immediately. +- Fixed Proxmox SMART temperature fallback for direct SATA/SAT disks where + smartctl auto-detection returned disk health but no temperature until retried + with an explicit SAT probe. +- Fixed legacy agent update token recovery for v5-to-v6 update paths that could + not find stored connection state even though a running agent still had usable + connection details. +- Fixed temperature display severity so node, workload, Docker, standalone + agent, and drawer temperature surfaces use configured alert thresholds instead + of hardcoded warning colors. +- Bounded PBS backup polling memory use and added coverage for read-state + polling behavior. +- Fixed physical disk SMART/Proxmox merge identity so NVMe and SMART-enriched + disk records keep their canonical identity and temperature metadata. +- Fixed Proxmox token preservation regressions during install/update flows and + added smoke diagnostics for token setup and validation. +- Fixed legacy OIDC SSO discovery and CSP nonce handling so configured SSO + providers are advertised to the login surface after upgrade. +- Preferred route-aware Proxmox host URLs when generating host setup details. +- Refreshed Docker, Helm, installer, and release-helper metadata for the + release candidate. + +## Upgrade Notes + +Use the normal v6 install or update flow for `v6.0.5-rc.2` 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. diff --git a/docs/releases/V6_CHANGELOG_v6.0.5-rc.2.md b/docs/releases/V6_CHANGELOG_v6.0.5-rc.2.md new file mode 100644 index 000000000..bacdf3196 --- /dev/null +++ b/docs/releases/V6_CHANGELOG_v6.0.5-rc.2.md @@ -0,0 +1,35 @@ +# Pulse v6.0.5-rc.2 + +_This changelog describes the `v6.0.5-rc.2` release candidate compared with +stable `v6.0.4`._ + +## 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. +- 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. +- Proxmox host setup now prefers route-aware host URLs. +- Docker, Helm, installer, and release-helper metadata now track the active + release candidate version. + +## Release Metadata + +- Version: `v6.0.5-rc.2` +- Rollback target: `v6.0.4` +- Promotion path: release candidate from `main` diff --git a/scripts/install-docker.sh b/scripts/install-docker.sh index 9a336de0c..2c64dd686 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.0.5-rc.1" +CANONICAL_DEFAULT_PULSE_VERSION="6.0.5-rc.2" 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 5ce71582f..c3e4be0f1 100644 --- a/scripts/installtests/build_release_assets_test.go +++ b/scripts/installtests/build_release_assets_test.go @@ -328,6 +328,12 @@ func TestCurrentSupportPrereleasePacketTracksInstallMetadata(t *testing.T) { "remembered-login submit persistence", "Proxmox SMART temperature fallback", "direct SATA/SAT disks", + "legacy agent update token recovery", + "temperature display severity", + "PBS backup polling", + "Proxmox token preservation", + "legacy OIDC SSO discovery", + "route-aware Proxmox host URLs", "rollback target for this release candidate is `v"+previous+"`", ) assertFileContainsAll(t, changelogPath, @@ -338,6 +344,13 @@ func TestCurrentSupportPrereleasePacketTracksInstallMetadata(t *testing.T) { "Remembered-login state now persists", "Proxmox SMART temperature collection", "explicit SAT probe", + "Legacy agent update token recovery", + "Temperature displays now resolve configured alert thresholds", + "PBS backup polling now keeps a bounded read-state working set", + "Physical disk SMART and Proxmox records now merge", + "Proxmox install/update flows now preserve generated token state", + "Legacy OIDC SSO discovery now persists", + "Proxmox host setup now prefers route-aware host URLs", ) assertFileContainsAll(t, repoFile("docs", "RELEASE_NOTES.md"), "docs/releases/RELEASE_NOTES_v"+version+".md", diff --git a/scripts/installtests/install_docker_sh_test.go b/scripts/installtests/install_docker_sh_test.go index 8b8b3782b..682b895d9 100644 --- a/scripts/installtests/install_docker_sh_test.go +++ b/scripts/installtests/install_docker_sh_test.go @@ -229,6 +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, and route-aware Proxmox host URLs 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.", ) }