Skip to content

Termimus v0.4.7

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Sep 07:48

Release v0.4.7 — Terminal Typing Latency Optimizations & TCP_NODELAY

This release focuses on terminal responsiveness and keystroke latency, eliminating network TCP buffering delays and streamlining the I/O pipeline between xterm.js and the Rust backend.


⚡ Performance Improvements

  • TCP_NODELAY (Disabled Nagle's Algorithm):

    • Explicitly invokes set_nodelay(true) on client TCP sockets before initiating the SSH handshake via connect_stream.
    • Eliminates the 40ms to 200ms per-character latency penalty previously caused by Nagle's algorithm buffering tiny keystroke packets while waiting for remote TCP Delayed ACKs.
    • Uniformly applied across Terminal SSH, SFTP, and SSH Port Forwarding Tunnels.
  • Adaptive Zero-Delay Output Coalescing:

    • Re-architected the Rust PTY output streaming loop with an adaptive flush mechanism:
      • Interactive / Idle Stream: Keystroke echoes and prompt responses are emitted to the frontend immediately (0ms artificial delay), delivering an instant, tactile typing experience.
      • High-Throughput Bursts (cat, htop, build logs): Output arriving during active bursts is automatically coalesced into ~8ms / 64KB batches to safeguard Tauri's IPC event bridge against saturation.
  • Non-blocking Concurrent Writes (RwLock):

    • Migrated SessionManager.sessions from tokio::sync::Mutex to tokio::sync::RwLock.
    • Keystroke writes (write) and terminal geometry adjustments (resize) now acquire concurrent read-locks without blocking each other or locking against active connections.
  • Frontend Garbage Collection Optimization:

    • Converted TextEncoder instances in XtermView.tsx and useSessionStore.ts into module-level singletons, preventing object reallocation and GC spikes during rapid typing sessions.

📦 Component Versions

Component Version Package
Desktop Client (Tauri + Rust + React) v0.4.7 Releases
Self-Hosted Sync Server (Go) v0.4.7 ghcr.io/termimus/termimus-sync

📝 Commit Summary

  • 8280b0f perf(terminal): enable TCP_NODELAY & adaptive zero-delay echo; bump v0.4.7