Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ADR 0056: Baseline stack without noVNC: consoles are text-only (xterm.js) because Cloud Hypervisor has no VNC or display device

  • Status: Accepted
  • Date: 2026-11-02
  • Ledger id: D-0056
  • Tags: stack, engine, console
  • Supersedes: ADR 0028
  • Superseded by: none
  • Related: none

Context

Q-0010 research (docs/research/cloud-hypervisor.md): Cloud Hypervisor v54 has no VNC, SPICE, virtual GPU or framebuffer device; consoles are serial/virtio-console only. noVNC in D-0028 would have nothing to attach to. The maintainer accepted it on 2026-11-02.

Decision

Baseline stack without noVNC: consoles are text-only (xterm.js) because Cloud Hypervisor has no VNC or display device.

Same as D-0028 except the consoles line. Control plane/API: Rust Axum + Tokio, sqlx + SQLite. Node agent: Rust static binary. MCP: rmcp (official Rust SDK). API contract: OpenAPI via utoipa -> TS client (orval or openapi-ts). Panel: React + TanStack Router/Query/Table, shadcn/ui + Tailwind, embedded with rust-embed. Consoles: xterm.js attached to the microVM serial or virtio-console UNIX socket, relayed by the node agent (or a vsock in-guest agent). No noVNC: Cloud Hypervisor has no graphical console; a graphical console would need a guest-side VNC server or GPU passthrough and is out of scope until an Engine with a display device exists. Metrics: uPlot. Realtime: decided separately in D-0057. bollard not needed. Every dependency must be justified.

Some wording was changed for the public repository. Some operational details were redacted for the public repository.

Consequences

  • Replaces ADR 0028.
  • This decision is binding for all contributors and agents. Changing it requires a new ADR approved by the maintainer (see ADR 0036).

Generated from decision D-0056 in the project decision ledger. Do not edit by hand; changes go through a new decision.