Root cause: The output reader loop held Arc<TokioMutex<Channel>> while calling ch.wait().await. After the initial prompt rendered and the server went idle, wait() blocked indefinitely holding the lock. ssh_write() could never acquire the mutex to send keystrokes. Permanent deadlock. Fix: Separated read/write paths. The output loop now owns the Channel exclusively via tokio::select!, receiving resize/shutdown commands through an mpsc channel. Writes go through Handle::data(channel_id, data) which bypasses the Channel entirely — no shared mutex, no deadlock. Also killed all compiler warnings (unused imports in rdp module). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| capabilities | ||
| gen/schemas | ||
| icons | ||
| src | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| installer.nsi.template | ||
| tauri.conf.json | ||