Skip to content

feat(e2e): run the Tauri e2e on macOS with a CI matrix, a PR report and local-model checkpoints - #573

Open
the-null-crafter wants to merge 4 commits into
mainfrom
tests/tauri-e2e-macos
Open

the-null-crafter wants to merge 4 commits into
mainfrom
tests/tauri-e2e-macos

Conversation

@the-null-crafter

@the-null-crafter the-null-crafter commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Summary

The Tauri desktop e2e (e2e-tauri/) now runs on macOS, and on GitHub's macOS runners as a matrix of real Ollama setups, with the same author-facing process the web PR e2e has.

  • Embedded WebDriver on every desktop OS. @wdio/tauri-service's embedded provider launches the debug binary, which serves W3C WebDriver itself through tauri-plugin-wdio-webdriver (registered in debug builds only, and only when the service sets WDIO_EMBEDDED_SERVER). No tauri-driver, no platform WebView driver; pnpm test:tauri:macos works instead of exiting 1.
  • macOS CI matrix (.github/workflows/macos-e2e-tauri.yml, rows in e2e-tauri/ci/macos/matrix.mjs): two macOS jobs per run, one per architecture (arm64 and Intel), each building the debug binary on its VM and running the machine setups one after another with a reset in between (run-rows.mjs, reset.sh) — the setups a user's Mac can have — nothing installed, Ollama.app running or stopped, the Homebrew formula as a service or CLI only, a bare CLI in /usr/local/bin, no Homebrew, Intel — plus a fresh Mac for the Code journeys. New Journey 4 drives check_ollama_status / install_ollama / pull / cancel / stop against each setup. Same opt-in as the web e2e: the run-tests label on a same-repo PR, or gh workflow run macos-e2e-tauri.yml -f scenarios=….
  • PR process, copied from the web e2e: a hosted report on tests.iblai.app (runs/pr-os-<pr>-<run>/macos/, 7-day expiry), a PR comment per run, its own macOS E2E commit status (pr-gate.yml untouched), a known-failures gate (e2e-tauri/ci/macos/known-failures.json: red only on failures outside the list) and the commands /retest-macos [scenario…], /status-macos, /report-macos, /cancel-macos (pr-e2e-commands.yml, job macos; they work once this is on main, since issue_comment runs from the default branch).
  • Signed-in picker checkpoints for local models (Journey 2, odm-01/04/06/08): the LLM Selection dialog must list the on-device models whether the Local Models toggle is off or on, and picking one must turn the toggle on so Ollama gets set up and the model downloads. The rows sign in to stg1 with the web e2e's staging account, resolved the way reusable-oci-test-runner.yml does it (the gate job checks out ibl-web-ops and runs determine-test-user; password TEST_USER_PASSWORD). odm-08 is expected to fail on this first run: today a pick that still needs a download leaves the toggle off and never installs Ollama (the SDK's LLMProviderModal only does that for an already-installed model, and the Rust pull only starts an installed Ollama). That red is the evidence for the SDK fix; it is deliberately not in the known-failures list.
  • cfd916f9 carries main's one-line fix for use-speech.test.ts, which the branch's base needed to pass the pre-push suite.

Docs: e2e-tauri/README.md (prerequisites, knobs, the matrix, the PR process, the signed-in checkpoints), e2e-tauri/COVERAGE.md (59 checkpoints, 32 covered, 4 journeys).

Test plan

  • Linux (xvfb) against the real debug binary: Journey 1 4/4, Journey 2 3/3 IPC + the signed-in suite skipping without credentials, Journey 3 14/15 (code-39 is the known persisted-data-dir red), Journey 4 skipped by design off the matrix; cargo test --offline 436 passed; pnpm lint:check, pnpm typecheck, prettier, rustfmt, the coverage ledger gate (--no-regress); the report builder's own test (node --test e2e-tauri/ci/macos/build-report.test.mjs) and a real report built from Journey 1's JSON results; both workflow YAMLs parse.
  • Not run yet (needs this PR): the matrix itself on macOS runners, the S3 upload, the comment and status, the signed-in checkpoints. Add the run-tests label to start it; expected first-run findings are the scenario scripts on real runners (Ollama.app first-launch prompts, the tgz layout, Intel from-source brew time), setup-06 under brew-service (launchd's KeepAlive restarts what the app stops), and odm-08 as described. Product gaps go into known-failures.json with a reason; odm-08 stays out until the SDK fix lands.
  • Follow-ups outside this PR: the SDK fix in startLocalDownload (record the model, turn Local Models on, await installOllama() when the manager is not running, then pull); macOS permission rows (Accessibility / Screen Recording for Cowork, launched through launchd so TCC judges the app itself) — planned, not built.

🤖 Generated with Claude Code

the-null-crafter and others added 3 commits October 12, 2026 15:23
`speakViaEndpoint` requests `.../chat-messages/<id>/tts/`; the assertion
still expected the path without the trailing slash, so the spy comparison
failed on the URL argument. Fails on origin/main on its own, with no
other change checked out.

The hook is the correct side — the DM API wants the trailing slash — so
the expectation moves, not the request.
@the-null-crafter the-null-crafter added the run-tests Trigger PR validation pipeline label Oct 12, 2026
@the-null-crafter the-null-crafter added run-tests Trigger PR validation pipeline and removed run-tests Trigger PR validation pipeline labels Oct 12, 2026
@github-actions

Copy link
Copy Markdown
Contributor

PR E2E - unknown

result unknown
central run 38281228461
commit cfd916f9

No test report was produced (result: unknown). The run did not finish a suite — usually because another PR's run took the shared environment, a newer commit/label superseded this one, or it was abandoned before completing. This says nothing about your code.

Re-trigger it yourself: comment /retest (or /retest <spec> to re-run a single file in minutes). /status shows the queue. (Avoid Re-run jobs — that replays the old merge ref instead of recomputing it against current main.)

@github-actions

Copy link
Copy Markdown
Contributor

PR E2E - FAILED

Full report, traces and screenshots

result FAILED
central run 38286015938
commit 1f2524b8
suite mentor - mode full - env stg1
tested against prod release 1.287.0 (env was synced to it first)
failed 1
new failures 1

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

run-tests Trigger PR validation pipeline

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants