Repository navigation
[eas-cli] Keep simulator control connections alive - #4791
Conversation
|
Codex rebased the unchanged feature patches onto main Merged with one squash commit per PR. Main’s tree matches the live-tested rebased stack exactly. Post-merge CI is being checked separately. — Codex |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #4791 +/- ##
==========================================
+ Coverage 76.74% 76.94% +0.21%
==========================================
Files 1109 1115 +6
Lines 55735 56364 +629
Branches 12323 12470 +147
==========================================
+ Hits 42766 43364 +598
- Misses 11980 12010 +30
- Partials 989 990 +1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
7b3bbf9 to
04b5495
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
04b5495 to
5261e34
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
5261e34 to
f2c3b5c
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
f2c3b5c to
0de7ec0
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
0de7ec0 to
1899090
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Subscribed to pull request
Generated by CodeMention Warning: The preamble and epilogue options in commentConfiguration are deprecated. Use template instead. |
1899090 to
011dfd3
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
011dfd3 to
ff2aea7
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
ff2aea7 to
ee19c5d
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
ee19c5d to
6d4815a
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
6d4815a to
b0790c0
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
b0790c0 to
a15cfbf
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Co-authored-by: Codex <codex@openai.com>
a15cfbf to
15d62ff
Compare
|
✅ Thank you for adding a changeset! |
Why
Repeated control commands reconnect to the preview server. Let agents keep the connection ready between commands.
How
Add an optional local helper and share action preparation, uploads, downloads and execution. Ordinary control commands reuse the helper when available. The idle timeout defaults to 120 seconds.
--idle-timeouttakes seconds. Closing the connection leaves the simulator session running. Keep-alive supports macOS and Linux; ordinary commands still work on Windows. Control import (#4686) and start import (#4687) use this shared executor.Security and cleanup
The helper uses an owned, private Unix socket directory. Processes running as the same OS user share this authority. Discovery is scoped to EAS credentials, project, session, API environment and CLI installation/version. Preview credentials pass over parent-child IPC; no new credential file is written.
Callers run one at a time. A dropped reply never triggers an automatic replay. Messages, queues and waits are bounded. Close finishes the in-flight action, rejects later actions and permits bounded upload cleanup. Immediate reopen waits for the drain.
Saved-login changes, idle expiry and remote disconnect close the helper. Server-side access-token revocation is not polled. An already-dispatched action can finish during shutdown.
Test Plan
Codex ran 1,020 account, simulator and help tests, a clean build and typecheck on the rebased full stack. Scoped lint and formatting pass. Each feature patch is unchanged by the main-only rebase. Devin completed with no new findings. Node 22/24 CI passed on this head.
Previous-head Codecov patch coverage was 94.57%, with 39 uncovered lines. Those coverage checks passed. Worker bootstrap/exit paths and some error branches remain uncovered; no coverage exclusions were added. Hosted keep-alive testing and latency measurements remain pending.
Codex also ran the final local CLI against two real hosted iOS sessions with Expo Go SDK 58. Human and JSON startup imports, settings readback, file upload/readback, Unicode clipboard, screenshots, warm connection reuse, concurrent callers, idle expiry, close/drain/reopen, and failure handling passed. Both sessions were stopped and local helpers closed. The old Coin Flip build archive returned HTTP 403, so this run used Expo Go.
Authorship and LLM use
Gabe chose the connection commands and timeout, then asked to share the control code with imports. Codex implemented the helper, moved the action executor into this layer and restacked the imports. Gabe reviewed the changes at
1899090. Codex then rebased onto current main and later corrected shutdown-test races exposed by Node 22 CI. The existing poll delay now lets the close event abort the connection before checking refusal replies. The close-caller test also retries transient probe disconnects and still checks the close acknowledgement and active-work drain. Szymon approved the earlier base at011dfd3. Gabe subsequently tried the CLI and approved the compact help examples. These stay in the command descriptions and use normal oclif formatting. Connection and action execution code is unchanged by this update.Astra and Opus reviews led to removing redundant authentication and validation, then fixing admission and shutdown races. Devin identified the close/reopen race. Coverage reviews corrected a masked shutdown assertion and a fake-timer race. Independent rechecks were clean on the earlier combined implementation; Codex checked the reorganized layers and preserved feature tree. Those independent reviews and hosted testing were not repeated for the split.
Gabe asked to remove custom help formatting. Codex removed the simulator help classes and restored the original help registration. Shared help and control execution are unchanged from the previous implementation.
Gabe reviewed the final changes at
a15cfbfafter the help cleanup.Codex then rebased onto main
21a1684after the account-selection change landed. Range-diff confirms all three feature patches are unchanged. A third real hosted iOS session passed startup/import, file readback, screenshots and warm-connection checks on the rebased CLI, then was stopped. The earlier real-session tests also passed close/drain/reopen and failure handling.— Codex