Repository navigation
fix(computer): popups the browser's control connection attaches to navigate, and its record's tab titles stay current - #463
Merged
earakely-scale merged 5 commits intoNov 3, 2026
Conversation
python -m agentenv_protocol.computer.front_door <folder> <file>:<Class> [--site-proxy COMMAND] runs from the app's venv as its container's command. It runs the app's server and the site proxy, starting each again whenever it ends (0.5 s, then longer while it keeps ending soon, up to 30 s). On :8000 it serves the app's card, with no interface for agents and with computer-ready/v1, whose status is the app's readiness and the site proxy's, and failed for good once the app's launch log has an exit, since nothing alone launches it again. Every other path goes on to the app's server, its answer streamed back, behind the control token, which no forwarded request and none of its programs is given. computer-ready/v1's URN moves to operations, beside ReadyCheck, so the front door runs on the app extra; card still exports it. The browser's record reads each tab's URL and title from the browser when it's read and when its page loads, since Chrome sends no event when a page's title changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, and kills a program that won't stop on 3.10 A header that Connection names belongs to that hop, so neither a request nor an answer sends it on. asyncio.wait_for raises asyncio.TimeoutError, not the builtin before 3.11, which the protocol still supports. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s it opened navigates The control connection auto-attaches to every page, and Chrome holds a page it attached that way, a popup that window.open() opens say, until the attached client says to run. It never did, so every scripted popup stayed at no URL and never painted, in a computer as alone. Each attached page is told to run (Runtime.runIfWaitingForDebugger). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e a computer A website browser running alone becomes a computer with no display and a page driver whose screen is its page (decided Nov 3), so the computer's own driver fronts it and nothing will run agentenv_protocol.computer.front_door. Its module, tests and README section go, with what only it needed: apps.served_card and computer-ready/v1's URN in operations. The popup fix and the record's current titles stay. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e click before a key press can't open it early Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
earakely-scale
deleted the
edgararakelyan/fd-4952-m85-the-front-door-for-a-browser-running-alone
branch
November 3, 2026 16:48
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.
What and why
This PR fixes two bugs in the browser's control connection from M5.10 (#459). I found them while building M8.5, the front door for a browser running alone.
The front door itself is no longer in this PR. A browser running alone will be a computer instead: a
browser-24.04base with a page driver, deployed like any other computer. That plan is M8.53, and there's a design note and an evaluation.38cb86dbremoves the front door, so only the fixes are left.waitingForDebugger) until it was told to run, even though the connection asked forwaitForDebuggerOnStart: false. Start tabs were attached after they had loaded, so this never showed for them. A page opened bywindow.openstayed blank, though. Now each page the connection attaches to is sentRuntime.runIfWaitingForDebugger.targetInfoChangedwhen a page's title changes. So the record kept the title Chrome gave a tab when it opened, which is its URL. Now the record reads each tab's URL and title (Target.getTargets) whenever it's read. A page's load refreshes its own tab too, so a tab that closes later keeps the title it had.The protocol README describes both fixes.
How it was tested
ruff check: clean.chromium_app_test,website_browser_testandcomputer_app_test: 12 of 12 passed on each arch, atb54fce11. The newtest_a_popup_a_page_opens_loads_with_its_control_attachedserves a page on loopback that opens a popup when Enter is pressed. It presses Enter through the computer's tools, then checks the record (both tabs, each at its URL with its title) and the window title. On amd64, with therunIfWaitingForDebuggercall removed, the test fails: the popup's window stays "Untitled", and the record never shows its title.b54fce11: CI is 24/24, CodeBuild included. Greptile gave 5/5 with no findings.🤖 Generated with Claude Code


Confidence Score: 5/5
The PR appears safe to merge; the latest test changes preserve the checks that the opened page loads.Summary
The browser control connection now resumes newly attached pages and refreshes tab URLs and titles.
Reviews (5) · Last reviewed commit: "test(computer): the popup test's page op..." · Reviewed by Greptile