@@ -227,6 +227,8 @@ The Nix test guest harness under `nix/test-guest` boots native-architecture clou
227227through QEMU for package, release, and E2E validation. A prepared cache entry is
228228captured after the exact ordered Ansible configuration list and before
229229test-specific packages, copied binaries, forwarded ports, or commands.
230+ On macOS, the test guest and tmachine paths use the same pinned QEMU and OVMF
231+ package set so the hypervisor and firmware remain compatible.
230232
231233Prepared disks are flattened, sanitized QCOW2 images. The local cache keeps them
232234read-only and each test receives a fresh writable overlay and cloud-init
@@ -242,6 +244,23 @@ CLI conformance runs after target provisioning and operates only through the
242244configured OpenShell CLI. The smoke scenario verifies the black-box sandbox
243245lifecycle by creating, inspecting, executing in, and deleting a sandbox.
244246
247+ The ` tests/tmachine ` setup and installation caches include a digest of the
248+ entire directory containing ` ANSIBLE_CONFIG ` , including local roles, task
249+ includes, templates, inventory, and requirements. The digest uses sorted
250+ relative paths, file contents, and executable permissions; source symlinks
251+ are unsupported. Both keys also retain the ordered playbook paths and contents,
252+ their base disk contents, and whether Galaxy is enabled; installation keys
253+ include named binary inputs. The top-level ` .roles ` directory is excluded:
254+ Galaxy release pins in ` requirements.yaml ` are treated as immutable, including
255+ any transitive dependency pins. Cache misses with Galaxy enabled reinstall
256+ the required roles and their dependencies before running playbooks.
257+
258+ The ` tests/artifacts.nix ` helpers build the CLI, conformance CLI, and sandbox
259+ with musl, and the gateway and supervisor with GNU. Image assembly stages
260+ the gateway, sandbox, and supervisor as separate binaries for their respective
261+ Dockerfiles. The Ubuntu Docker and Fedora Podman scenarios import both local
262+ runtime images and configure the gateway to use them.
263+
245264## Python Wheel Packaging
246265
247266The generated protobuf/gRPC stubs under ` python/openshell/_proto/ ` are gitignored
0 commit comments