Skip to content

improvement(desktop): Electron E2E for desktop tool lifetimes against a live local Sim - #8697

Open
waleedlatif1 wants to merge 11 commits into
stagingfrom
test/desktop-ungated-e2e
Open

waleedlatif1 wants to merge 11 commits into
stagingfrom
test/desktop-ungated-e2e

Conversation

@waleedlatif1

@waleedlatif1 waleedlatif1 commented Oct 6, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Type of Change

  • Tests

Testing

  • 8/8 green on staging 482f146d, on Linux/Xvfb and on macOS
  • The CI step was run from scratch on a Linux runner
  • Each test fails when its fix is reverted

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

@waleedlatif1
waleedlatif1 requested a review from a team as a code owner October 6, 2026 22:15
@vercel

vercel Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
docs Skipped Skipped Oct 7, 2026 2:14am UTC

Request Review

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 5 files

Reply with feedback, questions, or to request a fix.

Fix all with cubic | Turn on auto-fix | Re-trigger cubic

Comment thread .github/workflows/test-build.yml
Comment thread apps/desktop/e2e/fixtures/live-sim.ts Outdated
@greptile-apps

greptile-apps Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

[Medium risk] Adds end-to-end tests for desktop tools against a local app.

The PR appears safe to merge; the latest helper replacement preserves the test's behavior.

What we checked:

  • Desktop capabilities stay intact: The app sends capabilities as a plain object. toRecord() returns that object unchanged, so the rewritten request keeps its fields.

Summary

Adds eight Electron E2E tests against a live local Sim, plus a dedicated CI job.

  • Checks tool behavior across chat switches, Stop, sign-out, and approval.
  • Checks that foreground tools work without starting the background executor.
  • The latest change replaces an inline object check with toRecord(). No new actionable issue was found.
  • Previous threads are all unnumbered and resolved. The shared-helper fixes and Redis acknowledgment fix remain present. The Electron launch finding was correctly disputed by waleedlatif1 and conceded by Greptile.
Diagram
%%{init: {'theme': 'neutral'}}%%
flowchart LR
  Electron[Electron app] --> Proxy[Recording proxy]
  Proxy --> Sim[Local Sim]
  Sim --> Agent[Scripted worker]
  Sim --> Postgres[PostgreSQL]
  Sim --> Redis[Redis]
  Tests[E2E tests] --> Electron
  Tests --> Proxy
  Tests --> Postgres
  Tests --> Monitor[Redis monitor]
  Redis --> Monitor
Loading

Reviews (3) · Last reviewed commit: "improvement(desktop): read the chat body..." · Reviewed by Greptile

Comment thread .github/workflows/test-build.yml Outdated
Comment thread apps/desktop/e2e/fixtures/live-sim.ts Outdated
Comment thread apps/desktop/e2e/fixtures/live-sim.ts Outdated
Comment thread apps/desktop/e2e/fixtures/live-sim.ts
@blacksmith-sh

This comment has been minimized.

@blacksmith-sh

This comment has been minimized.

… 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.
…tcomes 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
…kground 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
…ts go, and report the call's error on a wrong terminal state
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptileai review

Comment thread apps/desktop/e2e/desktop-tools-live-sim.spec.ts Outdated
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptileai review

… dev console notices, and keep failure diagnostics

This branch was previously deployed

1 inactive deployment
Preview — 74fa742b Deployed Oct 7, 2026 by vercel[bot]
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