* Support Tart Guest Agent transport for VM startup scripts
* TestTartGuestAgentStartupScript: make ScriptContent more readable
* Align Tart Guest Agent's startup script execution with SSH
* Use mvdan.cc/sh/v3/syntax to validate "export" shell commands
* Use Bash instead of Zsh on Linux
* Invert logic when validating vm.StartupScript.Transport for simplicity
* Document startup_script's transport field in OpenAPI specification
* Prevent unbounded buffering of startup script output
* grpc.WaitForReady(true) → retry.DoWithData()
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.
Share one Stop completion per run and retain Stopping until both the stop command and VM cleanup finish. Expose transition conditions to reconciliation and return after requesting Stop so it cannot apply a generation or restart the VM early.
Cover both completion orders, repeated and concurrent calls, restart, and generation acknowledgement with bounded fake-command regressions. Allow process startup under parallel test load while preserving explicit shutdown ordering.
* 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.
* Load testing: synthetic VMs, multiple worker support and Grafana k6 test
* echoserver: prevent fallthrough when Accept() fails
* Move default local-dev context logic to CreateDevController()
* Synthetic: add a random delay to startup script echoing