Skip to content

dispatch-gates: check:dispatcher-error-vocabulary is invisible to path derivation — a new error/notice code literal ships a green local union and a red CI (measured on the #12843 patch rounds) #12850

Description

@os-zhuang

Recorded from the #12772 patch rounds (PR #12843), where this exact gap cost one CI round-trip.

scripts/pm/dispatch-gates.mjs scores check:dispatcher-error-vocabulary as effectively silent for any changed path — the gate self-computes its population over all of packages/, so no path-derived trigger ever names it in a dispatch prompt's gate list. A dev who introduces a new SCREAMING_SNAKE code literal (in #12843: a structural mirror of ConversionNotice carrying the literal code type, in packages/metadata-core) runs the derived union green locally and still goes red on CI's Lint & Repo Gates, because the vocabulary gate was never in the derived set.

Mechanizable closure suggested by the dev who hit it: a CONVENTION trigger in dispatch-gates — "the diff introduces a new SCREAMING_SNAKE string-literal type or const that looks like an error/notice code" ⇒ include check:dispatcher-error-vocabulary in the derived list. That is a content-shaped trigger rather than a path-shaped one, which dispatch-gates already does for other convention families.

For grading: the sibling divergence class from the same PR (CI's ~4GB tsc heap ceiling vs the container default making check:type-check-debt --re-measure OOM only on CI) was closed within the claim by running the re-measure under NODE_OPTIONS=--max-old-space-size=4096; whether that belongs in the gate's own harness (so every local run is CI-shaped) is a second, smaller mechanizable item the grader may fold in or split.

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions