Commit Graph

4713 Commits

Author SHA1 Message Date
rcourtman f43929f4c8 Point security disclosures at security@pulserelay.pro
security@pulseapp.io was the published private-disclosure contact in
SECURITY.md and the mirrored doc copies, but pulseapp.io has no MX
records, so every report sent there bounced. security@pulserelay.pro
now has a Cloudflare Email Routing rule (added 2026-09-01) and was
verified accepting mail at the MX before this change.
2026-09-01 15:21:23 +01:00
pulse-triage[bot] 1ef5618190 Verify exact release activation bytes
Change-source: pulse-maintainer
2026-09-01 13:29:06 +01:00
rcourtman 11aadbfb1b Add rootless runtime qualification harness 2026-09-01 12:29:44 +01:00
pulse-triage[bot] a34f3c752b Keep convergence evidence off sealed releases
Change-source: pulse-maintainer
2026-09-01 11:38:55 +01:00
rcourtman 60d0651a88 Cancel abandoned typed agent operations 2026-09-01 11:21:26 +01:00
pulse-triage[bot] f7d7e7af8c Clarify external watchdog direction
Change-source: pulse-maintainer
2026-09-01 11:00:03 +01:00
rcourtman 4e22a49f02 Add native PVE action qualification harness 2026-09-01 10:43:35 +01:00
pulse-triage[bot] f313882a7b Pin container provenance workflow revision
Change-source: pulse-maintainer
2026-09-01 09:56:14 +01:00
rcourtman 01ff388c7e Preserve native Proxmox guest handoff 2026-09-01 09:31:40 +01:00
pulse-triage[bot] b49b3d89f4 Merge remote-tracking branch 'origin/main'
Change-source: pulse-maintainer
2026-09-01 08:18:37 +01:00
rcourtman f4886c2dfb Document per-node agent installs for PVE clusters
The generated install command is host-generic, but nothing said so, and
cluster operators kept asking how to cover every member (#1816, #1618).
State it in the agent Quick Start next to the command generator pointer.

Refs #1816
2026-09-01 06:36:02 +01:00
pulse-triage[bot] ba727edf12 Refresh trusted checkout action
Change-source: pulse-maintainer
2026-09-01 02:31:08 +01:00
pulse-triage[bot] e1bce8b77f Build release payloads on ephemeral runners
Change-source: pulse-maintainer
2026-09-01 01:41:09 +01:00
pulse-triage[bot] 3acc255559 Merge remote-tracking branch 'origin/main'
Change-source: pulse-maintainer
2026-09-01 01:41:09 +01:00
rcourtman f9ae289bd5 Contain typed action subprocesses with systemd 2026-09-01 01:26:39 +01:00
pulse-triage[bot] c253495045 feat: add fleet health home
Change-source: pulse-maintainer
2026-09-01 01:02:17 +01:00
pulse-triage[bot] 2222c5ce37 Make security review baseline fail closed 2026-09-01 01:02:17 +01:00
rcourtman cd2eac71b2 Keep helper rollback recovery persistent 2026-09-01 00:26:37 +01:00
rcourtman ac47e67878 Harden helper quarantine file reads 2026-09-01 00:07:32 +01:00
rcourtman 4724c0764b Fence runner activation session authority 2026-08-31 23:52:25 +01:00
rcourtman f967857928 Harden secure agent recovery transports 2026-08-31 23:12:00 +01:00
rcourtman 2aece859a5 Harden safe rootless runtime recovery 2026-08-31 22:17:07 +01:00
rcourtman 6185cf3f88 Bound alert lifecycle replay with a durable projection watermark
Projection replay walked the entire alert event log on every boot, twice
(monitor start and the resource-store boundary), synchronously on the
serving path, and every replayed event queued a full incident-store JSON
rewrite. A 64k-event log made startup exceed the dev supervisor's
health-kill window, so the backend restarted forever and never served.

The event log now owns per-consumer projection watermarks in
alert_store_meta, WalkOldest takes an AfterID cursor, and the single
catch-up pass runs in the background at the canonical resource-store
boundary with periodic watermark checkpoints. The watermark only
advances when both the incident store and the canonical change recorder
are attached, so partial-surface passes repair without marking events
applied, and lowering the watermark forces a full repair replay.
Incident-store saves now coalesce: a burst of mutations queues one
whole-store serialization instead of one per event, live paths included.

Registers the alert-lifecycle-replay-startup-scalability coverage gap
and amends the alerts and monitoring subsystem contracts accordingly.
2026-08-31 21:57:58 +01:00
rcourtman 83cc5e5642 Give stable backend qualification full completion headroom 2026-08-31 19:05:32 +01:00
pulse-triage[bot] c8ee0ba74d Make workload tag filters keyboard accessible
Change-source: pulse-maintainer
2026-08-31 18:21:45 +01:00
rcourtman 5754d924d7 Add rootful Docker secure-runtime qualification 2026-08-31 18:13:22 +01:00
rcourtman 81c7c46b58 Align v6.4.2 notes with final release cutoff 2026-08-31 18:02:59 +01:00
rcourtman ed6f429674 Make action runner authority state crash-safe 2026-08-31 17:34:30 +01:00
pulse-triage[bot] 31f6afad41 Define backup task timeline contract
Change-source: pulse-maintainer
2026-08-31 16:00:47 +01:00
rcourtman cf021bc9ce Surface typed helper container degradation 2026-08-31 15:53:50 +01:00
rcourtman cdfcac5756 Refresh v6.4.2 final cutoff 2026-08-31 13:46:43 +01:00
pulse-triage[bot] 69cbe5f3b8 Enforce protected GitHub checkout baseline 2026-08-31 13:21:25 +01:00
rcourtman d19398d82a Surface typed helper degradation in Agent Doctor 2026-08-31 13:06:28 +01:00
rcourtman ee881d4849 Refresh v6.4.2 release cutoff 2026-08-31 12:14:12 +01:00
rcourtman 2ddd12cb31 Repair v6.4.2 Helm provenance 2026-08-31 11:59:11 +01:00
pulse-triage[bot] d5945f824d Preserve Pulse severity in systemd journal 2026-08-31 11:46:51 +01:00
rcourtman f47ac1f020 Define beta and RC release maturity 2026-08-31 11:42:03 +01:00
rcourtman 70c1d0a178 Authenticate RC artifacts before qualification 2026-08-31 09:49:41 +01:00
Richard Courtman da62890d82 Refresh v6.4.2 release packet 2026-08-31 09:45:27 +01:00
Richard Courtman 2ff027a743 Bind release candidate version explicitly 2026-08-31 09:37:28 +01:00
pulse-triage[bot] 8c63984696 Clear stale PBS backup-running state 2026-08-31 07:03:43 +01:00
rcourtman bad717f16e Document agent URL updates when the server address changes
Restoring a configuration backup onto a Pulse instance with a new address
makes every agent vanish until each agent's configured --url (PULSE_URL for
containers) is updated, because agents dial the address they were installed
with. The post-migration checklist covered the token but not the address.

Refs #1813
2026-08-31 06:41:11 +01:00
pulse-triage[bot] 240adaa5e4 Authenticate every published installer 2026-08-31 04:55:15 +01:00
pulse-triage[bot] a190703fe5 Reject ambiguous release checksum manifests 2026-08-31 04:40:34 +01:00
pulse-triage[bot] 445ebacf24 Restore delivery qualification trust
Harden release workflow input transport and make native lifecycle proof honor each platform security boundary. Refresh stale telemetry and delivery qualifications.

Contract-Neutral: Formatting-only catalog updates and browser-verified alert copy; release compiler and native lifecycle changes update their owning contracts.
2026-08-31 03:02:13 +01:00
rcourtman 7650fdaba3 Wire secure runtime RC qualification 2026-08-31 01:50:48 +01:00
Richard Courtman fec48928ee Record schema v6 secure runtime qualification 2026-08-31 01:12:15 +01:00
Richard Courtman d3884d64db Prepare v6.4.2 security patch 2026-08-31 01:03:09 +01:00
Richard Courtman 79967177ea Enforce explicit SSO administrator grants 2026-08-31 00:43:42 +01:00
pulse-triage[bot] 0f2d7ae055 Make notification delivery failures actionable 2026-08-31 00:39:53 +01:00