feat(testforge): #692 bring the forge-test VM standup into the repo #735

Merged
hexajon merged 1 commit from issue-692-forge-vm-standup-in-repo into main 2026-10-06 19:25:10 +00:00
Owner

Summary

The forge-test VM standup now lives in scripts/forge-vm/ (provision.sh, guest-setup.sh, isolation-smoke.sh) instead of outside the repo, so any machine with Incus can stand the VM up. The scripts carry no host internals: every host value is an env parameter with a portable default.

Caches move to VM-local disk (#730). guest-setup.sh leaves GOCACHE, GOMODCACHE, and the testforge binary cache at their per-user defaults under the home dir, and provision.sh no longer mounts a host cache. A Go build and a running forge binary memory-map these files and a virtiofs mount cannot mmap (ENXIO), so the caches have to be local; the matrix passes with local-disk caches.

The isolation smoke verifies the egress posture with no hardcoded addresses: a generic class baseline always runs, and a strong proof runs against real targets only when the caller passes them via env. ADR 0052 records the cache rule and the in-repo standup.

Refs #692

## Summary The forge-test VM standup now lives in scripts/forge-vm/ (provision.sh, guest-setup.sh, isolation-smoke.sh) instead of outside the repo, so any machine with Incus can stand the VM up. The scripts carry no host internals: every host value is an env parameter with a portable default. Caches move to VM-local disk (#730). guest-setup.sh leaves GOCACHE, GOMODCACHE, and the testforge binary cache at their per-user defaults under the home dir, and provision.sh no longer mounts a host cache. A Go build and a running forge binary memory-map these files and a virtiofs mount cannot mmap (ENXIO), so the caches have to be local; the matrix passes with local-disk caches. The isolation smoke verifies the egress posture with no hardcoded addresses: a generic class baseline always runs, and a strong proof runs against real targets only when the caller passes them via env. ADR 0052 records the cache rule and the in-repo standup. Refs #692
feat(testforge): #692 bring the forge-test VM standup into the repo
Some checks failed
drift / govulncheck (pull_request) Has been skipped
drift / surface-diff (pull_request) Successful in 58s
drift / forgejo-smoke (pull_request) Has been skipped
ci / mcp-conformance (pull_request) Successful in 1m37s
drift / surface-diff (push) Successful in -22s
drift / forgejo-smoke (push) Has been skipped
ci / mcp-conformance (push) Successful in -18s
drift / govulncheck (push) Has been skipped
ci / gate (push) Failing after 7m40s
ci / gate (pull_request) Failing after 19m45s
b0606ed4a1
Refs #692
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sixfold-space/madtea!735
No description provided.