Skip to content

Termior v0.1.8

Choose a tag to compare

@github-actions github-actions released this 17 Sep 10:17
· 10 commits to main since this release

Termior v0.1.8

The SSH release: connect to remote hosts, browse and transfer files over SFTP, and manage sessions with shared authentication.

Highlights

SSH sessions

  • Saved SSH connections with host, port, user, private key, and jump hosts (user@bastion:2222, comma-separated for multiple). Hostnames accept DNS, IPv4/IPv6, and existing OpenSSH Host aliases.
  • Authentication modes: OpenSSH defaults (config, agent, default keys), password / MFA via keyboard-interactive, specified keys including encrypted ones, and SSH Agent-only.
  • A unified authentication window handles host fingerprints, passwords, passphrases, and OTP prompts — the terminal no longer asks for login credentials separately.
  • Connections keep running in background tabs; split panes open independent sessions. Disconnect/close terminates that tab's connection; reconnecting is always explicit.

Shared authentication and credential storage

  • One authentication coordinator serves all logins to the same target: the password or key passphrase for a host is asked once, even with a terminal, file browser, and transfers open at the same time.
  • Credentials can optionally be saved to the OS credential vault (Windows Credential Manager, macOS Keychain, Linux secret service). Without saving, they live only in zeroizing memory for the session. OTPs are never stored.
  • Private key files stay with OpenSSH; the app never copies key material, and credentials never appear in config files, environment, command lines, or terminal output.
  • Per-connection "clear saved credentials", and renaming or editing a connection never carries old passwords to a new target.

Graphical SFTP file browser

  • "Open SFTP" now shows a two-pane local/remote file browser instead of an sftp> command line, with name/type/size columns and directories sorted first.
  • Drag and drop between panes to upload and download (dropping onto a folder targets it; directories recurse automatically); files can also be dragged in from the system file manager. Every transfer confirms direction, paths, and overwrite behavior first.
  • Remote context menu: open, new file/folder, upload file/folder, download, rename, move, delete (with confirmation), and refresh.
  • Transfers run as background jobs with progress, cancellation, and "view output"; directory listings refresh when transfers finish.
  • Each browser tab keeps one persistent background SFTP connection (SFTP v3) instead of spawning a client per operation, with bounded directory caching and listing sizes.

Remote file explorer in the sidebar

  • While an SSH/SFTP tab is active, the File Explorer sidebar switches to that host's remote directory — following the shell's OSC 7 working directory when available — with upload, download, rename, move, recursive delete, and new file/folder, all over the shared background connection. Switching back to a local tab restores the local tree immediately.

File transfers as tabs

  • Upload/download transfers each get their own tab with progress and diagnostics in the terminal, can run in parallel, support recursive directory transfer and opt-in resume, and report OpenSSH exit codes as status.

Fixes

  • Remote explorer race conditions and stale directory state after concurrent operations have been fixed.
  • Remote path normalization is now correct for POSIX hosts: backslashes are only rejected in names on Windows, since they are valid filename characters elsewhere.

Compatibility

  • No settings or data migration is required. SSH connections are stored in a new, additive Termior-ssh.json (schema v1) in the app data directory.
  • The SSH/SFTP subsystem increases application cold start by roughly 20% relative (RSS and frame rate are unchanged); the macOS cold-start CI gate was re-anchored accordingly.
  • The local machine needs ssh and sftp on PATH (the Windows OpenSSH Client works; verified against OpenSSH 9.5p2). Missing tools are reported in-tab; nothing is auto-installed.
  • Release asset names follow the in-app updater contract, including native macos-aarch64 builds.
  • Windows and macOS installers are unsigned, so SmartScreen or Gatekeeper bypass steps are normally required.

Downloads

  • Windows x64: Inno Setup installer (termior-0.1.8-windows-x86_64-setup.exe) and portable zip.
  • macOS: termior-0.1.8-macos-aarch64.dmg and .tar.gz.
  • Linux x86_64: .deb and .tar.gz.
  • Every asset ships with a matching .sha256 checksum.

Verification

  • Release workflow built and packaged successfully on Linux, macOS, and Windows.
  • main CI passes on all platforms except the documented pre-existing failures: the Core (ubuntu-latest) Test step and the Core coverage ≥ 80% job are flaky on Ubuntu runners.
  • SSH/SFTP integration coverage as recorded in docs/ssh.md: real-connection tests on Windows over the production PTY (password, MFA, encrypted-key auth, resize, byte-exact transfers, CJK/space/bracket filenames, resume, recursive transfer, exit codes, changed host-key rejection), plus GPUI interaction tests for the two-pane browser, drag-and-drop, session menus, and transfer cancellation. macOS/Linux round-trip runs are still pending.

Full comparison: v0.1.7...v0.1.8


Termior v0.1.8(中文说明)

SSH 版本:连接远程主机、通过 SFTP 浏览与传输文件,并以共享认证管理会话。

