lint.yml fails on every pull_request run while passing on main #773
Labels
No labels
burndown-2026-06
burndown-2026-08
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/infrastructure#773
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
.forgejo/workflows/lint.ymlfails on everypull_requestrun and passes on everypushrun tomain, across unrelated diffs. The red check on a PR currently carries no information about that PR.Evidence
a5ad735b362b8b762072a8ae23d887fe39e56cffThree PRs with entirely different diffs fail identically.
a5ad735bis the exact base commit #769 and #770 branched from and it passes on the push path, so this is not inherited frommain.#770is the strongest single data point: it failed as a PR at2072a8ae, was merged anyway, and the identical tree passed onmainat23d887feone run later. Same content, same workflow, different trigger, opposite result.trufflehog.ymlpasses on all of the same PR refs, so it is not the runner or the gate image in general.Suspect
lint.ymlhas exactly onepull_request-only step, which is the only structural difference between the two paths:Everything after it (
uv sync,ward exec ansible-sync-test,ward exec pre-commit) is shared with the passing push path.pre-commit run --all-filespasses locally on each of these branches, which is consistent with the failure being in this step or in what it does to Ward's view of the branch rather than in the linted content.Unverified. This needs the actual job log.
Blocker on diagnosis
I could not retrieve the job log through the guarded API. Both endpoints 404 for every id form tried,
index_in_repoand internalidalike:GET /repos/{owner}/{repo}/actions/runs/{run_id}/logsGET /repos/{owner}/{repo}/actions/runs/{run_id}/jobsaosguard ops forgejo action-run getworks and resolvesrun_idagainst the internal id, so the id space is inconsistent between these endpoints on this Forgejo version. That is worth a look on its own, since it blocks read-only CI diagnosis generally.Direct run URL for a human: https://forgejo.coilysiren.me/coilyco-flight-deck/infrastructure/actions/runs/2243
Why it matters
Every PR against this repo shows a red required-looking check that means nothing, so a real lint regression on a PR would be indistinguishable from the current noise. #770 was merged over this failure already.
Next step
Needs an operator or director run to read the failing job log and confirm whether the
git switchstep or a downstream Ward invocation is the cause. Labelling thisinteractive: the diagnosis needs live CI state, and pushing commits to probe it would be CI debugging by trial.