Repository navigation
feat(computer): lock a macOS VM bundle's installs; what macOS bench runs need (full capture, grants and relays on lume); two CUA flake fixes - #498
Merged
earakely-scale merged 11 commits intoNov 5, 2026
Conversation
The fallback recorder polls @capture, and a busy computer took long enough over its first frame that a recording ended two seconds after its start held 1.4 s of frames, missing what happened first; the probe's recording check failed on it. A start now answers once its recording is recording: a stream's at once, the fallback's at its first frame, waited for up to FIRST_FRAME_S. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ing them cua-driver maps a character X's keymap lacks onto a spare keycode for its press and back at once, and an app that reads the press after, as a busy one does, loses the character: the probe's "Unicode and mixed-case text arrives whole" failed on it. The driver first keeps each such character on a spare keycode, as the reference driver does, so cua-driver types it as any other key; ours are reused oldest first, and given back when a text needs more than there are. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nvs offline from a lock A macOS compose installed live in the guest: whatever Python 3.12 uv gave and each venv's wheels from PyPI, which its key didn't cover, so two Macs could hold different wheels under one name. Its venvs are now locked as a Linux layer's packages are: the first compose of given inputs resolves their wheels in a VM of the base, on python-build-standalone's CPython 3.12.16 pinned by its sha256, stores them in the object store with a lock naming them, and the lock's digest joins the VM bundle's key; every compose of those inputs, on any Mac, stages them and installs with --no-index --no-deps. One resolve of given inputs runs on a Mac at once. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…5-a11-lock-a-macos-vm-bundles-installs-a-pinned-python-and
…ymap reconnects after X restarts Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ua-driver's capture is the full display Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…to its loopback over ssh, the CA's trust in its seed Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… server's port, a reconnect too Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ays at host.docker.internal Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…so concurrent reconnects keep every forward Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…onnect never forwards into one going away Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
earakely-scale
deleted the
edgararakelyan/fd-5225-a11-lock-a-macos-vm-bundles-installs-a-pinned-python-and
branch
November 5, 2026 01:40
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
A macOS VM bundle's installs are locked, as a Linux layer's packages are. Since #484, a macOS compose installed live in the guest: whatever Python 3.12
uv python installgave, and each venv's wheels from PyPI. The key covered neither, so two Macs could hold different wheels under one name.vm_bundle/macos/lib.shinstalls python-build-standalone's CPython 3.12.16 (20261026) for Apple silicon, checked against its sha256, in place ofuv python install.Locknaming them, in the same store and shape as the Linux lock, withaptempty.--no-index --no-deps.resolvestage, with the resolver's output.Two CUA flake fixes. Each failed CI's slow tier about 1 run in 25.
FIRST_FRAME_S.What the macOS bench rows needed, found running them on EC2 Macs (4–5 Nov).
@capturereturned 1365×768 and the probe refused the computer. The driver now asks formax_image_dimension=0. The tools an agent calls are forwarded as before, with cua-driver's own default.host.docker.internal, so file loads, recording uploads and snapshots had no route to the Mac's grant server.REACHES_HOST_AT = "127.0.0.1", andprepare.shmapshost.docker.internalto the VM's loopback.ssh -R, a reconnecting process too.SSL_CERT_FILE,REQUESTS_CA_BUNDLEandNODE_EXTRA_CA_CERTSpointing at them.get_external_urlnow rewrites that tohost.docker.internal, as the local provider does, so an agent in colima gets a computer URL it can reach. Before, the agent ran with no desktop tools._changing): a reconnect, a reset and a termination, each across agent-envs on the Mac. Concurrent processes keep each other's forwards and process ids, and a termination holds the lock until the VM is deleted.Testing
resolve;avandcryptographyamong them, built formacosx…arm64), stored the lock, composed offline, and passed the full probe with only cua-driver's declared P6 waived. Deploy and reset worked. Compose, resolve and probe took 4 min 4 s.REACHES_HOST_AT;--cpus 0.4, with the fixes or without. The fixes regress nothing there. Worth watching CI's slow tier for a recurrence after merge.🤖 Generated with Claude Code


Confidence Score: 5/5
The PR appears safe to merge; the latest change closes the reconnect window during VM deletion.Summary
The PR pins macOS Python and stores resolved wheels for offline installs. It also improves recording startup, Unicode typing, and local file transfers.
Diagram
sequenceDiagram participant T as Terminate participant L as Per-VM lock participant R as Reconnect participant V as VM and saved state T->>L: Acquire T->>V: Stop processes and delete VM R->>L: Wait T->>V: Remove saved state folder T->>L: Release R->>L: Acquire R->>V: Read saved state V-->>R: SandboxNotFoundErrorReviews (7) · Last reviewed commit: "fix(lume): terminating a VM holds its lo..." · Reviewed by Greptile