主要更新

SSH 会话

  • 保存 SSH 连接配置:主机、端口、用户、私钥与跳板机(user@bastion:2222,多个跳板逗号分隔)。主机支持 DNS、IPv4/IPv6 与现有 OpenSSH Host 别名。
  • 认证方式:OpenSSH 默认(config、agent、默认密钥)、密码 / MFA(keyboard-interactive)、指定密钥(含加密私钥)、仅 SSH Agent。
  • 统一的「SSH 身份认证」窗口处理主机指纹、密码、口令与 OTP;终端不再单独索要登录凭据。
  • 连接在标签后台保持运行,分栏打开独立会话;断开或关闭标签终止其连接,重连始终是显式操作。

共享认证与凭据存储

  • 同一目标的认证协调器只问一次:即使终端、文件浏览器与传输同时打开,主机密码或私钥口令也只输入一次。
  • 凭据可选保存到系统凭据库(Windows Credential Manager、macOS Keychain、Linux 系统密钥服务);不保存时仅保留在可清零内存中。OTP 永不保存。
  • 私钥文件始终由 OpenSSH 使用,应用不复制密钥内容;凭据不出现在配置文件、环境变量、命令行或终端输出中。
  • 支持按连接「清除已保存凭据」;重命名或编辑连接不会把旧密码带到新目标。

图形化 SFTP 文件浏览器

  • 「打开 SFTP」不再进入 sftp> 命令行,而是打开本地/远程双栏文件浏览器,含名称/类型/大小列,目录优先排列。
  • 双栏之间拖拽即可上传/下载(拖到文件夹行以该文件夹为目标;目录自动递归);也支持从系统文件管理器拖入文件上传。每次拖放先确认方向、路径与覆盖说明。
  • 远程右键菜单:打开、新建文件/文件夹、上传文件/文件夹、下载、重命名、移动、删除(需确认)与刷新。
  • 传输以后台任务运行,显示进度、可取消、可「查看输出」;传输完成后目录自动刷新。
  • 每个浏览标签仅维持一条持久后台 SFTP 连接(SFTP v3),不再为每个操作启动客户端;目录缓存与列表规模有上限。

侧栏远程文件浏览器

  • 当前标签为 SSH/SFTP 会话时,左侧 File Explorer 自动切换为该主机的远程目录(远端 shell 提供 OSC 7 时跟随其 cwd),支持上传、下载、重命名、移动、递归删除、新建文件/文件夹,复用共享后台连接。切回本地标签后本地文件树立即恢复。

独立传输标签

  • 上传/下载传输各自占用独立标签,在终端中查看进度与诊断,可并行运行,支持递归目录传输与可选断点续传,以 OpenSSH 退出码判定状态。

修复

  • 修复远程资源浏览器的竞态条件与并发操作后的过期目录状态。
  • 修正 POSIX 主机的远程路径规范化:仅在 Windows 上拒绝名称中的反斜杠(其在 POSIX 主机上是合法文件名字符)。

兼容性

  • 无需迁移设置或数据。SSH 连接保存在应用数据目录新增的 Termior-ssh.json(schema v1)。
  • SSH/SFTP 子系统使应用冷启动相对增加约 20%(RSS 与帧率不变);macOS 冷启动 CI 门禁基线已相应重锚。
  • 本机需在 PATH 中提供 ssh 与 sftp(Windows 系统自带 OpenSSH Client 可用;已针对 OpenSSH 9.5p2 验证)。缺少程序时在标签内显示诊断,不会自动安装。
  • 发布资产命名遵循应用内更新器契约,包括原生 macos-aarch64 构建。
  • Windows 与 macOS 安装包未签名,通常需要手动绕过 SmartScreen 或 Gatekeeper。

下载

  • Windows x64:Inno Setup 安装程序(termior-0.1.8-windows-x86_64-setup.exe)与便携版 zip。
  • macOS:termior-0.1.8-macos-aarch64.dmg 与 .tar.gz。
  • Linux x86_64:.deb 与 .tar.gz。
  • 每个产物均附带对应的 .sha256 校验文件。

验证

  • 发布工作流在 Linux、macOS 与 Windows 三平台均成功构建并打包。
  • main CI 在所有平台通过,仅存在已记录的预存问题:Core (ubuntu-latest) Test 步骤与 Core coverage ≥ 80% 任务在 Ubuntu runner 上不稳定。
  • SSH/SFTP 集成验证如 docs/ssh.md 所记录:Windows 本机在生产 PTY 上的真实连接测试(密码、MFA、加密私钥认证、resize、文件字节一致性、中文/空格/方括号名称、续传、递归传输、退出码、变更 host key 拒绝),以及双栏浏览器、拖放、会话菜单与传输取消的 GPUI 交互测试。macOS/Linux 的回环测试仍待在对应平台运行。

完整变更对比: v0.1.7...v0.1.8