Prepare v6.3.0-rc.2 release
Some checks are pending
Public docs / check (push) Waiting to run
Build and Test / Secret Scan (push) Waiting to run
Build and Test / Detect changed areas (push) Waiting to run
Build and Test / Frontend (push) Blocked by required conditions
Build and Test / Backend tests (api) (push) Blocked by required conditions
Build and Test / Backend tests (rest-0) (push) Blocked by required conditions
Build and Test / Backend tests (rest-1) (push) Blocked by required conditions
Build and Test / Script smoke tests & backend build (push) Blocked by required conditions
Build and Test / Benchmarks (push) Blocked by required conditions
Canonical Governance / governance (push) Waiting to run
Helm CI / Lint and Render Chart (push) Waiting to run
Core E2E Tests / Validate E2E tier selection (push) Waiting to run
Core E2E Tests / Playwright Core E2E (shard 1/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 2/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 3/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 4/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 5/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 6/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 7/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 8/8) (push) Blocked by required conditions
Core E2E Tests / Agent registration lifecycle (push) Waiting to run
Core E2E Tests / E2E verdict (push) Blocked by required conditions
Unified Agent Native Verification / Linux ARM64 (push) Waiting to run
Unified Agent Native Verification / Linux x64 (push) Waiting to run
Unified Agent Native Verification / Windows x64 (push) Waiting to run
Unified Agent Native Verification / macOS ARM64 (push) Waiting to run
Unified Agent Native Verification / macOS Intel (push) Waiting to run
Unified Agent Native Verification / FreeBSD cross-build contract (push) Waiting to run

This commit is contained in:
rcourtman 2026-08-18 13:31:21 +01:00
parent 7cb3fc2e6b
commit 2eeb643afe
13 changed files with 94 additions and 43 deletions

View file

@ -1 +1 @@
6.3.0-rc.1
6.3.0-rc.2

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-rc.1
appVersion: "6.3.0-rc.1"
icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.3.0-rc.1/docs/images/pulse-logo.svg
version: 6.3.0-rc.2
appVersion: "6.3.0-rc.2"
icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.3.0-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.3.0-rc.1/docs/KUBERNETES.md
url: https://github.com/rcourtman/Pulse/blob/v6.3.0-rc.2/docs/KUBERNETES.md
- name: Support
url: https://github.com/rcourtman/Pulse/discussions
artifacthub.io/maintainers: |

View file

