Files
Peter Pistorius 25c85ff571 feat(runner): add machinen runtime (opt-in)
A third runtime for `runs-on: ubuntu-*` jobs on arm64 hosts — microVMs
via @machinen/runtime. Opt-in for now (AGENT_CI_MACHINEN=1); docker
remains the default for every host. See docs/adr/0001-0004 for the
design.

What ships:

- Runtime interface + registry (priority [machinen, macos-vm, docker])
  with AGENT_CI_RUNTIME as a within-OS-family override.
- Rootfs as a release asset (download-first, override via
  `.github/agent-ci.machinen.tar.gz`). Release-time bake script +
  workflow produces the asset for the `machinen-rootfs-latest`
  rolling tag.
- Full executeMachinenJob: bake → boot → liveMount work/shims/diag/
  signals → in-guest symlinks → DTU credentials via vm.writeFile →
  run.sh --once with RUNNER_ALLOW_RUNASROOT=1 → timeline poll → tear
  down. Pause-on-failure rides the existing signals-dir protocol
  unchanged; the liveMount makes guest writes and host writes
  bidirectional.
- timeline-sync.ts extracted from local-job.ts so both runtimes share
  the same poll-and-publish logic.
- runner-credentials.ts gains buildRunnerCredentials() so machinen
  can push the three runner-config files via vm.writeFile without
  duplicating the data.
2026-05-13 16:52:22 +02:00
..
2026-03-12 22:35:26 +02:00