Skip to content

ci(lanes): split two long test files and run console browser 2 on 32vcpu - #2307

Merged
freeqaz merged 2 commits into
mainfrom
ci-speed-1013h
Oct 13, 2026
Merged

freeqaz merged 2 commits into
mainfrom
ci-speed-1013h

Conversation

@freeqaz

@freeqaz freeqaz commented Oct 13, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

After #2303, CI Required ends about +203..+270 s and three lanes finish last, nearly tied:

  • Console Browser 2 (job 147-194 s on main, 6 runs). It was CPU-bound on 16vcpu (4 CPUs): it declares fileConcurrency: 8 but ran four files at a time, and its ten files' summed time (409-596 s) tracked its test window (112-159 s). console-agents.test.mjs runs its 46 cases one after another for 112-159 s; locally, uncontended, the same file takes 66 s.
  • PostgreSQL Application (already 32vcpu, job 157-211 s). Its longest file is now postgres-worker-agent-revision-teardown.test.mjs (132-180 s, 61 cases), not the revision file (109-153 s).
  • Repository Credentials Platform (job 147-177 s): about 18 s setup, 43 s prepare (k3d 14 s, then a 28 s runtime image import), and 81-91 s for its one long case.

Change

  • Console Browser 2 runs on blacksmith-32vcpu-ubuntu-2404 (8 CPUs), in ci.yml and in full-integration's same-SHA runner expression.
  • The provisioning-retry, model-selection, conflict and duplicate-write cases (13 test() calls, about 30 % of the file's time) move unchanged from console-agents.test.mjs to console-agents-2.test.mjs. The moved block avoids the lines that open PRs feat: assign configured OpenClaw roles to Agent users #906, Enable Codex OAuth with OpenShell-owned credentials #1559, docs(specs): propose rfc-0019 for repository options without a repository driver #878, Enable dedicated OpenClaw from Console with pinned native runtime #1685 and feat: add Agent workload tags #115 change.
  • The Agent stop, Gateway drain, Agent deletion and Namespace teardown cases (33 calls, about 63 %) move unchanged from the teardown file to postgres-worker-agent-revision-stop.test.mjs, with the coldSshComputeDriver helper that only they use. The repository session cases stay. expectedTests split to match.
  • parallelFiles in both manifests are ordered longest first, using measured averages.
  • Repository Credentials Platform stays on 16vcpu. A 32vcpu trial on this PR's first head did not help: its runtime image import took 35 s (28 s on 16vcpu) and its long case 82 s (81-91 s). The ci.yml comment records this.
  • The new files name the file they were split from by suffix only. CI Impact runs full CI for any test file that another file names.
  • Comments and docs/flows/controller-worker.md name the new file, and docs/testing/ci.md and docs/flows/github-actions-testing.md list Console Browser 2 as a 32vcpu lane. Word counts are unchanged: 2493, 2485 and 2495.

No required check name, needs, or impact-gate logic changes.

Verification

Risks

  • 32vcpu jobs wait slightly longer for a runner. Over the last 250 ci.yml runs, 32vcpu queued a median of 9 s (p90 11 s, max 24 s, none over 30 s, n=1384), against 2 s for 16vcpu.
  • The new files are registered in the lane manifests; a PR that adds cases to the moved block must now add them to the new file.

…es and run console browser 2 on 32vcpu

Console Browser 2 was CPU-bound on 16vcpu (4 CPUs): its files' summed time
tracked the lane's. Move it to 32vcpu (8 CPUs) and move the provisioning-retry,
model-selection, conflict and duplicate-write cases from console-agents.test.mjs
into console-agents-2.test.mjs unchanged.

PostgreSQL Application's longest file was revision-teardown. Move its Agent
stop, drain, deletion and Namespace teardown cases unchanged into
postgres-worker-agent-revision-stop.test.mjs; repository session cases stay.

Repository Credentials Platform also runs on 32vcpu as a measured trial.
@freeqaz
freeqaz requested a review from a team as a code owner October 13, 2026 11:02
@clawsweeper

clawsweeper Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@clawsweeper clawsweeper Bot added P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Oct 13, 2026
…lit siblings by suffix

On 32vcpu the Repository Credentials Platform lane took as long: its runtime
image import was 35 s (28 s on 16vcpu) and its long case 82 s (81-91 s), so
it is not CPU-bound and stays on 16vcpu.

The new files' comments named the file they were split from. CI Impact runs
full CI for a test file that another file names, so name siblings by suffix.
List Console Browser 2 among the 32vcpu lanes in the CI docs.
@clawsweeper

clawsweeper Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge.

What this changes

This PR splits two long test files, updates their lane inventories, and moves Console Browser 2 to a larger runner.

Example: Console Browser 2 declares fileConcurrency 8.

  • Before: Its 16vcpu runner exposes four CPUs, limiting execution to four files at once.
  • After: Its 32vcpu runner exposes eight CPUs, allowing up to eight files, including the newly separated Agent cases.

Review scores

Measure Result What it means
Overall readiness 🐚 platinum hermit (4/6) A focused, coverage-preserving optimization with successful browser-lane execution and the previous finding resolved; full hosted validation was still underway.
Proof confidence 🐚 platinum hermit (4/6) The supplied maintainer-authored classification exempts this CI maintenance from the ordinary contributor-proof gate; hosted metadata confirms the changed browser lane succeeded, while its latest PostgreSQL lane remained in progress.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Product

Kind: Performance · Worth it: Yes · Fix scope: Complete
User problem: Contributors wait for long serial test files and a CPU-limited browser lane before CI Required can complete.
Reason: The measured bottleneck has a focused remedy that reuses existing infrastructure and preserves coverage; the unhelpful repository-platform runner trial was removed.

Merge readiness

✅ Ready for maintainer review

Keep open for maintainer triage: the focused CI optimization preserves test coverage, resolves the prior documentation finding, and introduces no actionable defect found in this review.

Priority: P3
Reviewed head: fd994d9017920ffc26728687fe840873827d1692

Before merge

None.

Findings

None.

Agent review details

How this fits together

GitHub Actions selects runners and lane manifests; the CI scheduler executes isolated browser and PostgreSQL fixtures and publishes results consumed by CI Required.

flowchart TB
  A[GitHub Actions] --> B[Runner selection]
  A --> C[Lane manifests]
  B --> D[CI scheduler]
  C --> D
  D --> E[Isolated test fixtures]
  E --> F[CI Required]
Loading

Technical review

Best possible solution:

Retain the coverage-preserving split and measured browser runner increase through the existing scheduler.

Do we have a high-confidence way to reproduce the issue?

Source confirms the CPU-based concurrency limit and serial file organization; the reported performance bottleneck was not independently benchmarked during this read-only review.

Is this the best way to solve the issue?

The change extends established scheduling and fixture boundaries while preserving assertions, required names, and isolation.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against 3d180654c2d7.

Provenance checked

Testing

Proof path: in-process harness.

Security

None.

Evidence

What I checked:

Likely related people:

  • freeqaz: Raw commit db45cfc adds scripts/ci/test-suites/checks-browser-2.json:5 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: db45cfcda6b6; files: scripts/ci/test-suites/checks-browser-2.json)

Review metrics

Metric Value Why it matters
Relocated test bodies 3,958 lines, byte-identical Most of the large diff relocates existing assertions rather than adding behavior.
Required PostgreSQL test names 65 before; 65 after The manifest split preserves required named coverage.

Labels

Label changes:

  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.
  • remove status: ⏳ waiting on author: Current PR status label is status: 👀 ready for maintainer look.

Label justifications:

  • P3: This is focused CI performance maintenance without an identified product regression.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🐚 platinum hermit and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.

Rating scale

6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior.

Workflow

ClawSweeper edits this one comment on every review. Comment @clawsweeper re-review for a fresh review only. Repair and merge execution lanes are retired.

History

Review history (1 earlier review cycle)
  • reviewed 2026-10-13T11:07:01.954Z sha 34b2abd :: needs changes before merge. :: [P3] Update the CI documentation for both changed runner assignments

Reviewed October 13, 2026, 7:12 AM ET / 11:12 UTC (Revision 2).

This branch had an error being deployed

1 failed deployment
integration-qa-pr — fd994d90 Deployed Oct 13, 2026 by freeqaz via QA advisory (kubernetes) #618
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant