Repository navigation
feat(tunnel): simlock tunnel forward reaches a leased device's port from the caller's machine - #1127
Merged
Merged
Conversation
…the helper that orientation (callstackincubator#1107)
…els and gets READY, and a device connection arrives as OPEN with its bytes as DATA (callstackincubator#1112) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ctions as OPEN and DATA (callstackincubator#1112) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ED and close 4003 (callstackincubator#1112) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…de and close 4003 (callstackincubator#1112) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…tation, and is refused (callstackincubator#1107) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ckincubator#1107) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…r and gets ROTATION_UNSUPPORTED naming it (callstackincubator#1107) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…blet simulator (callstackincubator#1107) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…s and gets INPUT_UNAVAILABLE with the reason (callstackincubator#1107) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… when the helper or the write fails (callstackincubator#1107) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…esh helper; a socket open during a rotate keeps its helper (callstackincubator#1107) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…credit pausing only its connection (callstackincubator#1112) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…credit (callstackincubator#1112) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… a closed connection is ignored (callstackincubator#1112) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…s sockets and device.rotate (callstackincubator#1107) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…lstackincubator#1112) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…when the socket closes, the lease ends or the daemon stops (callstackincubator#1112) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…gets the op's output (callstackincubator#1107) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…a tunnel's rules and close its connections (callstackincubator#1112) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…rotate (callstackincubator#1107) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ugh a gateway (callstackincubator#1107) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… may (callstackincubator#1112) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… worker (callstackincubator#1112) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…eway (callstackincubator#1107) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…wn message (callstackincubator#1107) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…he unknown message (callstackincubator#1107) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ller's lease id (callstackincubator#1107) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This was referenced Oct 31, 2026
# Conflicts: # src/contract/AGENTS.md # src/contract/protocol.ts # src/daemon-protocol/index.test.ts # src/daemon/AGENTS.md # src/daemon/main.ts # src/drivers/android/index.test.ts # src/drivers/android/index.ts # src/modules/AGENTS.md # src/modules/testing.ts # website/src/content/docs/docs/reference/errors.mdx
# Conflicts: # src/input/AGENTS.md # src/modules/AGENTS.md
# Conflicts: # src/cli/AGENTS.md # src/cli/index.test.ts # src/cli/index.ts # src/cli/remote-lease.ts # src/cli/tree.ts # src/daemon/lease-inputs.test.ts # src/gateway/fleet-coordinator.ts # website/src/content/docs/docs/reference/cli.mdx
…y: data both ways, lease end, worker stop, tunnels off, a quiet tunnel kept open (callstackincubator#1110)
…through a gateway, and no adb rule left after release (callstackincubator#1110)
…th --lease and closed stdin, the worker is joined before leasing, the serial comes from the lease, cleanup nukes on the worker (callstackincubator#1110)
…y: data both ways, lease end, worker stop, tunnels off, a quiet tunnel kept open (callstackincubator#1110)
…through a gateway, and no adb rule left after release (callstackincubator#1110)
…th --lease and closed stdin, the worker is joined before leasing, the serial comes from the lease, cleanup nukes on the worker (callstackincubator#1110)
… 5 s, create the forward rule the test checks is gone; fix the 257th-connection claim
…ore advancing the clock to just under 5 s
…ot once adb answers; release returns before the reclaim ran
…reading the emulator's rules
Contributor
Review notesNot blocking, not verified. Each is one reviewer's claim.
Written by an agent. |
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.
Closes #1115
Status
Implement: done Review: fix-check passed (round 1, round 2, fix-check), 5 fixed Hardware: pass at ac517aa (4/4 across a full run and one re-run after an emulator boot hang, #1183) Gate: running
Done when
src/daemon/tunnel-cli.e2e.test.ts,src/cli/tunnel.test.ts,src/tunnel/worker.test.ts,src/drivers/android/index.test.ts. — run in the fix runs; CI on the heade2e/slow-android-tunnel.test.tspasses in the slow lane with a gateway and a worker on one machine:simlock tunnel reverse <p> forward <q>; the device fetches the caller's page on<p>; a device-side server started with(printf 'device-ok'; sleep 30) | nc -l -p <q>after the tunnel prints its lines answersdevice-okto a client on the caller'slocalhost:<q>that retries its connect until it succeeds, for at most 5 s, and receives the bytes that client sends. — slow lane at ac517aa, 2026-11-01: full file 3/4 (this test passed; the lone-worker test hit a boot timeout, Android: a stale emulator crash dump makes every boot wait on a crash-report dialog until the lease times out #1183), then the lone-worker test alone passed; 4/4 at the headforward. —cli.mdx, checked by the claims reviewAssumptions
nc's output to a file the test reads back; the spec's command is otherwise unchanged.BAD_REQUESTmessages and theRESETreasons (timeout, adb's ownclosed) — the spec fixes the codes, not the text; chose short messages matching the existing ones.Review
Spec review: 2 blocking, 2 fixed, 0 notes. Code review: 2 blocking, 2 fixed, 1 notes. Claims review: 1 blocking, 1 fixed, 0 notes.
Rounds: 2. Tokens: 43.4M.
Runs: 25. Cost USD: 16.0376. Agent seconds: 10324.
Rejected:
src/daemon/tunnel-lease.e2e.test.ts:400,:532ande2e/slow-android-tunnel.test.ts:446tests outside simlock tunnel forward: reach a leased device's port from the caller's machine #1115's Tests lines — the maintainer asked for them under A remote caller's leased device reaches ports on the caller's machine, and back #1110 [intentional]src/drivers/android/index.test.ts:3612the title names a phone after its check, only the closed check is asserted — wording; behaviour proven [nonblocking]Assessment: complete
Written by an agent.