Repository navigation
docs(plans): plan moving sessions into Cloud Hypervisor VMs - #889
ilovecrayons wants to merge 2 commits into
Conversation
Sessions run in Sysbox containers, so an idle session can only be stopped, which loses every running process, and only Claude Code sessions can sleep at all. A VM can be saved to disk whole and restored for any agent and session type. The plan records the owner's decisions (Cloud Hypervisor, one live shared home, the checkout on the VM's own disk, a session-runtime switch until cutover) and splits the work into 13 items in three waves with the interfaces the first wave shares.
Each work item merges bottom-up as a stacked pull request through the merge gate, and dashboard changes reuse existing surfaces first.
[Low impact] This PR adds a future-facing plan without changing running product behavior. Safe to merge, with one non-blocking correction to work-item ownership.
|
| | 6 | 2 | Checkout inside the VM | `internal/gitengine`, the helper's git service | | ||
| | 7 | 2 | Home and caches shared live; Isolated tier | mounts, `internal/overlay`, ownership | |
There was a problem hiding this comment.
Item 7 assigns internal/overlay to home isolation, but that package implements aether sync --live. Home isolation uses ensureOverlay in internal/scheduler/scratch.go.
The live-sync server in internal/sshd/sync.go opens run.Worktree on the host. It also needs to change when item 6 moves checkouts into VM-only disks. Correct these ownership rows and include that server code in item 6 so the checkout move does not overlook live sync.
| | 6 | 2 | Checkout inside the VM | `internal/gitengine`, the helper's git service | | |
| | 7 | 2 | Home and caches shared live; Isolated tier | mounts, `internal/overlay`, ownership | | |
| | 6 | 2 | Checkout and live sync inside the VM | `internal/gitengine`, the helper's git service, `internal/sshd/sync.go`, `internal/overlay` | | |
| | 7 | 2 | Home and caches shared live; Isolated tier | mounts, `internal/scheduler/scratch.go`, ownership | |
Knowledge Base Used: Git and mirror synchronization
Prompt To Fix With AI
This is a comment left during a code review.
Path: docs/plans/2026-11-13-microvm-sessions.md
Line: 120-121
Comment:
**Live sync has wrong owner**
Item 7 assigns `internal/overlay` to home isolation, but that package implements `aether sync --live`. Home isolation uses `ensureOverlay` in `internal/scheduler/scratch.go`.
The live-sync server in `internal/sshd/sync.go` opens `run.Worktree` on the host. It also needs to change when item 6 moves checkouts into VM-only disks. Correct these ownership rows and include that server code in item 6 so the checkout move does not overlook live sync.
```suggestion
| 6 | 2 | Checkout and live sync inside the VM | `internal/gitengine`, the helper's git service, `internal/sshd/sync.go`, `internal/overlay` |
| 7 | 2 | Home and caches shared live; Isolated tier | mounts, `internal/scheduler/scratch.go`, ownership |
```
**Knowledge Base Used:** [Git and mirror synchronization](https://app.greptile.com/-/switch-tenant?tenant=aethercode&next=%2Fcustom-context%2Fknowledge-base%2F3xdevops%2Faether%2F-%2Fdocs%2Fgit-and-mirror-synchronization.md)
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
Sessions run in Sysbox containers, so an idle session can only be stopped, which loses every running process, and only Claude Code sessions can sleep at all. A VM can be saved to disk whole and restored for any agent and session type.
This adds the plan the owner approved on 2026-11-13: sessions move to Cloud Hypervisor VMs, the member home stays one live shared folder, the checkout moves onto the VM's own disk, and a
session-runtimesetting keeps Docker the default until cutover. It splits the work into 13 items in three waves and names the interfaces the first wave shares.This is the bottom of a stack: the work items' pull requests are based on it and merge after it.
This PR was made with the help of Claude Code.
Opened from Aether run run-1ydgnnkqz5