Repository navigation
Run resumable global creation hooks - #516
Conversation
|
Merge/readiness checklist for this PR: Stack order: #512 → #513 → #514 → #516. Each PR should ultimately merge into After a predecessor merges, retarget the next PR to
Current evidence at Use a clean checkout of this PR's final candidate and a Linux SSH host with working KVM/Firecracker access and the remote full-suite prerequisites. The full run needs the documented build/network tools and passwordless sudo. Run these suites serially on a shared host because they rebuild shared test images. git rev-parse HEAD
./tests/run-integration.sh --full --remote user@host --name coop-pr-516Replace Post the tested commit SHA, host architecture, runner exit status, pass/fail/skip counts, and a log link or attachment here. Inspect skipped phases; a zero exit alone is insufficient if relevant coverage was skipped. Linux CI does not substitute for Firecracker VM integration. A run of #516 alone provides combined-stack evidence, not proof that each earlier PR's exact candidate was tested. #515 tracks the pre-existing |
3d4b2de to
99de278
Compare
99de278 to
efe2d38
Compare
|
Review summary: one inline lifecycle finding; no diff-noise notes. I reviewed correctness, design, conventions, security, API usage, tests, docs, and comments against |
Run a configured global
post_createcommand inside each new VM after filecopying, agent bootstrap, and workspace provisioning. Save its recipe and
completion in private per-instance storage. Failed or interrupted setup retains
the VM for
shell/execdebugging, blocks agent launch, and resumes onupor astopped-instance restart. The deferred
post_startcommand runs after creationsucceeds; completed hooks are skipped on ordinary restarts and reset by restore.
Serialize creation attempts with provisioning, keep guest environment values
off host subprocesses, and terminate failed or interrupted guest process groups.
Devcontainer files remain ordinary workspace data. Creation recipes contain only
global shell commands; removed project stages and argv recipes are rejected.
Stacked on #514.
Validation: workspace tests (1,218 coop, 30 proxy, and eight proxy integration), format, clippy, taplo, cargo-deny, and normal pre-commit hooks passed. Mutation testing caught all 22 viable mutants (four unviable, none missed); deliberate project-state, argv-recipe, and shell-quoting regressions failed their intended assertions.
Full Lima integration passed: 510 passed, zero failed, 13 skipped. Full Firecracker integration passed: 518 passed, zero failed, ten skipped. Both runs covered all 14 creation-hook assertions, guest-file copying, required proxy behavior, and recovery. Skips reflect platform differences, unavailable status fields, preservation of an existing user VM, and disabled destructive tests.