Repository navigation
[build-tools] Separate agent-device and simulator preview logs - #4585
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
2b1ff95 to
068f946
Compare
068f946 to
e705964
Compare
|
Codex separated agent-device and simulator-preview logging, preserved credential redaction, and restacked the layer under Gabe's direction. Gabe reviewed the final code through #4601 and tested the local website flow. Current-head CI is green; screenshots and local test evidence are preserved. — Codex |
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
| const previewRetired = await retirePreview; | ||
| onStopped(hostStopped && !hostExited && previewRetired); | ||
| await screenshots.finishAsync(hostStopped); |
There was a problem hiding this comment.
Could we include the background macOS encoder setup in the preview phase's shutdown accounting? If the session finishes while ensureMacosPreviewEncoderInstalledAsync is still pending, onStopped() emits END_PHASE, but Homebrew output and the setup catch handler continue writing through the same phase logger afterward.
I reproduced this by deferring encoder setup, awaiting host.finishAsync(), then emitting output and rejecting setup: both the output and “Could not start refreshing the session preview” warning appeared after END_PHASE.
Please retain the setup task, make its subprocess cancellable, and cancel/drain it before ending the phase, while keeping readiness nonblocking. A test covering late output and late rejection would protect this ordering. I checked the downstream code through #4601; it still has this path.
There was a problem hiding this comment.
Fixed in 594435a62.
The host now retains encoder setup, cancels its owned subprocess group during shutdown, and waits for setup/output drain before ending the preview phase. Readiness stays nonblocking; expected shutdown cancellation does not emit a failure warning.
The late-success and late-failure ordering regressions fail before this fix and pass afterward. All 173 related tests pass, including a real Node parent/descendant fixture, plus build-tools typecheck, changed-file lint/format and changeset validation. No new native or hosted acceptance was run.
— Codex
|
eas-cli now uses changesets for changelogs (#4580). The required "Check for a changeset" check fails on PRs that edit To update this PR:
The release adds the PR link and the author to the entry. If this PR needs no changelog entry, revert the |
|
Rebased this layer onto Validation: focused build-tools tests, changeset validation, changed-file lint/format and build-tools typecheck passed. No new native or hosted acceptance was run for this restack. Published head: — Codex |
ecd6e28 to
f92bce4
Compare
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
f92bce4 to
af8874c
Compare
|
Implemented the encoder setup cancellation/drain fix in 594435a62 at Gabe’s direction, after local self-review and two independent source reviews. The new tests cover phase closure ordering and subprocess output drain; 173 related tests and the local static checks pass. — Codex |
|
Simplified the tests in 3e8173f9a at Gabe’s request: removed the extra encoder subprocess harness and both fixture files. The focused cancellation and log-phase ordering regressions remain; production code is unchanged. All 177 related tests, including existing shared subprocess tests, and build-tools typecheck pass. — Codex |
|
✅ Thank you for adding a changeset! |
Why
Keep agent-device controller output and its simulator preview in separate log phases.
How
Test Plan
Earlier and automated validation
After restacking, Codex ran 57 focused tests and built all 13 EAS packages successfully. Earlier focused tests, typecheck, lint and formatting passed; Claude reviewed correctness and cleanup ownership.
Earlier launch E2E covered Universe-generated steps through build-tools download/install/start to serve-sim on a real iOS Simulator, checking one app start, launch arguments and the deep link. Those runs used loopback cloud tunnel/reporting adapters and a pinned local build/device. The local website session used real ngrok tunnels; hosted EAS execution was not tested.
Screenshots
Authorship and LLM use
Gabe wrote the initial implementation, directed the iterations and requested the split once he was happy with the result. Codex made fixes, split the PRs and updated this description; Claude and Devin reviewed. The reviews led to redaction and shutdown refinements. Gabe reviewed the final code through #4601 and tested the local website flow for these logging changes.