Skip to content

feat(desktop): flow-controlled PTY channels, tab signals, paste guard and context menu - #63

Merged
abdoufermat5 merged 1 commit into
mainfrom
feat/xterm-integration
Oct 29, 2026
Merged

abdoufermat5 merged 1 commit into
mainfrom
feat/xterm-integration

Conversation

@abdoufermat5

Copy link
Copy Markdown
Owner

Upgrades the desktop terminal's xterm.js integration. See the CHANGELOG [Unreleased] entries.

  • Per-session Tauri channel for PTY output with watermark flow control (ack_pty), replacing the app-wide pty-output events.
  • Single createXtermSession factory for tabs and pop-out windows; WebGL only on visible terminals.
  • Serialized screen snapshot on pop-out / dock / detach, then redraw_pty so full-screen apps redraw.
  • OSC 0/2 tab titles, bell badge, OSC 9;4 progress (tab + taskbar).
  • Multi-line paste confirmation; Linux middle click pastes the primary selection.
  • Right-click menu.

Checks run locally: clippy -D warnings (workspace), cargo test -p bayesian-ssh-gui (38 incl. 6 flow-control tests), svelte-check 0/0, vite build, Playwright 188/188 (mocked IPC). Not exercised against a live sshd in the real WebKitGTK app.

… and context menu

Output now reaches each terminal over its own Tauri channel with
watermark flow control (reader parks above 1 MiB unacked, resumes
below 256 KiB), so Ctrl+C is immediate during output floods.

- one createXtermSession factory for tabs and pop-out windows
- WebGL context only for visible terminals
- serialized screen snapshot on pop-out/dock/detach + redraw nudge
- OSC 0/2 tab titles, bell badge, OSC 9;4 progress
- multi-line paste confirmation, Linux primary-selection middle click
- right-click menu (copy, paste, select all, find, clear, export)
@abdoufermat5
abdoufermat5 merged commit 540e0c7 into main Oct 29, 2026
4 checks passed
@abdoufermat5
abdoufermat5 deleted the feat/xterm-integration branch October 29, 2026 12:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant