Repository navigation
fix(ci): run browser checks for real-Gateway inputs - #139256
Conversation
Match the shared QA suite and suffixed UI harness families so changes to prebuilt browser setup and new real-Gateway tests select their Chromium gate. Preserve unrelated routing exclusions without a growing feature-name list.
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. Reviewed September 5, 2026, 2:14 PM ET / 18:14 UTC. ClawSweeper reviewWhat this changesExpands CI path matching so prebuilt browser-test setup and QA real-Gateway suites select the existing Chromium checks, with four regression cases. Merge readiness✅ Ready for maintainer review The PR remains useful: current main still misses these browser-test inputs. The owner-level repair is focused, and no blocking correctness or security findings were identified. Priority: P2 Review scores
Verification
How this fits togetherOpenClaw’s CI classifier converts changed repository paths into job-selection flags. The workflow consumes its browser-test flag to select Chromium validation, including suites running against a real Gateway. flowchart LR
A[Changed repository paths] --> B[Shared path classification]
B --> C{Browser test input?}
C -->|Yes| D[Browser checks selected]
D --> E[Chromium suites]
D --> F[Real Gateway suites]
C -->|No| G[Other applicable checks]
Before mergeNone. Agent review detailsSecurityNone. PR surfaceTests +4, Other 0. Total +4 across 2 files. View PR surface stats
Review metrics
Technical reviewBest possible solution: Keep browser-input selection in the existing classifier, matching the shared harness families while preserving unrelated exclusions. Do we have a high-confidence way to reproduce the issue? Yes, from source: each of the four reported paths misses main’s matcher despite belonging to the existing real-Gateway job; the PR also reports failing-before and passing-after classifier checks. Is this the best way to solve the issue? Yes. Broadening the existing family matcher repairs the selection owner directly; adding workflow exceptions or more feature-name entries would duplicate or perpetuate the drifting policy. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against bd381bffb29d. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (1 earlier review cycle)
|
|
Merged via squash.
|
* commit '911d7d5b0c107f7274f2415ca9655dcc6105f0e8': (867 commits) fix(skills): deliver pending Workshop approval controls (#139248) fix(gateway): deliver loopback ask_user prompts to the originating channel (#138831) docs: keep root agent instructions focused on repository policy (#139258) fix(matrix): exclude archived state roots from scans and selection (#112329) perf(agents): prepare exact tool names once per catalog batch (#139267) fix: preserve Swarm progress and simplify owner plumbing (#139269) fix(tailscale): release claims after gateway process-group exit (#139261) refactor(cli): simplify lazy command registration (#139108) test(ui): retain synthetic widget failure evidence (#139229) fix(buzz): keep implicit replies at thread root (#138879) test(diagnostics): await graceful Gateway shutdown before cleanup (#139247) fix(ci): unblock releases with different tooling package managers (#139259) feat(ui): add social preview links for private sessions (#139250) fix(codex): retain failed conversations for guarded continuation (#139246) chore(ui): refresh control ui locales (#139200) fix(ci): run browser checks for real-gateway inputs (#139256) fix(llama-cpp): reconcile managed router state before requests (#136363) chore(i18n): refresh native locales (#139237) refactor(worker): unify inference payload handling (#139245) refactor(terminal): replay wrapped prefixes in one pass (#139240) ...
Match the shared QA suite and suffixed UI harness families so changes to prebuilt browser setup and new real-Gateway tests select their Chromium gate. Preserve unrelated routing exclusions without a growing feature-name list.
What Problem This Solves
Fixes an issue where changes to prebuilt Control UI test setup or newly added QA real-Gateway suites skip Chromium CI, even though the dedicated real-Gateway job owns those inputs.
Why This Change Was Made
The existing classifier now matches the shared real-Gateway suite family and suffixed UI harness configurations. This removes feature-name enumeration instead of adding another allowlist. Workflow jobs, runner capacity, unrelated path exclusions, and runtime behavior are unchanged.
User Impact
Developers changing these browser-test inputs receive their intended Chromium validation before merge. There is no end-user configuration or API change.
Production/tooling LOC: 2 added / 2 removed, net 0. Tests: 4 added.
Evidence
On the unchanged production classifier, each of these paths returned
runUiTests: false:test/vitest/vitest.ui-e2e-prebuilt.config.tstest/vitest/vitest.ui-e2e-prebuilt.global-setup.tsextensions/qa-lab/src/session-host-command-state.real-gateway.e2e.test.tsextensions/qa-lab/src/control-ui-automation-management.real-gateway.e2e.test.tsThe existing table gained those four cases: 4 failed / 58 passed before, then 62 passed after. A separate direct invocation of the production classifier also changed all four results from false to true. Existing positive and negative controls remain intact.
Local proof used Node 24.20.0 and the installed repository tooling:
All listed checks passed. A fresh independent Codex review completed both source/context packets with no actionable P0–P2 findings; it was static review, not another test execution. Normal commit hooks passed. Exact committed head:
1d298342e7904ff2bbb60bec9986e5a14f5bc6eb.The full local changed gate has not run: local bootstrap of the repository-pinned pnpm version is blocked by the seven-day package maturity policy. No cooldown or dependency override was changed. Hosted CI run 33982487938 is now green on the exact head: 7 passed / 26 skipped, including the selected routing checks and required merge gate. The earlier draft run was skipped and is not counted as proof. The classifier proof establishes selection, not a browser-runtime run.