Skip to content

docs(plans): plan moving sessions into Cloud Hypervisor VMs - #889

Draft
ilovecrayons wants to merge 2 commits into
mainfrom
aether/run-investigate-the-potential-of-usi-1ydgnnkqz5
Draft

ilovecrayons wants to merge 2 commits into
mainfrom
aether/run-investigate-the-potential-of-usi-1ydgnnkqz5

Conversation

@ilovecrayons

Copy link
Copy Markdown
Contributor

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-runtime setting 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

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.
@greptile-apps

greptile-apps Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 4/5 Tier: apex

[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.

Fix All in Claude CodeFindings

  1. P2 Live sync has wrong owner ▶
Fix with agent prompt
### Issue 1
docs/plans/2026-11-13-microvm-sessions.md:120-121
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 |
```

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

Adds a thirteen-item plan to move sessions from Docker to Cloud Hypervisor VMs.

  • Aether's session plan maps a staged move from Docker to Cloud Hypervisor VMs.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  S[Aether server] <-->|vsock helper API| V[Session VM]
  H[Shared member home] <-->|live share| V
  B[Read-only base disk] --> R[Disposable root disk]
  R --- V
  D[Persistent checkout and Docker data] --- V
  V -->|Git objects and snapshots| S
  S --> P[Host repos, history and evidence]
  V -->|sleep| M[Saved memory and device state]
  M -->|wake| V
Loading

Reviews (1) · Last reviewed commit: "docs(plans): land the microVM work as on..." · Reviewed by Greptile

Comment on lines +120 to +121
| 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 |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 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.

Suggested change
| 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.

Fix in Claude Code Fix in Codex

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant