✅ Release Asset Validation (Post-Publish): PASSED
Assets were revalidated after publication due to a release edit.
Status: Live release assets re-validated ✅
Validated: 2026-07-28 15:42:58 UTC
Workflow: Pulse Release Pipeline #325
Validation Summary
- All required assets present ✓
- Checksums verified ✓
- Version strings correct ✓
- Binary architectures validated ✓
Pulse v6.2.0-rc.2 Release Notes
v6.2.0-rc.2 is the second release candidate on the v6.2.0 line, following
v6.2.0-rc.1. It is a hardening and bugfix candidate: it closes the
highest-impact defects reported against v6.1.x — nightly service outages from
the unattended updater, missing PBS backups on multi-cluster estates, broken
Proxmox agent installs, and a DNS query flood — and carries the fixes from an
adversarial review pass over every change since the previous candidate.
Highlights
- Unattended updates no longer stop Pulse in the night. The update timer fired
twice per day and a failed update left the service down until someone
restarted it; the timer now runs once, failures always restart the service,
and already-deployed installations repair their own stale update units on
the next update cycle. - PBS backups are attributed to the right guest on estates with more than one
Proxmox cluster. VMIDs that exist on both clusters no longer show "no
backup" or an ancient backup age when the real backups are in the root
namespace (#1639). - Installing the agent on a Proxmox host from Settings → Infrastructure
works again, including combined PVE+PBS hosts, and failures are reported
loudly in the installer output instead of a buried journal warning (#1644). - The Patrol model readiness check survives reverse proxies with short read
timeouts, reports an interrupted check neutrally instead of blaming the
model, and never renders a proxy's HTML error page into the results (#1640). - Pulse no longer floods the local resolver. A discovery-policy check that
resolved every cluster node's hostname on every 10-second poll now uses the
shared DNS cache, cutting hundreds of thousands of daily queries to a
handful (#1638).
Fixed
- Auto-update reliability. The generated
pulse-update.timercarried two
OnCalendarlines and attempted two updates per day; it now runs once
daily in the 02:00–06:00 window. Asset staging is guarded: a failed copy or
write can no longer install a broken helper or a truncated systemd unit
while reporting success. Existing installations whose hardened update unit
cannot rewrite its own files migrate automatically through a transient
systemd-rununit on their next update; if the migration cannot run, the
update itself still completes as before. - PBS backup attribution across clusters (#1639). Snapshot-to-guest
matching now uses each cluster's own view of its PBS storage and a
submission-source learner that only trusts evidence when every candidate
cluster is visible, so shared tokens or synced datastores cannot attribute
one cluster's backups to another. Evidence survives partial poll failures
instead of flapping. Backup-age alerts no longer cross-match a PBS
connection name against a similarly named node. - Proxmox agent installation (#1644). Install tokens minted from the main
installer can now register the PVE or PBS source the installer detects —
one registration per product type, bound to the first presenting hostname,
and only within 24 hours of minting. A refused registration aborts the
install visibly. The API setup script's closing message points at
Settings → Infrastructure instead of a page that no longer exists, and
its error branch reports invalid or expired setup tokens instead of
claiming success. The post-install check waits for the agent's first report
instead of warning two seconds in. - Patrol readiness checks (#1640). The readiness endpoint streams
keepalive bytes from the first moment of the run, so proxies with 30-second
read timeouts see a live connection for the full multi-probe evaluation. A
connection cut mid-run is classified as interrupted, keeps the evidence
from completed scenarios, and shows a neutral "check did not complete"
banner; readiness is only reported from a completed verdict, and an
interrupted check never blocks Patrol from running. A crash inside a
provider integration now fails the check instead of the whole process, and
the browser client no longer prints raw non-JSON error bodies into the UI. - DNS and SSH churn (#1638). The cluster endpoint discovery-policy check
resolves hostnames through the shared cached resolver instead of a raw
lookup per node per poll, and the link-local blocklist is enforced against
the same resolver view the connection dial uses. Failed SSH temperature
probes and host-key scans back off with decay instead of retrying every 10
seconds, and the backoff clears when the SSH key changes or settings are
saved. - Alert threshold editors (#1642). Each metric now has an explicit On/Off
toggle in the per-resource override editor, the global defaults row, and
the bulk edit dialog — no more typing -1. Values disabled under older
guidance that said to use 0 render consistently as Off everywhere, turning
a metric back on always produces a working threshold, and the toggle is
reachable by keyboard. - SSO callback URLs. OIDC provider cards show the provider's callback /
redirect URL with a copy button, and all SSO URLs are derived from the
configured public URL or, when none is set, from the request that reached
Pulse — never alocalhostguess that fails at the identity provider. - LXC memory metrics fall back to the cluster-resources listing again when
per-guest RRD data is unavailable, restoring memory readings lost on some
PVE configurations. - Agent command execution honors the configuration gate at channel admission,
closing a window where a disabled command channel could still admit an
agent.
Changed
- Platform table metric bars are colored from the configured alert thresholds
rather than fixed cutoffs. - The unused
autoUpdateTimeandautoUpdateCheckIntervalsettings were
removed from the system settings API and UI; they were stored but never
drove the update schedule. Existing configurations containing them load
unchanged, and API clients that still send them are accepted.
Docs
- New Microsoft Entra ID (Azure AD) SSO integration guide covering app
registration, group claims by Object ID, role mapping, theAADSTS650053
scope pitfall, and group-overage protection (#1635), contributed by
@drgimpfen and expanded.
Installation
Docker (recommended):
docker pull rcourtman/pulse:6.2.0-rc.2Docker Compose:
Update your docker-compose.yml to use rcourtman/pulse:6.2.0-rc.2
See the Installation Guide for complete setup instructions.
Paid Pulse Pro, Relay, and eligible legacy customers: public GitHub release assets and the public rcourtman/pulse Docker image are community builds. They do not include the private Pulse Pro runtime hooks. Use https://pulserelay.pro/download.html with your activation key to get the private Pulse Pro Docker image or Linux/LXC archive.
Promotion Metadata
- Promotion channel: rc
- Candidate stable tag: v6.2.0-rc.2
- Promoted prerelease tag: n/a
- Rollback target: v6.1.2
- Rollback command:
./scripts/install.sh --version v6.1.2 - Hotfix exception: false
- Windows Authenticode required: false
- Unsigned Windows exception: false