DashboardApp class

A full-screen TUI over the OmnyShell CLI: log in to a Hub, then work across four top-level tabs — Nodes (browse a node's info and sessions, and resume / peek / detach / terminate them), Tunnels (open / list / close), Drive (mount / sync / diff / resolve / unmount / remount) and AI (view / edit config, validate models) — without typing individual commands. Tab / Shift-Tab (or the number keys) switch tabs.

Built on the same immediate-mode toolkit as the :ide command (ScreenBuffer, Rect, Style, KeyDecoder) and driven through the injected DashboardBackend port, so the whole app is dart:io-free and testable with a fake terminal + fake backend. run takes over the terminal until the user quits with Ctrl-Q, then restores it.

Resuming or peeking a session hands the real terminal to the backend's live interactive runner: the app leaves the alt-screen, stops rendering, awaits the backend, then re-enters and refreshes.

Constructors

DashboardApp({required TerminalDriver terminal, required DashboardBackend backend, String? seedHub, String? seedPrincipal, DateTime clock()?})

Properties

debugScreen ScreenBuffer?
The last rendered frame (for tests); null before the first render.
no setter
hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
run() Future<void>
Runs the dashboard until the user quits, restoring the terminal afterwards.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited