Skip to main content

Module shell

Module shell 

Source
Expand description

Board-over-SSH: bridge one russh channel to the blocking cliban-tui event loop on a dedicated blocking task.

Wiring: the connection handler forwards channel data bytes and window-change resizes into an mpsc (RemoteInput); the board task renders through a RemoteBackend whose writer sends each flush to the client via the session Handle. Teardown is symmetric: user quit ends the loop (exit 0); client disconnect / channel close drops the sender, the session errors out, and the task dies — no leaked tasks either way.

Structs§

BoardTask
Everything the blocking board task needs, captured on the async side (Handle::current() is only guaranteed there).

Constants§

NO_TTY
Sent when a shell is requested on a channel that never did pty-req.

Functions§

run_board
Drive picker + board to completion, then hang up. Runs on a blocking thread (tokio::task::spawn_blocking). All sends after the loop are best-effort: the client may already be gone.