Repository navigation
Conversation
…ntify restored guests Firecracker booted every VM under a random UUID (cert CN, harness vm_id) while the registry was rekeyed to the scheduler's wire vm_id, so harness Heartbeat/VendSecret missed. Spawn now passes the wire vm_id into the internal ScheduleRequest and the VM boots under it (validated; TAP name from hex digits). Restores (resume/fork) re-issue identity: fresh TAP + /30, fresh cert and cert image carrying the restoring request's spawn.json; load paused with network_overrides, PATCH /drives/certs, resume. The registry pins each incarnation's cert fingerprint, so a cert frozen in a snapshot is refused by Heartbeat/VendSecret/Report. The harness polls the cert drive's ext4 UUID and on change reloads cert/key, clears the secret cache, adopts the new secrets/egress, re-addresses eth0 and reconnects its streams. Also: Snapshot reads artifacts from the backend-reported (chroot-expanded) path, which fixes jailed pause. ADR 0025 addendum documents the mechanism, the snapshot_id field, and the residual risks that need a KVM host.
…a running VM
The manager now mints a fresh exec token for every spawn and restore
(spawn.json exec_token, HandleInfo.exec_token) and its Exec/ExecTool
harness clients send it as a Bearer — previously no token was sent, so
prod exec could never authenticate. On re-identify the harness adopts the
new exec token and LANTERN_AGENT_INSTANCE_TOKEN (from the new spawn.json
env) into shared client state; the exec interceptor reads the live token,
so the previous incarnation's token is rejected immediately. A drive with
no exec token is refused rather than reusing the old one.
A bare (non-jailed) restore whose snapshot source vm is still running on
the node now returns FAILED_PRECONDITION ("fork of a running VM requires
the jailer") instead of colliding on the source's vsock UDS / certs.img.
…ion exec tokens, fail-closed bare fork
🔎 Codex cross-audit (agent:audit)Blocking
High
Medium
I could not run |
🛡️ Vuln scan — ❌ vulnerable dependency found |
🔷 Gemini cross-audit (agent:audit-gemini)Audit SummaryThe patch introduces critical architecture for microVM pause, resume, and fork by re-keying Firecracker microVMs at boot to the scheduler wire However, there are two blocking correctness/security issues and several missed edge cases in Blocking Issues1. Live VM Forking Steers Source VM's Exec / ExecTool Traffic to Fork Child (Exec Hijacking Race)
2. Stale IP in
|
Part 8 of 11 of the GA next-gen stack (supersedes #255–#275). History rewritten (range-limited, master untouched) to drop a 43 MB build binary committed by mistake; part 11 fixes every confirmed Codex cross-audit finding. Base:
ga3/07-web-deps-docs. Merge in order with a merge commit (not squash).Context, verification and needs-human list: #254 and
docs/roadmap/2026-10-nextgen-sandbox-and-harness.md.Commits in this part: