mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-10 02:25:56 +00:00
Prepare v6.4.0-rc.13 release
Package the bounded stopped-container inspection cadence and same-name Proxmox agent-link correction as the next governed release candidate. Keep stable pointers on v6.3.2 and record unchanged mobile compatibility and Windows signing posture.\n\nContract-Neutral: versioned release metadata only; runtime changes landed in preceding commits
This commit is contained in:
@@ -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.4.0-rc.12
|
||||
appVersion: "6.4.0-rc.12"
|
||||
icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.4.0-rc.12/docs/images/pulse-logo.svg
|
||||
version: 6.4.0-rc.13
|
||||
appVersion: "6.4.0-rc.13"
|
||||
icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.4.0-rc.13/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.4.0-rc.12/docs/KUBERNETES.md
|
||||
url: https://github.com/rcourtman/Pulse/blob/v6.4.0-rc.13/docs/KUBERNETES.md
|
||||
- name: Support
|
||||
url: https://github.com/rcourtman/Pulse/discussions
|
||||
artifacthub.io/maintainers: |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# pulse
|
||||
|
||||
  
|
||||
  
|
||||
|
||||
Helm chart for deploying the Pulse hub and optional Docker, Kubernetes, or OpenShift monitoring agent.
|
||||
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ version: '3.8'
|
||||
|
||||
services:
|
||||
pulse:
|
||||
image: ${PULSE_IMAGE:-rcourtman/pulse:6.4.0-rc.12}
|
||||
image: ${PULSE_IMAGE:-rcourtman/pulse:6.4.0-rc.13}
|
||||
container_name: pulse
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
|
||||
@@ -7,8 +7,8 @@ For historical v4 notes that previously lived in this repo, see:
|
||||
`docs/releases/RELEASE_NOTES_v4.md`
|
||||
|
||||
For the current v6 release candidate packet (the current v6 support release candidate packet), see:
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.12.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.12.md`
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.13.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.13.md`
|
||||
|
||||
For the current stable v6 packet, see:
|
||||
- `docs/releases/RELEASE_NOTES_v6.3.2.md`
|
||||
@@ -19,10 +19,12 @@ For the preceding stable v6 packet, see:
|
||||
- `docs/releases/V6_CHANGELOG_v6.3.1.md`
|
||||
|
||||
For the preceding v6.4 release candidate packet, see:
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.11.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.11.md`
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.12.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.12.md`
|
||||
|
||||
For earlier v6.4 release candidate packets, see:
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.11.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.11.md`
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.10.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.10.md`
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.9.md`
|
||||
|
||||
+6
-4
@@ -4,8 +4,8 @@ This guide covers practical upgrade steps for existing Pulse installs moving to
|
||||
|
||||
For the current v6 release candidate packet (the current v6 support release candidate packet), see:
|
||||
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.12.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.12.md`
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.13.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.13.md`
|
||||
|
||||
For the current stable v6 packet, see:
|
||||
|
||||
@@ -19,10 +19,12 @@ For the preceding stable v6 packet, see:
|
||||
|
||||
For the preceding v6.4 release candidate packet, see:
|
||||
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.11.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.11.md`
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.12.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.12.md`
|
||||
|
||||
For earlier v6.4 release candidate packets, see:
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.11.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.11.md`
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.10.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.10.md`
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.9.md`
|
||||
|
||||
@@ -1842,10 +1842,10 @@ 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 prerelease `v6.4.0-rc.12` cut sets the repo-root `VERSION`, repo-root
|
||||
The active prerelease `v6.4.0-rc.13` 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.4.0-rc.12` release version. It
|
||||
follows `v6.4.0-rc.11` on the published `v6.4.0` candidate line. This
|
||||
Helm chart release metadata to the same `6.4.0-rc.13` release version. It
|
||||
follows `v6.4.0-rc.12` on the published `v6.4.0` candidate line. This
|
||||
prerelease keeps
|
||||
`rollback_version=v6.3.2`, publishes a versioned public GitHub prerelease
|
||||
plus versioned Docker and Helm artifacts, and does not move stable/latest
|
||||
@@ -1874,6 +1874,12 @@ and the Unraid sentinel boundary now keeps empty array slots neutral through
|
||||
both agent collection and server monitoring. The final cutoff also prevents
|
||||
standalone Proxmox provider instances with reused short node names from sharing
|
||||
one linked agent without exact endpoint or TLS-fingerprint proof.
|
||||
The rc.13 corrective set bounds unchanged stopped-container detail inspection
|
||||
to a 15-minute refresh ceiling while preserving live running and lifecycle
|
||||
state, which removes one daemon call per historical container from each normal
|
||||
30-second report. It also restores same-name standalone Proxmox host-agent
|
||||
links when unique provider-observed interface addresses disambiguate the sites,
|
||||
while reused addresses remain ambiguous and fail closed.
|
||||
It also checkpoints a crash-safe active-state recovery envelope after durable
|
||||
lifecycle failure and prevents any Pulse host interface from satisfying an
|
||||
external dead-man signal. The changes since
|
||||
@@ -2425,8 +2431,8 @@ 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 prerelease `v6.4.0-rc.12` cut, the repo-root compose default and
|
||||
`scripts/install-docker.sh` fallback must both pin `6.4.0-rc.12` until the next
|
||||
For the active prerelease `v6.4.0-rc.13` cut, the repo-root compose default and
|
||||
`scripts/install-docker.sh` fallback must both pin `6.4.0-rc.13` until the next
|
||||
governed stable cut moves them forward. 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
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
# Pulse v6.4.0-rc.13 Release Notes
|
||||
|
||||
`v6.4.0-rc.13` reduces Docker daemon load on hosts with many stopped containers and restores correct host-agent links when separate standalone Proxmox sites reuse the same node name. It retains the complete v6.4 candidate feature set.
|
||||
|
||||
## What's improved
|
||||
|
||||
- **Lower Docker load for historical containers** - Unchanged stopped-container details are refreshed every 15 minutes instead of being re-inspected every 30 seconds, while running and changing containers remain live.
|
||||
- **Correct same-name Proxmox agent links** - Separate standalone sites that reuse a short node name can link to their own host agents through unique provider-observed addresses without borrowing another site's agent.
|
||||
- **Reliable in-app updates during GitHub rate limits** - The Atom fallback supplies the exact signed release archive for the current Linux architecture, so the confirmation dialog can start the update instead of receiving only a version number.
|
||||
- **Accurate Unraid empty-slot handling** - Sentinel entries used for unassigned array slots remain neutral across agent collection and monitoring, preventing empty slots from being reported as real disks or degraded storage.
|
||||
- **Atomic credential lifecycle** - API token creation, agent enrollment, and agent removal roll back live state when durable persistence fails, preventing undisclosed credentials, accidental eviction, or revocations that reverse after restart.
|
||||
- **Accurate Anthropic budgets** - Current Opus and Haiku versions use version-specific first-party rates, so stale estimates no longer stop Patrol early or understate current Haiku usage.
|
||||
- **Stronger disk identity and risk** - PVE and agent observations of the same RAID volume merge across normalized serial and WWN forms, while dismissed TrueNAS SMART alerts continue to flag uniquely identified disks with critical hardware evidence.
|
||||
- **More stable incident investigation** - Mobile alert timelines keep context and actions together, history charts expose readable axes, grouped charts synchronize hover timestamps, and View preferences expand inline without covering tables.
|
||||
- **Durable alert lifecycles** - Alert history and active state rebuild from the event log after restarts, with persisted identities migrated automatically and false all-clear states prevented during hydration.
|
||||
- **Better notification control** - Alerts can be snoozed individually, maintenance can recur by scope, escalation repeats can target specific destinations, delivery routes can filter by severity, and informational events remain distinct from warnings.
|
||||
- **Earlier capacity warnings** - Rolling metric windows and predictive storage forecasts surface sustained pressure and likely exhaustion before a single threshold breach becomes an outage.
|
||||
- **More accurate host disk health** - SMART sector, media, endurance, spare, and CRC thresholds can be tuned per host, while empty Unraid slots remain neutral and Proxmox-linked agents avoid duplicate disk-risk alerts.
|
||||
- **External availability monitoring** - Dead-man checks can notify when an expected external signal stops arriving, with configuration and recovery state persisted.
|
||||
- **Clearer infrastructure details** - Resource drawers, Proxmox backup views, and alert timelines present more complete and consistent context across desktop and narrow layouts.
|
||||
- **Phone-friendly Settings** - On narrow layouts, phone Settings use a searchable index, sticky section title, compact controls, and full-size touch targets.
|
||||
- **Safer governed actions** - Docker action results carry independently observed post-action state, while deployment enrollment and credential changes persist atomically.
|
||||
- **Safer recovery and watchdog isolation** - Alert lifecycle failures retain a crash-safe restart snapshot until SQLite is durably repaired, and external dead-man targets fail closed when any address points to a Pulse host interface.
|
||||
|
||||
## Before you upgrade
|
||||
|
||||
- This is a release candidate. Stable installations remain on v6.3.2 unless an operator explicitly selects this version.
|
||||
- Existing configurations remain valid. Alert identity and history migrations run automatically, with no manual data migration required.
|
||||
- Existing Pulse Mobile iOS build 12 and Android versionCode 9 remain compatible. The new `alert_fired` push uses the already-supported `view_alert` action, and the server and Unified Agent corrections in this candidate do not alter mobile routes, pairing, push, or resource payload contracts.
|
||||
- Windows Unified Agent binaries are checksum- and detached-signature-verified but are not Authenticode-signed, so Windows may show an Unknown Publisher warning.
|
||||
|
||||
## Known issues
|
||||
|
||||
- Windows Authenticode signing remains unavailable for this candidate. Use the published checksum and detached signature when verifying Windows agent downloads.
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"captures": []
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
# Pulse v6.4.0-rc.13
|
||||
|
||||
This changelog describes the changes since `v6.4.0-rc.12`. The candidate also retains the complete v6.4 alerting and reliability change set summarized below.
|
||||
|
||||
## Added
|
||||
|
||||
- Rolling-window metric evaluation supports sustained CPU and memory policies, including workload inheritance from host defaults.
|
||||
- Predictive storage-capacity alerts estimate exhaustion risk from retained usage history and recover when the forecast clears.
|
||||
- Per-alert snooze, recurring scoped maintenance, destination severity routing, repeatable escalation schedules, and external dead-man monitoring expand operator control over alert delivery.
|
||||
- Resolved host SMART policy covers health failure, sector counters, media errors, remaining life, NVMe spare, and CRC growth without creating duplicate Proxmox disk alerts.
|
||||
- Canonical `alert_fired` push events use the existing mobile `view_alert` navigation action.
|
||||
- Informational alerts now retain an explicit `info` severity through configuration, persistence, API responses, filtering, notification routing, and display.
|
||||
|
||||
## Changed
|
||||
|
||||
- Unchanged inactive Docker container details are cached for 15 minutes; running, paused, restarting, changed, and incompletely described containers remain on the live inspection path.
|
||||
- Standalone Proxmox node-to-agent reconciliation can use a unique provider-observed endpoint address when node names are ambiguous, while reused addresses remain unlinked.
|
||||
- GitHub Atom fallback parsing uses the feed structure directly, retains release timestamps, and selects the current Linux architecture's release archive from a validated version tag.
|
||||
- Unraid disk-state normalization uses one canonical sentinel boundary across host-agent collection and server monitoring.
|
||||
- Standalone Proxmox provider instances require an exact endpoint or matching TLS fingerprint before sharing a linked host agent across node views.
|
||||
- API token creation, agent install issuance, and agent-removal revocation share an atomic live-and-durable inventory boundary.
|
||||
- Anthropic pricing distinguishes current Opus and Haiku model generations from legacy aliases when estimating retained usage and enforcing budgets.
|
||||
- Cross-source disk identity normalizes complete serial and WWN framing without truncating hardware identifiers.
|
||||
- Alert investigation on narrow layouts uses a dedicated timeline dialog, while shared history charts synchronize hover timestamps and retain readable axes.
|
||||
- The append-only event log is the authority for alert history and active lifecycle reconstruction, including restart recovery, acknowledgement, resolution, suppression, notification, and migration evidence.
|
||||
- Alert identities and persisted history migrate to canonical resource keys, while active state uses durable atomic snapshots and ordered recovery.
|
||||
- Alert hydration no longer exposes a false all-clear state before persisted incidents are restored.
|
||||
- Escalation and delivery decisions are destination-specific, repeated holds are coalesced, and destination updates persist before the active runtime changes.
|
||||
- Resource detail drawers use shared information-card and detail-table primitives across infrastructure, Docker, storage, and Proxmox backup surfaces.
|
||||
- Docker lifecycle results distinguish command acceptance from independently observed post-action state, and deployment enrollment plus credential updates commit atomically.
|
||||
- Email, ntfy, and mobile push presentation preserve informational priority instead of elevating non-warning events to warning treatment.
|
||||
- Remembered table View preferences expand in a responsive inline disclosure instead of covering data.
|
||||
- Phone Settings use a searchable two-level workspace with a sticky section title and touch-sized controls.
|
||||
|
||||
## Fixed
|
||||
|
||||
- Docker hosts with many stopped containers no longer re-inspect every historical container on each 30-second agent report; lifecycle changes invalidate cached details immediately and daemon reconnects clear the cache.
|
||||
- Separate standalone Proxmox sites that reuse a short node name no longer lose correct agent links when their provider-observed addresses uniquely disambiguate them.
|
||||
- GitHub API rate limiting no longer leaves in-app release checks with a new version but no archive URL.
|
||||
- Empty Unraid array slots no longer materialize as physical disks or contribute false degraded state.
|
||||
- Sequential standalone Proxmox connections that reuse a short node name no longer borrow the first connection's linked agent.
|
||||
- Failed token persistence no longer leaves an undisclosed new token active, evicts an older valid token, or allows an apparent agent-token revocation to reverse after restart.
|
||||
- Current Anthropic Opus usage is no longer overestimated at legacy rates, and Haiku 4.5 is no longer underestimated at Haiku 3 rates.
|
||||
- PVE and agent observations of the same RAID-controller volume no longer render duplicate resources when one source frames the NAA identity as a serial and the other as a WWN.
|
||||
- Dismissed TrueNAS SMART alerts retain uniquely resolved critical disk evidence instead of allowing a damaged disk to return to healthy presentation.
|
||||
- Mobile alert timelines remain scroll-stable, selected incident history revalidates correctly, chart axis labels remain readable, and grouped hover timestamps stay aligned.
|
||||
- Restart recovery, history queries, and mock alert timelines preserve lifecycle order, observation time, and complete incident evidence.
|
||||
- Fresh rolling-window metric data remains authoritative, including when older samples or counter resets are present.
|
||||
- Offline mock hosts remain on the normal host-alert lifecycle instead of losing active incidents during refresh.
|
||||
- API token watcher updates remain ordered across successive persistence mutations.
|
||||
- Proxmox backup health, inventory refresh, offline fixtures, and drawer detail presentation retain complete current context.
|
||||
- Informational active-alert cards use the blue severity palette, while unknown severity values fail safe to warning presentation.
|
||||
- Alert-lifecycle failures synchronously checkpoint a crash-safe recovery envelope before shutdown.
|
||||
- A malformed or source-less degraded-state marker no longer lets startup trust a potentially stale SQLite alert projection.
|
||||
- Dead-man configuration and dial-time DNS validation reject every address assigned to the Pulse host.
|
||||
|
||||
## Release Metadata
|
||||
|
||||
- Version: `v6.4.0-rc.13`
|
||||
- Previous candidate: `v6.4.0-rc.12`
|
||||
- Previous published candidate: `v6.4.0-rc.12`
|
||||
- Previous stable: `v6.3.2`
|
||||
- Rollback target: `v6.3.2`
|
||||
- Rollback command: `./scripts/install.sh --version v6.3.2`
|
||||
- Promotion path: exact-SHA single-build release candidate from `main`
|
||||
- Windows signing decision: prereleases publish checksum- and detached-signature-verified Windows agents without Authenticode while SignPath remains unavailable. Windows may show an Unknown Publisher warning.
|
||||
- Mobile decision: `existing-mobile-build-compatible`. Published iOS build 12 and Android versionCode 9 already route `action_type=view_alert`; no companion upload is required. The server and Unified Agent changes do not alter mobile routes, pairing, push, or resource payload contracts.
|
||||
@@ -4,8 +4,8 @@ This guide covers practical upgrade steps for existing Pulse installs moving to
|
||||
|
||||
For the current v6 release candidate packet (the current v6 support release candidate packet), see:
|
||||
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.12.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.12.md`
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.13.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.13.md`
|
||||
|
||||
For the current stable v6 packet, see:
|
||||
|
||||
@@ -19,10 +19,12 @@ For the preceding stable v6 packet, see:
|
||||
|
||||
For the preceding v6.4 release candidate packet, see:
|
||||
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.11.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.11.md`
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.12.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.12.md`
|
||||
|
||||
For earlier v6.4 release candidate packets, see:
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.11.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.11.md`
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.10.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.4.0-rc.10.md`
|
||||
- `docs/releases/RELEASE_NOTES_v6.4.0-rc.9.md`
|
||||
|
||||
@@ -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.4.0-rc.12"
|
||||
CANONICAL_DEFAULT_PULSE_VERSION="6.4.0-rc.13"
|
||||
|
||||
resolve_default_pulse_version() {
|
||||
if [ -n "${PULSE_IMAGE_VERSION:-}" ]; then
|
||||
|
||||
Reference in New Issue
Block a user