Repository navigation
C11-217: Move browser waits off main socket path - #442
Conversation
Deep review — C11-217: Move browser waits off main socket pathThanks for this — it's a careful, well-documented piece of concurrency work, and the write-up (with the positive-control timings: SummaryThe PR moves AlignmentClearly in scope — this is socket/CLI correctness and a latency fix on a shared hot path (a No prompt-injection or anything untoward in the diff. Skills contract: satisfied without action. Command names, params, and response envelopes are byte-for-byte identical ( FindingsNothing blocking. The core concurrency design holds up under scrutiny:
RecommendationMerge after fixes — where "fixes" is really just a decision on finding #1 (keep the new message and it's merge-as-is). The concurrency core is sound and well-guarded. Two asks before landing, both outside this reviewer's reach: (a) confirm CI is green on the host-required Really nice work. This retires a genuinely nasty class of stall. 🌉 Drawbridge deep review (lane 3) — an automated pass; a maintainer has been notified and makes the final call. |
Summary
browser.eval,browser.wait, andbrowser.download.waitonto the socket worker policy.DispatchQueue.main.asyncwhile the worker owns the wait and timeout.send,send_key,send_surface, andsend_key_surfacewaits through the existing off-main terminal-surface wait, then revalidate and inject on main.Validation
./scripts/with-build-lock.sh xcodebuild -project GhosttyTabs.xcodeproj -scheme c11-logic -configuration Debug -destination 'platform=macOS' build CODE_SIGNING_ALLOWED=NO->** BUILD SUCCEEDED **.C11_QA_LAUNCH=fresh ./scripts/reload.sh --tag c11-217-browser-offmain.browser.eval '1 + 1'returned2in0.15s.no_documentin0.14s.10.0s; during a current 20s unmet browser wait, taggedtree --no-layoutreturned in0.14swhile the wait ran to20.15s.10.28sand6.30s).4.24sagainst a 10s timeout).Deliberate boundaries
browser.*handlers remain on the main-actor path.