@ -1,6 +1,6 @@
# pulse
![Version: 6.3.0-rc.1](https://img.shields.io/badge/Version-6.3.0--rc.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.3.0-rc.1](https://img.shields.io/badge/AppVersion-6.3.0--rc.1-informational?style=flat-square)
![Version: 6.3.0-rc.2](https://img.shields.io/badge/Version-6.3.0--rc.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.3.0-rc.2](https://img.shields.io/badge/AppVersion-6.3.0--rc.2-informational?style=flat-square)
Helm chart for deploying the Pulse hub and optional Docker, Kubernetes, or OpenShift monitoring agent.

View file

@ -2,7 +2,7 @@ version: '3.8'
services:
pulse:
image: ${PULSE_IMAGE:-rcourtman/pulse:6.3.0-rc.1}
image: ${PULSE_IMAGE:-rcourtman/pulse:6.3.0-rc.2}
container_name: pulse
restart: unless-stopped
logging:

View file

@ -6,9 +6,10 @@ Pulse release notes live on GitHub:
For historical v4 notes that previously lived in this repo, see:
`docs/releases/RELEASE_NOTES_v4.md`
For the current v6 release candidate packet, see:
- `docs/releases/RELEASE_NOTES_v6.3.0-rc.1.md`
- `docs/releases/V6_CHANGELOG_v6.3.0-rc.1.md`
For the current v6 release candidate packet (the current v6 support release
candidate packet), see:
- `docs/releases/RELEASE_NOTES_v6.3.0-rc.2.md`
- `docs/releases/V6_CHANGELOG_v6.3.0-rc.2.md`
For the current stable v6 packet, see:
- `docs/releases/RELEASE_NOTES_v6.2.1.md`

View file

@ -4,8 +4,8 @@ This guide covers practical upgrade steps for existing Pulse installs moving to
For the current v6 release candidate packet, see:
- `docs/releases/RELEASE_NOTES_v6.3.0-rc.1.md`
- `docs/releases/V6_CHANGELOG_v6.3.0-rc.1.md`
- `docs/releases/RELEASE_NOTES_v6.3.0-rc.2.md`
- `docs/releases/V6_CHANGELOG_v6.3.0-rc.2.md`
For the current stable v6 packet, see:

View file

@ -1447,21 +1447,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 prerelease `v6.3.0-rc.1` cut sets the repo-root `VERSION`,
The active prerelease `v6.3.0-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.3.0-rc.1` release
version. It follows stable `v6.2.1`, opens the 6.3 candidate line, uses
fallback, and Helm chart release metadata to the same `6.3.0-rc.2` release
version. It follows stable `v6.2.1`, opens the published 6.3 candidate line, uses
`rollback_version=v6.2.1`, and keeps stable/latest pointers on `v6.2.1`. This
candidate establishes the new minor-release packet with durable scoped Patrol
objectives, validated read-only observers, verified work receipts, agent action
preflight with stable refusal codes, large-estate response improvements, and
monitoring correctness fixes. Subscription-backed Patrol turns also bound
command cleanup after an idle deadline so descendant-held output pipes cannot
extend the caller-owned stall budget. The changes since `v6.2.1` do not require a
Pulse Mobile client change and preserve the existing mobile, Relay, onboarding,
and mobile-facing API contracts, so the server cut is classified
`no-mobile-impact`; no companion upload or public mobile-store rollout is part
of this candidate.
monitoring correctness fixes. The advanced branch also carries the decision-first
Patrol inbox, first-class Actions workspace, canonical platform-admission
projection, and bounded concurrent unified-resource hydration. Subscription-backed
Patrol turns bound command cleanup after an idle deadline so descendant-held
output pipes cannot extend the caller-owned stall budget. The changes since
`v6.3.0-rc.1` do not require a Pulse Mobile client change and preserve the
existing mobile, Relay, onboarding, and mobile-facing API contracts, so the
server cut is classified `no-mobile-impact`; no companion upload or public
mobile-store rollout is part of this candidate.
The prerelease Windows path retains exact-SHA, checksum, and detached-signature
verification without Authenticode; stable `v6.3.0` restores mandatory SignPath
signing unless a new version-bound decision is recorded.
@ -1469,6 +1471,12 @@ This prerelease keeps `rollback_version=v6.2.1`, publishes a versioned
public GitHub prerelease plus versioned Docker and Helm artifacts, and does not
move stable/latest install pointers or stable semver aliases.
The preceding `v6.3.0-rc.1` publication attempt was quarantined before the
GitHub release commit point when its exact private Pro staging run was
cancelled. No GitHub release or remote git tag remains. Because `main` advanced
materially after that attempt, the next dispatch uses `v6.3.0-rc.2` rather than
retargeting the earlier version to a different exact SHA.
The preceding `v6.2.2-rc.2` candidate used the same support-prerelease path and
rollback target. It added host-local Docker/Podman registry credentials for
private-image update checks and smartmontools 7.5 `power_mode` object decoding
@ -1738,8 +1746,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.3.0-rc.1` cut, the repo-root compose default and
`scripts/install-docker.sh` fallback must both pin `6.3.0-rc.1`
For the active prerelease `v6.3.0-rc.2` cut, the repo-root compose default and
`scripts/install-docker.sh` fallback must both pin `6.3.0-rc.2`
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

View file

@ -1,14 +1,17 @@
# Pulse v6.3.0-rc.1 Release Notes
# Pulse v6.3.0-rc.2 Release Notes
`v6.3.0-rc.1` is a release candidate for the next Pulse v6 minor release and
the first candidate in the 6.3 line. It follows stable `v6.2.1` and introduces
the Patrol v2 operating model, guarded agent action preflight, large-estate
response improvements, and monitoring correctness fixes.
`v6.3.0-rc.2` is a release candidate for the next Pulse v6 minor release and
the first published candidate in the 6.3 line. An earlier `rc.1` publication
did not complete, so this cut uses a fresh immutable version for the advanced
`main` branch. It follows stable
`v6.2.1` and introduces the Patrol v2 operating model, a first-class Actions
workspace, guarded agent action preflight, large-estate response improvements,
and monitoring correctness fixes.
## Highlights
- Patrol now works from durable outcomes, scoped investigations, and recent
verified-work receipts.
- Patrol guides operators through one ranked decision at a time; Actions now
has its own primary review workspace.
- Read-only observers extend Patrol coverage between full model investigations
without granting mutation authority.
- Approved actions gain agent preflight and stable refusal telemetry; large
@ -22,12 +25,18 @@ response improvements, and monitoring correctness fixes.
read-only checks, and kept separate from action authority.
- Verified Patrol work receipts and clearer navigation between findings,
objectives, attention items, and governed actions.
- A persistent decision workspace with explicit decision origin, review
progress, next-item navigation, and automatic advancement after a decision.
- A canonical platform-admission facet projected on unified resources so
supported onboarding and runtime modes stay consistent across the product.
- Unified Agent preflight contracts for package updates, package-cache cleanup,
and Docker lifecycle or update operations.
- Production security deployment guidance and a focused security-review packet.
## Improved
- Patrol now works from durable outcomes, scoped investigations, and verified
work receipts instead of treating the chat stream as operational state.
- Patrol investigations preserve objective and resource intent across retries,
provider interruptions, chat restarts, truncated responses, and retained
objective runs.
@ -35,6 +44,14 @@ response improvements, and monitoring correctness fixes.
canonicalized and validated before Patrol writes or acts on them.
- Autonomous execution remains bounded by advertised capabilities, explicit
policy, agent preflight, current target state, and post-action verification.
- Patrol separates its Inbox, Protection, and Activity modes, removes duplicate
counters and generic state, and keeps Assistant focused on explaining the
selected item rather than acting as the operations front door.
- Authenticated startup no longer pulls the full legacy state payload. Unified
resource pages load concurrently after the first page and no longer wait for
WebSocket hydration before beginning the canonical fetch.
- Actions and Patrol identify whether a decision originated from a finding,
alert, objective, or explicit operator request, making review context clearer.
- Action refusal telemetry now classifies target changes, prerequisites,
contract failures, capability limits, policy decisions, and stale plans
instead of collapsing the new agent reason codes into the catch-all bucket.
@ -52,6 +69,12 @@ response improvements, and monitoring correctness fixes.
or unsupported findings and proposals as successful investigation output.
- Enabling full AI mode or restarting the chat provider now preserves and
rewires Patrol controls and investigation dependencies.
- Platform-admission state stays current across tenant changes, reconnects,
shell navigation, and canonical resource aggregation.
- Agent Doctor names the judged credential in verdict evidence, and agents
warn when the server overrides a presented agent identity.
- Alert threshold overrides resolve through canonical registry identity, and
the monitoring-policy menu no longer clips inside alert cards.
- Docker health-check dependencies and app-container scope now remain attached
to the correct canonical findings.
- Stale ZFS alerts clear when storage loses its pool attachment, and node-local
@ -72,7 +95,7 @@ response improvements, and monitoring correctness fixes.
## Upgrade Notes
Use the normal v6 install or update flow for `v6.3.0-rc.1` only when you are
Use the normal v6 install or update flow for `v6.3.0-rc.2` only when you are
comfortable testing a release candidate. The rollback target is `v6.2.1`.
The exact rollback reinstall command is:
@ -81,8 +104,8 @@ The exact rollback reinstall command is:
./scripts/install.sh --version v6.2.1
```
The changes since `v6.2.1` do not require a Pulse Mobile client change and
preserve the existing mobile, Relay, onboarding, and mobile-facing API
The changes since `v6.3.0-rc.1` do not require a Pulse Mobile client change
and preserve the existing mobile, Relay, onboarding, and mobile-facing API
contracts. No companion mobile build upload or public mobile-store rollout is
part of this candidate.

View file

@ -1,12 +1,16 @@
# Pulse v6.3.0-rc.1
# Pulse v6.3.0-rc.2
_This changelog describes the changes since `v6.2.1`.
`v6.3.0-rc.1` is a prerelease and rolls back to stable `v6.2.1`._
_This changelog describes the changes since `v6.3.0-rc.1` and carries forward
the complete cumulative 6.3 packet since stable `v6.2.1`. `v6.3.0-rc.2` is a
prerelease and rolls back to stable `v6.2.1`._
## Added
- Durable, scoped Patrol objectives and validated read-only observer missions.
- Patrol objective, recent-work receipt, and expanded attention interfaces.
- A decision-first Patrol inbox with ranked review, progress, navigation,
Protection, Activity, and recent-work receipt interfaces.
- A primary Actions workspace for approvals, governed plans, and action records.
- Canonical platform-admission facts on unified resources.
- Typed Unified Agent action preflight for supported host and Docker operations.
- Stable pre-mutation refusal codes and fleet telemetry buckets for target
changes, prerequisites, contract failures, capability limits, policy, and
@ -17,10 +21,17 @@ _This changelog describes the changes since `v6.2.1`.
- Patrol is organized around operator outcomes, quiet background observation,
scoped evidence, typed proposals, governed execution, and verified receipts.
- Patrol reviews one decision at a time and preserves the selected context
across its inbox-and-context desktop workspace and mobile master/detail flow.
- Assistant explains the selected operational item while Actions owns approval
and action-record review as a separate primary workspace.
- Finding and investigation lifecycles are idempotent, scope-aware, and bounded
across continuation, provider-failure, restart, and truncation recovery.
- API responses support gzip, the client WebSocket ceiling is 32 MiB, and
large-estate polling and resource correlation use bounded or indexed paths.
- Authenticated startup avoids the legacy full-state pull, starts canonical
resource fetching without a WebSocket hydration dependency, and loads later
unified-resource pages concurrently.
- Runtime version identity is bound to the packaged binary rather than a stale
source-tree value.
- Buffered subscription CLI turns cannot extend a caller-owned idle deadline
@ -32,6 +43,11 @@ _This changelog describes the changes since `v6.2.1`.
resource scope, tool authority, or conclusion is incoherent.
- Full-mode activation and in-process provider restarts preserve Patrol runtime
wiring and controls.
- Platform-admission state remains current across resource projections, tenant
changes, reconnects, and shell navigation.
- Alert monitoring menus no longer clip, threshold overrides use canonical
registry identity, Agent Doctor names the credential it judged, and agents
surface server-side identity overrides.
- Docker health findings retain health-check dependencies and selected workload
scope through investigation and remediation.
- ZFS storage attachment, vSphere backup presentation, thermal history, cluster
@ -50,7 +66,7 @@ _This changelog describes the changes since `v6.2.1`.
## Release Metadata
- Version: `v6.3.0-rc.1`
- Version: `v6.3.0-rc.2`
- Previous release: `v6.2.1`
- Previous stable: `v6.2.1`
- Rollback target: `v6.2.1`
@ -60,6 +76,6 @@ _This changelog describes the changes since `v6.2.1`.
- Windows signing decision: the standing prerelease path publishes exact-SHA,
checksum, and detached-signature verified Windows agents without
Authenticode; stable `v6.3.0` restores mandatory SignPath signing
- Mobile decision: `no-mobile-impact`; changes since `v6.2.1` preserve the
- Mobile decision: `no-mobile-impact`; changes since `v6.3.0-rc.1` preserve the
existing mobile, Relay, onboarding, and mobile-facing API contracts, and no
companion upload or public store rollout is required

View file

@ -4,8 +4,8 @@ This guide covers practical upgrade steps for existing Pulse installs moving to
For the current v6 release candidate packet, see:
- `docs/releases/RELEASE_NOTES_v6.3.0-rc.1.md`
- `docs/releases/V6_CHANGELOG_v6.3.0-rc.1.md`
- `docs/releases/RELEASE_NOTES_v6.3.0-rc.2.md`
- `docs/releases/V6_CHANGELOG_v6.3.0-rc.2.md`
For the current stable v6 packet, see:

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-rc.1"
CANONICAL_DEFAULT_PULSE_VERSION="6.3.0-rc.2"
resolve_default_pulse_version() {
if [ -n "${PULSE_IMAGE_VERSION:-}" ]; then

View file

@ -655,6 +655,7 @@ func TestCurrentPrereleasePacketTracksInstallMetadata(t *testing.T) {
"stable `v"+previous+"`",
"Patrol now works from durable outcomes, scoped investigations",
"Read-only observers extend Patrol coverage between full model investigations",
"Actions and Patrol identify whether a decision originated from a finding, alert, objective, or explicit operator request",
"Action refusal telemetry now classifies target changes, prerequisites, contract failures",
"Subscription-backed turns now complete their idle timeout promptly",
"The rollback target is `v"+previous+"`",
@ -671,6 +672,7 @@ func TestCurrentPrereleasePacketTracksInstallMetadata(t *testing.T) {
"Promotion path: exact-SHA single-build release candidate from `main`",
"This changelog describes the changes since `v"+comparisonVersion+"`",
"Durable, scoped Patrol objectives and validated read-only observer missions",
"A primary Actions workspace for approvals, governed plans, and action records",
"Typed Unified Agent action preflight for supported host and Docker operations",
"Stable pre-mutation refusal codes and fleet telemetry buckets",
"Windows signing decision: the standing prerelease path publishes exact-SHA, checksum, and detached-signature verified Windows agents without Authenticode; stable `v"+stableTarget+"` restores mandatory SignPath signing",

View file

@ -140,6 +140,7 @@ func TestPreviousStableForPrereleaseVersionCrossesMinorBoundaries(t *testing.T)
{version: "6.2.2-rc.2", want: "6.2.1"},
{version: "6.2.2-rc.3", want: "6.2.1"},
{version: "6.3.0-rc.1", want: "6.2.1"},
{version: "6.3.0-rc.2", want: "6.2.1"},
}
for _, test := range tests {