Repository navigation
feat(computer): a browser alone runs headful on an X server only it uses, on ubuntu-24.04-browser (FD-4972) - #599
Merged
earakely-scale merged 3 commits intoNov 10, 2026
Conversation
…ses, on ubuntu-24.04-browser (FD-4972) The browser computer's base, renamed from ubuntu-24.04-headless (still an alias), runs Xvfb on :99 for its website browser alone, keeping XDG_SESSION_TYPE=none, so the page driver, the stand-in proxy and "alone" are as they were. Alone, the browser runs headful whenever an X server is there, with WebGL through SwiftShader, else headless as before; browser/v1's card says which, as mode. Live sites refuse headless Chrome: a 29-site Online-Mind2Web pilot loaded 16 sites headless and 24-25 headful. Co-Authored-By: Claude Opus 5.5 <[email protected]>
… fails rather than gets a headful base Co-Authored-By: Claude Opus 5.5 <[email protected]>
…2-headful-browser-base
earakely-scale
deleted the
edgararakelyan/fd-4972-headful-browser-base
branch
November 10, 2026 20:06
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.
Summary
Part of M8.24 (FD-4972), on the way to Online-Mind2Web: a website browser running alone now runs headful, on an X server only it uses. The browser computer's base is renamed
ubuntu-24.04-headless→ubuntu-24.04-browser, since it no longer runs its browser headless; the old name doesn't resolve any more.Why: live sites refuse headless Chrome. A pilot sweep of 29 Online-Mind2Web start sites, same Chrome for Testing 156 build:
navigator.webdriveristrueheadful too, since the debugging pipe sets it; nothing here hides it.What changes
The base (
computers/artifacts/ubuntu-24.04-browser/)xvfband runs it under supervisord as the session user, on:99at 1920x1080 (DISPLAY=:99), before the site proxy and anything composed onto it.XDG_SESSION_TYPE=none, soplatform.detectstill saysdisplay = "none": no desktop, nothing records or drives the X screen, and the page driver, itssupports, the stand-in proxy on 3128, the forward port on 3129 and every "alone" rule are unchanged. The app runtime already waits for the X socket wheneverDISPLAYis set.resolutionsetting: the deploy checks that the driver's screen is a computer's resolution, and the page driver's screen is the page, the browser'swindowsetting.The browser (
agentenv_protocol.website_browser)DISPLAY), with--enable-unsafe-swiftshaderso pages get WebGL where there's no GPU; with none, headless as before. The window size, the pinned viewport and the proxy rules are as they were.--enable-unsafe-swiftshaderjoins the flags agentenv owns.browser/v1's card params gainmode:headlessalone with no X server, elseheadful.The rename
ubuntu-24.04-headlessis no alias: a bundle or env that still names it fails to resolve rather than silently getting a headful base under a name that says headless. Its published imageagentenv-ubuntu-24.04-headlessstays on GHCR for what pins it; releases publishagentenv-ubuntu-24.04-browserinstead (published_images.py,infra_build.py, Dependabot).chromiumdeployed alone namesubuntu-24.04-browser.Unchanged: chromium in a desktop computer, the page driver, the site proxies, gate 3's checks. Killing the browser's X server takes Chromium with it, which fails the computer for good with its reason, as killing Chromium does; supervisord starts X again.
Decisions (in chat with Edgar)
ubuntu-24.04desktop: everything a browser alone has stays as it is, and the desktop stays for tasks that want one.display = "none"), not a new display kind.Test plan
test_website_browser.pygains headful-alone flags and the card'smodefor each case; the owned-flag refusal takes--enable-unsafe-swiftshader. The renamed paths in the stand-in proxy, infra-image and variants tests. The whole tier passes on a Mac, the known Mac-only Windows disk-recipe failure and a git-credential test that hangs on that Mac aside. On the Linux VMs with the open-file limit raised (SSM shells default to 1024, which fails about 116 tests withToo many open fileson main too): arm64 14,334 passed, 8 skipped, 0 failed; amd64 the same but for 26 bundle tests that a strayubuntu-24.04-headless/__pycache__folder from my own git stash broke, which pass once it's gone.browser_computer_test.py,browser_gateway_test.py,chromium_app_test.py,website_browser_test.pypass on both, 40 passed and 1 skipped (the disk-form shared-memory case, which needs KVM). On arm64 the echo test agent's amd64 image needs QEMU registered (tonistiigi/binfmt --install amd64); without it its three CDP-agent tests fail to build it.computer-ready/v1saying why, and X comes back.browser-use-smoketask passes; a pixel task, Claude Code clicking a button through the browser computer'scomputer_*tools to reveal a code its page computes, passes.computer-recording/v1: on Apple it added the cheapest certified refurbished 256GB blue iPad Air to the bag ($669, the bag page in the last frame); on CarMax it reached the 116 2022 Tesla Model 3 listings, and a listing page answered Akamai's Access Denied, which it reported.Docs
The user guide's browser and computers pages should cover:
ubuntu-24.04-browser(the oldubuntu-24.04-headlessname no longer resolves), that a browser alone runs headful on an X server only it uses, the card'smode, and that live sites' bot walls still refuse some runs.🤖 Generated with Claude Code


Confidence Score: 5/5
The PR appears safe to merge; no actionable new issues were found.Summary
Standalone Chromium now runs headful on a private Xvfb display.
ubuntu-24.04-browser.Diagram
%%{init: {'theme': 'neutral'}}%% flowchart LR Base["ubuntu-24.04-browser"] --> X["Xvfb :99"] X --> Browser["Headful Chromium"] Driver["Page driver"] --> Control["Browser CDP pipe"] Control --> Browser Browser --> Proxy["Site proxy"] Proxy --> Sites["Websites"]Reviews (2) · Last reviewed commit: "Merge remote-tracking branch 'origin/mai..." · Reviewed by Greptile