fix(ci): resolve CI Passed tip lookups with curl+jq (no gh CLI) - #1031
Conversation
E2E screenshot updatesMerge needs a human (1)Screenshot conflicts with
Held — conflicts with committed work (2)CI re-rendered these, but their committed baselines are deliberate, so the fresh render was not committed — the branch's version stands. To regenerate and take CI's render instead, add the
Refreshed (64)Clearly-different shots re-rendered by the CI e2e run and committed:
Ignored as render noise (63)63 shots re-rendered below the variance threshold (font hinting / anti-alias wobble) and were not committed. To accept them anyway, add the Held — render flapping (4)These shots alternate between two runner render states and were not committed, to stop the CI screenshot ping-pong (#609): each re-render matched a recently committed version, so committing again would just re-trigger CI and bring the other state back. If a real change is hiding here, add the
These PNGs live under |
After #1017 moved ci-passed onto self-hosted CHECKS_RUNNER, concurrency cancels fail-closed with `gh: command not found` — the runner image ships curl+jq but not the GitHub CLI. Use the REST API for tip/supersession checks (and the commit-screenshots branch probe) so cancelled superseded runs stay green. Co-authored-by: Jonathan Kingston <jonathanKingston@users.noreply.github.com>
4b68ec0 to
1472b3e
Compare
There was a problem hiding this comment.
Stale comment
PR health — rebased, ready, auto-merge on
Was CONFLICTING against
main(stale screenshot commit + workflow edits).Actions:
- Rebased onto current
main- Dropped the incidental
chore(e2e): update reference screenshotscommit (binary conflicts withmain; not needed for the CI Passed fix)- Kept the two
ci.ymlcommits (curl+jq tip lookups + fail-closed on inconclusive branch lookup)- Marked ready for review and enabled auto-merge (squash)
Medium–high confidence: focused self-hosted runner fix (
ghmissing → REST via curl+jq), fail-closed preserved.Sent by Cursor Automation: Check in with agent-pane prs
There was a problem hiding this comment.
PR health — auto-merge kept; fleet backlog
This tip-lookup fix (curl+jq, no gh) is still the right unblocker for false-red CI Passed on cancelled superseding runs (#1006/#1044 class).
Auto-merge already on. Tip CI has been queued ~40m+ in a broader self-hosted backlog (multiple PRs queued 2–4h) — not retriggering. Once this lands, re-evaluate draft #1006.
Sent by Cursor Automation: Check in with agent-pane prs









































































Summary
Main CI
CI Passedwas painting red on concurrency-cancelled tip pushes after #1017 moved the gate onto self-hostedCHECKS_RUNNER.Root cause
On tip
7fd2b097(run 29686728400 / job 88192253327), upstream jobs were cancelled because a newer main push took theci-refs/heads/mainconcurrency slot — expected supersession noise that #954/#985 already know how to treat as green.The gate then fail-closed with:
ci-runners/Dockerfileinstallscurl+jqbut not the GitHub CLI. Hostedubuntu-latesthasghpreinstalled, so this only regressed when #1017 repointedci-passedat${{ vars.CHECKS_RUNNER || 'ubuntu-latest' }}.Same pattern hit the next superseded SHA (
e48ab120, run 29686756375).Fix
In
.github/workflows/ci.yml:ci-passedtip/supersession lookups — replacegh api … --jqwithcurl+jqagainstgithub.api_url(Bearergithub.token).commit-screenshotshead-branch probe — same swap so a missingghcannot silently treat every branch as deleted.Logic unchanged: tip SHA moved or newer same-SHA CI run → exit 0; genuine tip cancel → still fail closed.
Validation
gh: command not found/ curl tip lookup). Related but different: fix(ci): reconcile-screenshots no-ops when PR merges mid-run #1008 (reconcile mid-merge), fix(ci): restore split-tier burst slots + real deleteSession swallow #1006 (burst runners). fix(ci): treat same-SHA concurrency cancels as CI Passed #985/fix(deps): override adm-zip to 0.6.0 for npm audit gate #1012 already merged.29686728400(7fd2b097) and29686756375(e48ab120) both resolve a newer tip → would exit 0.Test plan
CI Passedon the superseded SHA exits green with the supersession notice (nogh: command not found)