Commit graph

88 commits

Author SHA1 Message Date
rcourtman
6999ca0119 Prepare 6.0.5 release 2026-07-09 11:52:28 +01:00
rcourtman
0d787a4b1f Prepare v6.0.5 RC4 release packet
Refs #1535
2026-07-08 13:10:06 +01:00
rcourtman
0ff922ca16 Prepare v6.0.5 RC3 release packet
Refs #1535
2026-07-07 16:48:12 +01:00
rcourtman
e1cddca2d1 Prepare v6.0.5 RC2 release packet
Refs #1470

Refs #1471

Refs #1476

Refs #1483

Refs #1511

Refs #1515

Refs #1516

Refs #1524

Refs #1533

Refs #1534
2026-07-07 10:50:49 +01:00
rcourtman
dded079297 Prepare v6.0.5 RC1 release packet
Some checks are pending
Build and Test / Secret Scan (push) Waiting to run
Build and Test / Frontend & Backend (push) Waiting to run
Canonical Governance / governance (push) Waiting to run
Helm CI / Lint and Render Chart (push) Waiting to run
Core E2E Tests / Playwright Core E2E (push) Waiting to run
Refs #1530

Refs #1531

Refs #1471
2026-07-07 00:12:09 +01:00
rcourtman
4b669ad9b5 Fix SAT SMART temperature collection
Refs #1471
2026-07-06 23:42:00 +01:00
rcourtman
41a99c1a03 Prepare v6.0.5 patch release
Some checks are pending
Build and Test / Secret Scan (push) Waiting to run
Build and Test / Frontend & Backend (push) Waiting to run
Canonical Governance / governance (push) Waiting to run
Helm CI / Lint and Render Chart (push) Waiting to run
Core E2E Tests / Playwright Core E2E (push) Waiting to run
Refs #1530

Refs #1531
2026-07-06 23:29:17 +01:00
rcourtman
1d7fa6c4bf Prepare v6.0.4 release 2026-07-06 16:50:59 +01:00
rcourtman
c384d5e0c8 Prepare v6.0.3 patch release
Some checks are pending
Build and Test / Secret Scan (push) Waiting to run
Build and Test / Frontend & Backend (push) Waiting to run
2026-07-05 11:07:27 +01:00
rcourtman
c0ae794dc9 Prepare v6.0.2 release
Some checks are pending
Build and Test / Secret Scan (push) Waiting to run
Build and Test / Frontend & Backend (push) Waiting to run
2026-07-04 23:19:42 +01:00
rcourtman
84ad973540 Prepare v6.0.1 patch release
- bump release, Docker, and Helm metadata to 6.0.1

- add committed v6.0.1 patch release notes and changelog

- allow stable patch hotfix releases without a fabricated same-version prerelease tag
2026-07-04 19:32:01 +01:00
rcourtman
de0c5ff5c1 Retire v6 preview demo target after GA 2026-07-04 16:16:57 +01:00
rcourtman
63bbbb1508 Refresh v6 GA publication metadata 2026-07-04 10:30:10 +01:00
rcourtman
d156ef7469 Reconcile V6_CHANGELOG.md to GA head
Correct the baseline (v5.1.34 -> v5.1.35) and RC range (rc.1-rc.6 ->
rc.1-rc.7 plus post-RC7 GA fixes) so the published v6.0.0 changelog
matches the final release head.

Stop framing TrueNAS and vSphere as platforms v5 operators already know:
both are new in v6. The intro now narrows the 'already know' list to
what v5 actually shipped and names the new top-level pages explicitly.

Add two major-change bullets that the narrative was missing:
- TrueNAS as a first-class platform (parallel to the existing vSphere
  bullet)
- AI intelligence services at /api/ai/intelligence/*, the surface Patrol
  and Assistant consume

All factual claims verified against the GA head (routes, packages, docs,
and migration behavior all present in the tree).
2026-07-04 10:19:58 +01:00
rcourtman
3dfac7df16 Align v6 GA publication dates
- set the GA packet to 2026-07-03
- set the v5 maintenance end date to 2026-10-01
2026-07-03 21:14:29 +01:00
rcourtman
aa1913d0bb Record v6 GA owner approval 2026-07-02 21:33:37 +01:00
rcourtman
2900e41b2d Refresh RC7 packet after release-gate fixes
Some checks failed
Build and Test / Secret Scan (push) Has been cancelled
Build and Test / Frontend & Backend (push) Has been cancelled
2026-06-28 03:30:31 +01:00
rcourtman
ea15f9f3bf Refresh RC7 packet for current head 2026-06-28 00:05:22 +01:00
rcourtman
24b16fe6c5 Refresh RC7 release packet after install-default fix 2026-06-27 10:24:01 +01:00
rcourtman
da14b88d9f Prepare v6.0.0-rc.7 release candidate 2026-06-27 09:06:02 +01:00
rcourtman
ee8a24e14a backend and governance: MCP contract, agent capabilities, API, and release-control
Manifest-backed MCP tools, prompts, and resources with surface affordance contracts; agent capability manifest and governance projection; API contract tests and capability route projection; operations-loop and intelligence-funnel telemetry; release-control subsystem documentation, registry, and tooling; licensing and configuration.
2026-06-23 17:26:15 +01:00
rcourtman
11464b4df8 Clarify agent upgrade and notification docs
Some checks are pending
Build and Test / Secret Scan (push) Waiting to run
Build and Test / Frontend & Backend (push) Waiting to run
2026-06-12 19:26:26 +01:00
rcourtman
3a51429a58 fix(licensing): honest installation-limit copy and v6 connectivity disclosure
Docs and frontend half of the licensing-policy client work from the v6
upgrade sweep (license findings 5 and 6); the Go classifier and grant
refresh fix land separately once the shared pre-commit guard unblocks.

A 409 MAX_INSTALLATIONS during v5 key migration rendered as 'another v6
activation handoff is still settling. Retry activation from this
instance.' Retrying can never succeed until a slot is freed server-side,
so that copy stranded users. The notice now says the key is already
active on its maximum number of v6 installations and points at
support@pulserelay.pro to free a slot, via the new
exchange_installation_limit reason and free_installation_slot action.

docs/UPGRADE_v6.md gains a 'Breaking Change: Paid Licensing Requires
Connectivity' section: v5 validated keys fully offline, v6 needs
periodic connectivity to license.pulserelay.pro, with roughly 10 days of
offline tolerance (72 hour grant plus 7 day grace) before paid features
drop to Community, plus air-gap guidance and the migrated-key
installation cap. docs/releases/V6_CHANGELOG.md gains the matching
breaking-change bullet.

Note: the two frontend files also carry two small additive hunks from
the parallel persisted-license-unreadable slice (a copy case and its
test, inert until its Go side lands); they share these files and are
included to avoid splitting them mid-flight.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-11 08:32:07 +01:00
rcourtman
43bc15c12f fix(config): restore legacy PORT fallback for FRONTEND_PORT with deprecation warning
v5 documented PORT as a legacy alias for FRONTEND_PORT. v6 dropped the
fallback silently, so an install configured with PORT=8080 upgrades to
v6 and comes up on 7655 with no explanation, unreachable behind its
existing port mapping or reverse proxy.

Honor PORT again at lowest precedence (FRONTEND_PORT wins when both are
set) and log a deprecation warning at startup, mirroring the existing
legacy DISABLE_AUTH handling. Document PORT as deprecated in
CONFIGURATION.md and note the compatibility behavior in the v6
changelog.
2026-06-10 22:32:28 +01:00
rcourtman
bd6f77e093 Prepare v6.0.0 release candidate
Tighten v5-to-v6 upgrade safety, release installability, provider MSP mode handling, AI cost accounting, metrics flushing, and frontend guardrails for the v6.0.0 GA candidate.
2026-06-04 14:07:14 +01:00
rcourtman
4ef6caaa9d Finalize v6 GA release packet 2026-06-03 17:15:00 +01:00
rcourtman
c25e95cb2b Drop keyboard shortcut listings from rc.6 release docs
The Cmd/Ctrl+K command palette and the / global search shortcut are
the navigation affordances worth calling out. The g-chord shortcuts
are not a notable customer-facing feature for the rc.6 prerelease
notes; the keyboard shortcut modal already documents them in-product
for anyone who wants to discover them.
2026-05-27 20:46:51 +01:00
rcourtman
1407996e58 Drop Standalone framing from release docs; describe rename as Hosts → Machines
The internal rename chain in rc.1-rc.5 went Agents -> Standalone ->
Machines but neither Agents nor Standalone shipped as user-visible
labels for the Pulse Agent inventory page. Users coming from v5 know
the page as Hosts. The rc.6 release docs incorrectly framed the
change as 'Standalone surface renamed to Machines' which references
an internal name no public release ever exposed.

Reframe in the shipped v6 docs and the rc.6 packet drafts as
'Hosts page renamed to Machines'. Top-level page listings updated
to use Machines (not Standalone). Keyboard shortcut listing
updated to 'g s Machines' (not Standalone). 'Standalone-to-Machines
surface evolution' rewritten as 'Hosts-to-Machines rename'.

Touches:
- docs/releases/RELEASE_NOTES_v6.md
- docs/releases/V6_CHANGELOG.md
- docs/releases/V6_RC_OPERATOR_SUPPORT_PACK.md
- docs/releases/RELEASE_NOTES_v6_RC6_DRAFT.md
- docs/releases/V6_CHANGELOG_RC6_DRAFT.md
- docs/releases/V6_RC6_OPERATOR_SUPPORT_PACK_DRAFT.md

The internal route path /standalone is unchanged because that is a
code-level identifier, not a user-facing label.
2026-05-27 20:44:29 +01:00
rcourtman
8769f07eea Land SMART/SSH temperature feature, rc.6 finalization, and post-IA-revert governance reconciliation 2026-05-27 15:27:25 +01:00
rcourtman
affc1c76ed Add rc.6 operator support pack and prerelease index pointers
Stages the doc-only subset of rc.6 packet prep work on top of
df7934936. Holds VERSION bump and the registry/contract governance
reconciliation back for a focused later pass since the IA revert
created broader subsystem-contract debt than the packet prep can
absorb.

- docs/releases/V6_RC6_OPERATOR_SUPPORT_PACK_DRAFT.md: new 300-line
  operator support brief mirroring the rc.5 pack with rc.6 themes:
  pre-release for testing framing, platform-shaped frontend revert
  explanation, vSphere as a first-class platform, Machines surface,
  TrueNAS native detail UX, FilterBar adoption, Patrol capacity-
  forecast and PDM bridge, free-first self-hosted posture, install.sh
  smoke gate. Carries the rc.5 free-first paid-continuity wording
  through unchanged so the operator-support-pack policy test holds.
- docs/releases/RELEASE_NOTES_v6_RC6_DRAFT.md,
  docs/releases/V6_CHANGELOG_RC6_DRAFT.md: fill in the SHA audit
  numbers (v6.0.0-rc.5..df7934936, 616 commits, 1379 files / 139185
  insertions / 67870 deletions). Add the licensing-continuity
  paragraph carrying the rc.5 Pulse Mobile pairing for handoff
  copy through unchanged so the discovered-packet policy test holds.
- docs/RELEASE_NOTES.md: link the rc.6 draft packet as current, push
  rc.5 to historical.
- docs/UPGRADE_v6.md: round out the prerelease packet pointer block
  with the rc.6 operator support pack path alongside the release
  notes and changelog already pointed at in df7934936.
- docs/releases/V6_PRERELEASE_RUNBOOK.md: add 6.0.0-rc.6 to the
  version-examples list and bump the RC_VERSION export shown in the
  RC release steps to rc.6.

Out of scope for this commit and intentionally held back until
governance reconciliation can land coherently:

- VERSION bump to 6.0.0-rc.6 (triggers deployment-installability
  shape-guard which cascades into registry/contract audits against
  72 dead-file references left over from the rc.6 IA revert).
- docs/release-control/v6/internal/status.json,
  docs/release-control/v6/internal/subsystems/registry.json, and the
  10 subsystem contract .md files that need post-IA-revert cleanup.
- scripts/release_control test fixture refreshes.
- The rc-to-ga-promotion-readiness-blocked record regen (gated on
  VERSION bump landing).

Working copies of the held-back files are preserved at
/tmp/rc6-prep-backup-2026-05-27/ with a MANIFEST.md describing each.
2026-05-27 13:37:24 +01:00
rcourtman
df79349368 Document rc.6 frontend IA revert in v6 release docs
rc.1-rc.5 shipped a unified /infrastructure /workloads /storage
/recovery top-level layout; rc.6 reverts the frontend to platform-
shaped pages (Proxmox / Docker / Kubernetes / TrueNAS / vSphere /
Standalone) on the same unified resource backend.

Updates the shipped v6 release docs to match:

- RELEASE_NOTES_v6.md and V6_CHANGELOG.md rewritten to describe the
  v6 layout as platform-shaped on a unified backend, with a paragraph
  in each explaining the rc.6 revert and the operator feedback that
  drove it.
- UPGRADE_v6.md prerelease packet pointer bumped from rc.5 to rc.6.
- MIGRATION_UNIFIED_NAV.md gets a top-of-file revert banner that
  redirects bookmarks targeting the unified routes to their platform-
  shaped equivalents; the original content is preserved below as a
  Historical Context section so the 19 tracked references into that
  doc still resolve.

Also adds the rc.6 draft packet:

- docs/releases/RELEASE_NOTES_v6_RC6_DRAFT.md
- docs/releases/V6_CHANGELOG_RC6_DRAFT.md

Validation SHAs in both drafts are left as <populate at packet
finalisation> markers; they fill in when the release-control packet
runs.
2026-05-27 11:50:59 +01:00
rcourtman
e1a6dff2a1 Document Pulse Cloud launch in v6 release notes 2026-05-11 23:18:05 +01:00
rcourtman
894ea89af9 Refresh RC5 packet validation range for plain-JSON tool-call sanitisation 2026-05-11 17:09:57 +01:00
rcourtman
366bf8d127 Prepare v6.0.0-rc.5 release packet 2026-05-11 16:52:31 +01:00
rcourtman
3da835c5bc Publish a distribution path for pulse-mcp
The MCP adapter shipped in slice 51 with one install option:
clone the repo and go build. This slice integrates pulse-mcp
into Pulse's existing governed release pipeline so a Pulse
release publishes a pulse-mcp binary alongside the unified agent
and the install scripts that bring it home in one command.

What ships:

  - scripts/build-release.sh extended to build pulse-mcp for
    the same multi-OS matrix as the unified agent, package
    per-platform tarballs and zips, and copy bare binaries to
    RELEASE_DIR for /releases/latest/download/ redirect
    compatibility.
  - .github/workflows/create-release.yml extended to upload
    the bare pulse-mcp binaries plus install-mcp.sh and
    install-mcp.ps1 as release assets.
  - scripts/install-mcp.sh: bash one-line installer that
    detects platform/arch, downloads the matching binary from
    the configured release (latest by default), verifies SHA256
    against the published checksums.txt, places at
    ~/.local/bin/pulse-mcp (or /usr/local/bin if not writable).
    Honors PULSE_MCP_VERSION, PULSE_MCP_BIN_DIR, PULSE_MCP_REPO,
    PULSE_MCP_NO_VERIFY env vars; declines Windows shells with
    a pointer at the .ps1 sibling.
  - scripts/install-mcp.ps1: PowerShell installer for Windows,
    placing pulse-mcp.exe at $LOCALAPPDATA\pulse-mcp.

Documentation aligned:

  - cmd/pulse-mcp/README.md gains an Install section above
    Quick start with three options: one-line installer,
    GitHub Release download, go install. Documents the macOS
    Gatekeeper bypass since v1 is unnotarized by design.
  - The Settings -> API Access agent-integrations panel now
    surfaces the curl|bash command above the config snippet so
    operators see "install pulse-mcp" before "configure your
    MCP client."
  - docs/releases/AGENT_PARADIGM.md drops the "no published
    distribution path" item from "what it does not do yet" and
    documents the Gatekeeper / Homebrew gaps as next-tier
    follow-ups.

Trade-offs surfaced and chosen:

  - Same cadence as Pulse: pulse-mcp ships per Pulse release,
    not on its own track. The MCP server reads the manifest
    from the Pulse it talks to, so version alignment is the
    natural model.
  - No Homebrew tap or core formula in v1. Maintaining a tap
    is real ongoing work; foundation supports adding Homebrew
    later as a layer.
  - No Docker image. Stdio JSON-RPC fights Docker's stdin
    /stdout pattern.
  - No notarization in v1. SHA256 verification through the
    installer preserves the audit trail; README documents the
    Gatekeeper bypass.

Subsystem contract: deployment-installability.md gains
scripts/install-mcp.sh, scripts/install-mcp.ps1, and
cmd/pulse-mcp/ in canonical files (mid-list entries
renumbered) plus a paragraph documenting the new MCP entry
point alongside the existing installer family.

Verification artifacts:

  - scripts/installtests/build_release_assets_test.go gains
    TestBuildReleasePackagesPulseMcpForAllPlatforms which pins
    the build/package/copy wiring and the load-bearing
    install-mcp.sh helpers (platform detection, SHA256
    verification, install-dir resolution).
  - scripts/release_control/render_release_body_test.py gains
    test_agent_paradigm_release_notes_blurb_documents_-
    distribution_path which pins the AGENT_PARADIGM.md draft's
    install-mcp.sh reference and the four-axis frame so a
    future edit cannot regress the install story silently.

Smoke-tested install-mcp.sh locally on darwin-arm64: platform
detection, install-dir resolution, URL building, and 404 error
handling all correct. The full end-to-end install path becomes
live the moment a Pulse release ships pulse-mcp binaries; the
next RC cut will exercise it.
2026-05-10 17:04:49 +01:00
rcourtman
4b6e409747 Draft a release-notes blurb for the agent paradigm work
Sources cleanly into release announcements without forcing a
fresh draft when the next RC or GA cuts.

Sized as a focused source draft (under 130 lines): one-paragraph
headline, three operator-facing bullets, the four-axis frame
(discover, read, write, push) lifted and condensed from
docs/AGENT_SUBSTRATE.md, an integrators-pointing section that
names the two reference adapters and the canonical contract, an
honest "what it does not do yet" paragraph (no published
pulse-mcp distribution; no real-world consumer feedback yet),
and an audit-trail summary.

Style matches the existing docs/releases/RELEASE_NOTES_v6_*.md
draft pattern: technical, plainspoken, no marketing prose,
honest about scope. No em dashes per project rule.

Lives at docs/releases/AGENT_PARADIGM.md alongside the existing
release-notes drafts so a release author finds it where they
already look. The header explicitly frames it as a source
draft to drop into announcements, GitHub prerelease descriptions,
or a "What Changed" section in a versioned release notes file,
trimmed or expanded as the cut requires.

Contract-neutral commit: docs-only addition, no runtime code,
wire shape, manifest entry, error code, version artifact,
release workflow input, governed metadata, or canonical-files
contract changed. PULSE_ALLOW_CONTRACT_NEUTRAL_COMMIT used with
a documented reason since the deployment-installability
verification-artifact rule wants a Python release-promotion
test touched, which would be wrong scope for a markdown draft.
2026-05-10 16:44:26 +01:00
rcourtman
fc4928e1f2 Clarify paid Pulse Pro runtime install path 2026-05-06 21:52:50 +01:00
rcourtman
4aa91f6af3 Refresh RC4 packet after watcher lifecycle fix 2026-05-05 18:30:06 +01:00
rcourtman
09c8e75f4d Refresh RC4 packet validation metadata 2026-05-05 16:27:49 +01:00
rcourtman
1a3e5ec27d Fix tenant monitor broadcast nil hub panic 2026-05-05 16:25:00 +01:00
rcourtman
96c2e160c9 Fix RC4 release validation blockers 2026-05-05 15:59:23 +01:00
rcourtman
f149c5d643 Prepare v6.0.0-rc.4 release packet 2026-05-05 15:32:32 +01:00
rcourtman
f1744d36d0 Refresh RC3 packet for metrics proof fix 2026-05-03 16:38:00 +01:00
rcourtman
f69e68d4a4 Refresh RC3 packet for stable installer fix 2026-05-03 16:18:56 +01:00
rcourtman
6459515c78 Refresh RC3 packet for SSO candidate commits 2026-05-03 15:09:42 +01:00
rcourtman
7e9a7a3fd4 Document RC3 commit coverage audit 2026-05-03 11:52:51 +01:00
rcourtman
2c3ece3e51 Prepare v6.0.0-rc.3 release packet 2026-05-01 20:28:12 +01:00
rcourtman
c7164c2906 Clarify Relay mobile handoff paid copy 2026-04-30 13:18:04 +01:00
rcourtman
7b9389603a Align release docs with infrastructure landing 2026-04-29 23:49:17 +01:00
rcourtman
f060f261cd Present Relay as annual-first support tier 2026-04-29 12:49:20 +01:00