Repository navigation
Conversation
🦋 Changeset detectedLatest commit: 145031a The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Codex implemented the HTTP active/explicit display fix, shared capture cleanup, error redaction, tests, and documentation. Gabe reviewed the final diff at Handoff checks: 11 focused HTTP screenshot/session/artifact tests and LLP validation pass. Current-head Devin analysis and CI Checks passed; Simulator CI was canceled at Gabe’s request for the separate Xcode stack. No code changed during this handoff. — Codex |
|
/devin review Current head: Inherited test-only follow-up at — Codex |
|
Hosted QA at — Codex |
107f1a9 to
e032c33
Compare
|
Rebased onto the updated Duo stack through #385 at Codex ran the build, lint, typecheck, LLP checks, and 128 focused tests (all passed). Knip still reports the same existing diagnostics as main. Native CI is pending; review status and reviewers are unchanged. — Codex |
Co-authored-by: Codex <codex@openai.com>
Add direct host screenshot coverage for active and numeric displays on Xcode 26. Co-authored-by: Codex <codex@openai.com>
Use the sole installed integrated panel when native selection is unavailable, reject known external ports, and keep native diagnostics in host logs. Cover fallback, failed validation, profile parsing, and private errors. Co-authored-by: Codex <codex@openai.com>
Restore sole-screen tvOS fallback and read only the selected display profile asynchronously. Bound native screenshot startup and reads, preserve recording finalization during teardown, and guard late native results. Share case-insensitive session identity and serialize publication with failed reservation cleanup. Co-authored-by: Codex <codex@openai.com>
Read older iOS main-screen profiles through a matching, unambiguous simctl IO enumeration. Preserve numeric display validation and refuse multi-panel or unknown fallback. Add the real Xcode 26.6 profile and IO regression fixture. Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Keep the maintainer merge and use the shared display-profile fallback. Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
|
Codex added the screenshot publication-failure regression and integrated the updated #383–#385 parent stack in The integrated suite passed 2,635 tests before the final inherited activity-readback patch; after that patch, the native build and four focused wrappers passed. Pinned lint and LLP checks passed. Local typecheck/Knip retain main baseline failures. No fresh hosted or device validation was run. Gabe has not inspected this follow-up. SJ’s approval and human review requests are unchanged. /devin review Please review this head, especially publication cleanup and integration with the shared profile lookup. — Codex |
|
/devin review Codex added the remaining #441 diagnostic in JS/native build, 36 existing native checks, two temporary failure probes, 19 screenshot checks, formatting and LLP passed. The probes confirmed one hint across repeated missing-device errors and none for unrelated errors. Local lint retains failures in unchanged React files. Human approvals and review requests were preserved. — Codex |
What
Apply active/explicit display selection and bounded handoff retry to
/api/screenshot, which tunneled previews and the dashboard use. Share the host capture primitive and session ownership. Keep PNG/artifact headers and temporary-file cleanup. If native startup or display readback fails, fall back tosimctl screenshotwith the profile’s sole integrated display ID only when the installed device profile proves there is exactly one. Multi-display and unknown profiles still return HTTP 500 when active-display selection fails; an explicit?display=bypasses native capture. Preserve the safe display-changing retry message and keep private diagnostics in host logs. CoreSimulator display IDs have no serve-emu equivalent.Stack: #383 → #384 → #385 → #388.
Why
Correcting the host action did not fix the separate HTTP download path.
Authorship and LLM use
Primarily generated by Codex: code, tests, documentation, this description, and local validation. Gabe encountered issues while testing the new
simulator:controlcommand and directed stacked fixes and repeated reviews. Devin identified the HTTP bypass. Codex shared capture logic and added real DeviceSession startup coverage. A further Devin round found lingering capture and error-detail disclosure; Codex fixed ownership in #384 and applied it here, with HTTP cleanup and private-path regressions. Gabe reviewed the prior diff at37e5d09c0and requested review from Krystof and Szymon. No human code edits or additional human testing are claimed. SJ reproduced the native-start dependency on an ordinary iPhone. Gabe agreed to a single-display fallback; Codex added it, restored safe retry guidance, documented serve-emu parity, and added failure-path coverage. Gabe reviewed these follow-up changes as part of the final diff. Gabe owns follow-up.Gabe reviewed the final changes at
44816833b.Evidence
Current head
dfff7cf: Devin identified missing coverage for the fallback eligibility check, then a macOS utility dependency in the added fixture. Codex added seven child-process cases using the real identifier lookup, JSON parsing, capability lookup, and display count, with controlled files and a stubbed plutil boundary. The old fixture fails in Linux and the current fixture passes with Bun 1.3.14; broken-lookup and multiple-integrated-display mutants fail there. Sixteen focused macOS checks, formatting, lint, typecheck, and LLP checks pass; Knip matches the existing main baseline. All six CI checks pass ondfff7cf. Devin completed analysis on this head, and all review threads are resolved. Gabe reviewed these test-only follow-ups as part of the final diff.At
b18cd22, Codex also ran 148 focused screenshot/session/framing tests and the JS/native build successfully. No fresh hosted or device validation was run for the fallback follow-up.Hosted QA at
107f1a9f7: Codex ran the exact EAS-produced artifact on an owned Duo (iOS 27.1, Xcode 27.1) and iPhone 17 Pro (iOS 26.5, Xcode 26.6). Thirty-six host/HTTP captures covered default and explicit displays across six fold states. All four native rotations, live 3D touch mapping on both panels, reconnect, appearance switching and SpringBoard restart/relaunch passed. Artifact hashes and worker logs confirm the pin. Out-of-process native pose changes and Argent stuck-reader recovery were not exercised.Inherited test-only follow-up at
107f1a9f7: the new parent framing case distinguishes the removed dependency from current behavior (53 framing cases pass; one fails on the mutant). Twelve focused screenshot/hinge/framing/rotation/session wrapper checks pass. CI Checks and current-head Devin analysis passed. The serve-sim test workflow was canceled at Gabe's request for the separate Xcode 27 stack.CI Checks passed on
37e5d09c0. Simulator test CI was canceled at Gabe's request because of the separate Xcode 27 stack.Lint: existing React diagnostics match the unchanged source baseline.
Required workspace build/typecheck commands: local serve-sim JS/native build passed; local typecheck retains only baseline
scripts/tart/dev.ts:61. Root workspace build commands were not rerun locally; CI Checks passed.Full local tests: 2,605 pass, 217 skip, one baseline failure (
device sessions follow the active native screen), previously reproduced on unchanged source. The last helper-retention guard was added afterward; its 71 focused helper/screenshot/middleware checks pass.Device-backed validation by Codex: Owned Duo, iOS 27.1 (24A94401), and iPhone 17 Pro, iOS 27.0; Xcode 27.1 beta. Eight Duo HTTP captures selected the reported active panel or explicit opposite panel; two ordinary iPhone captures returned 1206×2622. Final ownership/error refinements pass isolated native-boundary fixtures.
Regression evidence: Failing HTTP regressions preceded the fixes (
025bddce2,e4122f50a).CLI/native/UI evidence: HTTP active cover:
1398×2034; active inner:2853×2007; explicit opposite panels also matched. Native display election can lag hinge acknowledgement: device assertions waited for the reported active screen; retry races were tested separately.HTTP defaults, explicit display, switching/retry bound, startup failures, capture cleanup, and generic error responses pass. Full local JS/native build and LLP reference checks pass. Xcode-blocked serve-sim CI test workflows were canceled at Gabe's request; other checks and Devin reviews were not explicitly canceled by Codex. Out-of-process native pose changes and Argent stuck-reader recovery were not exercised.
Rollback
Plain revert.
— Codex
Review follow-up: this head inherits #384 session-state preservation and #385 rotation cleanup. Codex reran 11 HTTP screenshot/session/artifact checks successfully. Subsequent hosted validation is recorded under Evidence.
Current review follow-up
At
44816833b, Codex added the publication-failure child-process regression requested by Devin. A successful capture command without an output file must fail safely, remove the empty reservation, preserve existing validated pixels, and leave no extra capture temporary files. This closes a coverage gap; it did not demonstrate a production cleanup bug.Codex integrated the updated parent stack, reused #384’s asynchronous installed-profile lookup, and kept screenshot publication serialized. Unknown and multi-display profiles still refuse fallback; a proven single integrated display uses its actual ID. Gabe reviewed the final changes at
44816833b.The integrated local suite passed 2,635 tests before inheriting the final #383 activity-readback follow-up. After that follow-up, the native build and four focused test wrappers passed. Pinned lint and LLP checks passed; local typecheck and Knip retain the unchanged main baseline failures. All six checks, including Devin Review, passed on
44816833b; no review threads remain open. No fresh hosted or device validation was run for this follow-up.— Codex
Hosted pre-merge QA
Codex tested the exact #388 tip
44816833bfrom its EAS CI build, with worker package pins and logs verified. Owned sessions used an iPhone Duo on Xcode 27.1 and an iPhone 17 on Xcode 26.6.All 66 stable host/HTTP matrix captures passed across fold states, a fractional angle and rotation. Defaults matched the native active panel; explicit IDs returned the requested panel, including inactive panels. Both tunneled UI downloads passed, and live video kept advancing. Concurrent same-name captures preserved valid pixels; invalid IDs, methods, devices and unauthenticated requests failed safely. HTTP PNG/artifact headers passed. Nineteen focused local tests covered startup/read failures, safe single-display fallback, publication cleanup and session ownership; addon/profile fault injection was local, not hosted.
A separate Duo stress limit remains: overlapping rapid folds and captures can leave panel illumination out of step with the acknowledged hinge angle. It also reproduced on the prior #385 artifact. Independent explicit PNGs confirmed the lit panel; default selection followed it correctly. Reapplying Fully open in the UI recovered the current-tip session; SpringBoard restart alone did not. Native handoff reliability needs separate follow-up. No code changed during this QA. All owned sessions were stopped after testing.
— Codex
CoreDevice diagnostic follow-up
At
145031a62, Codex added the remaining diagnostic requested in #441 at Gabe’s direction. A missing CoreDevice device logs a troubleshooting hint once per observation task: checkxcrun devicectl list devices, and consider a stale per-user CoreDeviceService after an Xcode update. The hint describes a manual restart and its effect on other sessions; serve-sim does not restart the service. Screenshot selection and retry behavior are unchanged.Codex rebuilt the JS/native package. Thirty-six existing native checks and two temporary failure probes passed; repeated missing-device failures printed one hint, while unrelated failures printed none. All 19 focused screenshot checks, formatting and LLP checks passed. The local check command retains React lint failures in unchanged files. CI and current-head Devin review are pending. Gabe authorized this addition and merging the stack; human inspection of this diagnostic-only follow-up is not claimed. Existing human approvals and review requests were preserved.
— Codex