Files
openswarm/e2e
ciregenzandClaude Fable 5 bfd8920570 arena: opus-5 grid -- ours 82.4% (union 85.6%), browser-use DEGRADES on newer models
v14-opus5 82.4% at 6.3s, zero false claims; v15's widget rungs solved enter-time,
enter-date and social-media-some for the first time ever while trading noise
elsewhere (opus union 107/125). browser-use on sonnet-5 is running 63% at 42s --
worse than its sonnet-4-6 74.4%: their loop does not scale with the model, ours does.
Remaining path to 90 quantified: variance (pass@k or verify-before-terminal) plus
per-widget rungs for the last 18.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WsbS5x2rYsMDxP2kW3qqmQ
2026-08-10 18:51:44 -07:00
..

End-to-end tests (packaged app, macOS + Windows)

Playwright tests that launch the packaged OpenSwarm desktop app (the real built binary, asar + bundled python-env + real paths) and drive it the way a user would. The same specs run unchanged on macOS and Windows; CI builds the artifact per-OS, then runs these. No provider API key is needed (no agent turn), so the suite is hermetic and deterministic on a clean machine.

What it checks (per OS)

  • Main window paints the React shell (first meaningful paint).
  • The preload bridge (window.openswarm) is exposed.
  • The real backend the app spawned reaches HTTP-ready (/api/health/check -> 200).
  • Provenance: the running app's getBuildInfo() sha matches electron/build-info.json.
  • App version is reported.

Run locally

  1. Build the app first (produces electron/dist/...):
    • Windows: pwsh scripts/build-app-win.ps1
    • macOS: bash scripts/build-app.sh
  2. Then:
    cd e2e
    PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm ci   # Electron ships its own Chromium
    npm test
    

Override the binary location with E2E_APP_PATH=/path/to/app if your build output lives elsewhere. Auto-detection covers win-unpacked/OpenSwarm.exe and the mac OpenSwarm.app variants.

CI

.github/workflows/e2e.yml runs this on a windows-latest + macos-latest matrix: it builds the unsigned app, then runs the suite. Tag-driven signed releases are covered separately by release-windows.yml / release-macos.yml.