pub async fn run<A, S, const TXQ: usize, M, const RX: usize, const TX: usize, E>(
session: Session<A, S, TXQ>,
boot_snapshot: Option<&[u8]>,
boot_identity: Option<[u8; 32]>,
rt: DeviceRuntime<M, RX, TX>,
env: E,
) -> !Expand description
Drive the ULCP session forever: restore persisted state, then
select over host frames, radio receptions, and transmit completions,
executing every session effect through the board’s DeviceEnv.
The caller constructs the [Session] with its board profile
(SessionConfig) and boot status, mounts its journals, and hands the
stored payloads in; the driver owns everything after that.