Commit Graph

489 Commits

Author SHA1 Message Date
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
rcourtman 7977f3661a Stabilize remaining shard 3 E2E contracts 2026-08-05 11:55:16 +01:00
rcourtman 9579968952 Harden TrueNAS E2E workspace readiness 2026-08-05 11:28:07 +01:00
rcourtman f39afe3ea7 Repair remaining probation E2E contracts 2026-08-05 10:48:45 +01:00
rcourtman dee1f9c0be Stabilize Safari E2E contracts 2026-08-05 10:19:43 +01:00
rcourtman 9f870bf474 Repair stable Core E2E contracts 2026-08-05 09:29:23 +01:00
rcourtman 763aa5e0f1 Fix migration test mock mode isolation 2026-08-04 20:56:48 +01:00
rcourtman bc265ada2e Prevent RC regressions at release boundary 2026-08-01 13:58:05 +01:00
rcourtman 9ab38b940e Gate every release cut on a render-level smoke suite
v6.2.0-rc.5 shipped with an empty Proxmox workloads table and a crashing
Thresholds page (#1663) while the assertions that catch exactly that were
failing in CI: spec 64 red in the non-gating probation tier two hours
before the tag, and the gating Core E2E verdict red on the release commit
itself — which the release pipeline never consults. integration_tests is
also skipped entirely for prereleases, so the builds users test shipped
with no integration coverage at all.

Close the hole with a release_smoke job that runs for every cut,
prereleases included, and blocks create_release and the release verdict:
four interaction-free render assertions (Proxmox nodes+workloads, Docker
hosts+containers, Kubernetes clusters+pods, Alert thresholds) against the
mock-mode image built from the verified frontend bundle. The mock fixture
graph now always contains one freshly provisioned zero-used guest
filesystem, so the omitted-zero-numerics wire shape that crashed rc.5
stays exercised on every mock-backed surface. Verified locally: the suite
passes on main and fails on the rc.5 frontend for exactly the two shipped
regressions.
2026-08-01 13:29:40 +01:00
courtmanr@gmail.com 3a6af11e86 Stabilize Patrol shell checks across desktop and mobile 2026-07-26 20:49:22 +01:00
courtmanr@gmail.com e405270e89 Prepare v6.1.2 stable patch release 2026-07-26 20:38:42 +01:00
rcourtman afc419ddab Add durable Proxmox node display names 2026-07-24 15:46:56 +01:00
rcourtman 478a9e933d Complete canonical web interface links
Preserve tenant-scoped metadata through partial URL updates and project stable URLs across runtime identities. Use a safe adjacent launch control across overview tables with desktop and mobile regression coverage.
2026-07-24 12:42:16 +01:00
rcourtman 4a2335ce7f fix(ai): harden local compatible providers 2026-07-24 12:35:31 +01:00
rcourtman 9da4d4e966 Add powered-off alert tolerance 2026-07-24 12:23:29 +01:00
rcourtman f744e0700e Fix availability summaries and webhook secret handling 2026-07-24 11:56:30 +01:00
rcourtman 3a913752de Fix Proxmox cluster membership reconciliation 2026-07-24 11:21:27 +01:00
rcourtman 2ac70dab70 Fix audit storage migration and viewer races
Refs #1464
2026-07-24 10:33:57 +01:00
rcourtman ac0fb263c2 Fix Proxmox workload refresh coherence 2026-07-24 10:11:56 +01:00
rcourtman 8d23529c02 Fix availability check identity projection 2026-07-23 23:46:34 +01:00
rcourtman 639e88104c Demote operational-trust protection posture spec to probation
tests/90-operational-trust-protection-posture.spec.ts failed the
stable tier on main in run 29731882505 — the first tiered run. One
incident on main demotes: it rejoins the gate after 10 consecutive
green runs, per the rule above PROBATION_SPECS.

Contract-Neutral: probation demotion per documented tier rule: spec 90 failed on main run 29731882505; CI gating list only, no dev-runtime delta
2026-07-20 10:55:07 +01:00
rcourtman f2fa92f576 Split Core E2E into gating stable and non-gating probation tiers
Mined per-spec failure data from the 32 completed Core E2E main runs
since the 2026-07-18 quarantine delist (failed-shard logs; a green
shard means every spec in it passed). 26 specs failed or retry-flaked
within the 10 most recent completed runs; they seed PROBATION_SPECS in
tests/integration/playwright.config.ts. The remaining 62 files form the
stable tier and are the only specs that can fail the e2e-verdict job.

Mechanism extends the existing quarantine list rather than adding a
parallel one: PULSE_E2E_TIER=stable ignores probation specs,
PULSE_E2E_TIER=probation runs only them, unset runs the full suite
(local behavior unchanged). CI runs both tiers per shard against the
same containers; the probation pass sits behind continue-on-error with
its own report/results dirs and artifacts, so a probation flake is
reported in the shard summary without painting main red.

Promotion rule, documented next to the list: a probation spec promotes
to stable after 10 consecutive green main runs with no failure and no
retry-flake; one incident on main demotes a stable spec back. In the
newest completed run (29729544151) every failure was in a probation
spec — under this split that run's verdict is green.

Contract-Neutral: CI-only E2E tier split: gating semantics of push-CI verdict; local npm test behavior and dev-runtime orchestration unchanged, no public contract delta
2026-07-20 10:32:26 +01:00
rcourtman 05c44f199f Stabilize populated browser fixtures
Contract-Neutral: Browser-only qualification fixture synchronization; no deployment or public runtime contract changes.
2026-07-20 09:47:03 +01:00
rcourtman b858e7fd2d Stabilize shared browser qualification
Contract-Neutral: Browser qualification keeps the existing deployment, authentication, and mobile layout contracts while reusing the accepted test credential and avoiding a WebKit synchronous-layout probe.
2026-07-20 09:12:01 +01:00
rcourtman a65194de3a Stabilize mobile workload geometry probe 2026-07-20 08:42:01 +01:00
rcourtman c73e78aeea Stabilize RC runtime ownership
Contract-Neutral: RC qualification fixes preserve existing public API, tenant, monitoring, and organization contracts while correcting canonical runtime ownership and test fixtures.
2026-07-20 07:50:22 +01:00
rcourtman 86bf879b7b Satisfy update readiness in signature E2E 2026-07-20 06:13:28 +01:00
rcourtman 96fce4cbcb Use mobile assistant submit control 2026-07-20 05:19:15 +01:00
rcourtman 99af2a0bf2 Accelerate mock history readiness 2026-07-20 04:21:26 +01:00
rcourtman 9ea7689373 Preserve VMware exclusion test boundaries 2026-07-20 03:51:05 +01:00
rcourtman 0b6d1cdc18 Stabilize mobile browser interactions 2026-07-20 03:33:46 +01:00
rcourtman eeab775445 Harden browser release qualification
Contract-Neutral: Release qualification reliability fixes preserve existing runtime, route, and deployment contracts
2026-07-20 03:15:13 +01:00
rcourtman 12eef62f76 Stabilize cross-platform release gates 2026-07-20 02:32:29 +01:00
rcourtman e9dddf86b8 Harden RC qualification coverage
Contract-Neutral: RC qualification and contract-preserving reliability fixes; no canonical product contract changes
2026-07-20 01:13:26 +01:00
rcourtman dbd4b14b73 Isolate Core E2E runtime state
Contract-Neutral: Core E2E scheduling and mock-readiness harness change; no deployment, installability, or runtime contract delta
2026-07-20 00:14:37 +01:00
rcourtman d7eb4457c4 Stabilize shared E2E runtime state
Contract-Neutral: E2E harness reliability fix; no deployment or installability runtime contract changes
2026-07-19 23:24:21 +01:00
rcourtman 4fcca0993b Isolate vSphere workload fixture routing
Match only the canonical workloads request so unrelated resource traffic does not contend through the Playwright route handler.

Contract-Neutral: Test fixture routing only; no public subsystem contract change
2026-07-19 22:27:08 +01:00
rcourtman 19ec17372e Stabilize vSphere drawer verification
Contract-Neutral: Test fixture normalization without a public subsystem contract change
2026-07-19 21:58:50 +01:00
rcourtman 2f1ffa94ef Stabilize page header alignment verification
Contract-Neutral: Test-only coordinate normalization without a public subsystem contract change
2026-07-19 21:24:36 +01:00
rcourtman 5d01c5e469 Stabilize Core E2E release paths
Contract-Neutral: Canonical route normalization and test stabilization without a public subsystem contract change
2026-07-19 21:03:58 +01:00
rcourtman 7ce7bbf323 Finish Core E2E release gate alignment
Contract-Neutral: Core E2E authentication and release-gate test alignment does not change the deployment-installability public contract
2026-07-19 19:33:19 +01:00
rcourtman 6343b1f5cd Complete Core E2E release gate repair
Contract-Neutral: Mobile Assistant viewport containment and release-gate test repairs do not change the ai-runtime public contract
2026-07-19 18:30:27 +01:00
rcourtman f6a59eb1c6 Repair Core E2E release gate
Contract-Neutral: RC4 gate repair only: responsive layout correction, internal test hook, and E2E-only runtime target; no public subsystem contract changes
2026-07-19 17:29:51 +01:00
rcourtman 83672a00a8 Harden Operational Trust rollout contracts 2026-07-19 15:11:02 +01:00
rcourtman cd75722da3 Build canonical Operational Trust action loop
Refs #1034
2026-07-19 15:11:01 +01:00
rcourtman 69533c7afb Build canonical availability resource facets 2026-07-19 15:11:01 +01:00