Repository navigation
ci: file an issue when a nightly line regressed - #596
Merged
Merged
Conversation
MarcusKainth
force-pushed
the
ci/nightly-regression
branch
from
September 25, 2026 13:51
3dcfe7e to
a129fdc
Compare
native regress's findings are rendered by scripts/native-regression-issues.sh in the read-only job, one directory per finding with a title, labels and a body. gh cannot fill a .yml issue form, so the body follows the form by hand: each field's label as a ### heading and a render: field fenced in its language. A correctness finding uses 1b-native-divergence.yml (labels divergence and area: native), a cost finding 3-performance.yml (performance and area: native). native-record gains issues: write and files each rendered issue. It still runs no repository code: the rendering happened in the read-only job and the filing step only passes the files to gh. A title ends with "(metric at commit)", and an issue whose title ends the same way, open or closed, is not filed again. --label is dropped silently when the token cannot apply it, so each issue's labels are read back and a mismatch fails the step. workflow_dispatch's inject_regression input shows the filing path working without a real regression. It judges one more line: a copy of the last measured line, tonight's or the history's, under the commit name self-test-<run id> with its first refusal one tic earlier. The judge step fails unless regress reports it, and the issue says it was injected. The copy is not in the night's lines, so nothing records it.
MarcusKainth
force-pushed
the
ci/nightly-regression-issues
branch
from
September 25, 2026 13:59
c4d9020 to
3901c11
Compare
MarcusKainth
marked this pull request as ready for review
September 25, 2026 14:07
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.
What this changes, and why
Stacked on #595, which records the lines.
A regression the nightly finds becomes an issue on the commit that caused it.
native regress --findingsline withscripts/native-regression-issues.sh.ghcannot fill a.ymlform, so thebody follows the form by hand: each field's label as a
###heading, and arender:field fenced in its language. Correctness findings use1b-native-divergence.yml(divergence,area: native). Cost findings use3-performance.yml(performance,area: native).native-recordgainsissues: writeand files what was rendered. It stillchecks nothing out and runs no repository code. A title ends with
(metric at commit), and an open or closed issue whose title ends the same wayis not filed again.
--labelis dropped silently when the token cannot applyit, so the labels are read back and a mismatch fails the step.
inject_regression(aworkflow_dispatchboolean, off by default) judges onemore line: a copy of the last measured line, under the commit name
self-test-<run id>, with its refusal one tic earlier. The judge step failsunless
regressreports it. The issue says it was injected. The copy is not inthe night's lines, so it is never recorded. Normal runs never inject. With
max_commitsat 0, a dispatch measures only the last recorded commit.Evidence
The injection and the rendering run locally on the night from #595's walk
(the same commands the judge step runs, with
self-test-localfor the run id):The body opens with the self-test note, then one
###section per form field:A correctness and a cost finding rendered from #594's local findings (refusal
moved to 270, stage1 analysis at 1.5x):
Lint, statuses captured before any pipe:
Not verified
gh issue list,gh issue createand label read-back werenot run, since that files a real issue. The first
workflow_dispatchwithinject_regressionchecked, after this merges, is that proof.result by exact title suffix, so a loose search can only return more
candidates. A search that returns nothing for an existing title would file a
duplicate.
Invariants
None. The scripts and jobs render and file reports. They compute nothing the
simulation or the renderer produces.
Spec impact
Checks
make gates. Not run.actionlint,zizmorandshellcheckwere run byexit code, above
make native-smoke, unaffectedWritten mostly by Claude Opus 5.5.