Skip to content

[eas-cli] Import simulator actions from a JSON file - #4686

Open
gwdp wants to merge 8 commits into
mainfrom
gwdp/control-import-first-20261018
Open

gwdp wants to merge 8 commits into
mainfrom
gwdp/control-import-first-20261018

Conversation

@gwdp

@gwdp gwdp commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Why

Reuse simulator setup from a file, such as location and accessibility settings.

How

simulator:control --import <file> checks every action before running them over one socket. It shows session details, progress and output, then exits. It stops on failure and supports --json.

Example: location and accessibility setup (simulator-control.json)

Set the location to Vancouver, switch to dark mode, reduce motion and increase contrast.

{
  "version": 1,
  "actions": [
    {
      "action": "location.set",
      "params": {
        "lat": 49.2827,
        "lng": -123.1207
      }
    },
    {
      "action": "appearance.set",
      "params": {
        "value": "dark"
      }
    },
    {
      "action": "reduceMotion.set",
      "params": {
        "value": "on"
      }
    },
    {
      "action": "increaseContrast.set",
      "params": {
        "value": "on"
      }
    }
  ]
}

Apply it to the current session, or choose one with --id:

eas simulator:control --import ./simulator-control.json
eas simulator:control --import ./simulator-control.json --id <session-id>

Test Plan

Codex ran 574 simulator/help tests, the production build, typecheck, lint and formatting on the rebased import layer. Earlier hosted iOS QA covered imports, exact file readback, screenshots and JSON results. It also found a cold metadata timeout; the fix passed a slow-response regression and a fresh hosted request taking 5.49 seconds. All QA sessions were stopped. Hosted QA used the combined import build before this rebase; CI runs separately.

Earlier QA: terminal recording and imported files

Terminal video · Imported JSON · Uploaded text file

The video and terminal screenshot use this seven-action file: change appearance, upload/read back a file, launch the app and save a screenshot.

Import progress

QA evidence and limits

Authorship and LLM use

Gabe explored the control commands over the socket and developed the single-command interface with LLM assistance. He then asked for JSON action imports using the same socket, with validation before execution, a session/device header, and each action and its output shown as it runs.

Codex implemented the import flow and addressed agent and Devin review findings. A later test pass found and fixed the cold metadata timeout. Codex rebased the change onto current main and reran the checks. Gabe reviewed those changes, then asked Codex to let actions continue when device display metadata is unavailable.

— Codex

@gwdp
gwdp added this pull request to stack #4688 October 19, 2026 04:52
@gwdp

This comment has been minimized.

@codecov

codecov Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.73817% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.18%. Comparing base (f65472a) to head (03c25a7).

Files with missing lines Patch % Lines
packages/eas-cli/src/simulator/controlConfig.ts 97.85% 2 Missing ⚠️
packages/eas-cli/src/commands/simulator/control.ts 99.11% 1 Missing ⚠️
packages/eas-cli/src/simulator/hostActions.ts 96.88% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4686      +/-   ##
==========================================
+ Coverage   76.06%   76.18%   +0.12%     
==========================================
  Files        1075     1077       +2     
  Lines       53593    53845     +252     
  Branches    11778    11853      +75     
==========================================
+ Hits        40761    41017     +256     
+ Misses      11852    11848       -4     
  Partials      980      980              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@gwdp

This comment has been minimized.

@gwdp

This comment has been minimized.

@gwdp

This comment has been minimized.

@gwdp

This comment has been minimized.

@gwdp
gwdp force-pushed the gwdp/control-import-first-20261018 branch from 20b904b to 06c0ddb Compare October 20, 2026 18:44
@gwdp gwdp changed the title [eas-cli] Import simulator control configurations [eas-cli] Import simulator actions from a JSON file Oct 20, 2026
@gwdp

This comment has been minimized.

@gwdp
gwdp marked this pull request as ready for review October 20, 2026 18:45
@gwdp
gwdp requested a review from tsapeta October 20, 2026 18:45
@gwdp

This comment has been minimized.

@github-actions

Copy link
Copy Markdown

Subscribed to pull request

File Patterns Mentions
packages/eas-cli/** @douglowder

Generated by CodeMention

Warning: The preamble and epilogue options in commentConfiguration are deprecated. Use template instead.

@gwdp
gwdp requested review from tchayen and removed request for tsapeta October 20, 2026 18:47

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Devin Review found 1 potential issue.

Devin Review

@devin-ai-integration

This comment has been minimized.

@gwdp

This comment has been minimized.

@gwdp
gwdp requested a review from szdziedzic October 27, 2026 04:29
@gwdp
gwdp force-pushed the gwdp/control-import-first-20261018 branch from 3ebcca1 to 03c25a7 Compare October 29, 2026 20:37
@github-actions

Copy link
Copy Markdown

✅ Thank you for adding a changeset!

@gwdp

gwdp commented Oct 29, 2026

Copy link
Copy Markdown
Contributor Author

Codex rebased this PR onto main (f65472ae0) and resolved the control/help conflicts, preserving main’s explicit host: upload handling. Passed 192 focused control/import/help tests, production build, typecheck, lint and formatting. No fresh hosted QA or human review for this rebase.

— Codex

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