Releases: willmove/termior
Release list
Termior v0.2.0
Termior v0.2.0
A feature-focused minor release: Termior now ships an embedded i18n runtime covering seven locales, an interactive shell picker for new terminals, and richer SSH profile metadata — together with a fix that lets Windows PowerShell load shell integration on first launch.
Highlights
Embedded i18n runtime (seven locales)
- Termior now carries an embedded i18n runtime via the new
termior-i18ncrate. Translation tables foren,zh-CN,zh-TW,ja,ko,es, anddeare compiled in as flat JSON, queried throught!/tf!/tn!macros. Hot-path lookups returnArc<str>so per-frame rendering stays allocation-free. - A parity test forces every locale's key set to match the English one and rejects empty values, so no locale can silently lose a string during future edits. BCP 47 tags are canonicalized (
zh-Hans/zh-SG→zh-CN,zh-Hant/zh-HK→zh-TW); fallback is current language → English → key name, with no panic on missing keys. - Settings → General → Language now offers a dropdown that lists each language by its native name; choosing one swaps the active locale live and persists through the existing debounced save. "Follow system" remains the default, detected via
sys-locale. - Buttons, menus, tooltips, ARIA labels, empty states, and status text are translated; logs, panic messages, protocol strings (
TERMIOR_*), font names, and element IDs deliberately stay untranslated.
Interactive shell picker for new terminals
- Settings → General → Terminal exposes the default shell: System default, a list of detected shells (including Git Bash on Windows and WSL distributions), or a manual path. The selection maps onto the new
shell_detectionandwsl_distributionsettings, persisted alongside the rest of the terminal config. - An optional "ask on new terminal" toggle (
terminal.shell_prompt) opens a one-shot picker when you click +, pressCtrl+T, or choose New Terminal from a tab menu. The picker's choice applies to that terminal only and clears or overrideswsl_distributionso the two settings can never contradict each other. - Shell discovery is now two-phase: the native shells list fills immediately, and WSL distributions are appended when
wsl.exeenumeration returns (or times out at 5s with no entries).wsl.exeis invoked with stdin null andCREATE_NO_WINDOWso a broken WSL install cannot stall or pop a console. PATH probing also skips the System32 WSLbash.exeshim, which would otherwise shadow the real bash. TerminalSettingsnow fills missing JSON fields from defaults so hand-edited settings files keep loading after the new fields are added.
Richer SSH profile metadata
- The SSH profile editor adds three fields: free-form tags (for grouping and search), notes (a longer-form description), and
sftp_remote_path(the directory the SFTP browser opens by default).PROFILES_VERSIONis bumped to 3 with per-field validation so old profiles still load and malformed values are rejected at parse time. - The Settings view now uses a reusable vertical scrollbar (extracted from
termior-ui-kit) so content that overflows the settings window scrolls instead of clipping. The SSH editor's advanced fields are collapsed by default, and the form has a defined tab order for keyboard navigation. - New SSH-related strings ship in all seven locales, and
ui-screenshot.ps1can size the settings window and seed the SSH manager for fixture captures.
Shell integration no longer blocked by PowerShell's default policy
- Windows PowerShell 5.1 ships with the
Restrictedexecution policy in user scope (the bundled installer never writesLocalMachine), sopowershell -NoProfile -NoExit -File <wrapper>failed withUnauthorizedAccessand the terminal opened showing the policy error rather than the integrated shell. PowerShell 7 hits the same wall on machines without its installer-setRemoteSigned. - The integration spawn now adds
-ExecutionPolicy Bypassfor both engines. The flag is applied at process scope only, the same approach VS Code uses, so the user's persisted policy and any other PowerShell sessions are untouched. - A new
pty_roundtripregression test spawns a realpowershell.exewith the integration wrapper and asserts that the policy error never appears and the prompt becomes interactive.
Compatibility
- i18n:
Settings.language: Option<String>is added withserdebackward compatibility. Existing settings files load unchanged; the field defaults toNone(follow system). Thetext.rsconstants module is removed in favor ofen.json— any external consumer referencing those constants should switch to the locale tables. - SSH profiles:
PROFILES_VERSIONrises from 2 to 3. Older profiles migrate automatically; new fields are validated at parse time and missing values fall back to defaults. - Shell selection:
shell_detection,wsl_distribution, andshell_promptare new fields interminal.*. They default toAuto/None/false, so existing settings files keep working. If a manual override was previously stored only inwsl_distribution, the new shell dropdown will surface it as the matching entry on first launch. - No migration required for stored themes, sessions, editor state, workspace state, or AI cache — formats are unchanged in this release.
- Termior's Windows and macOS installers are unsigned, so SmartScreen or Gatekeeper bypass steps are normally required on first launch.
Downloads
- Windows x64: Inno Setup installer (
termior-0.2.0-windows-x86_64-setup.exe) and portable zip. - macOS:
termior-0.2.0-macos-<arch>.dmgand.tar.gz(<arch>isx86_64for Intel runners,aarch64for Apple Silicon runners). - Linux x86_64:
.deband.tar.gz. - Every asset ships with a matching
.sha256checksum.
Verification
- Release workflow (run for tag v0.2.0):
Package (linux),Package (macos), andPackage (windows)all succeeded, andPublish GitHub Releaseattached every asset with its checksum sidecar. mainCI at eef3130:cargo fmt --all -- --checkandcargo clippy --workspace --all-targets --exclude termior -- -D warningsboth pass; build on all three platforms and the three Desktop jobs pass. The pre-existingCore (ubuntu-latest)Test step andCore coverage ≥ 80%timeout failures documented indocs/release-process.md§1 are unchanged.- Local pre-tag validation (
cargo fmt --check,cargo clippy,git diff --check) clean; every workspace package resolves to version0.2.0viacargo metadata.
Full comparison: v0.1.9...v0.2.0
Termior v0.2.0(中文说明)
一个聚焦功能的次版本发布:Termior 现在内置覆盖七种语言的 i18n 运行时,为新终端提供交互式 shell 选择器,并扩展了 SSH 配置档案元数据,同时修复了 Windows PowerShell 在首次启动时无法加载 shell 集成的问题。
主要更新
内嵌 i18n 运行时(七种语言)
- Termior 通过新增的
termior-i18ncrate 提供内嵌的 i18n 运行时。en、zh-CN、zh-TW、ja、ko、es、de共七种语言的翻译表以扁平 JSON 形式编译进二进制,通过t!/tf!/tn!三个宏查询;热路径返回Arc<str>,逐帧渲染不产生堆分配。 - 一项 parity 测试强制每种语言的键集与英文完全一致,并拒绝空值,确保后续改动不会让某种语言悄悄丢失字符串。BCP 47 标签经规范化合并(
zh-Hans/zh-SG→zh-CN,zh-Hant/zh-HK→zh-TW);回退链为「当前语言 → 英文 → 键名」,缺键不 panic。 - 设置 → 通用 → 语言 现在提供下拉菜单,每种语言以其母语名显示;选择后实时切换生效,并通过既有的防抖保存回调持久化。「跟随系统」仍是默认值,由
sys-locale检测。 - 按钮、菜单、tooltip、aria 标签、空状态与状态提示均进翻译表;日志、panic 信息、协议字符串(
TERMIOR_*)、字体名与元素 id 不进。
新建终端时的交互式 shell 选择器
- 设置 → 通用 → 终端 现在暴露默认 shell:系统默认、检测到的 shell 列表(含 Windows 上的 Git Bash 与 WSL 发行版),或手动指定路径。选择会写入新增的
shell_detection与wsl_distribution设置,并随其他终端配置一起持久化。 - 可选的「新建终端时询问」开关(
terminal.shell_prompt)会在点击 +、按下Ctrl+T**,或在标签页菜单中选择「新建终端」时弹出一个一次性的选择器。选择仅作用于当前终端,并清空或覆盖wsl_distribution`,避免两个设置互相矛盾。 - Shell 发现改为两阶段:本机 shell 列表立即填入,WSL 发行版在
wsl.exe枚举完成后(或 5 秒超时无结果时)追加。wsl.exe调用时 stdin 设为 null 并启用CREATE_NO_WINDOW,损坏的 WSL 安装不会阻塞界面或弹出控制台窗口。PATH 探测也会跳过 System32 中的 WSLbash.exeshim,避免它遮蔽真正的 bash。 TerminalSettings现在会用默认值补齐缺失的 JSON 字段,使手动编辑过的设置文件在新增字段后仍能正常加载。
更丰富的 SSH 配置档案元数据
- SSH 配置档案编辑器新增三个字段:自由格式的 标签(用于分组与搜索)、备注(较长描述)以及
sftp_remote_path(SFTP 浏览器默认打开的目录)。PROFILES_VERSION升级到 3,并对每个字段做校验,旧档案仍可加载,格式不合法的值在解析时被拒绝。 - 设置视图现在使用从
termior-ui-kit抽离出的可复用垂直滚动条,超出设置窗口的内容会滚动而不是被裁剪。SSH 编辑器的高级字段默认折叠,并且表单定义了键盘 tab 顺序以方便键盘导航。 - 与 SSH 相关的新字符串随所有七种语言同步发布;
ui-screenshot.ps1现在可以调整设置窗口尺寸并为 SSH 管理器播种 fixture 以便截图。
PowerShell 默认执行策略不再阻塞 shell 集成
- Windows PowerShell 5.1 在用户作用域的默认策略为
Restricted(官方安装包不会写入LocalMachine),因此powershell -NoProfile -NoExit -File <wrapper>会以UnauthorizedAccess失败,终端启动后显示策略错误而非集成 shell。PowerShell 7 在没有安装包写入RemoteSigned的机器上也会遇到同样的问题。 - 集成脚本的子进程现在为两种 PowerShell 都加上
-ExecutionPolicy Bypass。该参数仅作用于子进程范围,与 VS Code 的做法一致,不影响用户持久化的策略以及其他 PowerShell 会话。 - 新增
pty_roundtrip回归测试,使用真实powershell.exe启动集成包装脚本,并断言策略错误永不出现、提示符最终进入交互状态。
兼容性
- i18n:新增
Settings.language: Option<String>,具备 serde 向后兼容能力。既有设置文件无需改动即可加载;该字段默认为None(跟随系统)。原text.rs常量模块已删除,文案统一迁入en.json,任何外部依赖该常量的消费者应改用语言包。 - SSH 配置档案:
PROFILES_VERSION由 2 升至 3。旧档案自动迁移;新字段在解析时校验,缺失值回退到默认值。 - Shell 选择:
shell_detection、wsl_distribution与shell_prompt为terminal.*下新增字段。默认值为Auto/None/false,既有设置文件保持兼容。若此前的手动覆盖仅保存在wsl_distribution中,首次启动时新下拉菜单会以对应条目呈现。 - 主题、会话、编辑器状态、工作区状态、AI 缓存无需迁移——本版本未改动这些数据的格式。
- Termior 的 Windows 与 macOS 安装包未签名,首次启动通常需要手动绕过 SmartScreen 或 Gatekeeper。
下载
- Windows x64:Inno Setup 安装程序(
termior-0.2.0-windows-x86_64-setup.exe)与便携版 zip。 - macOS:
termior-0.2.0-macos-<arch>.dmg与.tar.gz(<arch>在 Intel runner 上为x86_64,Apple Silicon runner 上为aarch64)。 - Linux x86_64:
.deb与.tar.gz。 - 每个产物均附带对应的
.sha256校验文件。
验证
- 发布工作流(v0.2.0 标签运行):
Package (linux)、Package (macos)与Package (windows)全部成功,Publish GitHub Release已附带每个产物及其校验文件。 mainCI(eef3130):cargo fmt --all -- --check与cargo clippy --workspace --all-targets --exclude termior -- -D warnings均通过;三个平台构建与三个 Desktop 任务全部通过。docs/release-process.md§1 中记录的Core (ubuntu-latest)Test ...
Termior v0.1.9
Termior v0.1.9
This release organizes SSH connections into groups and polishes terminal interaction: context-menu keybinding hints, a select-all shortcut, and a color-coded remote session status dot.
Highlights
SSH connection groups
- SSH connections can now be organized into named groups in the sidebar. Ungrouped connections are listed first, followed by collapsible group headers.
- Right-click menus on the sidebar support moving connections into a group, and renaming or deleting groups. The connection manager gains a Group field; typing a new group name there creates the group on save.
- Existing connections migrate automatically — no manual action required (see Compatibility).
Terminal usability
- Terminal context menu items now show their keybinding hints.
- Select all in the terminal with
Ctrl+Shift+A(Windows/Linux) orCmd+A(macOS). - The remote session status indicator is now a color-coded dot — green while the session is running or authenticating, gray when idle or finished normally, red on failure — with the full state description shown as a hover tooltip.
Documentation
- The README was restructured with parallel English and Simplified Chinese sections.
Fixes
- The license audit job on
mainis green again: the permissive 0BSD license (pulled in transitively by the SSH stack viainterprocess) is now explicitly allowed indeny.toml.
Compatibility
- The SSH settings file (
Termior-ssh.json) moves to schema v2 with groups as first-class entities. v1 profiles are migrated to v2 automatically on load; no manual migration is needed. - Group names are validated: 1–64 bytes, no control characters, no leading/trailing whitespace.
- Termior's Windows and macOS installers are unsigned, so SmartScreen or Gatekeeper bypass steps are normally required.
Downloads
- Windows x64: Inno Setup installer (
termior-0.1.9-windows-x86_64-setup.exe) and portable zip. - macOS (Apple Silicon):
termior-0.1.9-macos-aarch64.dmgand.tar.gz. - Linux x86_64:
.deband.tar.gz. - Every asset ships with a matching
.sha256checksum.
Verification
- Release workflow build/packaging succeeded on all three platforms (Linux tar.gz + deb, macOS tar.gz + dmg, Windows zip + setup.exe) and the publish job attached all artifacts with checksums.
mainCI: build, clippy, and Desktop jobs pass on all platforms; the UbuntuCoretest and coverage jobs retain their known pre-existing timeout failures, unchanged from previous releases. Thecargo-denylicense failure present since 2026-09-17 was fixed in this release.
Full comparison: v0.1.8...v0.1.9
Termior v0.1.9(中文说明)
本版本为 SSH 连接引入分组管理,并改进终端交互体验:右键菜单快捷键提示、全选快捷键,以及以颜色圆点呈现的远程会话状态。
主要更新
SSH 连接分组
- SSH 连接现在可以在侧边栏中按命名分组管理。未分组的连接排在最前,其后是可折叠的分组标题。
- 侧边栏右键菜单支持将连接移入分组,以及对分组重命名、删除。连接管理器新增“分组”字段,保存时输入新分组名即可创建分组。
- 现有连接配置自动迁移,无需手动操作(见“兼容性”)。
终端体验改进
- 终端右键菜单项现在显示对应的快捷键提示。
- 新增终端全选快捷键:Windows/Linux 下
Ctrl+Shift+A,macOS 下Cmd+A。 - 远程会话状态指示改为颜色圆点——绿色表示会话运行中或认证中,灰色表示空闲或已正常结束,红色表示失败——完整状态说明悬停即可查看。
文档
- README 重构为英文与简体中文对照的双语结构。
修复
main分支的许可证审计任务恢复绿色:SSH 依赖链经interprocess间接引入的宽松许可证 0BSD 现已在deny.toml中显式允许。
兼容性
- SSH 配置文件(
Termior-ssh.json) 升级到 v2 模式,分组成为一等实体。v1 配置在加载时自动迁移到 v2,无需手动迁移。 - 分组名有校验规则:1–64 字节,不含控制字符,首尾不能是空白字符。
- Termior 的 Windows 与 macOS 安装包未签名,通常需要手动绕过 SmartScreen 或 Gatekeeper。
下载
- Windows x64:Inno Setup 安装程序(
termior-0.1.9-windows-x86_64-setup.exe)与便携版 zip。 - macOS(Apple Silicon):
termior-0.1.9-macos-aarch64.dmg与.tar.gz。 - Linux x86_64:
.deb与.tar.gz。 - 每个产物均附带对应的
.sha256校验文件。
验证
- 发布工作流在三个平台构建与打包全部成功(Linux tar.gz + deb,macOS tar.gz + dmg,Windows zip + setup.exe),发布任务已附带全部产物及校验文件。
mainCI:所有平台的构建、clippy 与 Desktop 任务通过;UbuntuCore测试与覆盖率任务保留已知的预存超时失败,与之前版本一致。2026-09-17 起出现的cargo-deny许可证失败已在本版本修复。
完整变更对比: v0.1.8...v0.1.9
Termior v0.1.8
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 OpenSSHHostaliases. - 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
sshandsftpon 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-aarch64builds. - 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.dmgand.tar.gz. - Linux x86_64:
.deband.tar.gz. - Every asset ships with a matching
.sha256checksum.
Verification
- Release workflow built and packaged successfully on Linux, macOS, and Windows.
mainCI passes on all platforms except the documented pre-existing failures: theCore (ubuntu-latest)Test step and theCore 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 与现有 OpenSSHHost别名。 - 认证方式: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 三平台均成功构建并打包。
mainCI 在所有平台通过,仅存在已记录的预存问题: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
Termior v0.1.7
Termior v0.1.7
This release adds verified in-app updates, streamlines model and agent setup, and gives terminal workspaces more flexible Agent panel controls.
Highlights
Verified in-app updates
- Termior can check stable GitHub Releases automatically, download the installer for the current operating system and CPU architecture, and verify its SHA-256 checksum before offering installation.
- Settings → About now includes the automatic-update preference, manual checks, download status, release notes, and the handoff to the system installer.
- The application never closes active terminals or restarts itself during an update; installation remains an explicit user action.
Clearer model and agent setup
- Model settings now follow a guided provider, model, credential, test, and usage flow. Unsaved API-key drafts stay isolated per provider, and connection tests cannot report against the wrong profile.
- Custom agents can be selected by name, configured with readable tool checkboxes and presets, and removed through an inline confirmation. Model and agent fields support Tab and Shift+Tab navigation.
More flexible terminal workspaces
- A terminal tab can hide all of its terminal panes without stopping their PTY sessions, letting the Composer fill the workspace while commands continue running.
- A single status-bar menu now controls Agent visibility and bottom/right docking, and the per-tab terminal visibility state is restored with the workspace.
Packaging and licensing
- Release assets now use the actual Rust target architecture in their names, including native Apple Silicon builds, and every installer is paired with an exact-name checksum file for the updater.
- The TLS stack has been updated to
rustls 0.23.45, resolvingRUSTSEC-2026-0285before publication. - Termior is now distributed under the MIT License. The Apache 2.0 text remains bundled for the vendored
gpui_windowscomponent.
Compatibility
- No manual settings or workspace migration is required. Existing data gains safe defaults for automatic updates and terminal visibility.
- Windows and macOS installers are unsigned, so Windows SmartScreen or macOS Gatekeeper may require a manual confirmation.
- Windows automatic installation targets the x86_64 Inno Setup package; macOS uses the matching DMG; Linux automatic installation uses the matching DEB. Portable builds and unsupported package formats can update from the release page.
Downloads
- Windows x64: Inno Setup installer and portable zip.
- macOS: native architecture DMG and tar.gz.
- Linux x86_64: DEB and tar.gz.
- Every package includes a matching
.sha256checksum.
Verification
- The release workflow built and packaged Windows, macOS, and Linux artifacts successfully.
- Local release checks passed formatting, workspace Clippy with warnings denied, update and settings tests, and the desktop application compile check.
Full comparison: v0.1.6...v0.1.7
Termior v0.1.7(中文说明)
此版本加入经过校验的应用内更新,简化模型与自定义 Agent 配置,并让终端工作区可以更灵活地使用 Agent 面板。
主要更新
经过校验的应用内更新
- Termior 可自动检查 GitHub 稳定版,按当前操作系统和 CPU 架构下载安装包,并在提示安装前核验 SHA-256。
- 设置 → About 现已提供自动更新开关、手动检查、下载状态、发行说明和启动系统安装程序的入口。
- 更新过程中不会自动关闭仍在运行的终端,也不会自行重启应用;安装始终由用户明确触发。
更清晰的模型与 Agent 配置
- 模型设置按服务商、模型、凭据、连接测试和用途逐步组织。未保存的 API Key 草稿按服务商隔离,连接测试结果不会错误显示到其他配置。
- 自定义 Agent 可按名称选择,并通过可读的工具复选项和预设进行配置;删除操作加入界面内确认。模型和 Agent 输入字段支持 Tab 与 Shift+Tab 切换。
更灵活的终端工作区
- 终端标签页可以隐藏全部终端分栏而不中止 PTY 会话,让 Composer 占满工作区,同时命令继续运行。
- 状态栏中的单一菜单统一控制 Agent 的显示、隐藏以及底部/右侧停靠;每个标签页的终端显示状态会随工作区恢复。
打包与许可
- 发布产物名称现在使用真实 Rust 目标架构,包括 Apple Silicon 原生构建;每个安装包都有与文件名严格对应的校验文件供更新器使用。
- TLS 栈已升级到
rustls 0.23.45,在发布前修复RUSTSEC-2026-0285。 - Termior 现以 MIT License 发布;vendored
gpui_windows组件仍随附 Apache 2.0 许可文本。
兼容性
- 无需手动迁移设置或工作区数据;旧数据会为自动更新和终端显示状态取得安全默认值。
- Windows 与 macOS 安装包尚未签名,可能需要手动确认 Windows SmartScreen 或 macOS Gatekeeper 提示。
- Windows 自动安装使用 x86_64 Inno Setup 包,macOS 使用匹配架构的 DMG,Linux 使用匹配架构的 DEB。便携版或不支持该包格式的系统可从发行页面手动更新。
下载
- Windows x64:Inno Setup 安装程序与便携版 zip。
- macOS:原生架构 DMG 与 tar.gz。
- Linux x86_64:DEB 与 tar.gz。
- 每个软件包均附带对应的
.sha256校验文件。
验证
- 发布工作流已成功构建并打包 Windows、macOS 和 Linux 产物。
- 本地发布检查已通过格式、工作区 Clippy(警告视为错误)、更新器与设置测试,以及桌面应用编译检查。
完整变更对比: v0.1.6...v0.1.7
Termior v0.1.6
Termior v0.1.6
Terminal usability and tab bar polish: right-click actions in the terminal and refined tab visuals.
Highlights
Terminal context menu
- Right-clicking inside a terminal pane now opens the pane context menu with a terminal section: Copy, Paste, Select All, and Find….
- Copy is enabled only when text is currently selected; Select All selects the entire scrollback buffer; Find opens the in-terminal search bar.
- When a mouse-aware program (e.g. vim, htop) has captured the mouse, right-click is delivered to that program instead of opening the menu — hold Shift while right-clicking to open the menu. Previously the click leaked out and opened the pane menu on top of the program.
Tab bar refinement
- The active tab now renders with rounded top corners and an accent strip inset from the tab edges.
- Divider lines are skipped next to the selected tab, removing the one-pixel notch where a divider met the active tab.
Compatibility
- No settings or persisted-data migration is required.
- Windows and macOS installers are unsigned, so SmartScreen or Gatekeeper bypass steps are normally required.
Downloads
- Windows x64: Inno Setup installer (
termior-0.1.6-windows-x86_64-setup.exe) and portable zip. - macOS:
termior-0.1.6-macos-x86_64.dmgand.tar.gz. - Linux x86_64:
.deband.tar.gz. - Every asset ships with a matching
.sha256checksum.
Verification
- Release workflow built and packaged successfully on Linux, macOS, and Windows.
mainCI passes on all platforms except the documented pre-existing failures: theCore (ubuntu-latest)Test step and theCore coverage ≥ 80%job time out on Ubuntu runners.
Full comparison: v0.1.5...v0.1.6
Termior v0.1.6(中文说明)
终端易用性与标签栏优化:终端右键菜单与更精致的标签视觉效果。
主要更新
终端右键菜单
- 在终端面板内点击右键,现在会在面板上下文菜单顶部显示终端操作区:复制、粘贴、全选、查找…。
- 仅在当前有选中文本时「复制」可用;「全选」会选中整个回滚缓冲区;「查找」打开终端内搜索栏。
- 当鼠标捕获程序(如 vim、htop)接管鼠标时,右键会交给该程序处理而不再弹出菜单——按住 Shift 右键即可打开菜单。此前右键事件会外泄,在程序之上错误地弹出面板菜单。
标签栏优化
- 激活标签现在以顶部圆角呈现,并配有与边缘留出间距的高亮指示条。
- 分隔线在选中标签两侧不再绘制,消除了分隔线与激活标签相接处的一像素缺口。
兼容性
- 无需迁移设置或持久化数据。
- Windows 与 macOS 安装包未签名,通常需要手动绕过 SmartScreen 或 Gatekeeper。
下载
- Windows x64:Inno Setup 安装程序(
termior-0.1.6-windows-x86_64-setup.exe)与便携版 zip。 - macOS:
termior-0.1.6-macos-x86_64.dmg与.tar.gz。 - Linux x86_64:
.deb与.tar.gz。 - 每个产物均附带对应的
.sha256校验文件。
验证
- 发布工作流在 Linux、macOS 与 Windows 三平台均成功构建并打包。
mainCI 在所有平台通过,仅存在已记录的预存失败:Core (ubuntu-latest)Test 步骤与Core coverage ≥ 80%任务在 Ubuntu runner 上超时。
完整变更对比: v0.1.5...v0.1.6
Termior v0.1.5
Termior v0.1.5
An input-experience fix release: IME candidate windows now anchor to the caret in the terminal and every text input, and keyboard focus no longer gets lost when switching or closing tabs.
Highlights
IME candidate windows follow the caret
- On Windows and Linux, typing with an input method editor (for example Chinese pinyin) previously popped the composition and candidate window at a default screen position — the top-left corner of the window with Weasel (小狼毫), or the bottom-right with Microsoft Pinyin — far away from the text being typed.
- The terminal now anchors the IME composition and candidate window at the terminal cursor cell, matching where the preedit text is drawn. The anchor keeps tracking the cursor when the preedit moves or the window is moved or resized.
- The same fix is applied to all custom text inputs: the AI composer, the editor, the settings fields, and the git history filter. Candidate windows now appear right at the caret in each of them.
Fixes
- Fixed keyboard focus loss after switching tabs or closing a tab: the terminal no longer ignores keystrokes until you click inside it again.
Compatibility
- No migration required: settings and persisted data formats are unchanged in this release.
- Termior's Windows and macOS installers are unsigned, so SmartScreen or Gatekeeper bypass steps are normally required on first launch.
Downloads
- Windows x64: Inno Setup installer (
termior-0.1.5-windows-x86_64-setup.exe) and portable zip. - macOS:
termior-0.1.5-macos-x86_64.dmgand.tar.gz. - Linux x86_64:
.deband.tar.gz. - Every asset ships with a matching
.sha256checksum.
Verification
- Release workflow (run for tag v0.1.5):
Package (linux)(tar.gz + .deb + checksums),Package (macos)(tar.gz + .dmg + checksums), andPackage (windows)(zip + Inno Setup installer + checksums) all succeeded, andPublish GitHub Releaseattached all assets. mainCI at c32f1bf: fmt/clippy/build and all three Desktop jobs pass; theCore (ubuntu-latest)Test step and theCore coverage ≥ 80%job remain red due to the known pre-existing Ubuntu runner timeouts, documented indocs/release-process.md.
Full comparison: v0.1.4...v0.1.5
Termior v0.1.5(中文说明)
一次聚焦输入体验的修复版本:输入法候选窗现在会锚定在终端光标和所有文本输入框的插入符处,切换或关闭标签页后键盘焦点不再丢失。
主要更新
输入法候选窗跟随插入符
- 在 Windows 与 Linux 上,使用输入法(例如中文拼音)输入时,组字窗口和候选窗之前总是弹出到默认位置——小狼毫(Weasel)在窗口左上角、微软拼音在右下角——远离正在输入的文本。
- 终端现在将 IME 组字窗口与候选窗锚定在终端光标所在单元格,与预编辑文本的绘制位置一致。预编辑位置变化或窗口移动、缩放后,锚点仍会持续跟随光标。
- 相同的修复覆盖了所有自定义文本输入框:AI 作曲器、编辑器、设置页各字段以及 Git 历史过滤框。候选窗现在都会出现在各自的插入符位置。
修复
- 修复切换标签页或关闭标签页后键盘焦点丢失的问题:终端不再需要手动点击一下才能接收按键输入。
兼容性
- 无需迁移:本版本未更改设置与持久化数据的格式。
- Termior 的 Windows 与 macOS 安装包未签名,首次启动通常需要手动绕过 SmartScreen 或 Gatekeeper。
下载
- Windows x64:Inno Setup 安装程序(
termior-0.1.5-windows-x86_64-setup.exe)与便携版 zip。 - macOS:
termior-0.1.5-macos-x86_64.dmg与.tar.gz。 - Linux x86_64:
.deb与.tar.gz。 - 每个产物均附带对应的
.sha256校验文件。
验证
- 发布工作流(v0.1.5 标签运行):
Package (linux)(tar.gz + .deb + 校验文件)、Package (macos)(tar.gz + .dmg + 校验文件)与Package (windows)(zip + Inno Setup 安装程序 + 校验文件)全部成功,Publish GitHub Release已附带全部产物。 mainCI(c32f1bf):fmt/clippy/构建及三个 Desktop 任务全部通过;Core (ubuntu-latest)的 Test 步骤与Core coverage ≥ 80%任务仍因已知的 Ubuntu runner 超时预存失败而变红,详见docs/release-process.md。
完整变更对比: v0.1.4...v0.1.5
Termior v0.1.4
Termior v0.1.4
This release makes the app-drawn window controls and window resizing actually work on Linux, and
is otherwise unchanged from v0.1.3.
Highlights
Linux window controls and resizing
- On Linux, the close, minimize, and maximize buttons drawn by the app now work. In previous
versions every window control on Linux was inert — the close button could not close the app,
and minimize/maximize, titlebar dragging, and edge resizing all did nothing, because the
pinned gpui revision only wired the window-control hit-test on Windows. - The window can now be moved by dragging the titlebar (double-click maximizes), and resized by
dragging any edge or corner through a 10 px resize band with resize cursor hints. - The workspace is wrapped in a client-side decoration frame with border, rounded corners, and a
shadow. When an edge is tiled or the window is maximized, the resize band is dropped and
resizing is disabled for that edge. - The Linux window background becomes transparent so the decoration frame composites correctly
against the desktop. - Windows is unaffected: it keeps the native
WM_NCHITTESTpath, so Snap Layouts and the
existing close behavior stay exactly as before.
Fixes
- None beyond the Linux window-management fix above; this release contains no other changes.
Compatibility
- No migration required: settings and persisted data formats are unchanged in this release.
- Linux now relies on client-side decorations (the app draws and handles its own titlebar
controls); behavior on Windows is unchanged. - Termior's Windows and macOS installers are unsigned, so SmartScreen or Gatekeeper bypass steps
are normally required when installing.
Downloads
- Windows x64:
termior-0.1.4-windows-x86_64-setup.exe(Inno Setup installer) and portable
termior-0.1.4-windows-x86_64.zip. - macOS:
termior-0.1.4-macos-x86_64.dmgandtermior-0.1.4-macos-x86_64.tar.gz. - Linux x86_64:
termior-0.1.4-linux-x86_64.debandtermior-0.1.4-linux-x86_64.tar.gz. - Every asset ships with a matching
.sha256checksum.
Verification
- The Release workflow built and packaged Termior on windows-latest, macos-latest, and
ubuntu-latest with-D warningsand binary/archive size gates. mainCI for the included commit: core fmt/clippy/build/test pass on Windows and macOS; the
three Desktop jobs (build, clippy, tests, release binary size gate) pass on all platforms.
Known pre-existing failures onmain, unrelated to this release and present since before
v0.1.3: theCore (ubuntu-latest)Test step and the coverage job time out on Ubuntu runners.
Full comparison: v0.1.3...v0.1.4
Termior v0.1.4(中文说明)
本版本让 Linux 上由应用自绘的窗口控制按钮与窗口缩放真正可用,其余内容与 v0.1.3 相同。
主要更新
Linux 窗口控制与缩放
- 在 Linux 上,应用自绘的关闭、最小化、最大化按钮现在可以正常工作。此前的版本中
Linux 上的所有窗口控制都是无效的——关闭按钮无法关闭应用,最小化/最大化、标题栏拖拽
和边缘缩放均无响应,原因是所固定的 gpui 版本只在 Windows 上接通了窗口控制的命中
测试。 - 现在可以通过拖拽标题栏移动窗口(双击最大化),并可以通过拖动任意边缘或角落进行
缩放(10 像素缩放热区并带缩放光标提示)。 - 工作区被包裹在客户端装饰(client-side decoration)边框中,带边框、圆角和阴影。当
某条边被平铺(tiled)或窗口最大化时,该边不再显示热区并禁用缩放。 - Linux 窗口背景变为透明,使装饰边框能够与桌面正确合成。
- Windows 不受影响:继续走原生
WM_NCHITTEST路径,Snap Layouts 和既有的关闭行为保持
不变。
修复
- 除上述 Linux 窗口管理修复外无其他修复;本版本不包含其他变更。
兼容性
- 无需迁移:本版本未改变设置与持久化数据格式。
- Linux 现在依赖客户端装饰(由应用自行绘制并处理标题栏控制);Windows 行为不变。
- Termior 的 Windows 与 macOS 安装包未签名,安装时通常需要手动绕过 SmartScreen 或
Gatekeeper。
下载
- Windows x64:
termior-0.1.4-windows-x86_64-setup.exe(Inno Setup 安装程序)与便携版
termior-0.1.4-windows-x86_64.zip。 - macOS:
termior-0.1.4-macos-x86_64.dmg与termior-0.1.4-macos-x86_64.tar.gz。 - Linux x86_64:
termior-0.1.4-linux-x86_64.deb与termior-0.1.4-linux-x86_64.tar.gz。 - 每个产物均附带对应的
.sha256校验文件。
验证
- 发布工作流在 windows-latest、macos-latest、ubuntu-latest 三个平台以
-D warnings完成构建与打包,并通过二进制/压缩包体积门禁。 - 所含提交在
main上的 CI:Windows 与 macOS 的核心检查(fmt/clippy/build/test)通过;
三个 Desktop 任务(构建、clippy、测试、release 二进制体积门禁)在所有平台通过。
main上已知的预存失败(与本版本无关,v0.1.3 之前即存在):Core (ubuntu-latest)的
Test 步骤与覆盖率任务在 Ubuntu 运行器上超时。
完整变更对比: v0.1.3...v0.1.4
v0.1.3
Full Changelog: v0.1.2...v0.1.3
Full Changelog: v0.1.2...v0.1.3
v0.1.2
What's Changed
Full Changelog: v0.1.1...v0.1.2