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
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
442 | 442 | | |
443 | 443 | | |
444 | 444 | | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
445 | 587 | | |
446 | 588 | | |
447 | 589 | | |
| |||
0 commit comments