Commit Graph

1303 Commits

Author SHA1 Message Date
rcourtman 9c7cb9ed9b Require demand_evidence on candidate_lane registration
Every candidate_lanes record now carries demand_evidence: dated pointers
to the demand signals justifying the proposed lane (issues, discussions,
support threads, telemetry findings, or a demand-ledger entry in
pulse-pro/FEATURE_REQUESTS.md), or an explicit named-bet declaration for
maintainer-originated lanes with no external signal yet. The schema
requires the field, status_audit rejects missing or empty lists and
surfaces the evidence in the candidate_lanes and candidate_lane_queue
pretty blocks, and the canonical development protocol documents the
rule. No data migration needed; candidate_lanes is currently empty.
2026-08-24 15:59:32 +01:00
rcourtman 095b012455 Align dev-runtime manifest smoke pin with the frontend-build-output policy
6417319b1 split frontend-modern/vite.config.ts out of the
dev-runtime-orchestration path policy into its own frontend-build-output
policy so production build output counts as proof. The
test-hot-dev-bg.sh manifest governance check still pinned the old
policy id, so the Script smoke tests job on main has failed since that
commit. Pin vite.config.ts to frontend-build-output; every other
manifest expectation is unchanged.

Reproduced the [FAIL] locally before the change; the full
test-hot-dev-bg.sh suite passes after it.
2026-08-24 11:29:57 +01:00
rcourtman 6417319b1e Accept build-output proof for vite.config.ts commits
The deployment-installability verification policy routed
frontend-modern/vite.config.ts through the dev-runtime orchestration
proof set, all of which exercise the unbuilt hot-dev runtime. No
accepted proof could observe production build output, which is why
c4af728c0 (preload posture change) needed
PULSE_ALLOW_CONTRACT_NEUTRAL_COMMIT.

Split vite.config.ts into its own frontend-build-output path policy:
the accepted set keeps every dev-runtime proof, so dev-server-facing
edits are unchanged, and adds
frontend-modern/scripts/check-bundle-size.mjs, which now also asserts
the built index.html posture the contract clause pins: modulepreload
links limited to the entry's static imports (no lazy route chunks) and
import map integrity coverage of every built JS asset. The guard test
pins the new policy's accepted set.

Verified against the built output: flipping preloadDynamicChunks to
true fails the check with 47 lazy-chunk preload violations; the
healthy build passes. Full canonical-governance chain run locally, all
exit 0.
2026-08-24 09:23:03 +01:00
rcourtman 10116cc17e Scale large-estate realtime monitoring 2026-08-23 19:58:40 +01:00
rcourtman 3bc613c915 Scale large-estate workload and Proxmox demo performance 2026-08-23 15:09:32 +01:00
rcourtman 6869612c66 Isolate PC compilation from SignPath workflow 2026-08-23 15:02:33 +01:00
rcourtman 32d7b22996 Use trusted PC for release compilation 2026-08-23 14:41:11 +01:00
rcourtman 567eca2572 Harden stable release convergence 2026-08-23 14:21:09 +01:00
rcourtman 2f3d224997 Use hosted container qualification for stable releases 2026-08-23 12:43:18 +01:00
rcourtman 0f369a4b0d Use hosted compilation for stable releases 2026-08-23 12:16:14 +01:00
rcourtman c1d0aaa0d5 Approve v6.3.1 unsigned Windows exception 2026-08-23 12:02:53 +01:00
rcourtman 34ae5c98f9 Fix SignPath release provenance 2026-08-23 11:39:21 +01:00
rcourtman e51618a9ce Prepare v6.3.1 stable patch release 2026-08-23 10:38:19 +01:00
rcourtman 66eb537522 Fix local subscription CLI service setup 2026-08-23 09:28:44 +01:00
rcourtman ca311323e9 Join every release compilation task 2026-08-22 11:07:26 +01:00
rcourtman b88e05d1ce Prepare v6.3.0 stable release 2026-08-22 10:35:27 +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 9aa095a3b5 Reapply release qualification corrections (#1756)
Reapply the still-applicable exact-candidate tool setup hardening and its workflow contract assertions on current main. Current main already contains the native-path Docker and host fixtures plus the prescribed resource guardrail source path.

Contract-Neutral: Release-workflow hardening and test-fixture portability do not change the product runtime contract.

Co-authored-by: rcourtman <rcourtman@users.noreply.github.com>
2026-08-21 23:36:03 +01:00
rcourtman a0770b87bb Ground backend shard admission in measured worker headroom
The three-shard backend gate landed with a 16 GiB admission requirement
that exceeded the 8-vCPU PVE worker's own idle availability (measured
16.1-16.7 GiB, and 14.1-14.9 GiB beside the sibling release compilers),
so the next release would have hard-failed at admission before running a
single test. Direct probes on the worker measured the complete gate at a
~6-7.5 GiB footprint (8.9 GiB MemAvailable floor from a 16.4 GiB start,
zero swap), so admission now requires 10 GiB for three shards and 8 GiB
for two, and degrades the shard count instead of failing the release
when the bounded wait expires without headroom.

Shard CPU is now weighted by planned test volume from the plan manifest.
Top-level tests execute serially per test-binary process, so width mainly
buys runtime, GC, and race-detector headroom for the 3595-test prefix
shard; the ~15-test wait-bound tails cannot use it. Probes measured the
prefix shard at 569s with 2 procs versus 484s with 4, with total
allocation still equal to the worker's vCPU count.

Validated by three direct runs of the canonical script on the worker:
the full gate passed in 8m10s wall (auto-admitted three shards, procs
4/2/2, shard walls 484s/331s/224s) against the 12m09s two-shard release
job measured in run 32514803052. One rig run also proved the gate fails
closed: a stale contract pin failed the non-API graph and the harness
terminated every descendant shard process.
2026-08-21 22:16:33 +01:00
rcourtman 9ef94418e8 Accelerate release convergence on PVE 2026-08-21 20:41:04 +01:00
rcourtman 5c26022d65 Join frontend before embedded server builds 2026-08-21 19:16:47 +01:00
rcourtman 89eba99bb4 Build frontend for Pro packaging profile 2026-08-21 19:04:23 +01:00
rcourtman 0cd70edd90 Prepare v6.3.0-rc.6 release 2026-08-21 18:56:45 +01:00
rcourtman 910c05355e Align extracted resource governance fixtures 2026-08-21 18:55:29 +01:00
rcourtman dca06991c2 Parallelize exact-version Docker publication 2026-08-21 18:25:26 +01:00
rcourtman 00157de00a Require two-shard backend memory admission 2026-08-21 18:14:33 +01:00
rcourtman e5389e2130 Parallelize inert release artifact staging 2026-08-21 18:08:22 +01:00
rcourtman b16b8e5242 Bind Helm convergence to the release repository 2026-08-21 17:46:55 +01:00
rcourtman 1ef8797d28 Repair release activation recovery contracts 2026-08-21 17:43:01 +01:00
rcourtman 1327dddad5 Compress release backend test selectors 2026-08-21 17:04:18 +01:00
rcourtman 418402bf9e Use complete PVE release worktree 2026-08-21 16:19:11 +01:00
rcourtman d45ecd9a24 Include release helpers in PVE checkout 2026-08-21 16:14:21 +01:00
rcourtman d6591da900 Support PVE sparse release checkout 2026-08-21 16:11:17 +01:00
rcourtman d9e634a4eb Run release preparation on PVE 2026-08-21 16:07:33 +01:00
rcourtman ae27ad7511 Bound release API test batch arguments 2026-08-21 15:47:12 +01:00
rcourtman 4217f72bdc Prepare v6.3.0-rc.5 release 2026-08-21 15:14:23 +01:00
rcourtman 8aca821590 Update API decomposition governance fixtures 2026-08-21 15:13:03 +01:00
rcourtman f76a8279a0 Parallelize release archive validation 2026-08-21 14:52:06 +01:00
rcourtman 74bd06a953 Promote qualified release payloads directly 2026-08-21 14:47:52 +01:00
rcourtman 962df694e9 Accept architecture-bound server signatures 2026-08-21 14:31:42 +01:00
rcourtman c661bdab57 Overlap inert release staging and qualification 2026-08-21 14:25:42 +01:00
rcourtman ae317c96bb Publish images from exact candidate payloads 2026-08-21 14:17:12 +01:00
rcourtman 97cf30aed6 Qualify containers in candidate workflow 2026-08-21 14:03:25 +01:00
rcourtman 51f4c64322 Qualify exact candidate containers on PVE 2026-08-21 13:56:52 +01:00
rcourtman c6bf50b455 Stage private release assets during qualification 2026-08-21 13:30:24 +01:00
rcourtman dcc67662b6 Stage release archives directly in parallel 2026-08-21 13:23:44 +01:00
rcourtman a5893e916c Use persistent caches on PVE release runners 2026-08-21 13:14:33 +01:00
rcourtman 312aa2c7e1 Govern private PVE release compilation 2026-08-21 13:09:40 +01:00
rcourtman d44c15a4fd Compile release payloads in parallel on PVE 2026-08-21 12:59:32 +01:00
rcourtman 0293f67635 Preserve API test order in release shards 2026-08-21 12:46:50 +01:00