Prepare v6.3.1 stable patch release

This commit is contained in:
rcourtman
2026-08-23 10:38:19 +01:00
parent ddf081a55a
commit e51618a9ce
13 changed files with 167 additions and 25 deletions
+1 -1
View File
@@ -1 +1 @@
6.3.0
6.3.1
+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.3.0
appVersion: "6.3.0"
icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.3.0/docs/images/pulse-logo.svg
version: 6.3.1
appVersion: "6.3.1"
icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.3.1/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.3.0/docs/KUBERNETES.md
url: https://github.com/rcourtman/Pulse/blob/v6.3.1/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.3.0](https://img.shields.io/badge/Version-6.3.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.3.0](https://img.shields.io/badge/AppVersion-6.3.0-informational?style=flat-square)
![Version: 6.3.1](https://img.shields.io/badge/Version-6.3.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.3.1](https://img.shields.io/badge/AppVersion-6.3.1-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.3.0}
image: ${PULSE_IMAGE:-rcourtman/pulse:6.3.1}
container_name: pulse
restart: unless-stopped
logging:
+5 -2
View File
@@ -7,10 +7,14 @@ For historical v4 notes that previously lived in this repo, see:
`docs/releases/RELEASE_NOTES_v4.md`
For the current stable v6 packet, see:
- `docs/releases/RELEASE_NOTES_v6.3.1.md`
- `docs/releases/V6_CHANGELOG_v6.3.1.md`
For the preceding stable v6 packet, see:
- `docs/releases/RELEASE_NOTES_v6.3.0.md`
- `docs/releases/V6_CHANGELOG_v6.3.0.md`
For the preceding stable v6 packet, see:
For earlier stable v6.2 packets, see:
- `docs/releases/RELEASE_NOTES_v6.2.1.md`
- `docs/releases/V6_CHANGELOG_v6.2.1.md`
@@ -18,7 +22,6 @@ For historical v6.3 release candidate packets, see:
- `docs/releases/RELEASE_NOTES_v6.3.0-rc.6.md`
- `docs/releases/V6_CHANGELOG_v6.3.0-rc.6.md`
For earlier stable v6.2 packets, see:
- `docs/releases/RELEASE_NOTES_v6.2.0.md`
- `docs/releases/V6_CHANGELOG_v6.2.0.md`
+6 -3
View File
@@ -4,10 +4,15 @@ This guide covers practical upgrade steps for existing Pulse installs moving to
For the current stable v6 packet, see:
- `docs/releases/RELEASE_NOTES_v6.3.1.md`
- `docs/releases/V6_CHANGELOG_v6.3.1.md`
For the preceding stable v6 packet, see:
- `docs/releases/RELEASE_NOTES_v6.3.0.md`
- `docs/releases/V6_CHANGELOG_v6.3.0.md`
For the preceding stable v6 packet, see:
For earlier stable v6.2 packets, see:
- `docs/releases/RELEASE_NOTES_v6.2.1.md`
- `docs/releases/V6_CHANGELOG_v6.2.1.md`
@@ -17,8 +22,6 @@ For historical v6.3 release candidate packets, see:
- `docs/releases/RELEASE_NOTES_v6.3.0-rc.6.md`
- `docs/releases/V6_CHANGELOG_v6.3.0-rc.6.md`
For earlier stable v6.2 packets, see:
- `docs/releases/RELEASE_NOTES_v6.2.0.md`
- `docs/releases/V6_CHANGELOG_v6.2.0.md`
@@ -1660,7 +1660,23 @@ 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 stable `v6.3.0` cut sets the repo-root `VERSION`,
The active stable `v6.3.1` 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.3.1` release version. This patch
release uses the stable hotfix path with `rollback_version=v6.3.0`,
`hotfix_exception=true`, a release-owner reason, and no fabricated same-version
RC tag. The emergency reason is active customer harm across notification
delivery recovery, Docker command continuity, local subscription setup, and
Synology Docker host load. The exact pushed `main` SHA must pass the
no-publication dry run and integrated candidate checks before the same SHA is
dispatched through the single-build publication workflow. No governed
mobile-facing path changed from `v6.3.0`, so the release decision is
`no-mobile-impact` and no companion build or store rollout is required.
Windows Authenticode remains mandatory for `v6.3.1` unless the release owner
records a new explicit version-bound unsigned-Windows exception; the prior
`v6.3.0` decision cannot be reused for this patch.
The preceding stable `v6.3.0` cut set 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.3.0` release version.
This stable minor release uses `promoted_from_tag=v6.3.0-rc.6`,
@@ -2036,13 +2052,15 @@ 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 stable `v6.3.0` cut, the repo-root compose default and
`scripts/install-docker.sh` fallback must both pin `6.3.0` until the next
For the active stable `v6.3.1` cut, the repo-root compose default and
`scripts/install-docker.sh` fallback must both pin `6.3.1` until the next
governed release moves them forward. The stable promotion guard remains in
force and rejects leftover `-rc.` defaults. 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
release-packet blocker.
For the preceding stable `v6.3.0` cut, the repo-root compose default and
`scripts/install-docker.sh` fallback both pinned `6.3.0`.
For the preceding stable `v6.2.1` cut, the repo-root compose default and
`scripts/install-docker.sh` fallback must both pin `6.2.1`. The stable
promotion guard remains in force and rejects leftover `-rc.` defaults. Each
+72
View File
@@ -0,0 +1,72 @@
# Pulse v6.3.1 Release Notes
`v6.3.1` is a stable patch release for the Pulse v6 line. It follows stable
`v6.3.0` and contains focused corrections for alert delivery, Unified Agent
control, local subscription providers, and Docker monitoring overhead.
## Highlights
- Recover or dismiss terminal notification failures without losing delivery
history, while disabled PBS offline alerts remain silent.
- Docker commands recover safely after token rotation, and Synology hosts avoid
repeated full-daemon storage scans on every report.
- Local subscription providers now resolve and diagnose their CLIs as the
actual Pulse service account.
## Improved
- Notification delivery history now exposes confirmed retry and dismiss
operations for terminal failures. Retried items receive a fresh bounded
attempt budget while their prior audit history remains available.
- Refused governed actions record the resource, capability, stable refusal
code, and the specific Docker command-agent lookup that missed.
- Standard systemd installs give the Pulse service account a private CLI home
and a deterministic executable search path. Explicit provider CLI path
overrides remain available for non-standard layouts.
- Docker host storage totals are refreshed on a bounded 15-minute cadence and
retain the last good aggregate when a refresh fails. Live host and container
metrics continue on the configured reporting interval.
## Fixed
- Disabled PBS offline alerts no longer enter the notification dispatch path;
enabled alerts and recovery notifications retain their existing lifecycle.
- Docker start, stop, restart, remove, and update commands recover after an
agent reporting-token rotation by proving the exact tenant, agent ID, and
canonical hostname rather than weakening identity matching.
- Docker update preflight once again routes through the Unified Agent, and
terminal digest-drift refusals no longer strand later update attempts.
- Local subscription setup failures now distinguish a CLI that is missing or
not logged in for the Pulse service account from provider network
reachability failures.
- Synology DSM Docker monitoring no longer launches a verbose daemon-wide disk
usage inventory every 30 seconds or immediately retries a slow failed scan.
## Release Qualification
- The release uses the emergency stable-patch path because the fixes address
active customer harm across alert delivery, infrastructure control, local AI
setup, and Docker host load without introducing a same-version RC.
- The exact pushed release SHA must pass the no-publication Release Dry Run and
its integrated exact-SHA candidate checks before that same SHA is submitted
to the single-build publication workflow.
- Authenticode signing is required through SignPath. The rehearsal must return
all three Windows Unified Agent binaries with valid signatures from the
configured production signer before the candidate can advance.
- No mobile-facing path changed between `v6.3.0` and this release, so the mobile
decision is `no-mobile-impact`; no companion build or store rollout is
required.
## Upgrade Notes
Use the normal v6 install or update flow for `v6.3.1`. Existing configurations
remain valid and no manual data migration is required.
The rollback target is `v6.3.0`. The exact rollback reinstall command is:
```bash
./scripts/install.sh --version v6.3.0
```
Paid Pulse Pro, Relay, and eligible legacy customers should continue to use the
private download page and private runtime image for paid runtime features.
+43
View File
@@ -0,0 +1,43 @@
# Pulse v6.3.1
_This changelog describes stable `v6.3.1` compared with stable `v6.3.0`._
## Changed
- Terminal notification failures can be retried with a fresh bounded budget or
dismissed while retaining their delivery audit history.
- Governed-action refusals identify the resource, capability, refusal code, and
missed Docker command-agent lookup in the server journal.
- Systemd installs provide a service-account CLI home and deterministic search
path for local subscription providers, with explicit path overrides for
custom installations.
- Full Docker daemon storage inventory is cached for 15 minutes, uses a single
refresh attempt, and retains the last successful aggregate on failure.
## Fixed
- Disabled PBS offline alerts no longer dispatch notifications.
- Docker lifecycle and update operations recover safely after reporting-token
rotation through exact tenant, agent-ID, and canonical-hostname admission.
- Docker update preflight again uses the Unified Agent, and terminal
digest-drift receipts no longer block a later attempt.
- Local subscription setup reports missing executable and service-account login
state instead of misclassifying those failures as provider reachability.
- Synology DSM hosts avoid repeated verbose daemon-wide disk-usage scans on the
normal live-report cadence.
## Release Metadata
- Version: `v6.3.1`
- Previous stable: `v6.3.0`
- Rollback target: `v6.3.0`
- Rollback command: `./scripts/install.sh --version v6.3.0`
- Promotion path: emergency stable patch from `main`, using the single-build
release workflow after an exact-SHA no-publication dry run
- Emergency reason: active customer harm across notification recovery, Docker
control, local subscription setup, and Synology Docker host load
- Windows signing decision: Authenticode signing is required through SignPath;
the exact candidate must prove the configured production signer before
publication
- Mobile decision: `no-mobile-impact`; no governed mobile-facing path changed
from `v6.3.0`, so no companion build or public store rollout is required
+6 -3
View File
@@ -4,10 +4,15 @@ This guide covers practical upgrade steps for existing Pulse installs moving to
For the current stable v6 packet, see:
- `docs/releases/RELEASE_NOTES_v6.3.1.md`
- `docs/releases/V6_CHANGELOG_v6.3.1.md`
For the preceding stable v6 packet, see:
- `docs/releases/RELEASE_NOTES_v6.3.0.md`
- `docs/releases/V6_CHANGELOG_v6.3.0.md`
For the preceding stable v6 packet, see:
For earlier stable v6.2 packets, see:
- `docs/releases/RELEASE_NOTES_v6.2.1.md`
- `docs/releases/V6_CHANGELOG_v6.2.1.md`
@@ -17,8 +22,6 @@ For historical v6.3 release candidate packets, see:
- `docs/releases/RELEASE_NOTES_v6.3.0-rc.6.md`
- `docs/releases/V6_CHANGELOG_v6.3.0-rc.6.md`
For earlier stable v6.2 packets, see:
- `docs/releases/RELEASE_NOTES_v6.2.0.md`
- `docs/releases/V6_CHANGELOG_v6.2.0.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.3.0"
CANONICAL_DEFAULT_PULSE_VERSION="6.3.1"
resolve_default_pulse_version() {
if [ -n "${PULSE_IMAGE_VERSION:-}" ]; then
@@ -742,8 +742,8 @@ func TestCurrentStablePatchReleasePacketTracksInstallMetadata(t *testing.T) {
"`v"+previous+"`",
"Use the normal v6 install or update flow",
"integrated exact-SHA candidate checks",
"not Authenticode-signed",
"Unknown Publisher",
"Authenticode signing is required through SignPath",
"valid signatures from the configured production signer",
"`no-mobile-impact`",
"rollback target is `v"+previous+"`",
)
@@ -751,8 +751,8 @@ func TestCurrentStablePatchReleasePacketTracksInstallMetadata(t *testing.T) {
"Version: `v"+version+"`",
"Rollback target: `v"+previous+"`",
"Promotion path: emergency stable patch from `"+releaseBranch+"`",
"Windows signing decision: version-bound unsigned-Windows exception",
"not Authenticode-signed",
"Windows signing decision: Authenticode signing is required through SignPath",
"configured production signer before publication",
"Mobile decision: `no-mobile-impact`",
)
assertFileContainsAll(t, repoFile("docs", "RELEASE_NOTES.md"),
@@ -302,8 +302,8 @@ func TestInstallDockerProofTracksStablePatchReleaseContract(t *testing.T) {
"This patch release uses the stable hotfix path with `rollback_version=v"+previous+"`, `hotfix_exception=true`, a release-owner reason, and no fabricated same-version RC tag.",
"active customer harm",
"`no-mobile-impact`",
"version-bound unsigned-Windows exception",
"not Authenticode-signed",
"Windows Authenticode remains mandatory for `v"+version+"`",
"prior `v"+previous+"` decision cannot be reused for this patch",
"For the active stable `v"+version+"` cut, the repo-root compose default and `scripts/install-docker.sh` fallback must both pin `"+version+"`",
)
}