Skip to content

[eas-cli] Add eas simulator:feedback command - #4176

Open
zvadaadam wants to merge 3 commits into
mainfrom
zvadaadam/honiara
Open

[eas-cli] Add eas simulator:feedback command#4176
zvadaadam wants to merge 3 commits into
mainfrom
zvadaadam/honiara

Conversation

@zvadaadam

@zvadaadam zvadaadam commented Aug 11, 2026

Copy link
Copy Markdown

Why

EAS Simulator has no feedback channel, and agents/users finishing a session are exactly the audience we want to hear from. This adds eas simulator:feedback (alias sim:feedback, hidden like the rest of the experimental simulator:* group) so feedback lands with the simulator category and, once expo/expo#48782 is published, with the active session ID attached for correlation with session events.

Companion PR: expo/expo#48782 (teaches submit-expo-feedback to detect the session from EAS_SIMULATOR_SESSION_ID / .env.eas-simulator). A follow-up expo/skills PR will point the eas-simulator skill at this command.

How

The command is a thin, decoupled wrapper: it spawns npx --yes submit-expo-feedback@latest --category simulator with inherited stdio, so the feedback CLI owns prompting, validation, auth (same ~/.expo/state.json / EXPO_TOKEN), and submission — and every eas-cli user picks up feedback-CLI improvements without an eas-cli release. Nothing is installed into the user's project; npx keeps it in its own cache.

  • Session resolution is left to the child, which reads .env.eas-simulator from its working directory (cwd is set to the project dir). The parent's only special job is --id, transported by injecting EAS_SIMULATOR_SESSION_ID into the subprocess env. The command deliberately does not load the simulator dotenv into its own process — it never consumes the session itself, and the file also holds controller credentials.
  • --subject passes through; non-interactive mode without a message fails fast with an actionable error before spawning; subprocess exit codes propagate via the same catch override pattern as simulator:exec.
  • simulator:stop now prints a one-line hint pointing at the command (skipped for --json), and eas simulator --help mentions it in its DESCRIPTION section.

Test Plan

  • 7 new jest tests (feedback.test.ts): spawn args/category, --subject passthrough, inherited-session passthrough, --id precedence, no session-var leakage when unset, non-interactive error, and interactive prompting delegation. Full simulator suite: 56/56 pass; tsc, oxlint, and oxfmt clean.
  • Manual: node packages/eas-cli/bin/run simulator:feedback --help renders correctly (see command reference in the docs added in [submit-expo-feedback] Detect EAS Simulator sessions and split the bin/library entry points expo#48782).
  • Verified the npx path cold: with an empty npm cache, npx --yes submit-expo-feedback@latest --version downloads (~3 MB) and runs without prompting; warm runs take ~3.5s.

🤖 Generated with Claude Code

@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.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9796151c37

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

if (jsonFlag) {
printJsonOnlyOutput({ id: session.id, status: session.status });
} else {
Log.log(chalk.dim('Have feedback about EAS Simulator? Run `eas simulator:feedback`.'));

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Include the stopped session ID in the feedback hint

When the session was selected with simulator:stop --id and .env.eas-simulator is absent or points to another session, following this hint submits feedback without the stopped session ID or attaches it to the wrong session. Include --id ${session.id} in the suggested command so feedback is reliably correlated with the session that was just stopped.

Useful? React with 👍 / 👎.

Comment thread CHANGELOG.md Outdated
### 🎉 New features

- [eas-cli] Add Supabase integration foundation: GraphQL client, shared integration helpers, and provisioning utilities. ([#4130](https://github.com/expo/eas-cli/pull/4130) by [@gwdp](https://github.com/gwdp))
- [eas-cli] Add `eas simulator:feedback` to send EAS Simulator feedback to the Expo team through `submit-expo-feedback`, attaching the active session ID. ([#XXXX](https://github.com/expo/eas-cli/pull/XXXX) by [@zvadaadam](https://github.com/zvadaadam))

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Replace the placeholder changelog link

If this entry reaches a release unchanged, the published changelog displays #XXXX and links users to the nonexistent /pull/XXXX page, eliminating the PR traceability provided by every neighboring entry. Replace both placeholders with the actual pull request number before merging.

Useful? React with 👍 / 👎.

zvadaadam and others added 2 commits August 11, 2026 17:12
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

✅ Thank you for adding the changelog entry!

@codecov

codecov Bot commented Aug 11, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 86.11111% with 5 lines in your changes missing coverage. Please review.
✅ Project coverage is 63.21%. Comparing base (4c31729) to head (e7e5d7c).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
...ackages/eas-cli/src/commands/simulator/feedback.ts 83.88% 4 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4176      +/-   ##
==========================================
+ Coverage   63.19%   63.21%   +0.02%     
==========================================
  Files        1021     1022       +1     
  Lines       46596    46632      +36     
  Branches     9826     9833       +7     
==========================================
+ Hits        29444    29475      +31     
- Misses      15698    15702       +4     
- Partials     1454     1455       +1     

☔ 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.

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