Commit graph

4728 commits

Author SHA1 Message Date
pulse-triage[bot]
8db0f7101f Merge remote-tracking branch 'origin/main'
Change-source: pulse-maintainer
2026-09-01 18:46:36 +01:00
rcourtman
d99e3cc715 Log rootless admission fallback reasons 2026-09-01 18:39:23 +01:00
pulse-triage[bot]
6b5369bbfa Align TrueNAS guidance with JSON-RPC runtime
Change-source: pulse-maintainer
2026-09-01 18:32:39 +01:00
pulse-triage[bot]
f8de8b90ce Merge remote-tracking branch 'origin/main'
Change-source: pulse-maintainer
2026-09-01 17:24:14 +01:00
rcourtman
bfd53cd7bd Remove privileged helper state on full uninstall 2026-09-01 17:05:49 +01:00
pulse-triage[bot]
8d9b07905c Merge remote-tracking branch 'origin/main'
Change-source: pulse-maintainer
2026-09-01 17:04:10 +01:00
rcourtman
69a300827f Model durable collector teardown in rootless qualification 2026-09-01 16:54:50 +01:00
pulse-triage[bot]
7ead40fe5b Merge remote-tracking branch 'origin/main'
Change-source: pulse-maintainer
2026-09-01 16:54:07 +01:00
rcourtman
f44968e6c6 Isolate rootless qualification cgroups 2026-09-01 16:37:11 +01:00
pulse-triage[bot]
c1c0e5c6f1 Merge remote-tracking branch 'origin/main'
Change-source: pulse-maintainer
2026-09-01 16:31:15 +01:00
rcourtman
5e471c1dd5 Use supported rootless Docker qualification networking 2026-09-01 16:25:18 +01:00
rcourtman
63d1aca4c0 Fix rootless qualification packet staging 2026-09-01 16:15:21 +01:00
pulse-triage[bot]
9a5af6ff79 Keep Windows agent update signatures addressable
Change-source: pulse-maintainer
2026-09-01 16:11:04 +01:00
rcourtman
d0b8b43a36 Redact customer email from billing-replay verification record
This repo is public and the 2026-03-13 hosted-signup billing-replay
record carried a real customer's email address since 2026-03-27. The
adjacent tenant, account, and Stripe ids already identify the tenant
for operators, so the address line adds nothing but exposure.

The address remains in git history; rewriting public history is a
separate decision and is not part of this commit.
2026-09-01 16:06:49 +01:00
rcourtman
53267e149d Harden least-privilege installer lifecycle state 2026-09-01 15:53:02 +01:00
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
Some checks are pending
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
Canonical Private Governance / private-governance (push) Waiting to run
Helm CI / Lint and Render Chart (push) Waiting to run
Patrol Qualification Regression / Catalog, scorer, and replay regression (push) Waiting to run
Public docs / check (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
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
Some checks are pending
Build and Test / Secret Scan (push) Waiting to run
Build and Test / Script smoke tests & backend build (push) Blocked by required conditions
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
Patrol Qualification Regression / Catalog, scorer, and replay regression (push) Waiting to run
Public docs / check (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
Build and Test / Benchmarks (push) Blocked by required conditions
Canonical Governance / governance (push) Waiting to run
Canonical Private Governance / private-governance (push) Waiting to run
Core E2E Tests / Playwright Core E2E (shard 7/8) (push) Blocked by required conditions
Unified Agent Native Verification / macOS Intel (push) Waiting to run
Unified Agent Native Verification / FreeBSD cross-build contract (push) Waiting to run
Core E2E Tests / Playwright Core E2E (shard 6/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
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