Skip to content

ci: nightly browser suite - #540

Open
opticon454 wants to merge 2 commits into
Ark0N:masterfrom
opticon454:ci/nightly-browser-suite
Open

opticon454 wants to merge 2 commits into
Ark0N:masterfrom
opticon454:ci/nightly-browser-suite

Conversation

@opticon454

Copy link
Copy Markdown
Contributor

What

A scheduled (03:17 UTC) and manually runnable GitHub Actions workflow, Browser suite, that runs npm run test:browser on a clean ubuntu runner (Node 22, tmux, playwright install --with-deps chromium). It is informational only: it is not a merge gate and never blocks a push or PR. The per-push gate (npm test) is unchanged; ci.yml only gains a two-line comment pointing at the new job.

Why

config/test-suites.ts keeps the Playwright suite out of the per-push gate, which means a browser-only regression (the Shift+Enter keypress bug was one) can merge green. Running it nightly catches those within a day. It needs no secrets: the tests start their own server and drive a local chromium.

Left out on purpose: test:mobile (per-machine PNG baselines), test:perf (wall-clock), and test/codex-predictive-echo.test.ts (needs a real, authenticated codex binary).

Evidence

I ran it on a fork to see whether it can be green on a clean runner. First run: 119 passed, 5 failed. The failures were stale or environment-dependent tests rather than product bugs, so this PR also fixes them:

  • test/opencode-resize.test.ts
    • session-id extraction read data.id, but POST /api/sessions answers { success, data: { session } }.
    • resizes now travel as WebSocket {t:'z'} frames while the socket is up, so the test records those as well as POST /resize.
    • the needsRefresh test only resizes after replaying a non-empty buffer, so it now seeds real PTY output first.
    • the "Kill Tmux & OpenCode" test is skipped when opencode is not installed.
  • test/split-pane-terminal.browser.test.ts: plain <text>\r input goes through tmux send-keys, which test mode does not have, so the marker never landed. It is now sent with useMux:false and retried past Codeman's own post-create clear.
  • test/perf-browser.test.ts: same session-id envelope fix.

Latest fork run (before #534 landed, on 1.34.0): 122 passed, 1 skipped, 1 failed, the one failure being test/inline-rename.test.ts (rail rename editor clamped), a real product bug that #534 / #526 have since fixed on master. This branch is rebased onto 1.35.0 and inline-rename, opencode-resize and split-pane-terminal pass locally (36 passed, 1 skipped for the OpenCode-not-installed case), so the first nightly run should be green. I have not re-run the whole suite on a runner since the rebase: Actions → Browser suite → Run workflow after merge is the quickest confirmation.

Notes

  • No new dependencies and no secrets; permissions: contents: read.
  • Artifacts are uploaded on failure only.
  • To try it before merging: Actions → Browser suite → Run workflow.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JrzFKEdBLwVfu6ev2ZscJS

opticon454 and others added 2 commits October 6, 2026 09:20
… tests

WIP: the suite still has failures on a clean master that are not fixed here.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…roof

- opencode-resize: record WebSocket resize frames as well as POST /resize,
  seed the needsRefresh test with real PTY output, skip the OpenCode close
  modal test when opencode is not installed
- split-pane: send the marker with useMux:false (plain prompts otherwise go
  through tmux send-keys, which test mode does not have) and retry past
  Codeman's own post-create clear

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrzFKEdBLwVfu6ev2ZscJS
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.

1 participant