wraith/src-tauri
Vantz Stockwell 8c431d3d12 fix: SSH input deadlock — output loop held channel mutex across await
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>
2026-03-24 18:28:09 -04:00
..
capabilities fix: add Tauri v2 capabilities — unblock event:listen for SSH terminal 2026-03-24 17:00:54 -04:00
gen/schemas feat: Phase 6 complete — CI/CD pipeline + auto-updater 2026-03-17 16:39:42 -04:00
icons feat: Phase 1 complete — Tauri v2 foundation 2026-03-17 15:09:41 -04:00
src fix: SSH input deadlock — output loop held channel mutex across await 2026-03-24 18:28:09 -04:00
build.rs feat: Phase 1 complete — Tauri v2 foundation 2026-03-17 15:09:41 -04:00
Cargo.lock feat: integrate Gemini AI XO copilot + backend cleanup + connection timeouts 2026-03-24 16:38:52 -04:00
Cargo.toml feat: integrate Gemini AI XO copilot + backend cleanup + connection timeouts 2026-03-24 16:38:52 -04:00
installer.nsi.template fix: move NSIS script to template file — avoid YAML !include parse error 2026-03-18 02:01:42 -04:00
tauri.conf.json refactor: clean up backend — strip verbose docs, add connection timeouts, fix macOS data dir 2026-03-24 16:30:02 -04:00