Feature/orch supervision - #65
Merged
Merged
Conversation
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
There was a problem hiding this comment.
Pull request overview
This PR improves snapshot-restore networking by switching taritd’s restore path to a typed VMM RPC for repairing guest networking, and enhances PTY WebSocket behavior to support reconnects while preventing concurrent attaches and ensuring sessions are cleaned up on VM teardown.
Changes:
- Add and document the VMM
repair_guest_networkoperation (including response typeguest_network_repaired). - Update taritd restore supervision to call
repair_guest_networkinstead of shelling out to guestipconfiguration. - Make PTY sessions reconnectable for a bounded window, reject concurrent connects/deletes while connected, and reap PTY sessions when a VM stops/exits.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
vmm/docs/INTEGRATION.md |
Documents the new repair_guest_network request and intended usage after snapshot restore. |
vmm/docs/BUILD-AND-API.md |
Adds API documentation for repair_guest_network and the guest_network_repaired response. |
orch/README.md |
Clarifies PTY WebSocket single-active-connection behavior and reconnect semantics. |
orch/docs/RESILIENCE.md |
Records PTY reconnect + VM cleanup resilience expectations. |
orch/docs/QUICKSTART.md |
Updates PTY WebSocket token and reconnect documentation. |
orch/docs/API.md |
Updates PTY WebSocket authentication and lifecycle semantics (reconnect window, 409 conflicts, teardown behavior). |
orch/crates/taritd/src/supervisor.rs |
Switches restored guest network rebind to typed VMM repair_guest_network RPC and updates the corresponding test. |
orch/crates/taritd/src/pty.rs |
Introduces reconnectable PTY sessions with single-active-connection enforcement, token TTL updates, and resize persistence. |
orch/crates/taritd/src/ops.rs |
Ensures PTY sessions are removed when a VM stops or when an unexpected VMM exit is reconciled. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Checklist
vmm/,orch/,proto/):cargo fmt --all -- --check,cargo clippy --workspace --all-targets -- -D warnings, andcargo test --workspacepass locally.jailer, review the protected-main KVM workflow after merge (or manually
dispatch it from
main). Privileged self-hosted runners never executepull-request refs.
warm-pool latency through the first successful guest exec, with explicit
median/p95/p99 and success-rate gates.
proto/only (not copied intovmm/ororch/), if this changes requests, responses, config, VM status, or PTYframes.
vmm serve --socket,ApiRequest/ApiResponse, length-prefixed JSON). If there is, it is calledout above and versioned.
unsafeblock has a// SAFETY:comment.