When the SPICE clipboard channel is not available (e.g., running
headless or without clipboard sharing), the vdagent would previously
retry every 1 second, initializing the clipboard library each time.
This caused unnecessary CPU usage.
Changes:
- Defer clipboard.Init() until first successful SPICE message
- Add ErrSPICENotConnected error type to distinguish "never connected"
from "connection lost"
- Use 1-minute backoff when SPICE is not available, vs 1-second for
transient failures
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Automatically install and start a systemd service
* Use Bash and set shell options to enable fail-fast behavior
* Ensure that we're performing disk manipulations on Tart 2.0.0 or newer
* "tart exec" support (--run-rpc) and component groups (e.g. --run-daemon)
* CI: check for lacking "buf generate" invocation
* CI: a task to run "buf push"
* defer ptmx.Close()
* Use getpeername(2) to get AF_VSOCK peer's identity
* Only call ptmx.Close() when pty.StartWithSize() succeeded