Adopt the shared vm-lab and drop KeyPath's copy - #1259
Conversation
The lab began here and was coupled to this project in five places, so a second application could not use it. It now lives in its own repository and serves KeyPath as one tenant among others, reached through the installed vm-lab CLI as `vm-lab keypath <command>`. Removes the controller, remote.sh, and the four helpers that turned out to be lab code wearing this project's name: peekaboo-ui and desktop-bootstrap referenced no product at all, while nameplate-instrumentation and permission-drag named it only in a window label, a temp directory, and three environment variable prefixes. KeyPath now declares itself in .vm-lab.tsv: the artifact its installer must contain, the command that admits a lane, and the managed-policy generator and verifier. The lab knows nothing about KeyPath beyond that file. Verified before this deletion by taking a real lease through the new CLI and installing KeyPath's declared artifact, and by a second tenant installing its own application from a two-line descriptor with no KeyPath.app present. Two staying scripts depended on files that moved. installer-scenario reads the guest staging directory, renamed to .vm-lab, and macos-26-selector-driver resolves peekaboo-ui, which now comes from the lab checkout while keeping its existing override. What stays is KeyPath's own: scenarios, MDM policy, the dashboards, and host-disk-reserve. That last one is generic, but CI calls it directly on the runner and making CI depend on the lab being installed there is a worse trade than duplicating twenty-six lines. Docs that told a reader to run peekaboo-ui inside a guest now say plainly that it is no longer shipped with this repo and point at the peekaboo the desktop base provides. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Review findings
Note: the diff was truncated after ~60000 bytes (mid-way through the |
The lab began in this repository and was coupled to this project in five places, so a second application could not use it. It now lives in vm-lab and serves KeyPath as one tenant among others, reached as
vm-lab keypath <command>.3,490 deletions, 90 insertions.
What moved, and why those files
Four helpers turned out to be lab code wearing this project's name.
peekaboo-uianddesktop-bootstrapreferenced no product at all.nameplate-instrumentationnamed KeyPath only in an on-screen window label, andpermission-dragonly in a temp directory and three environment variable prefixes.The test that decided each case: if a file names the product, it belongs to the tenant. Applied mechanically, it moved two files my initial eyeball classification had put on the wrong side.
KeyPath now declares itself
.vm-lab.tsvat the repository root states the artifact its installer must contain, the command that admits a lane, and the managed-policy generator and verifier. The lab knows nothing about KeyPath beyond that file, so changing lab behaviour for KeyPath means changing that file.Verified before deleting anything
KeyPath.apprather than anything hardcoded.KeyPath.apppresent and no admission command invented for it.Two staying scripts needed repointing
scenarios/installer-scenarioreads the guest staging directory, renamed.vm-lab.macos-26-selector-driverresolvespeekaboo-ui, now from the lab checkout, keeping its existingKEYPATH_SELECTOR_PEEKABOOoverride.What deliberately stays
Scenarios, MDM policy, and the dashboards are KeyPath's. So is
host-disk-reserve— it is generic, but CI calls it directly on the runner in three workflows, and making CI depend on the lab being installed there is a worse trade than duplicating twenty-six lines. Flagging that as a considered exception rather than an oversight.Note on #1258
That PR modified the
remote.shthis deletes. Its work — credential-safe dialog input on the Parallels macOS 26/27 lanes, verified live against macOS 27 — was ported to vm-lab first, along with its tests, and the postcondition was re-verified to fail when defeated. #1258 is superseded and can be closed; merging it after this would resurrect a deleted file.One honest gap
Docs that told a reader to run
peekaboo-uiinside a guest relied on it riding along in this repo's archive. It no longer does. Those docs now say so and point at thepeekaboothe desktop base provides at/usr/local/bin. Shipping the lab's guest-side helpers into leases is a real follow-up, not something this PR solves.🤖 Generated with Claude Code