Repository navigation
Let Local Computer run on Windows and Linux, and install missing parts from the card - #1639
Merged
Merged
Conversation
Each supported Host pins its own cua-driver 0.31.0 build with archive and per-file SHA-256. Readiness is per OS: macOS TCC grants, a reachable display on Linux, nothing on Windows. A Linux server without DISPLAY gets a private Xvfb + D-Bus + window manager desktop that the driver owns and stops on close. Issue: #1632 Agent-Task: claude/cloud/session_017HT2wLfpGDvY1o5pMDusbE Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017HT2wLfpGDvY1o5pMDusbE
Issue: #1632 Agent-Task: claude/cloud/session_017HT2wLfpGDvY1o5pMDusbE Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017HT2wLfpGDvY1o5pMDusbE
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 22 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The Computer card shows the driver download as a progress bar. When a Linux Host lacks desktop packages, the card offers one-click install (apt-get with live progress) when DSH runs as root or has passwordless sudo, and otherwise shows a copyable command and checks again on its own once the packages exist. Issue: #1632 Agent-Task: claude/cloud/session_017HT2wLfpGDvY1o5pMDusbE Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017HT2wLfpGDvY1o5pMDusbE
The apt installer moves to core and the card to the shared client, so the Bot Browser's missing-library notice offers the same one-click install with progress (or a copyable command) and reopens the browser once it is done. Issue: #1632 Agent-Task: claude/cloud/session_017HT2wLfpGDvY1o5pMDusbE Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017HT2wLfpGDvY1o5pMDusbE
Rebuilt the Browser client bundle after #1628 and other main changes. Issue: #1632 Agent-Task: claude/cloud/session_017HT2wLfpGDvY1o5pMDusbE Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017HT2wLfpGDvY1o5pMDusbE
DoodleBears
marked this pull request as ready for review
October 14, 2026 06:42
When DISPLAY points at a bare X server, such as the Xvfb a server runs for the Bot Browser, reuse it instead of refusing input: start a window manager there (leaving one that already runs alone) and a D-Bus session when none is set, and stop both with the driver. Issue: #1632 Agent-Task: claude/cloud/session_017HT2wLfpGDvY1o5pMDusbE Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017HT2wLfpGDvY1o5pMDusbE
DoodleBears
pushed a commit
that referenced
this pull request
Oct 14, 2026
Fold the design-system cleanup (#1656), Local Computer on Windows and Linux (#1639), the removed ask caps (#1648) and the corrected Bot session list entry (#1659) into 1.3.0. #1659 rewrote an already-folded fragment, so the old entry is replaced by the new one. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017nbv2on9C7pTri9KWxVk5x
This was referenced Oct 14, 2026
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.
Requested by Vain · project thread
Closes #1632 · claim: #1632 (comment) · task
claude/cloud/session_017HT2wLfpGDvY1o5pMDusbEWhy: the product pack pins every Host to Local Computer, but Local only ran on macOS, so a Linux server or a Windows PC opened the panel to Mac instructions, "Needs attention" and a disabled button. And when a part was missing, the Human had to go to a terminal with no idea how long anything would take.
Change outline
1. Local Computer on three platforms
Before: on a non-Mac Host the probe reported unavailable, the Check permissions button was disabled, and
ensure()threw "requires a macOS DSH Host".After: Check permissions works on macOS, Windows and Linux. Upstream
cua-driver-rs0.31.0 ships all three; we pin one build per Host:darwin-universal-binary.tar.gzlinux-{x86_64,arm64}-binary.tar.gzcua-driverwindows-{x86_64,arm64}-binary.zipcua-driver.exe,cua-driver-uia.exeArchive SHA-256 values match upstream
checksums.txt; every kept file is also checked before each launch. Other Hosts (e.g. linux-ia32) are refused before download.DISPLAY,WAYLAND_DISPLAY,XAUTHORITY,XDG_RUNTIME_DIR,XDG_SESSION_TYPEandDBUS_SESSION_BUS_ADDRESSare passed through to the driver.Linux has three display cases, and in all of them the Bot can click and type, not only read the screen:
XDG_CURRENT_DESKTOP/DESKTOP_SESSION)DISPLAYpoints at a bare X server, e.g. the server Xvfb:99the Bot Browser already uses_NET_ACTIVE_WINDOWfor foreground input) unless one already runs, plus a D-Bus session if none is set. Both stop with the driver.Xvfb -displayfd(picks a free display), a D-Bus session (so AT-SPI trees are populated) and the first window manager found (openbox,xfwm4, …). Closing the driver stops all three.A missing Xvfb or window manager shows up as missing packages on the card (section 2).
Real driver, no
DISPLAY: download + checksum, Xvfb + openbox + D-Bus, readinessx11=true atspi=true, thenclickandtype_textinto Chromium:Real driver,
DISPLAYset to an existing bare Xvfb with Chromium already open (the validation-server layout): Local Computer added openbox on that display, thenclickandtype_textlanded:2. Missing parts: install from the card, with progress
One shared card (
packages/client/src/client/missing-packages.tsx) and one apt installer (packages/core/src/system/system-packages.ts) serve Computer and the Bot Browser.sudo, an Install button runsapt-get update+install --no-install-recommendswith live progress fromAPT::Status-Fd, then re-checks (Computer) or reopens the browser (Browser). Otherwise the card shows thesudo apt install …command with a Copy command button; Computer notices the packages appear and re-checks on its own.authorize: true.Real DSH 0.2.0-rc.2 on Linux, Settings → Bot settings → Computer (captured on head
ca141d0):Without administrator rights (status response's
installforced tononein the browser; the package was then installed by hand in a shell and the card flipped to Granted by itself):Before (main): the Local card on Linux showed Mac copy, "Needs attention" and a disabled Check permissions button, with no install path.
3. Copy and docs
Panel copy (zh/en) and model guidance no longer say "Mac". ADR-0082 gains a "Linux and Windows delivery" section; CONTEXT and the living architecture are updated; changelog fragment added.
Other:
ComputerRuntimeRunner.runtakes an optionalenv, sodoctorno longer goes throughenv(absent on Windows);check_permissionsgets{prompt:false}only on macOS.Special things to note
apt-getas root/sudo, so check the allow-lists and theauthorizegate; (2) on a server whose Xvfb is shared with the Bot Browser, Local Computer now runs openbox on that display while the driver is up, so Bot Browser windows there get title bars; (3) the Windows path is unverified on a real Windows Host (zip extraction relies on Windows 10+tar.exe; readiness shape read from upstream source); (4) the Browser card is covered by jsdom tests only, not captured in a real Host; (5) the managed Linux desktop has no viewer yet.packages/browser/libbundle.claude/local-computer-all-platforms, e11c89d3) reached the same design: same 0.31.0 per-platform pins, display-variable pass-through and X11/Wayland readiness. It will not get its own PR; its validation-server run is recorded below.Verification
pnpm lint,pnpm format:check,pnpm typecheck,pnpm changelog:check: passvitest packages/computer packages/browser packages/core/test/system-packages.test.ts: 627 passed, 9 skippedDISPLAY=:98downloaded and verified the Linux x86_64 driver, connected with 62 tools, and passed the permission check. The bare upstream binary detected:99at 1440x900 and captured the full desktop.🤖 Generated with Claude Code
https://claude.ai/code/session_017HT2wLfpGDvY1o5pMDusbE