# Read-only adversarial review, round 2 — PR [#16941](https://github.com/pingdotgg/t3code/pull/16941)

**Verdict: MERGE candidate at local head [e7bc457af8](https://github.com/pingdotgg/t3code/commit/e7bc457af8bb799b28ceec39f127fbf6f930120b); no confirmed code blocker or worthwhile simplification.** This is a source/test verdict for the unpublished local revision. The primary agent's renewed production-browser proof, publication and CI/review feedback on the pushed SHA remain outside this review.

Target: pingdotgg/t3code, base `origin/main` [5569a42bff](https://github.com/pingdotgg/t3code/commit/5569a42bff98f06b297115542b25c942f8607c16); head repository `hogeheer499-commits/t3code`, branch `fix/preview-timeout-isolation-16921`. Original contributor head [102deab30a](https://github.com/hogeheer499-commits/t3code/commit/102deab30a01e955345c4f8f9bcdb2e97d2d5d31) remains in history. Reviewed local worktree `/home/ubuntu/wt/terminal-preview-21` at [e7bc457af8](https://github.com/pingdotgg/t3code/commit/e7bc457af8bb799b28ceec39f127fbf6f930120b). The supplied fresh GitHub feedback is for remote [102deab30a](https://github.com/hogeheer499-commits/t3code/commit/102deab30a01e955345c4f8f9bcdb2e97d2d5d31), so its checks and reviews do not validate this local head. Only [#16941](https://github.com/pingdotgg/t3code/pull/16941) was reviewed.

I read the complete `origin/main...HEAD` diff (four files), the supplied original PR diff and current GitHub feedback, historical inline comment, both round-1 reports, both requested skills and `AGENTS.md`. I traced broker request delivery and response timeout; `ServerBrowser` request, open, initial navigation, viewer, recording, status, read, close and dialog paths; `SessionControl` queue, epoch, ownership and handoff; `Manager` tab ownership; contract operation lists and MCP handlers. No other PR was audited.

**Round-1 finding resolved.** The new condition at [ServerBrowser.ts](/home/ubuntu/wt/terminal-preview-21/apps/server/src/preview/ServerBrowser.ts:902) tracks initial navigation only for agent-owned tabs. A user-opened tab keeps main's untracked behavior, so its auto-taken viewer can dispatch a corrected URL while the first navigation has not committed. The added [behavior test](/home/ubuntu/wt/terminal-preview-21/apps/server/src/preview/ServerBrowser.test.ts:668) uses the real manager and viewer path, holds the first `goto`, and asserts the corrected `goto` was dispatched before releasing it. The existing agent-open regression still verifies that an expired open's navigation drains before human input. This is the narrow fix the prior finding called for; I found no side effect from it.

**Deadline and cleanup checks.** [SessionControl.ts](/home/ubuntu/wt/terminal-preview-21/apps/server/src/preview/SessionControl.ts:76) checks closed state and the captured epoch/permission before comparing the monotonic deadline, immediately before the queued callback runs. An expired queued mutation cannot reach `executeTabOperation`; an already-running action keeps its queue reservation and normal operation timeout. `ServerBrowser` computes the deadline once when the host handles the request and passes it through open and ordinary agent-queued operations. `recordingStop` deliberately omits that deadline, but keeps ownership and queue checks; it can end a capture after its caller times out, while a second stop finds no recording. Status, non-owner observe reads, close and dialog retain their prior routing. No contract or client surface changes are in the net diff.

**Tests and limits.** I reran `./node_modules/.bin/vp test run apps/server/src/preview/SessionControl.test.ts apps/server/src/preview/ServerBrowser.test.ts`: 2 files, **65/65 passed**. `git diff --check origin/main...HEAD` passed and the worktree remained clean. The five added tests cover distinct observable boundaries: queue skip and continuation, suppressed broker click, late recording cleanup, expired agent-open handoff, and responsive user-opened viewer navigation. I did not add coverage or rerun lint/typecheck; the primary reports scoped lint, formatting and server typecheck passing. I did not run a browser, server, packaged desktop, native macOS/Windows, iOS/Android, or remote/relay client. The primary is recapturing live browser proof after this fix.

The broker's shared-host disconnect on another request's unanswered timeout is pre-existing and outside this four-file change; it can still make a different caller fail before that caller's own deadline. Native platform coverage is a verification gap, not evidence of a regression here. The historical inline suggestion to cap navigation by remaining caller time conflicts with the accepted started-work rule and is not a finding. The older Macroscope human-approval note is a review gate, not a current source defect.

No edits, checkout, commit, push, comment, browser, server or delegates were performed. Only this report was written outside the worktree.
