Releases: ys-ll/uniterm
Releases · ys-ll/uniterm
v1.1.2
What's New
- new Added 22 terminal themes with a sidebar personalization panel for one-click theme switching.
- new SFTP built-in text editor with encoding & line ending configuration.
- new SFTP new file/folder creation and copy/paste/cut.
- new Prompt for credentials when connecting without saved username or password.
- improve SFTP chmod dialog now supports octal permission input.
- improve Connection-type icons in sidebar session list.
- improve Sidebar visibility now persisted to local state file across restarts.
- bugfix Fixed history panel not updating in real time.
- bugfix Fixed missing overwrite confirmation when uploading files with same name in SFTP.
- bugfix Fixed paste event not dispatched to all panels in broadcast mode due to SFTP overlay interference.
- bugfix Fixed
__AI_KEY_marker residue in AI output. - bugfix Fixed AI command heredoc syntax compatibility.
- bugfix Fixed SFTP drive dropdown closing on mousedown before click event fires.
更新内容
- new 新增 22 款终端主题,侧边栏个性化面板支持一键切换主题。
- new SFTP 新增内置文本编辑器功能,支持编码和换行符设置。
- new SFTP 新增新建文件/文件夹、复制/粘贴/剪切功能。
- new 连接未保存用户名或密码时,连接前弹窗提示输入凭据。
- improve SFTP chmod 对话框新增八进制权限输入。
- improve 侧边栏连接列表新增连接类型图标。
- improve 侧边栏展开/收起状态持久化到本地文件,重启后保持。
- bugfix 修复历史命令面板未实时更新的问题。
- bugfix 修复 SFTP 上传同名文件时无覆盖确认提示。
- bugfix 修复广播模式下 SFTP 遮罩层干扰 paste 事件分发。
- bugfix 修复 AI 输出中残留
__AI_KEY_标记。 - bugfix 修复 AI 命令 heredoc 语法兼容性问题。
- bugfix 修复 SFTP 驱动器下拉菜单因 mousedown 提前关闭、click 无法触发。
v1.1.1
What's New
- new Prompt for SSH password directly in the terminal when no password is saved.
- new Detect system monospace fonts with live preview in the settings font selector.
- new AI model config supports API protocol switching, connection test, and custom User-Agent.
- new Customizable keyboard shortcuts for common actions.
- bugfix Fixed Linux multi-screen maximize using wrong screen dimensions.
- bugfix Fixed empty AI API message role causing request errors.
- bugfix Fixed brief UI freeze during maximize/restore on Windows 11.
- bugfix Fixed WSL local terminal console window flashing on startup.
更新内容
- new SSH 密码未保存时,终端内直接弹出密码输入提示。
- new 系统等宽字体检测与预览,设置中字体选择器展示可用 monospace 字体。
- new AI 模型配置支持 API 协议切换、连接测试与自定义 User-Agent。
- new 自定义键盘快捷键,支持为常用操作绑定快捷键。
- bugfix 修复 Linux 多屏环境下窗口最大化使用错误屏幕尺寸。
- bugfix 修复 AI API 消息角色为空时导致请求报错。
- bugfix 修复 Windows 11 最大化/还原时 UI 短暂卡顿。
- bugfix 修复 WSL 本地终端启动时控制台窗口闪烁。
v1.1.0
- new Added serial port terminal connection. Supports scanning available serial ports and connecting with configurable baud rate, data bits, stop bits, and parity.
- new Added WSL support to local terminal. The
New Local Terminalsidebar menu now scans and lists installed WSL distributions (e.g.WSL - Ubuntu), which can be opened with one click. - new Added Windows portable zip artifact to the build workflow.
v1.0.1
- new Quick Commands management. Sidebar panel with drag-drop groups, search filtering, keyboard navigation (arrow keys + Enter), edit dialog, and full 9-language i18n support.
- new History Panel. New sidebar tab displaying all terminal command history with search and copy support.
- new Quick command suggestions. Smart completion popup now includes matching quick command suggestions in real time.
- new "Upload File (rz -be)" right-click menu option in SSH panels to trigger Zmodem upload.
- improve New-connection button moved to sidebar top; quick command toolbar menu unified with sidebar styling.
- improve Terminal command history is now always recorded regardless of the smart completion setting.
- bugfix Fixed right-click paste in broadcast mode only applying to the current panel instead of all panels in the workspace.
- bugfix Fixed double input after SSH reconnect via generation counter guard.
- bugfix Fixed history panel tooltip, button layout, and text brightness issues.
- bugfix Fixed session data replay on terminal reuse during panel merge/split.
- bugfix Fixed text highlight clearing terminal background colors.
- bugfix Fixed escape-sequence guard failing to skip TUI lines, causing highlight interference in vim/k9s.
- bugfix Fixed SSH keepalive switching to global request to prevent auto-disconnect on some servers.
v2026.06.17-alpha
- 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.