Treat tart delete exit code 2 as successful cleanup so deleting an
already-removed VM does not prevent reconciliation from continuing.
Preserve other command failures and retain the wrapped process error
so callers can inspect its exit status.
Cover repeated deletion, other exit codes, process startup failures,
and wrapped exit-status preservation.
Pin CI actions to their previously used commit SHAs so jobs can start
under the repository action-pinning policy.
Validation: vmmanager package tests and lint for changed lines pass;
CI action pins match the last successful run.
* Migrate CI to GitHub Actions
* Publish Orchard through the OpenAI Homebrew tap
* Scope release secrets to GoReleaser steps
* Separate release and snapshot trust paths
* Use GitHub-hosted macOS 26 runner
* Run macOS unit tests on hosted runner
* Update Homebrew install command
* Build Docker image with GoReleaser
* Use GitHub-hosted Linux runner
* Use smaller Vetu image for Linux tests
* Run Linux tests on hosted ARM runner
* Use host architecture for Linux integration tests
* Preinstall Cloud Hypervisor for Linux tests
* Select Linux test images by architecture
* Satisfy platform image lint rules
* Format platform image errors
* Enable KVM access for Linux tests
* Honor VM wait time in WebSocket requests
* Satisfy WebSocket client lint rules
* Allow hosted Linux integration tests more time
* Support Vetu virtualization on Linux in addition to Tart on macOS
* api(portForward): ensure that rendezvousConn is closed
* Re-try SSH connections in integration tests
Because a VM might be still booting.