fix(ci): restore split-tier burst slots + real deleteSession swallow - #1006
Conversation
## Summary Main CI failed on tip `5b54c192` (#1009) because `format:check` still flagged one file that the earlier Prettier reformat missed. - Failed run: https://github.com/copse-dev/agent-pane/actions/runs/29647959307 - `precheck` failed at `npm run format:check` on `src/shared/hooks/hook-card.ts` - `CI Passed` failed as a consequence (upstream precheck red) - No existing open PR covered this leftover (checked `#1009` merged; `#1008`/`#1006`/`#985` are unrelated CI fixes) ## Fix Ran Prettier 3.9.5 `--write` on `src/shared/hooks/hook-card.ts` — collapses the `HookCardStatus` union onto one line. No logic changes. ## Validation - `npm run format:check` — pass - `npm run check` — pass (typecheck/lint/format/dead-code/unit tests; 3281 tests) ## Test plan - [x] Confirm failing main run 29647959307 / precheck logs show only prettier warning on `hook-card.ts` - [x] Local `format:check` + `check` green on this branch - [ ] CI on this PR goes green <div><a href="https://cursor.com/agents/bc-001b1f6b-2139-4ac1-abaa-690431be9178"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a> <a href="https://cursor.com/automations/62eac492-810a-11f1-ba66-0e7d0216e441"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/view-automation-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/view-automation-light.png"><img alt="View Automation" width="141" height="28" src="https://cursor.com/assets/images/view-automation-dark.png"></picture></a> </div> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Jonathan Kingston <jonathanKingston@users.noreply.github.com>
Merge conflict needs a human
|
403ee14 to
2b81d5e
Compare
There was a problem hiding this comment.
Stale comment
PR health — leaving draft
Shards mostly green;
CI Passedis red becausee2e (4)was cancelled (classic tip/concurrency false-fail). That gate path is what #1031 fixes (curl+jq tip lookup on CHECKS_RUNNER withoutgh).Leaving this as draft — do not auto-merge until #1031 lands (or this branch is rebased/re-run after that gate is fixed). Burst-slot content itself looks intentional WIP.
cc @jonathanKingston if the burst-slot change should still ship independently once the gate is green.
Sent by Cursor Automation: Check in with agent-pane prs
## 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](https://github.com/copse-dev/agent-pane/actions/runs/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 - Confirmed **no open PR** already covers this (`gh: command not found` / curl tip lookup). Related but different: #1008 (reconcile mid-merge), #1006 (burst runners). #985/#1012 already merged. - Replayed failed run IDs against the REST API: cancelled `29686728400` (`7fd2b097`) and `29686756375` (`e48ab120`) both resolve a newer tip → would exit 0. - YAML parses cleanly. ## Test plan - [x] 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`) <div><a href="https://cursor.com/agents/bc-6177463d-f2fe-4866-9c2c-125acc04fe74"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a> <a href="https://cursor.com/automations/62eac492-810a-11f1-ba66-0e7d0216e441"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/view-automation-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/view-automation-light.png"><img alt="View Automation" width="141" height="28" src="https://cursor.com/assets/images/view-automation-dark.png"></picture></a> </div> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Jonathan Kingston <jonathanKingston@users.noreply.github.com> Co-authored-by: Jonathan Kingston <KingstonMailBox@gmail.com>
2b81d5e to
2fbb4d8
Compare
@wdio/globals' browser Proxy has no set trap, so assigning session.deleteSession never reached Runner.endSession. Prefer overwriteCommand on the live path; keep own-property assignment for unit-test fakes. Adds a focused unit coverage for the Proxy path. Co-authored-by: Jonathan Kingston <jonathanKingston@users.noreply.github.com>
2fbb4d8 to
fa16587
Compare
There was a problem hiding this comment.
PR health — rebased; ready + auto-merge
Tip now contains only the real WDIO fix (no burst-layout change):
installDeleteSessionSafetyprefersoverwriteCommand('deleteSession', …)so the patch reachesRunner.endSessionbehind@wdio/globals' Proxy- own-property assignment kept for unit-test fakes
- new unit coverage for the Proxy path in
scripts/after-test-safety.test.ts
Rebased onto current main (includes #1057). Marked ready and enabled squash auto-merge. CI is in flight on tip fa165875 — not retriggering.
Title still mentions split-tier from the original branch; the tip diff is overwriteCommand-only (integration token cannot edit the PR title).
Sent by Cursor Automation: Check in with agent-pane prs


Summary
Main tip
2686950fCI run 29624191864 failed one2e (4)(runnerdocker-75116713c5d2-7) after #1002 put burst hosts back on unified dual-e2e slots. All 3 shard attempts showed the same contention signature: mid-test WebDriver timeouts cascading intoDELETE /sessionECONNREFUSEDacross unrelated specs.#1002's body already said to re-enable split-tier if that pattern returned — it did, immediately.
Changes
scripts/burst-runners.mts):COMPOSE_PROFILES=split-tiers, scalerunner=1+runner-checks=N-1. One Electron e2e lane per 4-vCPU host; extra slots stay checks-only. Compose profile machinery from fix(ci): split-tier burst runner slots — one e2e lane per host #999 is unchanged.deleteSession(tests/e2e/helpers/after-test-safety.ts):@wdio/globals'browserProxy has nosettrap, so fix(e2e): swallow wedged deleteSession (supersedes #990) #991'ssession.deleteSession = …never reachedRunner.endSession. PreferoverwriteCommand('deleteSession', …)on the live WDIO path; keep own-property assignment for unit-test fakes.Validation
npm run checkgreen (typecheck, lint, prettier, dead-code, oracle, 3013 unit tests).Ops note (required for main to go green)
This PR only changes future
npm run runners:burst … upprovisioning. Live Scaleway hosts are still on the unified layout from #1002 and need the same in-place compose/.env update (or a burst down/up) that #999/#1002 applied over SSH.Related
2686950f