mirror of
https://github.com/getcompanion-ai/computer-guest.git
synced 2026-04-15 03:00:42 +00:00
thin guest vm image for agentcomputer
https://agentcomputer.ai
* feat: add Firecracker API client methods for VM pause/resume and snapshots
Add PatchVm, GetVm, PutSnapshotCreate, and PutSnapshotLoad methods to the
API client, along with supporting types (VmState, SnapshotCreateParams,
SnapshotLoadParams, MemBackend).
* feat: add snapshot data layer - contract types, model, store, config
Add SnapshotID and snapshot contract types, SnapshotRecord model,
store interface CRUD methods with file store implementation,
snapshot paths helper, SnapshotsDir config, and directory creation.
* feat: add runtime methods for VM pause, resume, snapshot, and restore
Implement Pause, Resume, CreateSnapshot, and RestoreBoot on the
firecracker Runtime. RestoreBoot launches a jailer, stages snapshot
files into the chroot, loads the snapshot, and resumes the VM.
* feat: add daemon snapshot create, restore, and reconciliation logic
Implement CreateSnapshot (pause, snapshot, COW-copy disk, resume),
RestoreSnapshot (COW-copy disk, RestoreBoot, wait for guest),
GetSnapshot, ListSnapshots, DeleteSnapshotByID, and crash recovery
reconciliation for snapshot and restore operations.
* feat: add HTTP endpoints for snapshot create, get, list, delete, restore
Wire 5 snapshot routes: POST /machines/{id}/snapshots (create),
GET /machines/{id}/snapshots (list), GET /snapshots/{id} (get),
DELETE /snapshots/{id} (delete), POST /snapshots/{id}/restore (restore).
* fix: cross-device rename, restore network, and snapshot cleanup
- Replace os.Rename with copy+remove for moving snapshot files out of
/proc/<pid>/root/ (cross-device link error on Linux)
- Reconfigure network interface after snapshot load so the restored VM
uses its own tap device instead of the source VM's
- Clean partial snapshot dirs immediately on failure instead of only
via reconcile
- Reject snapshot requests while a machine operation is already pending
* fix: test and modify snapshot runtime
* feat: snapshot lifecycle update, align runtime issues between host image
and daemon
|
||
|---|---|---|
| defaults | ||
| terminfo | ||
| Dockerfile | ||
| microagent-desktop-session.sh | ||
| microagent-init.sh | ||
| microagent-network-up.sh | ||
| README.md | ||
| sshd_config | ||
Guest Image
This directory is a selective extraction point from the old
agentcomputer/docker/computer guest.
It is intentionally not a wholesale copy.
The first version only targets the minimal microagentcomputer guest contract:
- SSH on
2222 - browser desktop access on
6080 - user root access via
sudo
The goal here is to keep the guest small, explicit, and easy to reason about, while still reusing the proven parts of the old image where they are actually useful.
Import Rules
Keep:
- SSH server configuration
- desktop packages needed for a visible session
x11vncnoVNCandwebsockify- entropy support
Do not import yet:
- sandbox-agent
- agent-ui
- workspace/runtime shims
- old AgentComputer bootstrap services
- old multi-port service surface
Expected Ports
2222for SSH6080for browser VNC
Runtime Shape
The guest is expected to boot from a normal Firecracker kernel plus rootfs and start through a small custom init script rather than the older AgentComputer runtime stack. That PID 1 helper is responsible for:
- bringing up guest networking
- starting SSH and desktop services
- staying alive as the runtime supervisor for the VM