Releases: ys-ll/uniterm
Releases · ys-ll/uniterm
v2026.06.17
- bugfix Fixed URL highlight causing all subsequent text to be underlined in the terminal.
- bugfix Fixed terminal canvas blocking window edge resize by adding 3px padding to the tab area.
- improve Tightened dialog padding and form item spacing; form labels now auto-expand row height when text wraps.
- improve All dialogs are now draggable by default.
- improve Unified select dropdown font size to 12px.
- improve Update notification link now opens in the system browser instead of the built-in WebView2 window.
- improve New connection button now shows "Save & Connect" consistently, same as the edit dialog.
v2026.06.16-alpha
- bugfix Fixed local terminal tab close causing entire app to crash. Root cause: multiple goroutines concurrently calling
ConPTY.Close()→ doubleClosePseudoConsoleon Windows triggers OS-level access violation unrecoverable by Go'srecover(). Fix: wrap entireDisconnect()body insync.Once. - bugfix Fixed terminal output loss when switching tabs. Data arriving during KeepAlive deactivation was buffered in sessionStore but never replayed on reactivation. Track written chunk count and replay missed chunks in
onActivated. - bugfix Fixed Enter key not triggering reconnect after SSH disconnect occurred while tab was in background.
session:statusevent was dropped byisActiveguard, soretryOnEnternever got set. Sync fromsessionStore.getStatus()on reactivation. - bugfix Fixed suggestion popup stuck at top-left after SSH reconnect.
terminalInputheld stale reference to disposed terminal, cursor tracking returned{0,0}. RecreateterminalInputwhen session ID changes. - bugfix Fixed terminal content being cleared after reconnect. Release + acquire created a new xterm.js instance. Use
transferTerminal()to move the existing terminal entry to the new session ID, preserving scrollback. - bugfix Fixed pressing Ctrl+G / Shift+G / PageDown in vim leaving rendering residue.
\x1b[2Jreplacement with scrollClear was also applied in alternate screen buffer, corrupting vim's screen state. Now only applies to main buffer. - bugfix Fixed sidebar resize handle blocking the connection list scrollbar. Moved activation area outside the sidebar edge via negative
rightoffset. - improve Text highlighting overhaul:
- Highlight only resets foreground color (
\x1b[39m) instead of all SGR (\x1b[0m), preserving vim's reverse video selection - Lines with display attributes (reverse video, bold, etc.) skip highlighting to avoid color mixup
- File path regex now matches directories and files without extensions, anchored by
(^|\s)to avoid false positives inside words - Added datetime formats:
HH:MMwithout seconds, ISO 8601Zsuffix, syslogMon DD HH:MM:SS, weekday+yearWed Jan 21 HH:MM:SS YYYY - Color palette extracted into named constants; number color 145→152, brace color 147→223 for better contrast on vim reverse video
- Local terminal sessions no longer apply text highlighting
- Suggestion popup no longer triggers on arrow key navigation when closed
- Highlight only resets foreground color (
- refactor Merged
WorkspaceTabItemintoTabItem, eliminating ~300 lines of duplicate code. All tab types (terminal, workspace, SFTP, RDP, VNC, etc.) handled by a single component. - improve Tab close buttons replaced plain
×text with LucideXSVG icon, adjusted sizing and spacing to prevent text shift when switching tabs. AI lock button always visible. SFTP and Monitor context menu items hidden for local terminal panels. - bugfix Fixed AI lock state being cleared when panel detached from workspace tab.
v2026.06.14-alpha
- new SSH tunnel (local port forwarding). Any connection can use an existing SSH connection as a jump host. Auto-assigns local port, tunnels TCP through SSH. VNC ports automatically adjusted for libvirt display numbers.
- new FTP/FTPS file transfer. New File Transfer category with FTP and FTPS (explicit TLS), passive/active mode, configurable character encoding. Reuses the SFTP two-pane file manager UI; Go backend uses shared fileTransferSession interface.
- new SFTP max concurrent transfers (per SSH connection, default 5). Semaphore-based concurrency control prevents bandwidth saturation and server MaxSessions limits.
- new Connection form now has four categories: Terminal / File Transfer / Remote Desktop / Database. SSH labeled as SSH (SFTP), appears under both Terminal and File Transfer.
- improve All notifications now have a close button and auto-dismiss after 5 seconds. Unified via
services/message.tswrapper. - improve KeepAlive cache extended to all tab components (Settings/SFTP/RDP/VNC/SPICE). Switching tabs no longer rebuilds components.
- improve Fonts switched to system native font stack, removing Google Fonts CDN dependency. UI uses system interface fonts, monospace uses system-provided fixed-width fonts. CJK fallback covers Windows/macOS/Linux.
- bugfix Fixed KeepAlive-cached SFTP instances picking up global drag events, causing files to upload to the wrong connection. Document event listeners now managed via onActivated/onDeactivated.
- bugfix Fixed stale edit data leaking into the quick-new-connection form.
- bugfix Fixed duplicate task IDs from identical nanosecond timestamps in concurrent transfers causing jumbled progress bars. Switched to atomic counter.
- bugfix Fixed port input min=1 preventing value 0.
- bugfix Fixed 4px body padding preventing the titlebar from being flush with the window edge.
- bugfix Fixed 4px gap between local terminal submenu and its trigger causing submenu to close on mouse enter.
- bugfix Fixed AI confirmation level dropdown button missing ChevronDown icon import.
- bugfix Fixed default port not updating when switching between remote desktop types (e.g. RDP 3389 → VNC still showing 3389).
v2026.06.13-alpha.1
fix(macos): keep titlebar on macOS for native traffic lights with Tit…
v2026.06.13-alpha
- new AI terminal toolchain. 5 new tools: start_command (fire-and-forget), capture_terminal (read screen), collect_output (passive wait), send_terminal_key (interactive input), interrupt_command (cancel). execute_command gains configurable timeout and output truncation.
- new AI SSE streaming. Go backend proxies Anthropic SSE events, frontend renders tokens in real time via ai:token.
- new AI context management. Layered system prompt (static cached + dynamic injected), token-aware context window management for improved prompt cache hit rate.
- new AI IN boxes show tool type names with i18n and parsed parameters per tool type. Headers display tool name with timeout
[xxs], body shows command/params instead of raw JSON. - new AI sidebar search. Highlight matches, navigate matches (Enter / Shift+Enter), match count, auto-scroll to active match.
- bugfix Fixed text search menu opening search bar in all terminal windows simultaneously. Event now targets the current panel.
- improve Rewritten AI system prompt with timeout guidelines, decision tree, interactive prompt handling, and clear-screen prohibition.
- new macOS frameless window rounded corners.
v2026.06.12-alpha
- new Zmodem file transfer (rz/sz). Upload (including drag-and-drop onto terminal) and download files in SSH terminals via
rz -beandsz, with real-time progress bars. - new SSH panel header "..." dropdown menu and tab right-click menu now include Duplicate Session, Connect SFTP, Server Monitor, and Text Search.
- improve Refactored terminal instance management so xterm instances are reused across workspace panel and standalone tab drag-and-drop merge/detach, eliminating garbled text during transitions.
- bugfix Fixed double-click text selection not copying to clipboard. Replaced mousedown/mouseup tracking with xterm's native onSelectionChange event.
v2026.06.10-alpha
v2026.06.10-alpha
- new AI model list sync. One-click fetch available models from the server in the model edit dialog, with autocomplete suggestions in the model input.
- new Sidebar search now supports filtering by connection type (Terminal / Remote Desktop / Database), combined with text search.
- new Multilingual support. Supports 9 languages (zh-CN, zh-TW, en, ja, ko, de, es, fr, ru) with real-time switching in settings.
- improve Simplified AI command markers (echo-only), removed self-check from system prompt, expanded run confirmation panel by default.
- improve Fixed AI confirm-write button to use primary color style.
- improve Window title simplified, showing only "uniTerm" without version number.
- bugfix Fixed terminal losing focus after paste, causing invisible cursor.
- bugfix Fixed CSI response sequences being echoed as garbage text by bash on tab switch.
v2026.06.08-alpha
- new SPICE remote desktop protocol support.
- new Panel duplicate, rename, drag image preview, and title synchronization.
- new Drag active terminal tab to adjacent tab with workspace merge.
- improve SSH keepalive changed from global request to session channel request (
keepalive@openssh.com), matching OpenSSHServerAliveIntervalbehavior; interval adjusted from 30s to 60s, max failures from 2 to 3. - improve On Windows, prefer Git Bash over WSL and fix WSL bash argument passing.
- improve Suggestion popup position fixed in multi-panel workspace; SFTP scroll behavior improved.
- bugfix Fixed terminal size not updating after SSH reconnect. New sessions default to 80×24 PTY; now forces a
SessionResizewith the current terminal dimensions when reconnected, so apps like vim/k9s display at the correct size. - bugfix Fixed
clearcommand destroying scrollback history. Replaces ED2 (clear screen) with newline scrolling + home, pushing viewport content into scrollback before clearing. - bugfix Fixed text highlighting disappearing after tab switch. Restored history now applies
highlight()based on the currenthighlightEnabledsetting. - bugfix Fixed copy-on-select overwriting clipboard when switching panels or returning from another app. Copy now only triggers when the mouse selection actually started inside the same terminal.
- bugfix Fixed dropping panel/tab onto empty tab bar area not working in certain layouts.
v2026.06.02-alpha
- new Telnet and Mosh connection protocol support. Telnet provides IAC negotiation (binary mode, terminal type, window size); Mosh uses UDP-based SSP protocol for low-latency mobile connections.
- new Terminal text highlighting. Automatically highlights timestamps, IP addresses, URLs, file paths, keywords (ERROR/WARN/INFO), quoted strings, numbers, and punctuation in terminal output. Toggle in settings; lines containing ESC are skipped to avoid TUI interference.
- new xterm.js Unicode11 addon for correct emoji and wide character rendering (e.g. k9s dog icon).
- improve Merged tab bar into titlebar as a single row, saving ~40px vertical space. All buttons icon-only, new connection + local terminal merged into
+dropdown, window controls styled consistently. - improve New/Edit connection dialog restructured into two-level category selection (Terminal / Remote Desktop / Database) with radio-button toggle for protocol sub-type.
- improve Unified control sizing across the entire UI: 28px height, 12px font, consistent border-radius, background, and border colors for all controls (el-input, el-button, el-select, el-radio-button, el-switch, el-checkbox, etc.).
- improve Smart completion UX fixes: popup flips above/below intelligently to avoid covering input; mouse hover only activates after movement to prevent accidental selection; password (hidden) input is not saved to history and does not trigger suggestions.
- improve Terminal tabs restyled as buttons with accent border + background for active state, AI lock + active effects combined.
- improve AI sidebar defaults to new session on restart; empty sessions are not saved; max 15 sessions retained.
- bugfix Fixed terminal history capture logic. Scans visible buffer area (bottom to top) instead of relying on cursorY, which is unreliable after buffer scrolling.
- bugfix Fixed race condition where suggestion popup remained open after Enter (debounce timer cancellation + empty token check).
- bugfix Fixed WebView2 conflict causing input failure when opening multiple processes on Windows 11. UserDataFolder now uses a per-process PID-isolated path.
- bugfix Fixed garbled text on tab switch. xterm.js OSC color queries sent via onData were echoed back by the server as scrambled text; added OSC filtering to resolve.
v2026.05.29-alpha
- new Terminal smart completion. Real-time popup with history command and AI rewrite suggestions while typing in SSH terminals. Settings page adds a command history management section with search, select-all, and batch delete.
- new Server monitor. Real-time monitoring for connected servers. Supports performance metrics (CPU/memory/disk/network), process list with details, listening ports, disk usage and mount info, network interfaces with bond/bridge detection.
- new SSH post-login script execution. Configure a script to run automatically after SSH connection; supports idle detection to avoid executing during manual interaction.
- new SSH keepalive to prevent idle disconnect. Sends periodic keepalive packets and shows a reconnect prompt when the connection drops.
- improve Sidebar splitter visibility and terminal scrollbar contrast improved for easier interaction.
- bugfix Fixed MySQL multi-database race condition in database query capabilities.
- bugfix Unified connection type label rendering between grouped and ungrouped views in the sidebar.