Repository navigation
fix(runner): honor Node build manager during Job admission - #1244
Conversation
|
CI follow-up for the Windows Runner lane on upstream run 39577268778:
Could a maintainer rerun just the failed |
swjnxyf
left a comment
There was a problem hiding this comment.
Reviewed PR #1244 in the MSI main checkout at 6fa4637b9e95130b2816f92afd733a30ec135a55.
The admission change correctly reuses ProjectBuildPlan::is_valid() rather than the old npm-defaulting canonical helper. This accepts Runner-selected npm/pnpm/yarn/bun Node build plans without allowing caller argv or manager substitution: the exact process/invocation digest must match, and the existing project_build::fence still replans the current manifest/lockfile at Job admission/queue execution. No new execution or effect authority is introduced.
Independent Windows checks:
- Deterministic eight-way (4 managers x Node/Auto) Node Build Job admission regression: passed twice.
cargo test -p webcodex-core --lib project_build --offline: 12 passed.- Wider
webcodex-runner project_buildgroup: 20 passed, 1 ignored, with 1 unrelatedpython_artifact_observation_uses_existing_metadata_and_bounds5-second timeout under load; the exact test passed unchanged on isolated rerun in 2.14 seconds. This existing Python observation path is untouched by the PR. cargo fmt --all -- --checkandgit diff --check: passed.- Exact-head upstream CI run 39580760135: 18/18 jobs successful, including Windows Runner.
No blocking findings or corrective commits needed. Approved for squash merge.
Summary
Fix Runner Job admission for Node
project_buildso a build planned from a Project's declared npm, pnpm, yarn, or bun manager is admitted under the same canonical process/digest contract as the typed Build Plan.ProjectBuildPlan::is_valid()at the Runner Job admission boundary, aligning it with Core wire validation and the Runner-owned planner.adapter=nodeandadapter=auto, including typed wire decode, Job queue admission, and a manager substitution with a recomputed digest rejected by the source fence.The previous admission validator rebuilt the canonical command with an npm-defaulting helper. A valid pnpm/yarn/bun plan thus passed Runner planning and Core validation but was rejected before Job enqueue. The Runner's current Project recipe remains authoritative for manager selection.
Verification
main@7b35aafb): The new regression fails onpnpm/Node: Runner rejected its own canonical Node build plan.ed5afe29): The identical regression passes, including all eight manager/adapter combinations.project_buildsuite: 25 passed, 0 failed, 1 ignored (real Node/npm fixture).cargo fmt --all -- --checkandgit diff --checkpassed.ed5afe29eaa2c86e11aaa3b906cb6d3b0959a2f2: Success — 13 jobs passed, 0 failed, 5 correctly skipped by path-based selection (run 39567710526). Linux Runner/Server/workspace, Windows Runner, macOS Core, Contracts, MCP conformance, and the CItestgate passed.Scope
Only the Runner admission check and its adjacent regression tests change (2 files). No new model-facing tool, schema/capability, executable-selection rule, process fallback, or persistence/retry contract. This follows the existing project-operation lifecycle tracked in #962.