Commit Graph

10059 Commits

Author SHA1 Message Date
pulse-triage[bot] 542b275b11 Merge remote-tracking branch 'origin/main'
Change-source: pulse-maintainer
2026-09-01 00:27:23 +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
pulse-triage[bot] 4dbbeba3bd Merge remote-tracking branch 'origin/main' 2026-08-31 23:32:45 +01:00
rcourtman f967857928 Harden secure agent recovery transports 2026-08-31 23:12:00 +01:00
pulse-triage[bot] 78f225a933 Make Patrol finding options a true disclosure
Contract-Neutral: Changes only the Patrol finding disclosure interaction and accessible naming without changing Patrol lifecycle or API contracts.
2026-08-31 22:32:03 +01:00
pulse-triage[bot] 57598cbf3e Bound agent capability HTTP responses
Contract-Neutral: Enforces client-side response resource limits without changing the agent wire contract.
2026-08-31 22:30:17 +01:00
pulse-triage[bot] c6307b81c9 Merge remote-tracking branch 'origin/main' 2026-08-31 22:20:25 +01:00
rcourtman 2aece859a5 Harden safe rootless runtime recovery 2026-08-31 22:17:07 +01:00
pulse-triage[bot] c4a89e8b77 Merge remote-tracking branch 'origin/main' 2026-08-31 22:14:42 +01:00
rcourtman 72d3ebb501 Keep hot-dev build temp on the configured Go temp volume
The Go linker's dsymutil step writes DWARF output under TMPDIR rather
than GOTMPDIR, so backend builds failed with ENOSPC on the
space-constrained boot volume even with GOCACHE and GOTMPDIR already on
the Development SSD. hot-dev now exports TMPDIR from the machine's
configured GOTMPDIR when one exists, keeping every build temp file on
the same volume as the rest of the build state.
2026-08-31 22:11:38 +01:00
pulse-triage[bot] 27ba576605 Merge remote-tracking branch 'origin/main' 2026-08-31 22:04:36 +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
pulse-triage[bot] 3222920a4d Keep toast feedback readable and in view 2026-08-31 21:41:28 +01:00
pulse-triage[bot] 39de104713 Enforce remote config response limits 2026-08-31 21:33:18 +01:00
pulse-triage[bot] 6034116ee2 Honor reduced motion across the product
Change-source: pulse-maintainer
2026-08-31 21:20:30 +01:00
pulse-triage[bot] 327682ad34 Bound Proxmox API success responses
Change-source: pulse-maintainer
2026-08-31 21:20:30 +01:00
pulse-triage[bot] bd146586e8 Make release continuity failures actionable
Change-source: pulse-maintainer
2026-08-31 21:20:30 +01:00
pulse-triage[bot] 86f8073c0a Keep compact actions at accessible target size
Change-source: pulse-maintainer
2026-08-31 21:20:30 +01:00
pulse-triage[bot] 8475646358 Reject ambiguous Kubernetes host enrichment
Change-source: pulse-maintainer
2026-08-31 21:20:30 +01:00
pulse-triage[bot] f69ce1daae Use Kubernetes node identity for host linking
Change-source: pulse-maintainer
2026-08-31 21:20:29 +01:00
rcourtman 0c76b5d756 Stabilize API test log capture 2026-08-31 19:47:01 +01:00
pulse-triage[bot] 8eccd24bff Keep cluster install action label accessible
Change-source: pulse-maintainer
2026-08-31 19:07:56 +01:00
pulse-triage[bot] e6f335e244 Keep tag input labels stable
Change-source: pulse-maintainer
2026-08-31 19:07:56 +01:00
rcourtman 83cc5e5642 Give stable backend qualification full completion headroom 2026-08-31 19:05:32 +01:00
pulse-triage[bot] 0f7a8683c2 Block privileged workflow code ingress
Change-source: pulse-maintainer
2026-08-31 18:21:45 +01:00
pulse-triage[bot] f0e006d645 Keep managed integration tests checkout-independent
Change-source: pulse-maintainer
2026-08-31 18:21:45 +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 17a1c2096d Decouple WebSocket contract tests from monitor workload 2026-08-31 17:59:38 +01:00
rcourtman ed6f429674 Make action runner authority state crash-safe 2026-08-31 17:34:30 +01:00
pulse-triage[bot] 8f877bee14 Bind privileged workflow runs to canonical code
Change-source: pulse-maintainer
2026-08-31 17:09:53 +01:00
pulse-triage[bot] 65e6d5428a Make configuration forms programmatically labeled
Change-source: pulse-maintainer
2026-08-31 17:09:53 +01:00
pulse-triage[bot] 1bb23545b6 Require TrueNAS API key owner identity
Change-source: pulse-maintainer
2026-08-31 17:09:53 +01:00
rcourtman bbdc2d5413 Stabilize WebSocket contract tests under release load 2026-08-31 16:32:56 +01:00
pulse-triage[bot] 31f6afad41 Define backup task timeline contract
Change-source: pulse-maintainer
2026-08-31 16:00:47 +01:00
pulse-triage[bot] da36bcd482 Keep subsystem lookup tests checkout-independent
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
pulse-triage[bot] d0b51eb068 Clarify Proxmox cluster agent onboarding 2026-08-31 13:03:23 +01:00
pulse-triage[bot] 164b747e83 Make contract audit tests checkout-independent 2026-08-31 12:26:33 +01:00
rcourtman ee881d4849 Refresh v6.4.2 release cutoff 2026-08-31 12:14:12 +01:00
pulse-triage[bot] 7558d422ea Require qualified Proxmox pin endpoints
Fail closed when provider endpoints are IP addresses or repeated single-label names, since those values are commonly reused across independent private estates. Preserve the candidate's qualified-endpoint continuity and add coverage for the short-endpoint collision.

Refs #1753

Contract-Neutral: narrows internal durable identity recovery evidence
2026-08-31 12:09:28 +01:00
pulse-triage[bot] e00d0eee03 Keep same-name Proxmox estates distinct after restart
Scope durable Proxmox identity-pin recovery to exact provider endpoints or established cluster identity. Record full named endpoints in new host pins and fail closed on legacy short-hostname pins, preventing the first reporting agent from canonically absorbing another standalone estate during provider-first boot windows.\n\nRefs #1753\n\nContract-Neutral: narrows internal canonical identity recovery without changing API or extension shapes
2026-08-31 12:09:28 +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