Repository navigation
Closed
Labels
priority: criticalProduction broken, data loss, active exploit, or release blocker.Production broken, data loss, active exploit, or release blocker.status: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.A maintainer confirmed the item is real and in scope; ready to be worked.
Description
Filed by the lane sweep (run) from slice A. A model wrote the fenced text below from CI data, which can carry text written to steer it; every cited line was checked against main when filed. Rewrite the issue in your own words before marking it agent-ready.
Problem
The refine-select job of intake-triage.yml failed in all 5 failed runs of the window (window complete, 2026-10-23T06:53Z to 2026-10-24T06:53Z): 40069903845 (issue 9611), 40066367323 (9601), 40063820240 (9592), 40063813155 (9591), 40063806244 (9590). Every run fails at step 'Decide whether the issue is thin' with `Cannot find package 'ajv' imported from .../.base/.github/actions/resolve-config/patch-rules.mjs`, exit code 1. The kill-switch and trusted-actor steps pass. Each failure is a run attempt 1 failure, so refinement never runs and the issue is left unrefined. A rerun cannot succeed because the cause is deterministic.
Root cause
refine.mjs --select dynamically imports resolve-config.mjs, which imports patch-rules.mjs, which imports ajv. The refine-select job only checks out main and runs setup-node. It never runs the resolve-config composite action, which is the step that does `npm ci` for ajv and yaml. Other jobs in the file call that action, so their node_modules exist. Here .base/.github/actions/resolve-config/node_modules is absent, so the import throws.
.github/scripts/intake-triage/refine.mjs:587: const { issueLaneWebHostsFromBase } = await import(new URL("../../actions/resolve-config/resolve-config.mjs", import.meta.url).href);
.github/actions/resolve-config/resolve-config.mjs:15: import { checkPatchRules } from "./patch-rules.mjs";
.github/actions/resolve-config/patch-rules.mjs:5: import Ajv2020 from "ajv/dist/2020.js";
.github/workflows/intake-triage.yml:497: node .base/.github/scripts/intake-triage/refine.mjs --select
.github/actions/resolve-config/action.yml:219: npm ci --ignore-scripts --omit=dev --no-audit --no-fund --prefix "$GITHUB_ACTION_PATH"
Proposed fix
Add an install step to refine-select before 'Decide whether the issue is thin': run `npm ci --ignore-scripts --omit=dev --no-audit --no-fund --prefix .base/.github/actions/resolve-config`. Alternatively, call the resolve-config action as the other jobs do, or make issueLaneWebHostsFromBase avoid loading ajv. Add a test that runs refine.mjs --select from a checkout with no node_modules. Check the apply-verdict.mjs import at line 437 for the same gap.
Where
workflow .github/workflows/intake-triage.yml
job refine-select
Metadata
Metadata
Assignees
Labels
priority: criticalProduction broken, data loss, active exploit, or release blocker.Production broken, data loss, active exploit, or release blocker.status: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.A maintainer confirmed the item is real and in scope; ready to be worked.
Type
Fields
No fields configured for issues without a type.
Activity
kyle-sexton commentedon Oct 24, 2026
Triaged (Issue Triage session): confirmed lane defect, priority critical, owner: Issue Triage (fix in #9659). Owner rule 2026-10-24: conveyor-stopping blockers are fixed ASAP.
kyle-sexton commentedon Oct 24, 2026
Spec (Issue Triage session, restating this bot-filed issue as trusted text):
Problem. The intake-triage workflow's
refine-selectjob fails on every run since #9439 (2026-10-24 04:18Z) withCannot find package 'ajv' imported from .../.base/.github/actions/resolve-config/patch-rules.mjs. That was 22 of 37 intake runs on 2026-10-24 (first 40062339901, last checked 40093933477).refine.mjs --selectdynamically importsresolve-config.mjs(refine.mjs:587), which importsajvthroughpatch-rules.mjs. Only the resolve-config action installs those packages, and refine-select does not run it.Done when:
refine-selectjob installs resolve-config's packages (the samenpm ci --ignore-scripts --omit=devthe resolve-config action runs) beforerefine.mjs --select, gated the same way as the select step.Out of scope: re-firing the issues whose refinement failed; that happens after merge.
chore(ci): re-run pr-verify after #9619 gained a trusted spec