Repository navigation
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit fdc003f. Configure here.
| if err != nil || !platform.Matches(actual) { | ||
| return nil, fmt.Errorf("%w: requested %s but cached manifest is %s", ErrInvalidPlatform, platform, cached.Platform) | ||
| } | ||
| } |
There was a problem hiding this comment.
Empty platform fails cache reuse
Medium Severity
The new cached-reuse check calls ParsePlatform on stored cached.Platform and treats any parse error as a mismatch. Ready images from before platform tracking store an empty platform and are otherwise treated as the host. An explicit platform on CreateImage or instance create now fails reuse of those images with ErrInvalidPlatform instead of matching them as host-native.
Reviewed by Cursor Bugbot for commit fdc003f. Configure here.


Stack
PR 2/6 of the macOS guest integration stack. Depends on #498; kept draft while the machine-image schema and Windows integration are reconciled.
Summary
darwin/arm64machine bundles through the existing OCI image manager, rather than treating them as Linux root filesystems.No Geranos dependency, new runtime transport, image delta format, or concurrent clone/rekey guarantee.
Validation
Passed focused tests:
TestMacOSMachineValidationandTestMacOSMachineOCIRoundTrip: reconstructed disk/aux hashes, manifest digest, config identity, cache reuse, same-repository tag and wrong-platform rejection.TestTagImage*regressions.The test registry's PATCH path buffers uploads in memory, even with disk storage. The test seeds blobs through its streaming disk handler, publishes a manifest, then pulls through the normal HTTP image manager. This tests pull/materialization, not streaming OCI push.
Remaining draft gates
No live VM/API changes or committed VM images, credentials, benchmark tasks, traces, or private planning notes.
Note
Medium Risk
Changes image pull, conversion, and on-disk layout for darwin/arm64 artifacts and path validation for bundled files; Linux rootfs export is unchanged when labels do not denote a machine image.
Overview
Registry pulls for
darwin/arm64complete machine bundles now go through the normal image manager instead of being rejected as “local import only.” Manifests are recognized via experimentalio.hypeman.machine-image.*labels; the build path validates confined disk/aux/platform paths, copies the raw boot disk (no Linux rootfs export), installsaux.img, and storesMacOSplatform metadata on finalize.Platform and tagging behavior loosens:
resolveManifestPlatformaccepts darwin/arm64 manifests,CreateImagechecks cached ready images against an explicit--platform, and same-repository tags work for macOS bundles while cross-repository promotion stays blocked.New
parseMacOSMachinelogic and OCI round-trip tests (synthetic loopback registry) cover validation and pull/materialization; docs describe the experimental OCI bundle schema and updated import vs registry capabilities.Reviewed by Cursor Bugbot for commit fdc003f. Configure here.