Commit Graph

534 Commits

Author SHA1 Message Date
pulse-triage[bot] c253495045 feat: add fleet health home
Change-source: pulse-maintainer
2026-09-01 01:02:17 +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] f0e006d645 Keep managed integration tests checkout-independent
Change-source: pulse-maintainer
2026-08-31 18:21:45 +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
pulse-triage[bot] 918d87c47a Add automated accessibility regression coverage 2026-08-30 06:58:13 +01:00
pulse-triage[bot] 0d32dac16e Keep release toolchains within support 2026-08-30 06:40:25 +01:00
pulse-triage[bot] f1ddfce083 Improve TrueNAS storage disk scannability 2026-08-30 02:27:41 +01:00
pulse-triage[bot] 61a58758b2 Stabilize telemetry candidate validation
Fail schema-version drift in the fast E2E preflight before starting the browser matrix, and align the stable telemetry preview proof with schema 15.

Change-source: pulse-maintainer
2026-08-29 18:21:50 +01:00
pulse-triage[bot] 974f102333 Stabilize E2E tier test identity
Treat Playwright source coordinates as presentation metadata so cold transform-cache line mappings cannot split one test across all/stable/probation listings. Pin project, spec, and full-title identity with a focused Node regression.

Change-source: pulse-maintainer
2026-08-29 16:31:54 +01:00
pulse-triage[bot] e3c0990e15 Stabilize release validation boundaries
Authenticate global API tokens before cold tenant runtime resolution, lock the cross-org behavior into integration coverage, and refresh schema-14 telemetry browser proof.

Contract-Neutral: Restores bounded cross-org token authorization and records verification without changing the API contract

Change-source: pulse-maintainer
2026-08-29 14:54:04 +01:00
Pulse Test 47afce8171 fix(proxmox): keep backup details on backups tab 2026-08-28 20:49:13 +01:00
pulse-triage[bot] 29eeb33de4 Align sharing E2E with mobile settings shell 2026-08-28 12:24:40 +01:00
Pulse Test 747f79f75e Polish mobile settings experience 2026-08-28 11:47:57 +01:00
Pulse Test e1bc14bd4a Harden alert recovery and qualification 2026-08-28 11:28:38 +01:00
pulse-triage[bot] bcf12535fa Cover API token refresh lifecycle in E2E 2026-08-28 06:14:43 +01:00
pulse-triage[bot] 1ccd973050 Fix legacy webhook normalization migration proof
Change-source: pulse-maintainer
2026-08-27 20:34:14 +01:00
pulse-triage[bot] 811c299cae test(e2e): restore offline Proxmox qualification
Recognize the overview request by its defining workload resource types so additive query families do not route the canonical offline-node fixture to an empty response.
2026-08-27 17:32:39 +01:00
pulse-triage[bot] d4deb26a27 test(proxmox): scope backups table guard 2026-08-27 15:34:40 +01:00
pulse-triage[bot] 6bbf814548 fix(proxmox): govern overview PBS health 2026-08-27 15:15:35 +01:00
rcourtman b6babd0b4b fix(alerts): make incident timelines lifecycle-driven
Contract-Neutral: monitor startup wiring changes only alert lifecycle projection behavior; agent-lifecycle deletion and reenrollment contracts are unchanged
2026-08-27 14:45:36 +01:00
rcourtman 73499d7161 feat(alerts): migrate persisted alert identities 2026-08-27 12:04:49 +01:00
rcourtman 248b242034 test(alerts): automate operator qualification 2026-08-27 11:06:26 +01:00
pulse-triage[bot] 2db7f8c373 Promote qualified offline-node E2E
Change-source: pulse-maintainer
2026-08-26 15:47:58 +01:00
pulse-triage[bot] 9e9c3413a8 Promote qualified E2E specifications
Change-source: pulse-maintainer
2026-08-26 14:27:39 +01:00
rcourtman 8837bf21bd Return flaky offline-node E2E to probation
Change-source: pulse-maintainer
2026-08-26 08:32:51 +01:00
rcourtman a445f23753 Promote five repaired E2E specifications
Change-source: pulse-maintainer
2026-08-26 07:41:34 +01:00
rcourtman 52a3373ae6 Cover delayed Proxmox E2E hydration
Change-source: pulse-maintainer
2026-08-26 05:43:48 +01:00
rcourtman 83ac6a1bea Stabilise Proxmox backups E2E readiness
Change-source: pulse-maintainer
2026-08-26 05:16:18 +01:00
rcourtman 8fdf148e3b Repair demoted E2E specifications
Change-source: pulse-maintainer
2026-08-25 21:59:53 +01:00
rcourtman f5eb87437a Demote failing stable E2E specs to probation 2026-08-25 17:39:14 +01:00
rcourtman b92893351d Make release dry-run diagnostics fail closed (#1758)
* Make release dry-run diagnostics fail closed

Select the installed Chromium project with retries disabled, replace the unconditional pass with fail-closed API and rendered-UI readiness assertions, retain actionable runtime evidence, and guard the release workflow contract against regression.

Contract-Neutral: Release diagnostic and workflow verification hardening only; no product runtime contract changes.

* Expose stable E2E failure identities

Project Playwright JUnit failures into bounded GitHub annotations so repeated stable-tier failures can be diagnosed without rerunning or weakening the gate. Keep the full reports and runtime logs as the forensic record, and cover annotation parsing and escaping with deterministic tests.

Contract-Neutral: This changes CI failure observability only and does not alter product runtime behavior, stable-tier membership, retries, or verdict semantics.

---------

Co-authored-by: rcourtman <rcourtman@users.noreply.github.com>
2026-08-22 07:28:29 +01:00
rcourtman 5bbee0da3d feat: scale the Proxmox demo estate 2026-08-19 16:28:07 +01:00
rcourtman 95c253c486 feat(actions): make Actions a primary workspace 2026-08-18 11:11:21 +01:00
rcourtman ed5d983e8e feat(patrol): simplify the operator workspace 2026-08-18 10:25:01 +01:00
rcourtman 0da7092991 feat(patrol): guide operators through the decision queue 2026-08-18 09:31:14 +01:00
rcourtman ebba3c493b feat(patrol): turn attention into a daily briefing 2026-08-18 07:49:30 +01:00
rcourtman c6cafa6e25 feat(patrol): surface pending operator decisions 2026-08-18 07:48:45 +01:00
rcourtman 3088f52dc0 feat(patrol): redesign the operator workbench 2026-08-17 23:41:03 +01:00
rcourtman f0478c769b Accept tool-free Patrol all-clears 2026-08-14 22:42:08 +01:00
rcourtman 58e0cd9e6c Refresh Patrol browser qualification 2026-08-14 15:38:48 +01:00
rcourtman 48fac73ff0 Rework Patrol around outcome-driven autonomous operations 2026-08-14 12:52:51 +01:00
rcourtman 887b85bc83 Validate Core E2E tiering against run evidence (#1711)
Contract-Neutral: E2E test tier metadata and validation only; no deployment runtime or public contract change.

Co-authored-by: Pulse Autonomous Maintainer <rcourtman@users.noreply.github.com>
2026-08-11 23:18:14 +01:00
Pulse Autonomous Maintainer 3f1bf8c329 Refresh auth visual baselines 2026-08-11 21:01:36 +01:00
rcourtman 04d6c43f20 Stop stamping Patrol attention rows with evidence-timing noise
Every attention row on every install (and all 38 rows on the public demo)
carried a warning 'Evidence incomplete; timing unavailable' / 'Evidence
timing unavailable' metadata line. Unknown freshness just means the evidence
source publishes no validity window - only availability-poller evidence does
- so it is not an operator-facing warning, and the 'timing unavailable' claim
was false with per-envelope observation times rendered beside it.

- Presentation: the scan row now surfaces an evidence phrase only for states
  worth a glance (unavailable, incomplete, stale, or window-backed current);
  complete evidence with unknown freshness stays quiet on the row and shows
  a muted 'Evidence recorded' badge in the detail, mirroring the existing
  unavailable-protection row rule.
- Alerts bridge: provider incidents without a backing availability check now
  carry a first-class complete/confirmed envelope derived from the observed
  incident payload instead of falling to the legacy partial shim, and each
  sync merges the cycle's freshly observed envelopes into the active alert so
  raise-time evidence does not age out while the condition is still observed.

Verified live on a scratch mock instance at 1280px and 744px: all 44+ mock
attention rows now project complete evidence and render without the noise
line; detail shows 'Evidence recorded' with per-observation timestamps.
2026-08-10 09:47:06 +01:00
rcourtman 16179dd0a5 Improve 6.2 usability across core workflows 2026-08-09 01:16:15 +01:00
rcourtman 5ff0855882 revert(commercial): restore self-hosted opt-in posture 2026-08-08 16:48:19 +01:00
rcourtman 70162c0295 fix(settings): prevent responsive panel clipping 2026-08-08 05:27:08 +01:00
rcourtman f0e2243b44 feat(commercial): revise self-hosted commercial surfaces (supersede RA5 opt-in posture)
Free self-hosted sessions now see reactive commercial surfaces: paid-feature
nav items stay visible with panel-owned inline gates (Relay precedent extended
to reporting, roles, users, audit log, audit webhooks), gate CTAs render, and
Plans & Billing is discoverable and carries an MSP/provider section with the
free 60-day evaluation. Adds a one-shot business-estate card for authenticated
free sessions whose monitored estate crosses business-scale thresholds
(>=5 PVE nodes, >=10 Docker hosts, or >=3 VMware hosts); the flag rides
sessionCapabilities only, never the pre-auth presentation policy, so estate
size cannot leak to anonymous visitors. Demo mode and white-label runtimes
(including MSP tenant containers) keep full commercial suppression; the
multi_tenant organization nav items deliberately stay hidden.

Decision record supersedes the 2026-04-25 opt-in record:
docs/release-control/v6/internal/records/self-hosted-commercial-surfaces-revision-2026-08-07.md
RA5 summary, contract pins, nav integration pins, and the RA5 browser spec
are updated to the revised invariant in the same commit.
2026-08-07 13:47:46 +01:00
rcourtman 1d588af7d1 Align CI guardrails with cached resource snapshots
Update source-shape guards for the shared per-generation resource list and cached mock unified view. Demote the onboarding E2E spec after its rate-limit/shared-state retry flake on main so it continues running without reddening the advisory verdict.

Contract-Neutral: advisory CI guardrails and probation tier bookkeeping only; no runtime or public contract delta
2026-08-05 21:26:44 +01:00
rcourtman 78af7a881f Demote flaky Proxmox display-name E2E spec
Contract-Neutral: Demotes one flaky E2E spec under the documented stable-to-probation tier policy; product behavior and public contracts are unchanged.
2026-08-05 15:27:19 +01:00