Update docker.io/rcourtman/pulse Docker tag to v5.1.29
No problems upgrading the Docker container with a Docker compose yaml file by means of Watchtower DevOps resp. GitOps with dependency update facilitated by Mend's Renovate Bot.
Including updating all docker and host agents manually.
This MR contains the following updates:
| Package | Update | Change |
|---|---|---|
| docker.io/rcourtman/pulse | patch | 5.1.28 → 5.1.29 |
Release Notes
rcourtman/Pulse (docker.io/rcourtman/pulse)
v5.1.29: Pulse v5.1.29
✅ Release Asset Validation: PASSED
Status: Live release assets validated ✅
Validated: 2026-05-01 14:44:18 UTC
Workflow: Pulse Release Pipeline #25217423838
Validation Summary
- All required assets present ✓
- Checksums verified ✓
- Version strings correct ✓
- Binary architectures validated ✓
What's Changed
- Stable v5.1.29 maintenance release on
release/5.1.
Alerts and notifications
- Stop re-notification spam when the alert cooldown is set to 0 (Fixes #1444). Behavior change: cooldown=0 (UI: "Disabled") now means "first-time notification only" instead of "re-notify every metric tick." If you want periodic re-notifications, set a positive cooldown (in minutes). Level escalations (warning to critical) and acknowledged alerts are unaffected.
- Stop scheduled RAID scrubs from firing "RAID array is rebuilding" alerts every 30 seconds on Synology DSM and similar (Fixes #1446). The mdadm parser now uses the in-progress operation from
/proc/mdstat(recovery, check, resync, reshape) to distinguish a real rebuild from routine maintenance. - Stop test-config SMTP sends from leaking stale auth into the shared SMTP manager (Fixes #1440). A relay-mode test (port 25, no creds) on a deployment that previously had authenticated SMTP saved no longer fails with "AUTH not available."
Updates and installer
- Make the update progress modal closable so a stuck update no longer blacks out the page with no way to dismiss it: the X button is no longer hidden until completion, Escape closes the modal, and clicking the backdrop dismisses it. The server-side update keeps running; closing only unmounts the modal.
- Preflight disk space before Pulse self-updates so a low-space target fails fast instead of leaving a half-installed binary.
- Stop
release/5.1LXC installs from defaulting to the RC channel (Refs #1435). - Align infrastructure discovery with the Patrol interval (Fixes #1425, with the Ollama change below). The infra discovery service was auto-running every 5 min regardless of the user's Patrol schedule.
Agents and integrations
- Add
--agent-id-file(andPULSE_AGENT_ID_FILEenv var) so containerized agents keep a stable identity across container recreation by persisting the resolved AgentID to a mounted volume (Refs #1447). Default behavior unchanged for non-containerized installs (still derives from/etc/machine-id). - Carry forward previous snapshots for guests that can't be polled this cycle (Refs #1437). New snapshots now appear in the Backups tab even when one VM in the cluster is intermittently unresponsive; previously a single failed poll could blank the entire snapshot list.
- Surface unified-agent filesystems in the linked VM/container Overview (Fixes #1438). ZFS-formatted partitions and other mounts that qemu-guest-agent can't reliably report (notably on PBS) now appear in the FILESYSTEMS card alongside the qemu-reported entries.
- Pass
keep_alive=30sto Ollama so the model unloads between Patrol runs (Fixes #1425). Ollama's 5-minute default kept being refreshed by each Pulse request, so on busy servers the model never released RAM. - Fix SSE stream parser dropping tool calls on EOF (Fixes #1411). Per Go's
io.Readercontract, a Read can returnn>0andio.EOFtogether; the previous loop discarded those final bytes, which could include tool call deltas, so the agentic loop sawtool_calls=0even when the model produced them.
QNAP
- Defer QNAP autorun until the encrypted data volume unlocks (Fixes #1422). The agent no longer fails to start after reboot on QNAPs with encrypted volumes.
- Persist QNAP agent updates to the data volume so they survive across reboots (Fixes #1420). Auto-updates were previously silently reverted because
/usr/local/binis a RAM disk that gets wiped on every reboot.
UI
- Preserve Proxmox guest drawer state across refresh ticks (Fixes #1427). The Discovery tab no longer snaps back to Overview, graph hover tooltips no longer flicker, and scroll position inside the expanded row is retained.
- Merge unified host and Docker rows when their IDs diverge (Fixes #1421). A QNAP unified agent that produced different host-side and docker-side IDs now correctly shows as a single row instead of two.
Security
- DOMPurify 3.3.3 → 3.4.1, clearing four sanitizer-bypass advisories (CVE-2026-41238 / 41239 / 41240 and GHSA-39q2-94rc-95cp): SAFE_FOR_TEMPLATES bypass in RETURN_DOM mode, FORBID_TAGS bypass via function-form ADD_TAGS predicate, prototype pollution to XSS via CUSTOM_ELEMENT_HANDLING, and ADD_TAGS short-circuit FORBID_TAGS bypass.
- Pin Go toolchain to 1.25.9 and bump
x/netto 0.51.0, clearing 11 govulncheck findings: crypto/x509 authentication bypass and panic conditions, crypto/tls TLS 1.3 KeyUpdate DoS, archive/tar unbounded allocation, html/template XSS,os.Rootfilesystem escape, net/url IPv6 parse, and x/net HTTP/2 frame panic (GO-2026-4559).
Project
- Document the issue-first contribution policy in README, CONTRIBUTING, and a new pull-request template. Pulse is single-maintainer; unsolicited external MRs are not part of the contribution flow.
Installation
If you run Pulse via Docker or Compose, update to rcourtman/pulse:5.1.29.
See the Installation Guide for other deployment methods.