Architecture
Actana Control detaches the UI from the work. The Panel is one self-hosted web service: Operator login, a Core registry, and a live router. Each Core is a daemon on a machine that has your code. It owns projects, tasks, sessions, SQLite, and PTYs. The Panel holds no task-shaped state.
One Panel drives many Cores. The Panel dials; Cores never dial back. Default Core port is 8443. Every Core is remote — even one on the Panel's host. The same components render every Session and Project regardless of which Core owns the data. That is the Singular UI.
Writes land on the Core as core-link frames, not REST. File bytes use HTTPS /v1/..., not that socket. The browser never talks to a Core: it holds one panel link. The Panel is a Core client like the CLI and @actana/sdk.
flowchart LR
UI[Panel UI] -->|panel link| Panel[Panel]
Panel -->|core link wss mTLS| C1[Core A]
Panel -->|core link wss mTLS| C2[Core B]
Panel -.->|HTTPS /v1 files| C1
Panel -.->|HTTPS /v1 files| C2
See also
- Core link —
wssmTLS, bearerauthframe, event cursor. - Panel link — one multiplexed WebSocket per browser tab.
- Write path — Core is the source of truth.
- Filesystem — file bytes cross HTTPS, not the core link.