Skip to content

fix(ci): resolve CI Passed tip lookups with curl+jq (no gh CLI) - #1031

Merged
cursor[bot] merged 2 commits into
mainfrom
jkt/auto/ci-failure-investigation-214e
Jul 20, 2026
Merged

cursor[bot] merged 2 commits into
mainfrom
jkt/auto/ci-failure-investigation-214e

Conversation

@cursor

@cursor cursor Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Summary

Main CI CI Passed was painting red on concurrency-cancelled tip pushes after #1017 moved the gate onto self-hosted CHECKS_RUNNER.

Root cause

On tip 7fd2b097 (run 29686728400 / job 88192253327), upstream jobs were cancelled because a newer main push took the ci-refs/heads/main concurrency slot — expected supersession noise that #954/#985 already know how to treat as green.

The gate then fail-closed with:

gh: command not found
Could not resolve branch tip SHA; treating cancel as failure.

ci-runners/Dockerfile installs curl + jq but not the GitHub CLI. Hosted ubuntu-latest has gh preinstalled, so this only regressed when #1017 repointed ci-passed at ${{ vars.CHECKS_RUNNER || 'ubuntu-latest' }}.

Same pattern hit the next superseded SHA (e48ab120, run 29686756375).

Fix

In .github/workflows/ci.yml:

  1. ci-passed tip/supersession lookups — replace gh api … --jq with curl + jq against github.api_url (Bearer github.token).
  2. commit-screenshots head-branch probe — same swap so a missing gh cannot 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

Test plan

  • Local replay of tip/supersession API path for the two false-red runs
  • On next main push that cancels an in-flight tip run, CI Passed on the superseded SHA exits green with the supersession notice (no gh: command not found)
Open in Web View Automation 

@jonathanKingston jonathanKingston added this to the Release readiness milestone Jul 20, 2026
@github-actions

Copy link
Copy Markdown
Contributor

E2E screenshot updates

Merge needs a human (1)

Screenshot conflicts with main were resolved automatically, but the merge updates these workflow files, which CI's token isn't scoped to push. Merge or rebase main by hand — or grant the SCREENSHOTS_PAT the workflow scope to let CI resolve these automatically:

  • .github/workflows/reconcile-screenshots.yml

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 update-screenshots label:

shot main this branch
todo-inline-panel.png
changed on main
CI render: 17360 px (1.8083%) vs committed
main branch
todo-no-plan.png
changed on main
CI render: 4430 px (0.4857%) vs committed
main branch

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 update-screenshots label or commit the rendered PNGs by hand.

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 update-screenshots label to force it, or pin the runner font/GPU rendering:

  • markdown-streaming-list-continuation.png — 1808 px (0.1883%); matches de2ffba: prior
  • markdown-streaming-table-pending-row.png — 1082 px (0.1127%); matches de2ffba: prior
  • pane-popout-memories.png — 7306 px (1.7280%); matches 573f9f4: prior
  • pr-panel-viewer-file-diff.png — 552 px (0.1513%); matches de2ffba: prior

These PNGs live under tests/e2e/screenshots/ for human visual review; CI asserts DOM structure, not pixel diffs.

cursoragent and others added 2 commits July 20, 2026 14:47
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>
@cursor
cursor Bot marked this pull request as ready for review July 20, 2026 14:47
@cursor
cursor Bot force-pushed the jkt/auto/ci-failure-investigation-214e branch from 4b68ec0 to 1472b3e Compare July 20, 2026 14:47
@cursor
cursor Bot enabled auto-merge (squash) July 20, 2026 14:47

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 screenshots commit (binary conflicts with main; not needed for the CI Passed fix)
  • Kept the two ci.yml commits (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 (gh missing → REST via curl+jq), fail-closed preserved.

Open in Web View Automation 

Sent by Cursor Automation: Check in with agent-pane prs

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Open in Web View Automation 

Sent by Cursor Automation: Check in with agent-pane prs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants