Commit Graph

10049 Commits

Author SHA1 Message Date
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 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
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] 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
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
rcourtman 973c7c2ec0 Accept availability and fleet view bundle growth
The Standalone and AvailabilitySettingsPanel chunks grew past their budgets
with the availability history and fleet view (712f1a3bfe) and
multi-location service delivery evidence (16a1574a18) features. Earlier
unit-test and formatting failures in the Frontend job masked the budget
step until now. Baseline refreshed from the current build.
2026-08-31 08:09:37 +01:00
rcourtman 110dc01aef Format the setup guide guardrail test 2026-08-31 07:05:07 +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
rcourtman 1cce814ad3 Make the overview delivery warning clearable in place
The notification delivery warning renders on the alerts overview, but its
Retry and Dismiss queue actions only existed on the notifications tab, so
the card people actually see offered nothing but a refresh button.

Hoist the retained-queue actions into the shared delivery health hook and
wire them into the overview card, with the notifications tab reusing the
same implementation plus its delivery log reload.

Refs #1812
2026-08-31 06:39:14 +01:00
rcourtman a1336348cb Stop partial PBS sync copies pinning guests as backing up
A PBS-to-PBS sync that fails mid-snapshot leaves a manifest-less copy of an
already-completed backup on the target datastore. That copy has the same
signature as a snapshot being written right now (no size, no
index.json.blob), so the guest showed Backup Running indefinitely until the
sync was repaired.

An in-flight snapshot only reports the guest as backing up when it is newer
than the guest's last completed backup and within the same 24h cutoff that
already ages out stale running vzdump tasks. A genuine in-progress backup is
always newer than the last completed one; a partial sync copy never is.

Refs #1815
2026-08-31 06:33:09 +01:00
rcourtman 669cce6787 Restore main CI after guardrail and contract drift
Three consecutive main runs were red because landed features outran their
guardrails while change detection kept the affected shards out of their own
runs.

- Resync shipped copies of API.md, CODE_SIGNING_POLICY.md, and
  PRODUCTION_SECURITY.md from repo docs.
- Track the schema v16 telemetry disclosure (workload-history adoption
  counts) in the settings architecture guardrail.
- Track route-scoped TrueNAS hydration queries and the conditional Kind
  column class in the platform overview layout guardrails.
- Track the contained command-authority copy (legacy combined command
  profile) in the installer and setup guide tests.
- Match the sentence-split delivery retention copy in AlertDeliveryLogCard.
- Provide selectedAgentUrl, insecureMode, and customCaPath in the
  InfrastructureWorkspace operations mock for the safe-collector commands.
- Include the resource list facets block in the two API contract snapshots,
  normalizing the direct-marshal fixture the way every handler does.
- Require the fail-closed installer checksum wording in the
  AGENT_SUBSTRATE doc contract.
2026-08-31 06:26:53 +01:00