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 0028: Baseline stack (to be confirmed in the architecture doc)

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

Context

Rust for everything touching infra; React panel embedded in the binary.

Decision

Baseline stack (to be confirmed in the architecture doc).

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/metrics: xterm.js, noVNC, uPlot. Realtime: WebSockets or SSE. bollard (Docker) no longer needed since there is no Docker on nodes. The maintainer prefers minimal dependencies; every dependency must be justified.

Some wording was changed for the public repository.

Consequences

  • Superseded by ADR 0056; this decision is no longer binding and is kept for history.

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