M20: hosted sandboxes #32

Open
opened 2026-10-02 01:51:18 +00:00 by jhgaylor · 0 comments
Owner

Depends on: #31
Blocks: #34

From PLAN.md, "Control track → M20: hosted sandboxes".


"New VM tab" with no wisp on your own machine: the VM runs on hosted compute, billed by the minute.

  • Providers:
    • control holds provider credentials for hosted compute and creates machines through the M4b Provider trait (Sprites, Fly, or our own Firecracker hosts running wisp);
    • your own provider tokens stay on your daemons, as today.
  • Each sandbox runs a daemon enrolled to the team (M17's join, done automatically) and reached over the relay or direct.
    • Its terminals are E2E like any daemon's; control creates the machine but holds no keys to its terminals.
    • The sandbox's host key is approved automatically by the requesting device's approval, so no extra click is needed.
  • Lifecycle:
    • a VM tab's machine lives as long as the tab (M3c's rule);
    • idle machines sleep (M4b's wake rules);
    • quotas per team and per member (M14's quotas, enforced by control).
  • Metering: sandbox minutes and storage per team, exposed to M22.
  • Done when:
    • a team member with only a browser opens a VM tab, runs claude in it, splits a second shell into the same VM, closes the tab, and the machine is deleted;
    • the minutes show up in the team's usage;
    • a fifth VM over quota is refused with a clear message.
**Depends on:** #31 **Blocks:** #34 _From PLAN.md, "Control track → M20: hosted sandboxes"._ --- "New VM tab" with no wisp on your own machine: the VM runs on hosted compute, billed by the minute. - **Providers:** - control holds provider credentials for hosted compute and creates machines through the M4b `Provider` trait (Sprites, Fly, or our own Firecracker hosts running wisp); - your own provider tokens stay on your daemons, as today. - **Each sandbox runs a daemon** enrolled to the team (M17's join, done automatically) and reached over the relay or direct. - Its terminals are E2E like any daemon's; control creates the machine but holds no keys to its terminals. - The sandbox's host key is approved automatically by the requesting device's approval, so no extra click is needed. - **Lifecycle:** - a VM tab's machine lives as long as the tab (M3c's rule); - idle machines sleep (M4b's wake rules); - quotas per team and per member (M14's quotas, enforced by control). - **Metering:** sandbox minutes and storage per team, exposed to M22. - **Done when:** - a team member with only a browser opens a VM tab, runs `claude` in it, splits a second shell into the same VM, closes the tab, and the machine is deleted; - the minutes show up in the team's usage; - a fifth VM over quota is refused with a clear message.
Sign in to join this conversation.
No description provided.