fix(gates): read the pattern by vocabulary, not by how it spells a number - #3394
Merged
Conversation
gHashTag
enabled auto-merge (squash)
September 6, 2026 18:14
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #3393
cli-trihas been red on master since 17:59 — green at92a19608c, red at52db4aacb. That commit (#3388) rewroteissue-gate.ymlto strip fenced blocks and quotes from the body before grepping, which is a correct change, and the test that reads that file has failed ever since.Two independent breakages in one line, each sufficient alone.
The gate's line used to open with its
grep, so the first single-quoted span was the pattern. It now opens withprintf '%s\\n%s\\n'— the extractor took the first span, found no reference in it, and abandoned the line instead of looking further along it. Taking the first span was never the rule; it was the first span happening to be the only one.The line filter matched on
#[0-9]+, which #3388 tightened to#[1-9][0-9]*to reject#0. The line then matched nothing, and the extractor reported that the gate states no pattern at all — which is what the test'sexpectpanicked on.Anchored on the gate's vocabulary (
Closes?) rather than on how it spells a number: a number's spelling is the part of a pattern most likely to be tightened, and the keyword list is the part that identifies it. Every quoted span on the line is scanned.824 tests pass. Mutation: breaking the vocabulary inside
issue-gate.ymlreddens the test, so it still reads the file it claims to read.