From fdcb223e6fc9bbb1ecb9d05ae9b1848cf0ad5e0f Mon Sep 17 00:00:00 2001 From: rcourtman Date: Wed, 5 Aug 2026 14:43:37 +0100 Subject: [PATCH] Prepare v6.2.0-rc.8 release --- VERSION | 2 +- deploy/helm/pulse/Chart.yaml | 8 +- deploy/helm/pulse/README.md | 2 +- docker-compose.yml | 2 +- docs/RELEASE_NOTES.md | 6 +- docs/UPGRADE_v6.md | 7 +- .../subsystems/deployment-installability.md | 42 +++++---- docs/releases/RELEASE_NOTES_v6.2.0-rc.8.md | 90 +++++++++++++++++++ docs/releases/V6_CHANGELOG_v6.2.0-rc.8.md | 56 ++++++++++++ frontend-modern/public/docs/UPGRADE_v6.md | 7 +- scripts/install-docker.sh | 2 +- .../installtests/build_release_assets_test.go | 35 ++++---- .../installtests/install_docker_sh_test.go | 6 +- 13 files changed, 210 insertions(+), 55 deletions(-) create mode 100644 docs/releases/RELEASE_NOTES_v6.2.0-rc.8.md create mode 100644 docs/releases/V6_CHANGELOG_v6.2.0-rc.8.md diff --git a/VERSION b/VERSION index b2e3f7622..db2fae8b7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.2.0-rc.7 +6.2.0-rc.8 diff --git a/deploy/helm/pulse/Chart.yaml b/deploy/helm/pulse/Chart.yaml index 2466593f9..677312a29 100644 --- a/deploy/helm/pulse/Chart.yaml +++ b/deploy/helm/pulse/Chart.yaml @@ -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.2.0-rc.7 -appVersion: "6.2.0-rc.7" -icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.2.0-rc.7/docs/images/pulse-logo.svg +version: 6.2.0-rc.8 +appVersion: "6.2.0-rc.8" +icon: https://raw.githubusercontent.com/rcourtman/Pulse/v6.2.0-rc.8/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.2.0-rc.7/docs/KUBERNETES.md + url: https://github.com/rcourtman/Pulse/blob/v6.2.0-rc.8/docs/KUBERNETES.md - name: Support url: https://github.com/rcourtman/Pulse/discussions artifacthub.io/maintainers: | diff --git a/deploy/helm/pulse/README.md b/deploy/helm/pulse/README.md index b550e4e15..a27392fc7 100644 --- a/deploy/helm/pulse/README.md +++ b/deploy/helm/pulse/README.md @@ -1,6 +1,6 @@ # pulse -![Version: 6.2.0-rc.7](https://img.shields.io/badge/Version-6.2.0--rc.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.2.0-rc.7](https://img.shields.io/badge/AppVersion-6.2.0--rc.7-informational?style=flat-square) +![Version: 6.2.0-rc.8](https://img.shields.io/badge/Version-6.2.0--rc.8-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.2.0-rc.8](https://img.shields.io/badge/AppVersion-6.2.0--rc.8-informational?style=flat-square) Helm chart for deploying the Pulse hub and optional Docker, Kubernetes, or OpenShift monitoring agent. diff --git a/docker-compose.yml b/docker-compose.yml index d7c049615..deb623eb0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.8' services: pulse: - image: ${PULSE_IMAGE:-rcourtman/pulse:6.2.0-rc.7} + image: ${PULSE_IMAGE:-rcourtman/pulse:6.2.0-rc.8} container_name: pulse restart: unless-stopped logging: diff --git a/docs/RELEASE_NOTES.md b/docs/RELEASE_NOTES.md index 6857d0fe6..1e5bf5d6e 100644 --- a/docs/RELEASE_NOTES.md +++ b/docs/RELEASE_NOTES.md @@ -7,10 +7,12 @@ 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.7.md` -- `docs/releases/V6_CHANGELOG_v6.2.0-rc.7.md` +- `docs/releases/RELEASE_NOTES_v6.2.0-rc.8.md` +- `docs/releases/V6_CHANGELOG_v6.2.0-rc.8.md` For historical v6.2 support release candidate packets, see: +- `docs/releases/RELEASE_NOTES_v6.2.0-rc.7.md` +- `docs/releases/V6_CHANGELOG_v6.2.0-rc.7.md` - `docs/releases/RELEASE_NOTES_v6.2.0-rc.6.md` - `docs/releases/V6_CHANGELOG_v6.2.0-rc.6.md` - `docs/releases/RELEASE_NOTES_v6.2.0-rc.5.md` diff --git a/docs/UPGRADE_v6.md b/docs/UPGRADE_v6.md index 147c87884..c1f492ff5 100644 --- a/docs/UPGRADE_v6.md +++ b/docs/UPGRADE_v6.md @@ -4,11 +4,13 @@ This guide covers practical upgrade steps for existing Pulse installs moving to For the current v6 support release candidate packet, see: -- `docs/releases/RELEASE_NOTES_v6.2.0-rc.7.md` -- `docs/releases/V6_CHANGELOG_v6.2.0-rc.7.md` +- `docs/releases/RELEASE_NOTES_v6.2.0-rc.8.md` +- `docs/releases/V6_CHANGELOG_v6.2.0-rc.8.md` For historical v6.2 support release candidate packets, see: +- `docs/releases/RELEASE_NOTES_v6.2.0-rc.7.md` +- `docs/releases/V6_CHANGELOG_v6.2.0-rc.7.md` - `docs/releases/RELEASE_NOTES_v6.2.0-rc.6.md` - `docs/releases/V6_CHANGELOG_v6.2.0-rc.6.md` - `docs/releases/RELEASE_NOTES_v6.2.0-rc.5.md` @@ -383,4 +385,3 @@ Multi-tenant mode is opt-in and additionally license-gated: - Enablement flag: `PULSE_MULTI_TENANT_ENABLED=true` - Capability gate: `multi_tenant` - diff --git a/docs/release-control/v6/internal/subsystems/deployment-installability.md b/docs/release-control/v6/internal/subsystems/deployment-installability.md index 287959762..dd3e0d32d 100644 --- a/docs/release-control/v6/internal/subsystems/deployment-installability.md +++ b/docs/release-control/v6/internal/subsystems/deployment-installability.md @@ -1169,19 +1169,19 @@ 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.7` cut sets the repo-root `VERSION`, +The active support prerelease `v6.2.0-rc.8` 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.7` release +fallback, and Helm chart release metadata to the same `6.2.0-rc.8` 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 -seventh `v6.2.0` candidate is a continuity and operator-workflow cut that -supersedes `v6.2.0-rc.6`: it preserves Proxmox guest and renamed-host identity, -corrects TrueNAS and host metrics, makes platform tables and filters responsive, -ships the in-app documentation set, and hardens installer and private Pro -release recovery. The exact `main` SHA must pass the integrated release checks +eighth `v6.2.0` candidate is a runtime-resilience and authorization-coherence +cut that supersedes `v6.2.0-rc.7`: it aligns Go memory pressure with cgroup +limits, hardens WebSocket liveness, corrects TrueNAS and Proxmox protection +state, unifies session-admin enforcement, and removes clipping from long +operator surfaces. The exact `main` SHA must pass the integrated release checks and immutable-candidate build before the single-build workflow crosses its public mutation boundary. Every release cut, including a prerelease, now gates that mutation boundary on @@ -1194,13 +1194,18 @@ 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 `v6.2.0-rc.7` server cut is classified +The `v6.2.0-rc.8` server cut is classified `existing-mobile-build-compatible`. The synchronized Pulse Mobile 1.0.0 iOS build 12 and Android versionCode 9 candidates, both using runtime version 2, remain distributed to the existing beta cohort through TestFlight and Play -open testing. The current beta candidates cover the server contract used by -this cut; no additional companion upload or public store rollout is part of -RC7. +open testing. The changes since RC7 do not alter mobile relay payloads, pairing, +approvals, or onboarding contracts; no additional companion upload or public +store rollout is part of RC8. +The preceding `v6.2.0-rc.7` candidate used the same support-prerelease path +with `rollback_version=v6.1.2` and pinned the same four install surfaces to +`6.2.0-rc.7`. It is superseded by this cut and no longer governs the install +pins; its packet stays in `docs/releases/` as the historical candidate record +for the `v6.2.0` line. The preceding `v6.2.0-rc.6` candidate used the same support-prerelease path with `rollback_version=v6.1.2` and pinned the same four install surfaces to `6.2.0-rc.6`. It is superseded by this cut and no longer governs the install @@ -1380,20 +1385,19 @@ 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 support prerelease `v6.2.0-rc.7` cut, the repo-root compose -default and `scripts/install-docker.sh` fallback must both pin `6.2.0-rc.7` +For the active support prerelease `v6.2.0-rc.8` cut, the repo-root compose +default and `scripts/install-docker.sh` fallback must both pin `6.2.0-rc.8` 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. Each new candidate on the `v6.2.0` line moves these two pins together with the repo-root `VERSION` and the Helm chart metadata in the same commit; a candidate that leaves any of the four on a superseded `6.2.0-rc.*` value is a release-packet blocker. -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 -history hardening commits. Later metadata-only packet refreshes may be the -workflow dispatch head only when they do not change the code-backed -release-risk range. +The RC8 packet records `54a312bebd97d7cd79004acff54687755d2ab809` as +the code-backed validation-risk head. That head includes the post-RC7 runtime, +authorization, protection-state, responsive-layout, telemetry, and release +proof changes. The metadata-only release-preparation commit may be the workflow +dispatch head because it does not change that code-backed release-risk range. `internal/updates/` is the live deployment and upgrade planner. It owns deployment-type detection, update-plan generation, adapter selection, server diff --git a/docs/releases/RELEASE_NOTES_v6.2.0-rc.8.md b/docs/releases/RELEASE_NOTES_v6.2.0-rc.8.md new file mode 100644 index 000000000..8807cc8c9 --- /dev/null +++ b/docs/releases/RELEASE_NOTES_v6.2.0-rc.8.md @@ -0,0 +1,90 @@ +# Pulse v6.2.0-rc.8 Release Notes + +`v6.2.0-rc.8` is a release candidate for the next Pulse v6 minor line. It +follows stable `v6.1.2` and supersedes `v6.2.0-rc.7`. This candidate focuses on +runtime resilience, authorization consistency, protection-state correctness, +responsive operator workflows, and privacy-preserving product telemetry. + +## Highlights + +- Pulse now aligns the Go runtime memory limit with Docker, Kubernetes, and + systemd cgroup limits, reducing the risk of kernel OOM termination on + memory-capped installs. +- Settings, discovery, configuration, password, and platform-administration + routes now share one session-administrator model, including correct behavior + for OIDC-only and organization-scoped instances. +- TrueNAS completed init containers no longer create permanent critical alerts, + Proxmox protection evidence retains timestamp precision, and backup status + reserves red for genuinely missing backups. +- Large threshold sections and expanded infrastructure tables remain usable at + desktop and narrow widths, with consistent attention filters and prioritized + responsive columns. +- Product telemetry now measures content-free adoption counts for licensed + features while removing a Patrol autofix counter that could never become + non-zero. + +## Fixed + +- Matched cross-site auto-registration to canonical Proxmox identity without + merging ambiguous instances. +- Kept accepted and removed Unified Agent inventory synchronized with canonical + resource state, serialized metric and remediation-history persistence, and + restored release-candidate metrics and bundle behavior. +- Treated every successfully read WebSocket frame as client liveness and widened + keepalive tolerance for background tabs and middleboxes that delay control + frames. +- Stopped healthy TrueNAS applications with completed one-shot init containers + from raising permanent critical incidents. +- Made settings capabilities agree with route enforcement, closed the + non-admin change-password session path, restored OIDC-only administrator + parity, and kept organization-scoped tenants outside platform administration. +- Removed the fixed-height ceiling that clipped long alert-threshold sections + and improved responsive tables, settings controls, and attention filters. +- Reduced mock-mode startup memory by defaulting synthetic trend seeding to 48 + hours and eliminated repeated allocations in metric-role classification. +- Added privacy-preserving counts for RBAC, persistent audit logging, scheduled + reports, alert-triggered analysis, and agent profiles without collecting + names, permissions, recipients, report scope, or audit-event content. + +## Release Qualification + +- The v6 control plane reports all 44 readiness assertions and all 25 release + gates passed for this release-preparation checkpoint. +- Release publication builds and validates one immutable `main` SHA before + creating or publishing the GitHub prerelease, Docker image, Helm chart, and + private Pro packet. +- Hardware-related fix claims now require version-bound live-runtime proof in + addition to source and automated-test evidence. +- Targeted regression coverage locks cgroup memory-limit detection, WebSocket + liveness, session-admin parity, TrueNAS container semantics, Proxmox + protection posture, resource-state refresh, telemetry privacy, and responsive + threshold and table behavior. + +## Upgrade Notes + +Use the normal v6 install or update flow for `v6.2.0-rc.8` only when you are +comfortable testing an RC. The rollback target is stable `v6.1.2`. + +The exact rollback reinstall command is: + +```bash +./scripts/install.sh --version v6.1.2 +``` + +Existing configurations remain valid and no manual data migration is required. + +This server candidate is compatible with the current Pulse Mobile 1.0.0 beta +candidates. iOS build 12 is distributed through the TestFlight public beta link, +and Android versionCode 9 remains available through Play open testing; both use +runtime version 2. The changes since RC7 do not alter mobile relay payloads, +pairing, approvals, or onboarding contracts. 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. 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. diff --git a/docs/releases/V6_CHANGELOG_v6.2.0-rc.8.md b/docs/releases/V6_CHANGELOG_v6.2.0-rc.8.md new file mode 100644 index 000000000..deec4a9f5 --- /dev/null +++ b/docs/releases/V6_CHANGELOG_v6.2.0-rc.8.md @@ -0,0 +1,56 @@ +# Pulse v6.2.0-rc.8 + +_This changelog describes the changes since `v6.2.0-rc.7`. +`v6.2.0-rc.8` remains a prerelease and rolls back to stable `v6.1.2`._ + +## Added + +- Cgroup-aware Go memory-limit configuration for container and systemd memory + caps. +- Privacy-preserving adoption counts for licensed RBAC, audit, reporting, + alert-analysis, and agent-profile features. +- Version-bound live-runtime evidence for hardware-related release claims. + +## Improved + +- Unified session-administrator decisions across settings capabilities, + discovery, configuration, password, and platform-administration routes. +- Accepted any inbound WebSocket frame as proof of liveness and increased + tolerance for delayed control frames. +- Serialized metrics and remediation-history persistence and reduced mock-mode + startup memory and allocation pressure. +- Prioritized responsive infrastructure columns, standardized attention + filters, and made narrow settings controls and expanded tables fit reliably. + +## Fixed + +- Matched cross-site auto-registration to canonical Proxmox identity. +- Restored Proxmox protection-posture evidence without losing timestamp + precision. +- Stopped completed TrueNAS init containers from creating permanent critical + incidents. +- Refreshed canonical resource state after accepted or removed agent inventory. +- Corrected authorization and capability parity for non-admin, OIDC-only, and + organization-scoped sessions. +- Reserved red backup status for missing backups and removed the fixed-height + ceiling that clipped long threshold sections. +- Removed the structurally inert Patrol autofix telemetry counter. + +## Release Metadata + +- Version: `v6.2.0-rc.8` +- Previous candidate: `v6.2.0-rc.7` +- 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 +- Mobile decision: `existing-mobile-build-compatible`; Pulse Mobile 1.0.0 iOS + build 12 is distributed through the TestFlight public beta link and Android + versionCode 9 remains on Play open testing, both using runtime version 2. The + changes since RC7 do not alter mobile relay payloads, pairing, approvals, or + onboarding contracts. No public store rollout is part of this candidate diff --git a/frontend-modern/public/docs/UPGRADE_v6.md b/frontend-modern/public/docs/UPGRADE_v6.md index 147c87884..c1f492ff5 100644 --- a/frontend-modern/public/docs/UPGRADE_v6.md +++ b/frontend-modern/public/docs/UPGRADE_v6.md @@ -4,11 +4,13 @@ This guide covers practical upgrade steps for existing Pulse installs moving to For the current v6 support release candidate packet, see: -- `docs/releases/RELEASE_NOTES_v6.2.0-rc.7.md` -- `docs/releases/V6_CHANGELOG_v6.2.0-rc.7.md` +- `docs/releases/RELEASE_NOTES_v6.2.0-rc.8.md` +- `docs/releases/V6_CHANGELOG_v6.2.0-rc.8.md` For historical v6.2 support release candidate packets, see: +- `docs/releases/RELEASE_NOTES_v6.2.0-rc.7.md` +- `docs/releases/V6_CHANGELOG_v6.2.0-rc.7.md` - `docs/releases/RELEASE_NOTES_v6.2.0-rc.6.md` - `docs/releases/V6_CHANGELOG_v6.2.0-rc.6.md` - `docs/releases/RELEASE_NOTES_v6.2.0-rc.5.md` @@ -383,4 +385,3 @@ Multi-tenant mode is opt-in and additionally license-gated: - Enablement flag: `PULSE_MULTI_TENANT_ENABLED=true` - Capability gate: `multi_tenant` - diff --git a/scripts/install-docker.sh b/scripts/install-docker.sh index 73f33874a..0da414f40 100755 --- a/scripts/install-docker.sh +++ b/scripts/install-docker.sh @@ -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.2.0-rc.7" +CANONICAL_DEFAULT_PULSE_VERSION="6.2.0-rc.8" resolve_default_pulse_version() { if [ -n "${PULSE_IMAGE_VERSION:-}" ]; then diff --git a/scripts/installtests/build_release_assets_test.go b/scripts/installtests/build_release_assets_test.go index d86d2c065..8b5158edd 100644 --- a/scripts/installtests/build_release_assets_test.go +++ b/scripts/installtests/build_release_assets_test.go @@ -492,15 +492,14 @@ func TestCurrentSupportPrereleasePacketTracksInstallMetadata(t *testing.T) { "`v"+version+"` is a release candidate", "## Highlights", "stable `v"+previous+"`", - "supersedes `v6.2.0-rc.6`", - "Proxmox guests keep one canonical identity", - "TrueNAS ZFS ARC is treated as reclaimable cache", - "remain usable on narrow screens", - "documentation set linked from Pulse now ships with the application", - "bounded configuration-backup retention", - "hostname changes heal without detaching findings", - "Browser-verification receipts are now enforced", - "Windows PowerShell 5.1", + "supersedes `v6.2.0-rc.7`", + "aligns the Go runtime memory limit", + "routes now share one session-administrator model", + "TrueNAS completed init containers no longer create permanent critical alerts", + "Large threshold sections and expanded infrastructure tables remain usable", + "Product telemetry now measures content-free adoption counts", + "every successfully read WebSocket frame as client liveness", + "Hardware-related fix claims now require version-bound live-runtime proof", "iOS build 12 is distributed through the TestFlight public beta link", "Android versionCode 9 remains available through Play open testing", "No public mobile-store rollout is part of this RC", @@ -510,17 +509,17 @@ func TestCurrentSupportPrereleasePacketTracksInstallMetadata(t *testing.T) { ) assertFileContainsAllNormalized(t, changelogPath, "Version: `v"+version+"`", - "Previous candidate: `v6.2.0-rc.6`", + "Previous candidate: `v6.2.0-rc.7`", "Previous stable: `v"+previous+"`", "Rollback target: `v"+previous+"`", "Promotion path: exact-SHA single-build release candidate from `main`", - "This changelog describes the changes since `v6.2.0-rc.6`", - "Preserved canonical Proxmox guest identity and metadata across node migrations", - "Healed safe hostname-rename identity forks", - "Treated TrueNAS ZFS ARC as reclaimable cache", - "Retained valid virtio, Xen, and non-SMART block devices", - "Centralized platform View controls", - "Enforced, content-bound browser verification receipts", + "This changelog describes the changes since `v6.2.0-rc.7`", + "Cgroup-aware Go memory-limit configuration", + "Accepted any inbound WebSocket frame as proof of liveness", + "Matched cross-site auto-registration to canonical Proxmox identity", + "Stopped completed TrueNAS init containers from creating permanent critical incidents", + "Corrected authorization and capability parity", + "Removed the structurally inert Patrol autofix telemetry counter", "Windows signing decision: Authenticode through SignPath is the mandatory signing backend", "Mobile decision: `existing-mobile-build-compatible`", "iOS build 12 is distributed through the TestFlight public beta link", @@ -559,7 +558,7 @@ func TestCurrentSupportPrereleasePacketTracksInstallMetadata(t *testing.T) { "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 `v"+version+"` server cut is classified `existing-mobile-build-compatible`.", - "The current beta candidates cover the server contract used by this cut; no additional companion upload or public store rollout is part of RC7.", + "The changes since RC7 do not alter mobile relay payloads, pairing, approvals, or onboarding contracts; no additional companion upload or public store rollout is part of RC8.", ) } diff --git a/scripts/installtests/install_docker_sh_test.go b/scripts/installtests/install_docker_sh_test.go index 2e3a02465..c4dcd7e09 100644 --- a/scripts/installtests/install_docker_sh_test.go +++ b/scripts/installtests/install_docker_sh_test.go @@ -132,6 +132,7 @@ func TestPreviousStableForPrereleaseVersionCrossesMinorBoundaries(t *testing.T) {version: "6.2.0-rc.5", want: "6.1.2"}, {version: "6.2.0-rc.6", want: "6.1.2"}, {version: "6.2.0-rc.7", want: "6.1.2"}, + {version: "6.2.0-rc.8", want: "6.1.2"}, } for _, test := range tests { @@ -339,7 +340,8 @@ 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.", - "is a continuity and operator-workflow cut that supersedes `v6.2.0-rc.6`: it preserves Proxmox guest and renamed-host identity, corrects TrueNAS and host metrics, makes platform tables and filters responsive, ships the in-app documentation set, and hardens installer and private Pro release recovery", + "is a runtime-resilience and authorization-coherence cut that supersedes `v6.2.0-rc.7`: it aligns Go memory pressure with cgroup limits, hardens WebSocket liveness, corrects TrueNAS and Proxmox protection state, unifies session-admin enforcement, and removes clipping from long operator surfaces", + "The preceding `v6.2.0-rc.7` candidate used the same support-prerelease path with `rollback_version=v6.1.2` and pinned the same four install surfaces to `6.2.0-rc.7`.", "The preceding `v6.2.0-rc.6` candidate used the same support-prerelease path with `rollback_version=v6.1.2` and pinned the same four install surfaces to `6.2.0-rc.6`.", "The preceding `v6.2.0-rc.5` candidate used the same support-prerelease path with `rollback_version=v6.1.2` and pinned the same four install surfaces to `6.2.0-rc.5`.", "The preceding `v6.2.0-rc.4` candidate used the same support-prerelease path with `rollback_version=v6.1.2` and pinned the same four install surfaces to `6.2.0-rc.4`.", @@ -348,7 +350,7 @@ func TestInstallDockerProofTracksSupportPrereleaseContract(t *testing.T) { "The preceding `v6.2.0-rc.1` candidate used the same support-prerelease path with `rollback_version=v6.1.2` and pinned the same four install surfaces to `6.2.0-rc.1`.", "The `v"+version+"` server cut is classified `existing-mobile-build-compatible`.", "Pulse Mobile 1.0.0 iOS build 12 and Android versionCode 9 candidates, both using runtime version 2, remain distributed to the existing beta cohort through TestFlight and Play open testing.", - "The current beta candidates cover the server contract used by this cut; no additional companion upload or public store rollout is part of RC7.", + "The changes since RC7 do not alter mobile relay payloads, pairing, approvals, or onboarding contracts; no additional companion upload or public store rollout is part of RC8.", "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.", )