feat: Add macOS darwin-vz minimal harness#504
Conversation
79665cf to
2046e32
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e592beeb0a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
|
Codex Review: Didn't find any major issues. Keep them coming! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4d41a536c6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
1 similar comment
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d06457bce8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 98b960f532
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 405bfbf9df
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
|
Codex Review: Didn't find any major issues. 🎉 ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
032180a to
8f8cb46
Compare
Cleanroom's macOS host backend still boots Linux guests. Replacing Tart needs a separate macOS VZ path that can create a local macOS VM bundle, install a guest agent, and prove host-to-guest exec before production adapter work starts.
This PR adds standalone benchmark tooling under
benchmarks/darwin-vz/macos-minimal. The runner consumes a local bundle manifest, validates the disk, auxiliary storage, hardware model, machine identifier, display, and guest-agent metadata, then builds a macOSVZVirtualMachineConfiguration. It sends exec requests over the same newline-delimited vsock stream shape used by the existing guest exec path and streams guest stdout/stderr back to the host.The bundle tooling can create a base VM from a local Apple Silicon IPSW, prepare a rootless bootstrap clone from that base, and finalize a LaunchDaemon-backed clone without Tart, SSH, Packer, host sudo, or mutating the base bundle. The default headless profile boots a temporary cron-only bootstrap once, runs
sudoinside the guest to install the agent and LaunchDaemon asroot:wheel, removes the temporary bootstrap dslocal record and crontab offline while the VM is stopped, then boots again to prove exec is served by the system LaunchDaemon as uid 0.The finalizer also has a local GUI profile for proving app/session mechanics before production backend work.
--profile guikeeps a non-admin autologin user, leaves the root LaunchDaemon onagent.port, rewrites the user's LaunchAgent to serve exec onuser_agent.port, removes the bootstrap crontab offline, and then proves both root and user agents can serve commands. The GUI smoke launches TextEdit through the user agent. Guest-sidescreencaptureis attempted but not required because the headless runner does not attach a VZ view.That gives us repeatable local flows without Tart:
A fresh local macOS 26.5 build 25F71 bundle finalized with the headless profile runs
sw_versover the root LaunchDaemon and returns exit code 0. A GUI-profile bundle now hasagent.port=10700,user_agent.port=10701, validates both endpoints, runs a direct user-agent command ascleanroom, and passes the TextEdit launch smoke.The standalone harness remains separate from backend integration. It gives us measured image-prep and boot-and-exec paths first, so the production adapter can consume either a root-agent bundle or a GUI-session bundle without baking Tart assumptions into the backend.