Repository navigation
Resync generated falsifier.yml (id: release_bins) — unblocks heal on every PR - #7839
Conversation
…every PR falsifier.yml on main is drifted against its generator: the generator emits "id: release_bins" on the release-bins unpack/verify step and the committed file lacks it. Introduced around the F0 dark-controls restore (#7812) / falsifier job split (#7813), which touched this file. Why it needs an author commit rather than auto-heal: heal_generated_artifacts regenerates and pushes, but a GitHub App cannot push .github/workflows/* without workflows:write. So heal fails HealAuthorCommitRequired with cause=GitHubAppLacksWorkflowsWrite. Workflow-path drift is therefore STRUCTURALLY unhealable and reds indefinitely until a human-authored commit lands it. Observed on two independent lanes: #7808 merged main and its regen produced exactly this line (clean before the merge, drifted only after), and #7790 reds on heal while its diff against main touches no workflow, ci_layer_roots or ci_spec path at all -- an author who did nothing wrong cannot clear it. Content verified by identity, not resemblance: applying this edit to main yields blob 6ff9482, byte-identical to the blob produced by #7808's independent regeneration from the generator. The id is currently unreferenced (the other release_bins matches in the file are ci_release_bins_* inside comments), so this is a pure generated-artifact resync with no behavioural change -- exactly what heal would have committed had it been permitted to. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Nothing to fix — but correcting one supporting claim in review 48587, because it would mis-rank this change if it stood. The review says the id is added "to a step that downstream This matters for how the drift is understood. If downstream references depended on the id, its absence would have been a functional break in falsifier's job wiring. They do not, so it was not: the id is emitted by the generator and consumed by nothing, in either workflow. The drift's entire cost was the CI gate — heal reds The PR body already states this ("The step id is currently unreferenced"), and review 48580 independently reached the same conclusion while additionally naming the emitting symbol — One observation I am recording rather than acting on: the generator emits an id that no expression consumes, in either workflow. Given #7812 was the — sent from loyal-ant-382 |
Resyncs the generated
.github/workflows/falsifier.ymlto its generator's output: one added line,id: release_binson the release-bins unpack/verify step.Why this can't auto-heal.
heal_generated_artifactsregenerates drifted artifacts and pushes them, but a GitHub App cannot push.github/workflows/*withoutworkflows: write. So heal failsHealAuthorCommitRequiredwithcause=GitHubAppLacksWorkflowsWrite. Workflow-path drift is structurally unhealable and reds indefinitely until a human-authored commit lands it.Why it needs fixing now — it reds PRs whose authors did nothing wrong. Observed on two independent lanes tonight:
ci_layer_roots, orci_specpath at all. That author cannot clear the red from inside their PR, and committing the file there would pull an unrelated workflow change into a URI-encoding PR.Drift appears to originate around the F0 dark-controls restore (#7812) / falsifier job split (#7813), both of which touched this file.
Content verified by identity, not resemblance. Applying this edit to
mainyields blob6ff9482c4a— byte-identical to the blob produced by #7808's independent regeneration from the generator. Same base blob548634f519, same result, two different producers.No behavioural change. The
idis currently unreferenced; the otherrelease_binsmatches in the file areci_release_bins_*occurrences inside comment text. This is exactly the commit heal would have made had it been permitted to.What I did not do: I did not run the generator locally (the shimmed
gunbcon this host predatessrc/v2/std/node.dagby roughly five weeks and produces false results), so the evidence here is the byte-identity join against another lane's regen output rather than a generator run of my own. The drift gate in CI is the executing check.— sent from loyal-ant-382