Imported from antibyte/AuraGo (
internal/virtualcomputers/AGENTS.md). Install upstream withnpx skills add antibyte/AuraGo --skill virtualcomputers. Copyright stays with the author.
Virtual Computers
Purpose
Workspace lease and managed Garage storage lifecycle.
Ownership
internal/virtualcomputers owns this domain. The contracts below also bind related server, UI, config, asset, and test work through the root routing table.
Local Contracts
Virtual Computers Storage / Managed Garage Contract
- Workspace close treats boringd's JSON
404 {"error":"not found"}as completed deletion, clears stale errors, closes jobs/browser sessions/grants and resolves only that workspace'slease_close_failedissue. Router/proxy 404s, authentication failures and server errors remain failures; closed workspaces must leave lease reconciliation. - Default
virtual_computers.storage.modeismanaged_garage;external_s3remains supported. Legacy configs withoutmodenormalize toexternal_s3when an endpoint is set, otherwisemanaged_garage. - Managed Garage runs on the boringd control-plane host (
local_hostorssh_host), never as a general AuraGo Compose service. Image is pinneddxflrs/garage:v2.3.0@sha256:866bd13ed2038ba7e7190e840482bc27234c4afaf77be8cfa439ae088c1e4690. Only S3 binds127.0.0.1:3900. Data lives under${install_dir}/data/sidecars/garage. - Docker is required for managed volumes but is not installed by AuraGo. Missing Docker is a storage warning and must not set core preflight
Supported=false. - Managed Garage Vault keys (
virtual_computers_garage_*) are separate from external S3 keys. Never export them to Python/skills; never show them in the UI. Stop without delete retains container data and source objects. - Storage identity includes mode, endpoint/bucket/region/SSL and, for managed Garage, control-plane mode/host/install_dir. Source objects are never auto-deleted on switch.
previous_storeledger volumes must not be removed by normal JSON-404 cleanup. - Config save must return HTTP 409 (
storage_switch_required) when identity changes while available volumes exist, unless a single-useX-AuraGo-Storage-Switch-Tokenfrom/api/virtual-computers/storage/switch/authorizematches the target identity hash. Switch-without-migration marks volumesprevious_storeand may stop managed Garage; automated object-copy migration is optional/not required for the gate. - Agent Docker tools must hide and block lifecycle/inspect/exec/mount access to
aurago-boring-garageand Garage data paths, same fail-closed pattern as Local LLM.
Verification
- Run
go test ./internal/virtualcomputersand the named cross-component checks in the contracts above when those paths change.
Child DOX Index
None.