Repository navigation
Conversation
vonovak
added this pull request to stack #140
October 8, 2026 19:58
vonovak
force-pushed
the
vonovak/android-device-instance
branch
from
October 9, 2026 07:51
27e3ec2 to
606529a
Compare
vonovak
force-pushed
the
codex/device-lifecycle
branch
from
October 9, 2026 07:51
64ec384 to
887e22c
Compare
vonovak
force-pushed
the
vonovak/android-device-instance
branch
from
October 9, 2026 08:12
606529a to
c036d29
Compare
vonovak
force-pushed
the
codex/device-lifecycle
branch
from
October 9, 2026 08:12
887e22c to
c6cdaf7
Compare
vonovak
force-pushed
the
vonovak/android-device-instance
branch
from
October 9, 2026 08:18
c036d29 to
c591768
Compare
vonovak
force-pushed
the
codex/device-lifecycle
branch
from
October 9, 2026 08:19
c6cdaf7 to
4be2d71
Compare
vonovak
removed this pull request from stack #140
October 9, 2026 15:27
vonovak
added this pull request to stack #142
October 9, 2026 15:27
vonovak
marked this pull request as ready for review
October 9, 2026 15:34
Kudo
requested changes
Oct 12, 2026
Kudo
left a comment
Collaborator
There was a problem hiding this comment.
hey claude! the stack pr for each is too long and hard for human review. i don't exactly know why we need these change. could you try to reorganize the stack prs that easier for human review
| name: sim.name, | ||
| origin: 'explicit', | ||
| })) | ||
| : (await readAndroidInventoryAsync(tools)).runningSerials.map((serial) => ({ |
Collaborator
There was a problem hiding this comment.
[🏗️ design] Explicit Android selection still requires the emulator package even for a ready physical USB device. With adb devices -l listing the requested serial and no emulator binary, this preview and acquireAndroidAsync both fail with EMULATOR_NOT_RUNNABLE; read only the ADB device list for explicit selection instead of the AVD inventory.
vonovak
force-pushed
the
vonovak/android-device-instance
branch
from
October 12, 2026 19:54
c591768 to
f3c2d6d
Compare
vonovak
force-pushed
the
codex/device-lifecycle
branch
from
October 12, 2026 19:54
4be2d71 to
338a429
Compare
vonovak
force-pushed
the
vonovak/android-device-instance
branch
from
October 12, 2026 20:06
f3c2d6d to
689ce0f
Compare
vonovak
force-pushed
the
codex/device-lifecycle
branch
from
October 12, 2026 20:06
338a429 to
a41841d
Compare
vonovak
force-pushed
the
codex/device-lifecycle
branch
from
October 12, 2026 20:20
a41841d to
ee69412
Compare
vonovak
removed this pull request from stack #142
October 13, 2026 08:50
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Superseded by the focused local-device lifecycle PRs #146 (A: lease renewal), #147 (B: release), #148 (C: smoke cleanup), and #149 (D: reaping), stacked after #134 and #137 including its review fixes.
The active merge group ends at #149. Explicit device selection (E), binding status/output (F), and EAS session binding (R / #139) are deferred to a later follow-up stack, documented in #149. This combined PR is closed; its branch is retained for the existing EAS follow-up history.
Worktree devices currently remain running after a smoke run or after their worktree disappears, and Metro does not renew their leases. This adds the lifecycle handling in plan 0033: lease renewal while commands run, stale-device reaping,
dev:stop --release, explicit local device selection withdev --device, and binding details in status output.Release checks this worktree's server state and validates the binding again under the registry lock so replacement bindings survive stale cleanup. Smoke releases its own platform, and explicit devices are never shut down or deleted.
Stacked on #137. EAS session bindings remain in plan 0034.
Validation: 4,927 unit tests passed; 9 focused integration tests passed, including the two-worktree lifecycle cases. Typecheck, build, formatting and lint passed (33 existing lint warnings).
Stack created with GitHub Stacks CLI • Give Feedback 💬