mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-09 18:15:50 +00:00
Prepare v6.2.0-rc.1 release
First candidate on the v6.2.0 line, following stable v6.1.2. Carries the External Probes Pro feature, the three-part multi-site Proxmox identity isolation work, cloned machine-id collapse detection, unattended-update service recovery, the TrueNAS same-host redirect follow, and verified telemetry outcomes. Version pins move to 6.2.0-rc.1 across the repo root, Docker bootstrap defaults, and Helm metadata per the deployment-installability contract; stable install pointers remain on v6.1.2 until governed promotion. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -2,9 +2,9 @@ apiVersion: v2
|
||||
name: pulse
|
||||
description: Helm chart for deploying the Pulse hub and optional Docker monitoring agent.
|
||||
type: application
|
||||
version: 6.1.2
|
||||
appVersion: "6.1.2"
|
||||
icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.1.2/docs/images/pulse-logo.svg
|
||||
version: 6.2.0-rc.1
|
||||
appVersion: "6.2.0-rc.1"
|
||||
icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.2.0-rc.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.1.2/docs/KUBERNETES.md
|
||||
url: https://github.com/rcourtman/Pulse/blob/v6.2.0-rc.1/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 monitoring agent.
|
||||
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ version: '3.8'
|
||||
|
||||
services:
|
||||
pulse:
|
||||
image: ${PULSE_IMAGE:-rcourtman/pulse:6.1.2}
|
||||
image: ${PULSE_IMAGE:-rcourtman/pulse:6.2.0-rc.1}
|
||||
container_name: pulse
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
|
||||
@@ -6,6 +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 support release candidate packet, see:
|
||||
- `docs/releases/RELEASE_NOTES_v6.2.0-rc.1.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.2.0-rc.1.md`
|
||||
|
||||
For the current stable v6 packet, see:
|
||||
- `docs/releases/RELEASE_NOTES_v6.1.2.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.1.2.md`
|
||||
|
||||
@@ -2,6 +2,11 @@
|
||||
|
||||
This guide covers practical upgrade steps for existing Pulse installs moving to v6.
|
||||
|
||||
For the current v6 support release candidate packet, see:
|
||||
|
||||
- `docs/releases/RELEASE_NOTES_v6.2.0-rc.1.md`
|
||||
- `docs/releases/V6_CHANGELOG_v6.2.0-rc.1.md`
|
||||
|
||||
For the current stable v6 packet, see:
|
||||
|
||||
- `docs/releases/RELEASE_NOTES_v6.1.2.md`
|
||||
|
||||
@@ -9227,7 +9227,21 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"work_claims": [],
|
||||
"work_claims": [
|
||||
{
|
||||
"id": "release-operator-v620rc1-release-gate-single-build-release-promotion-path",
|
||||
"agent_id": "release-operator-v620rc1",
|
||||
"summary": "Prepare and publish v6.2.0-rc.1 through the governed exact-SHA promotion workflow",
|
||||
"target_id": "v6-product-lane-expansion",
|
||||
"claimed_at": "2026-07-27T12:45:00Z",
|
||||
"heartbeat_at": "2026-07-27T12:45:00Z",
|
||||
"expires_at": "2026-07-27T20:45:00Z",
|
||||
"work_item": {
|
||||
"kind": "release-gate",
|
||||
"id": "single-build-release-promotion-path"
|
||||
}
|
||||
}
|
||||
],
|
||||
"open_decisions": [],
|
||||
"source_of_truth_file": "docs/release-control/v6/internal/SOURCE_OF_TRUTH.md",
|
||||
"resolved_decisions": [
|
||||
|
||||
@@ -1111,6 +1111,34 @@ host-local redirect contract as runtime token minting and exchange. Proof input
|
||||
must reject absolute, scheme-relative, backslash-authority, encoded-separator,
|
||||
and control-character targets before constructing the handoff request.
|
||||
|
||||
The active support prerelease `v6.2.0-rc.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.2.0-rc.1` release
|
||||
version. This support prerelease keeps `rollback_version=v6.1.2`, publishes a
|
||||
versioned public GitHub prerelease plus versioned Docker and Helm artifacts, and
|
||||
does not move stable/latest install pointers or stable semver aliases. Stable
|
||||
install pointers stay on `v6.1.2`, whose active stable cut is recorded below and
|
||||
continues to govern the stable line until this candidate is promoted. The first
|
||||
`v6.2.0` candidate introduces the Pulse Pro External Probes feature that runs
|
||||
assigned availability checks from a connected agent outside the monitored site,
|
||||
completes the multi-site Proxmox identity-isolation trilogy across connection
|
||||
consolidation, same-name node aggregation, and the first-poll unclassified-node
|
||||
window, adds host-agent identity-collapse detection for cloned machine-ids,
|
||||
restores service availability after a failed unattended update, follows
|
||||
same-host TrueNAS handshake redirects, and makes Pulse Intelligence outcome
|
||||
telemetry verified and complete. The exact `main` SHA must pass the integrated
|
||||
release checks and immutable-candidate build before the single-build workflow
|
||||
crosses its public mutation boundary.
|
||||
The `v6.2.0-rc.1` server cut is classified `no-mobile-impact`; no companion
|
||||
build upload is part of this cut. The existing mobile candidate programme
|
||||
remains separate, and the release packet must not describe a public store
|
||||
rollout.
|
||||
Authenticode signing through SignPath is the canonical Windows signing backend
|
||||
for the `v6.2.0` line. The owner-approved unsigned-Windows exception is bounded
|
||||
to `v6.1.0`, `v6.1.1`, and `v6.1.2` and does not extend to any `v6.2.0`
|
||||
release, so stable `v6.2.0` promotion must fail closed when the SignPath
|
||||
configuration or the returned signer proof is unavailable.
|
||||
|
||||
The active stable `v6.1.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.1.2` release version. This patch
|
||||
@@ -1251,9 +1279,14 @@ Helm metadata. A draft release workflow failure caused by stale image or chart
|
||||
pins is a release-packet blocker until the defaults, tests, and evidence
|
||||
record are refreshed from the new branch head.
|
||||
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` until the next
|
||||
governed stable cut moves them forward. The stable promotion guard remains in
|
||||
`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 support prerelease `v6.2.0-rc.1` cut, the repo-root compose
|
||||
default and `scripts/install-docker.sh` fallback must both pin `6.2.0-rc.1`
|
||||
until the next governed stable cut moves them forward. The stable promotion
|
||||
guard remains in force and must reject leftover `-rc.` defaults when the
|
||||
governed `VERSION` returns to a stable release.
|
||||
The RC7 packet refresh records `fc10de9b5477613316473267b72b05b6b2b7aaff`
|
||||
as the current validation-risk commit. That head includes the earlier
|
||||
Docker-default correction plus the follow-on capacity-forecast and Patrol
|
||||
|
||||
@@ -0,0 +1,119 @@
|
||||
# Pulse v6.2.0-rc.1 Release Notes
|
||||
|
||||
`v6.2.0-rc.1` is a release candidate for the next Pulse v6 minor line. It
|
||||
follows stable `v6.1.2` and is the first candidate on the `v6.2.0` line. It
|
||||
introduces External Probes for Pulse Pro, closes the remaining multi-site
|
||||
Proxmox identity-isolation gaps reported through support, and carries the
|
||||
update-recovery, TrueNAS, and telemetry work completed since the previous
|
||||
stable cut.
|
||||
|
||||
## Highlights
|
||||
|
||||
- **External Probes (Pulse Pro)**: an availability check can now run from a
|
||||
connected Pulse agent outside the monitored site, so a site can be watched
|
||||
from the outside instead of only from the Pulse server.
|
||||
- Proxmox clusters, nodes, and host agents at different sites stay separate
|
||||
even when they reuse cluster names, node names, and private addressing.
|
||||
- Adding a second site whose nodes share hostnames with an existing site no
|
||||
longer lets those nodes take over the first site's node records.
|
||||
- Host agents deployed from a cloned template image are surfaced instead of
|
||||
silently collapsing two physical machines into one host row.
|
||||
- Failed unattended updates restore service availability instead of leaving
|
||||
Pulse stopped, and TrueNAS appliances behind an HTTP-to-HTTPS redirect
|
||||
connect again.
|
||||
|
||||
## Added
|
||||
|
||||
- **External Probes (Pulse Pro).** An availability check can be assigned to a
|
||||
connected Pulse agent through the new **Run from** control in the
|
||||
availability check editor. Assignments travel over the signed agent
|
||||
configuration channel, the assigned agent runs the same ICMP, TCP, HTTP, and
|
||||
UDP probe core the server uses, and results come back with the agent's
|
||||
regular reports carrying per-target source attribution. Statuses show a
|
||||
"via agent" chip when the latest observation came from a probe. Only the
|
||||
currently assigned agent's results are accepted, an assigned check never
|
||||
also runs locally, probes whose reports go stale surface as indeterminate
|
||||
rather than as a false outage, and a check resumes local execution
|
||||
automatically if the entitlement lapses. Local availability checks remain
|
||||
free and unchanged in every edition; only the assignment requires Pulse Pro.
|
||||
- Host agents surface an identity collapse when two machines share a cloned
|
||||
`/etc/machine-id`. Repeated hostname and report-IP revisits for one resolved
|
||||
agent identity raise a conflict warning on the Machines page instead of
|
||||
letting the two hosts silently overwrite each other. A one-time hostname
|
||||
rename never revisits and is not flagged, and the conflict clears itself
|
||||
once only one machine keeps reporting.
|
||||
- Usage telemetry counts `availability_probe_targets` and
|
||||
`availability_probe_agents`. Both are counts only, with no agent names,
|
||||
addresses, or target details, and both are disclosed in `docs/PRIVACY.md`.
|
||||
|
||||
## Changed
|
||||
|
||||
- Approved-action telemetry separates success, pre-dispatch refusal, execution
|
||||
failure, unverified completion, stuck execution, in-flight work, and
|
||||
unclassified attempts.
|
||||
- Pre-dispatch refusals use fixed plan, policy, capability, and other
|
||||
categories without transmitting action, resource, command, actor, finding, or
|
||||
evidence content.
|
||||
- The adoption report defaults to the latest stable release and reports
|
||||
action-outcome and refusal-category reconciliation gaps.
|
||||
- The frontend build dependency `postcss` is updated to `8.5.23`, resolving the
|
||||
source-map path-traversal advisory affecting older build tooling.
|
||||
|
||||
## Fixed
|
||||
|
||||
- Same-name Proxmox clusters at different sites are no longer consolidated
|
||||
solely because they reuse endpoint addresses. Contradicting captured TLS
|
||||
certificate fingerprints now veto the merge.
|
||||
- Cross-instance Proxmox node and agent aggregation uses the same TLS identity
|
||||
doctrine as connection consolidation, preventing telemetry from one site
|
||||
attaching to another site's node.
|
||||
- Adding a second site whose cluster membership has not been detected yet no
|
||||
longer lets its first-poll nodes merge into an established cluster at another
|
||||
site. A node that is still unclassified now needs positive same-machine
|
||||
evidence before it can fold into a named cluster, and Proxmox polling
|
||||
resolves cluster membership before the first node-state write. This closes a
|
||||
support case where adding a second site with the same node hostnames took
|
||||
over the first site's node record and made an existing node look renamed.
|
||||
- An installer failure after stopping `pulse.service` no longer leaves the
|
||||
service down or causes every later timer run to be skipped (#1630).
|
||||
- Installer writes to protected helper, PATH, and symlink locations are
|
||||
idempotent and non-fatal under the hardened unattended-update unit (#1630).
|
||||
- TrueNAS websocket setup retries a same-host HTTP-to-HTTPS redirect once while
|
||||
refusing cross-host redirects and TLS downgrades (#1631).
|
||||
- Resolved-loop telemetry no longer joins an unrelated Patrol resolution to an
|
||||
unrelated successful action within the same reporting window.
|
||||
|
||||
## Upgrade Notes
|
||||
|
||||
Use the normal v6 install or update flow for `v6.2.0-rc.1` only when you are
|
||||
comfortable testing an RC. The rollback target is `v6.1.2`.
|
||||
|
||||
The exact rollback reinstall command is:
|
||||
|
||||
```bash
|
||||
./scripts/install.sh --version v6.1.2
|
||||
```
|
||||
|
||||
External Probes need the `external_probe` Pulse Pro entitlement on the Pulse
|
||||
server. The capability ships in the community binary and the entitlement alone
|
||||
gates the assignment, so no separate build is required. ICMP probes use the
|
||||
system `ping` binary, so a probe host running in a container or a hardened
|
||||
service unit needs `CAP_NET_RAW`; prefer TCP or HTTP checks there, or grant the
|
||||
capability. See `docs/UNIFIED_AGENT.md`.
|
||||
|
||||
The telemetry receiver is backward compatible and was deployed before this
|
||||
client release. Existing installs continue to report the earlier schema until
|
||||
they upgrade.
|
||||
|
||||
This server candidate has no mobile compatibility change and does not require a
|
||||
companion build upload. No public mobile-store rollout is part of this RC.
|
||||
|
||||
Windows Unified Agent binaries in this candidate keep checksum and
|
||||
detached-signature verification, but they are not yet Authenticode-signed and
|
||||
Windows may show an unknown-publisher warning. No unsigned-Windows exception
|
||||
applies to any `v6.2.0` release: the owner-approved exception was bounded to
|
||||
`v6.1.0`, `v6.1.1`, and `v6.1.2`, and stable `v6.2.0` must publish Windows
|
||||
agents through the mandatory SignPath Authenticode path.
|
||||
|
||||
Paid Pulse Pro, Relay, and eligible legacy customers should continue to use the
|
||||
private download page and private runtime image for paid runtime features.
|
||||
@@ -0,0 +1,77 @@
|
||||
# Pulse v6.2.0-rc.1
|
||||
|
||||
_This changelog describes the changes since stable `v6.1.2`.
|
||||
`v6.2.0-rc.1` remains a prerelease and rolls back to stable `v6.1.2`._
|
||||
|
||||
## Added
|
||||
|
||||
- External Probes (Pulse Pro): availability targets carry an optional probe
|
||||
agent assignment, set through the availability check editor's "Run from"
|
||||
control and gated by the `external_probe` entitlement at assignment time.
|
||||
- Assigned targets are delivered to their agent over the signed agent-config
|
||||
channel, skipped by the local poller, and resume local execution
|
||||
automatically if the entitlement lapses.
|
||||
- The unified agent gains an availability module that runs each assigned target
|
||||
on its own clamped interval through the shared probe core and returns results
|
||||
in its regular reports through a bounded delivery queue.
|
||||
- Probe-reported results are accepted only from the currently assigned agent,
|
||||
share the local failure-threshold accounting, carry source attribution to the
|
||||
UI, and derive to indeterminate at read time when reports go stale.
|
||||
- Host-agent identity-collapse detection for cloned `/etc/machine-id`:
|
||||
hostname and report-IP revisits within the monitoring flap window publish an
|
||||
active conflict and warn on the Machines page.
|
||||
- Telemetry counts `availability_probe_targets` and
|
||||
`availability_probe_agents`, counts only, disclosed in `docs/PRIVACY.md`.
|
||||
|
||||
## Changed
|
||||
|
||||
- Approved-action telemetry now reconciles successes, refusals, execution
|
||||
failures, unverified outcomes, stuck work, in-flight work, and unclassified
|
||||
attempts.
|
||||
- Pre-dispatch refusal counts use stable plan, policy, capability, and other
|
||||
categories while remaining content-free.
|
||||
- Finding-resolution telemetry requires exact Patrol finding and investigation
|
||||
linkage plus independently verified action evidence.
|
||||
- Adoption reporting targets the latest stable release by default and exposes
|
||||
outcome-accounting gaps.
|
||||
- Availability probe execution moved into a shared package so the host agent
|
||||
and the monitoring poller run the identical ICMP, TCP, HTTP, and UDP core.
|
||||
- `postcss` build tooling is updated to `8.5.23`.
|
||||
|
||||
## Fixed
|
||||
|
||||
- Same-name Proxmox clusters, nodes, and agents at separate sites remain
|
||||
isolated when TLS identity evidence contradicts, even when private addresses
|
||||
overlap.
|
||||
- Legitimate duplicate Proxmox views can still consolidate when their captured
|
||||
TLS identities agree.
|
||||
- Weak-evidence cross-instance folds now require positive same-machine proof
|
||||
whenever cluster identity is in play, and PVE polling detects cluster
|
||||
membership before the cycle's node-state commit, closing the first-poll
|
||||
window where an unclassified node could be folded into another site's
|
||||
cluster slot.
|
||||
- Failed unattended updates restart a previously active Pulse service and no
|
||||
longer abort on non-writable helper or symlink locations (#1630).
|
||||
- TrueNAS JSON-RPC websocket connections follow safe same-host HTTPS redirects
|
||||
while rejecting cross-host redirects and downgrades (#1631).
|
||||
- Resolved-loop telemetry cannot be synthesized from unrelated finding and
|
||||
action aggregates.
|
||||
|
||||
## Release Metadata
|
||||
|
||||
- Version: `v6.2.0-rc.1`
|
||||
- Previous stable: `v6.1.2`
|
||||
- Rollback target: `v6.1.2`
|
||||
- Rollback command: `./scripts/install.sh --version v6.1.2`
|
||||
- Promotion path: exact-SHA single-build release candidate from `main`,
|
||||
published as a support prerelease that does not move stable or latest
|
||||
install pointers
|
||||
- Windows signing decision: Authenticode through SignPath is the mandatory
|
||||
signing backend and no unsigned-Windows exception applies to any `v6.2.0`
|
||||
release; this candidate publishes Windows agents under the standing
|
||||
prerelease path with exact-SHA, checksum, and detached-signature
|
||||
verification
|
||||
- Mobile decision: `no-mobile-impact`; no companion build upload or public
|
||||
store rollout is part of this candidate
|
||||
- Entitlement rollout: the license-server entitlement catalog carrying
|
||||
`external_probe` was deployed on 2026-07-27, before this cut
|
||||
@@ -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.1.2"
|
||||
CANONICAL_DEFAULT_PULSE_VERSION="6.2.0-rc.1"
|
||||
|
||||
resolve_default_pulse_version() {
|
||||
if [ -n "${PULSE_IMAGE_VERSION:-}" ]; then
|
||||
|
||||
@@ -406,53 +406,55 @@ func TestCurrentSupportPrereleasePacketTracksInstallMetadata(t *testing.T) {
|
||||
"`v"+version+"` is a release candidate",
|
||||
"## Highlights",
|
||||
"stable `v"+previous+"`",
|
||||
"supersedes `v6.1.0-rc.4`",
|
||||
"distinguishes real Unified Agents from machines observed through an integration",
|
||||
"Agent Doctor is now a dedicated routed page with status filters",
|
||||
"copyable diagnostic reports",
|
||||
"host-local cleanup handoffs for removed agents",
|
||||
"operator-supplied and physical interface addresses",
|
||||
"SAS transport and SCSI SMART attributes",
|
||||
"Metrics reads no longer queue behind unrelated writes",
|
||||
"retained audit data is reclaimed incrementally",
|
||||
"`--report-ip` can set the reported host address",
|
||||
"ESXi hosts appear as members of their owning vCenter connection",
|
||||
"Workload guest metadata follows the canonical metadata event",
|
||||
"Pro updates request their explicit update channel",
|
||||
"Integration-monitored machines no longer appear as fabricated agent rows",
|
||||
"Removed-agent diagnostics retain the last-known platform",
|
||||
"correct host-local uninstall command",
|
||||
"Post-update What's New highlights open in a readable dialog",
|
||||
"leaving the dashboard unobstructed",
|
||||
"Manual agent update commands remain available",
|
||||
"action origins retain the proposal evidence",
|
||||
"External Probes (Pulse Pro)",
|
||||
"run from a connected Pulse agent outside the monitored site",
|
||||
"assigned to a connected Pulse agent through the new **Run from** control",
|
||||
"travel over the signed agent configuration channel",
|
||||
"per-target source attribution",
|
||||
"Only the currently assigned agent's results are accepted",
|
||||
"an assigned check never also runs locally",
|
||||
"surface as indeterminate",
|
||||
"resumes local execution automatically if the entitlement lapses",
|
||||
"Local availability checks remain free and unchanged in every edition",
|
||||
"cloned `/etc/machine-id`",
|
||||
"`availability_probe_targets`",
|
||||
"`availability_probe_agents`",
|
||||
"disclosed in `docs/PRIVACY.md`",
|
||||
"Contradicting captured TLS certificate fingerprints now veto the merge",
|
||||
"same TLS identity doctrine as connection consolidation",
|
||||
"positive same-machine evidence before it can fold into a named cluster",
|
||||
"no longer leaves the service down",
|
||||
"same-host HTTP-to-HTTPS redirect",
|
||||
"`CAP_NET_RAW`",
|
||||
"no mobile compatibility change",
|
||||
"No public mobile-store rollout",
|
||||
"not yet Authenticode-signed",
|
||||
"No unsigned-Windows exception applies to any `v6.2.0` release",
|
||||
"rollback target is `v"+previous+"`",
|
||||
)
|
||||
assertFileContainsAllNormalized(t, changelogPath,
|
||||
"Version: `v"+version+"`",
|
||||
"Previous stable: `v"+previous+"`",
|
||||
"Rollback target: `v"+previous+"`",
|
||||
"Previous candidate: `v6.1.0-rc.4`",
|
||||
"Promotion path: exact-SHA single-build release candidate from `main`",
|
||||
"Unified Agent `--report-ip` propagation",
|
||||
"SAS transport detection and SCSI SMART attribute parsing",
|
||||
"Routed Agent Doctor page with status filters and copyable diagnostic reports",
|
||||
"Canonical SignPath request",
|
||||
"Physical interface addresses lead virtual bridge addresses",
|
||||
"Integration-observed machines are modeled separately from real agents",
|
||||
"Removed-agent records retain their last-known platform",
|
||||
"platform-correct local uninstall guidance",
|
||||
"Post-update What's New highlights use the shared dialog",
|
||||
"release gating and dismissal persistence are unchanged",
|
||||
"ESXi hosts group under their owning vCenter connection",
|
||||
"Metrics reads can proceed concurrently with writes",
|
||||
"Audit retention uses incremental vacuum",
|
||||
"Patrol assessment lookup recovers active findings",
|
||||
"Patrol action origins retain proposal evidence",
|
||||
"External Probes (Pulse Pro)",
|
||||
"gated by the `external_probe` entitlement at assignment time",
|
||||
"delivered to their agent over the signed agent-config channel",
|
||||
"skipped by the local poller",
|
||||
"accepted only from the currently assigned agent",
|
||||
"derive to indeterminate at read time when reports go stale",
|
||||
"Host-agent identity-collapse detection for cloned `/etc/machine-id`",
|
||||
"Telemetry counts `availability_probe_targets` and `availability_probe_agents`",
|
||||
"Availability probe execution moved into a shared package",
|
||||
"`postcss` build tooling is updated to `8.5.23`",
|
||||
"remain isolated when TLS identity evidence contradicts",
|
||||
"closing the first-poll window where an unclassified node could be folded into another site's cluster slot",
|
||||
"Failed unattended updates restart a previously active Pulse service",
|
||||
"follow safe same-host HTTPS redirects",
|
||||
"Windows signing decision: Authenticode through SignPath is the mandatory signing backend",
|
||||
"Mobile decision: `no-mobile-impact`",
|
||||
"no companion build upload or public store rollout",
|
||||
"the license-server entitlement catalog carrying `external_probe` was deployed on 2026-07-27, before this cut",
|
||||
)
|
||||
assertFileContainsAll(t, repoFile("docs", "RELEASE_NOTES.md"),
|
||||
"docs/releases/RELEASE_NOTES_v"+version+".md",
|
||||
@@ -485,7 +487,7 @@ func TestCurrentSupportPrereleasePacketTracksInstallMetadata(t *testing.T) {
|
||||
"The active support prerelease `v"+version+"` 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 `"+version+"` release version.",
|
||||
"This support prerelease keeps `rollback_version=v"+previous+"`, publishes a versioned public GitHub prerelease plus versioned Docker and Helm artifacts, and does not move stable/latest install pointers or stable semver aliases.",
|
||||
"For the active support prerelease `v"+version+"` cut, the repo-root compose default and `scripts/install-docker.sh` fallback must both pin `"+version+"` until the next governed stable cut moves them forward.",
|
||||
"The rc.5 server cut is classified `no-mobile-impact`; no companion build upload is part of this cut. The existing mobile candidate programme remains separate, and the release packet must not describe a public store rollout.",
|
||||
"The `v"+version+"` server cut is classified `no-mobile-impact`; no companion build upload is part of this cut. The existing mobile candidate programme remains separate, and the release packet must not describe a public store rollout.",
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -128,7 +128,7 @@ func TestPreviousStableForPrereleaseVersionCrossesMinorBoundaries(t *testing.T)
|
||||
want string
|
||||
}{
|
||||
{version: "6.0.5-rc.4", want: "6.0.4"},
|
||||
{version: "6.1.0-rc.5", want: "6.0.5"},
|
||||
{version: "6.2.0-rc.1", want: "6.1.2"},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
@@ -336,8 +336,9 @@ func TestInstallDockerProofTracksSupportPrereleaseContract(t *testing.T) {
|
||||
assertFileContainsAllNormalized(t, repoFile("docs", "release-control", "v6", "internal", "subsystems", "deployment-installability.md"),
|
||||
"The active support prerelease `v"+version+"` 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 `"+version+"` release version.",
|
||||
"This support prerelease keeps `rollback_version=v"+previous+"`, 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 expanded Pulse Intelligence action and verification lifecycle, the operator-facing Actions inbox, monitor-first product workflows, governed host and storage operations, native-agent update safety, Windows logged-readiness and recovery proof, OIDC callback recovery, and fail-closed security hardening behind RC validation",
|
||||
"The rc.5 server cut is classified `no-mobile-impact`; no companion build upload is part of this cut. The existing mobile candidate programme remains separate, and the release packet must not describe a public store rollout.",
|
||||
"introduces the Pulse Pro External Probes feature that runs assigned availability checks from a connected agent outside the monitored site, completes the multi-site Proxmox identity-isolation trilogy across connection consolidation, same-name node aggregation, and the first-poll unclassified-node window, adds host-agent identity-collapse detection for cloned machine-ids, restores service availability after a failed unattended update, follows same-host TrueNAS handshake redirects, and makes Pulse Intelligence outcome telemetry verified and complete",
|
||||
"The `v"+version+"` server cut is classified `no-mobile-impact`; no companion build upload is part of this cut. The existing mobile candidate programme remains separate, and the release packet must not describe a public store rollout.",
|
||||
"Authenticode signing through SignPath is the canonical Windows signing backend for the `v6.2.0` line.",
|
||||
"For the active support prerelease `v"+version+"` cut, the repo-root compose default and `scripts/install-docker.sh` fallback must both pin `"+version+"` until the next governed stable cut moves them forward.",
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user