feat(dev-sandbox): support fake installer / fake main / git clones

allow you to simulate the whole official curl | bash installer,
and subsequent hermes updates.

Run development commands in a bubblewrap filesystem and network sandbox
with a local HTTPS MITM fixture server and a fake github
git-upload-pack transport.
Package the sandbox command and expose it from the nix devShell.

Stage the local installer at its canonical fake HTTPS URL and add a
persistent installation/update test path. Route root installs through
sandbox-owned filesystem locations and snapshot dirty source worktrees
into temporary fake commits so update tests can fast-forward without
changing the real checkout.

Add an explicit --from-main installer mode that fetches the official
upstream main outside the sealed sandbox, installs from that snapshot,
and then promotes the fake remote to the current worktree so update
flows can be exercised with a fast-forward.
This commit is contained in:
ethernet 2026-07-28 13:17:59 -04:00
parent c7dd9e5670
commit db87ddca9f
5 changed files with 710 additions and 148 deletions

View file

@ -30,10 +30,7 @@
mkdir -p $out/bin
install -Dm755 ${../hermes} $out/bin/hermes
'')
(pkgs.runCommand "dev-sandbox" { } ''
mkdir -p $out/bin
install -Dm755 ${../scripts/dev-sandbox.sh} $out/bin/sandbox
'')
self'.packages.sandbox
uv
# Headless Wayland compositor for E2E tests (test:e2e:visual).
# cage renders a single client with no window management, so