waveterm/pkg/wshutil
dfbb e64d1feb0f feat(wsh): add attach command for read-only terminal observation
Adds `wsh attach` — a command that streams the live output of any Wave
Terminal block to a local terminal window without affecting the remote
session. Useful for monitoring long-running processes, CI jobs, or AI
coding agents from a separate window or SSH session.

Key capabilities:
- Interactive block selector (workspace → tab → block)
- Live PTY streaming via snapshot + WPS event subscription
- Viewport model: server PTY size is fixed; local terminal is a
  moveable window into the remote screen (Ctrl+Arrow to pan)
- Diff-based renderer that emits only changed cells per frame,
  with full SGR, wide-character, alt-screen, and cursor-style sync
- Debounced render loop (16 ms) coalesces rapid PTY bursts so that
  full-screen TUI repaints are always consumed before rendering
- Resync command (Ctrl-A s) rebuilds xterm-go state from a fresh
  snapshot when local state drifts from the remote

Bug fix included: EventRecv messages are now dispatched synchronously
in the WshRpc message loop (same pattern as StreamData/StreamDataAck)
so that back-to-back PTY events are always processed in arrival order.
Without this fix, concurrent goroutines race to write PTY chunks into
the terminal emulator, producing mixed-frame garbling.
2026-05-01 23:08:15 +08:00
..
wshadapter.go Add native 2+ arg RPC support and wire a concrete TestMultiArgCommand through server, generated clients, and CLI (#2963) 2026-03-02 12:29:04 -08:00
wshcmdreader.go very large refactor of wshrouter (#2732) 2026-01-01 17:44:00 -08:00
wshevent.go Happy new year! (#1684) 2025-01-04 20:56:57 -08:00
wshproxy.go Persistent Terminal Sessions (+ improvements and bug fixes) (#2806) 2026-01-28 13:30:48 -08:00
wshrouter.go Persistent Terminal Sessions (+ improvements and bug fixes) (#2806) 2026-01-28 13:30:48 -08:00
wshrouter_controlimpl.go Do not allow large/recursive file transfers (for now), remove s3 and wavefile fs implementations (#2808) 2026-01-28 14:28:31 -08:00
wshrpc.go feat(wsh): add attach command for read-only terminal observation 2026-05-01 23:08:15 +08:00
wshrpcio.go New ConnMonitor to Track "Stalled" Connection State for SSH Conns (#2846) 2026-02-09 17:11:55 -08:00
wshstreamadapter.go new job manager / framework for creating persistent remove sessions (#2779) 2026-01-21 16:54:18 -08:00
wshutil.go New ConnMonitor to Track "Stalled" Connection State for SSH Conns (#2846) 2026-02-09 17:11:55 -08:00