{{ message }}
Repository navigation
Commit af5501b
authored
improvement(desktop): Electron E2E for desktop tool lifetimes against a live local Sim (#8697)
* improvement(desktop): Electron E2E for desktop tool lifetimes against a live local Sim
Runs the real Electron app against a local Sim (Postgres, Redis, realtime) with a
recording proxy and a scripted stand-in worker, covering chat switches, Stop,
sign-out, approval-gated and stopped claims, and the flag-off foreground round trip.
The spec skips unless a live Sim is configured; the http-e2e job provides one.
* improvement(desktop): use shared helpers, confirm Redis MONITOR, stage desktop build on the workspace disk
* improvement(desktop): bundle the desktop app without macOS prebuilds in the Linux E2E step
* improvement(desktop): report desktop E2E failures inline and trace runner memory
* improvement(desktop): run the live desktop E2E in its own job on a larger runner
* improvement(desktop): warm the live desktop E2E routes and wait on outcomes instead of time
- Compile every route, page and client chunk the tests use in a named warm-up step before any timed hold
- Send retries only while no turn reached Sim; every held request and poll is bounded
- Stop and sign-out tests wait for the import's own report and assert one exact terminal state
- Clicks fail fast with the dev overlay's error instead of a blocked click
* improvement(desktop): retype and resend a message the hydrating composer dropped
* improvement(desktop): run the live desktop E2E against the merged background executor
- The dormancy check accepts the app's own registrations, refused while signed out and answered
as not enabled once signed in, and still forbids inbox, doorbell, claim, lease and completion
- The app and realtime server run in their own sessions and stop through stop-session.sh
* improvement(desktop): release the held read at the moment its view lets go, and report the call's error on a wrong terminal state
* improvement(desktop): read the chat body's desktop capabilities with toRecord
* improvement(desktop): hold the read's own report across Stop, dismiss dev console notices, and keep failure diagnostics
* improvement(desktop): stop the live E2E apps by their E2E_APP tags
* improvement(desktop): deliver the claim held across Stop to Sim even if Electron gave up on it, and require its 410
* improvement(desktop): warm every route the live E2E reaches, keep sends honest, and check dormancy layer by layer
- Warm-up runs the tests' own flows (read, import, a chat switch during a live turn, Stop, login)
and waits until every request the app made has been answered
- send() resends only when the UI did not take the message; a taken message whose turn never
reaches Sim fails as a lost send
- Stop and sign-out tests assert exact outcomes without holding the tool's report (the stopped tool
reports nothing since #8732)
- Dormancy checks registration, device records, binding, routes and the doorbell as separate soft
assertions
- CI: per-run E2E_APP tags, retries 0, and a path filter for pull requests
* improvement(desktop): wait with the shared sleep helper while the dev app settles
* improvement(ci): detect live desktop suite changes with git, covering chat pages and auth routes
* improvement(ci): run the live desktop suite unless every change is clearly unrelated, and fail open
- The change check skips only docs, the other apps and published content; any change elsewhere,
and any failure to fetch or diff the base, runs the suite
- settled() discounts only requests a hold is keeping from Sim right now
- The warm-up's Stop turn waits for its stream to close instead of on a promise that never settles1 parent f83d977 commit af5501b
6 files changed
Lines changed: 1634 additions & 0 deletions
File tree
- .github
- scripts
- workflows
- apps/desktop
- e2e
- fixtures

0 commit comments