Populars: Dades actualitzades el 26 d’octubre del 2026

Categories

Internet1.355
Comunicació321
Àudio i vídeo898
Gràfics i disseny539
Ofimàtica i productivitat1.120
Eines per a desenvolupadors3.132
Eines d’IA527
Seguretat i privadesa385
Eines del sistema3.113
Jocs523
Educació i ciència239
Xarxa i TI284

Mini-Term: baixar versions anteriors

为 AI 时代打造的桌面终端管理器

Aquí hi ha 94 versions de Mini-Term, des de 21 d’abril del 2026 fins a l’actual, 1.13.18. Cadascuna enllaça amb els instal·ladors del mateix desenvolupador.

2026: 94 94 26
VersióDataMidaFitxers
1.13.18Darrera versió 21 d’octubre del 2026 — 64 bits EXE (NSIS)
Notes de la versió
本版汇总 v1.13.16-pre 与 v1.13.17-pre:AI agent 用的 SSH 工具(mt-ssh-cli)一批稳定性与安全修复,并修复了文字区域被误拖选的问题。
更新内容
修复
- 点完标题栏或菜单后,划过文字会被误选中 —— 打开会话详情或 Markdown 预览后,单击标题栏(或点了右键菜单里的一项),鼠标再划过文字,就会从顶部一路选中到光标处,直到下一次点击才消失。现在不会了;在文字里按住拖选、双击选词、复制照常。
- 在 $(…)、管道或 WSL 里调用 SSH 工具不再卡住 —— 首次调用拉起后台进程时不再带走调用方的输出管道,命令结束即返回;后台进程也不再锁住项目目录。
- 连不上的服务器不再无限等待 —— 建连整段最多 20 秒,--timeout 覆盖整个调用;超时报错写明卡在哪一步(DNS / TCP / 握手 / 认证)。
- 同一连接上的多个命令可以并发 —— 以前一个长命令或大文件传输会让同一连接上的其他调用全部排队;网络切换后失效的连接会自动淘汰重连。
- 读 stdin 的命令不再挂到超时;远程命令被信号终止时退出码为 128+n 并说明是哪个信号;--cwd 带空格或特殊字符的目录不再出错。
- 大文件下载更快 —— 多个读请求同时在途,高延迟线路上不再因逐块串行读而超时。
- 上传不再改坏远端文件 —— 保留原文件的权限与属主,软链保持软链;替换中途失败或调用超时都不会丢失原文件。
- Git Bash 下的远端路径 —— Git Bash 会把 /var/log/x 这类参数改写成 Windows 路径;SKILL.md 现在教 agent 把远端命令整条单引号传、远端路径写成 //var/log/x,CLI 发现被改写的参数会直接报错提示,不再执行错误的命令。
- 报错更具体 —— 令牌对不上、配置文件不存在等情况分别给出原因与处理办法,不再一律显示「invalid project token」。
体验
- SSH 认证可以回落 —— 依次尝试连接里配置的私钥、ssh-agent 里的 key、已存密码,前一种不行自动换下一种。~/.ssh 里仍然只读写 known_hosts,不读 ~/.ssh/config,也不自动尝试默认私钥。
- 认证失败后自动冷却 —— 同一连接 30 秒内不再重试,并发请求也只会尝试一次,避免把本机 IP 送进 fail2ban。
- 只支持老算法的服务器也能连上;known_hosts 支持通配主机与 @revoked 吊销标记。
- AI 工具用的 SSH 后台进程会在升级后自动换成新版本,不需要手动重启。
安全性
- SSH 工具只与当前用户的后台进程通信,防止其他用户抢占端点冒充;以管理员身份运行时不再使用共享的后台进程。
- 上传遇到共享目录(如 /tmp)里他人放置的软链时拒绝跟随,防止被引去覆盖别人的文件。
- 生成的 SKILL.md 只预批 list / exec,上传下载每次都需要确认;数据目录护栏识别更多路径别名;审计日志脱敏覆盖更多凭据写法。
- 开发实例(设置了 MT_APP_DATA_DIR)不再覆盖或删除装机版生成的 SKILL.md;主程序启动时自动更新项目里过期的 SKILL.md。
1.13.15 11 d’octubre del 2026 — 64 bits EXE (NSIS)
Notes de la versió
更新内容
⚠️ 自托管中转需要同步更新:本版给对话镜像加了工具调用信息,旧版中转会丢掉新字段,它自带的旧手机页面还会把每次工具调用显示成一个普通的 AI 回复气泡。请先按部署文档用本版源码重建中转,再升级桌面端。中转重启后手机需要重新扫码配对一次。
新功能
- 手机端工具活动:AI 连续调用工具时,镜像里折叠成一条「工具调用 N 次 · 最近:…」,点开逐条看工具名和目标:项目里的文件显示相对路径,命令只显示第一行。
- 手机端工作状态:镜像底部实时显示「AI 工作中」或「等你处理」;有待作答的提问时,提示你去回答上方的提问。
- 手机端 Markdown 增强:AI 回复支持表格、删除线、任务列表和裸链接;宽表格、长代码行在气泡内横向滚动;代码块顶栏一键复制。
- 手机端阅读体验:很长的输入自动折叠,可展开、收起;用户打断显示为居中的「已打断」提示;上滑加载更早消息时,阅读位置不跳。
修复
- 从手机发送的长指令(约百字以上)只写进了 Claude 的输入框、没有提交,回执却显示成功。现在长指令和多行指令都能正常提交。
- 手机镜像和桌面会话面板会把 Claude 写进会话记录的系统注入当成用户输入显示出来,包括 skill 正文、本地命令输出、后台任务通知等。现在这些都滤掉了,斜杠命令显示成 /xxx。
- 新版 Claude Code 的 /context、/usage 这类本地命令,在手机镜像和桌面会话面板里看不到。
- 从手机发起的新会话里,第一条手机指令被标成「桌面输入」。
1.13.14 10 d’octubre del 2026 — 64 bits EXE (NSIS)
Notes de la versió
更新内容
新功能
- PDF 预览:文件树里点开本地 .pdf,直接在页签里查看。用的是系统 WebView 自带的阅读器(Windows 上是 Edge 阅读器),书签目录、页码跳转、搜索、缩放都能用。文件在磁盘上被改写后自动重新加载,工具栏可一键「使用默认工具打开」。文档里的外链先确认再交给浏览器,指向本地文件的链接作为新页签打开。Linux、远程项目里的 PDF,或系统缺少 WebView 时,显示打开 / 下载提示。
- Markdown 预览目录栏:文档有两条以上标题时(写在列表、引用里的不算),预览左侧显示目录,按层级缩进,过长的标题截断、悬停看全文。点一条跳到对应章节,当前章节随滚动高亮,标题很多时高亮项会自动滚进可视范围。工具栏「目录」按钮控制开关,所有页签共用,重启后保持。用到脚注或引用式链接的文档暂不显示目录。
修复
- 拖动分隔条调整终端宽度后,Claude Code 的输出在回滚区里重复出现多份(慢慢拖窄再拖回时可多达二十余份)。
- Windows 上缩窄终端(拖分隔条、拖窗口边、一次缩小一大截)或一次减少很多行后,PowerShell 的下一条输入画到提示符的上一行、输出盖掉提示符。
1.13.13 4 d’octubre del 2026 — 64 bits EXE (NSIS)
Notes de la versió
更新内容
新功能
- 状态灯第五态「等你处理」:AI 停下来等你批权限、填表单,或这一轮因 API 错误中断时,状态灯显示为实心圆加叹号(深色主题橙色、浅色主题暗金色),静止不闪。此前 Claude 等授权时显示成「已完成」的绿勾、Codex 显示成「运行中」的转圈,看不出是在等你。页签、折叠标题条、悬停预览、项目行、项目切换器、面板切换条、边栏全局徽标与会话列表都按这一档显示。
- 页签绿点改为「做完了还没看」:AI 在你没看着的页签里做完后,关闭按钮的位置留一颗绿点,切到该页签才消失;切回窗口不再一次性清空。绿点与关闭按钮共用一个位置(鼠标移上去变回 ×),不会挤动其它页签。
- 使用统计自定义范围精确到时分秒:起止框可填 2026-10-02、2026-10-02 14:30 或 2026-10-02 14:30:15;只填日期时与以前一致(起点当天 0 点、截止当天 23:59:59)。用日历换日期会保留已填的时间;起止在同一天时趋势图按小时显示。
- SSH 连接一键复制:连接卡片新增「复制」,副本命名为「原名 (N)」并排在原连接后面,主机、端口、用户、私钥、分组和已保存的密码都会带过去。
- 「关联 SSH」支持整组关联:勾选分组前的方框即可关联整组,之后加入该组的连接自动生效、移出的自动取消;分组改名关联不变,解散或并入其他组后原来的连接逐条保留关联。
修复
- macOS 界面文字全部不显示(#82):自 v1.13.6 起,macOS 包打开后菜单、按钮、设置项、终端内容等文字都不绘制,只剩图标和边框。原因是构建时漏开了字体渲染组件,Apple Silicon 与 Intel 包都受影响;Windows 与 Linux 不受影响。
- 终端进程退出或没能启动(shell 路径失效、远程连接预检失败等)时,红叉一直保留在页签与项目行上,不会过几秒被改回空闲或完成;SSH 远程终端断线也不再误报一次「AI 完成」。
- 未启用 Hook(默认即未启用)或在 WSL / SSH 里跑 AI 时,AI 空闲期的零星界面刷新、启动时的欢迎画面、被 Esc / Ctrl+C 打断的回合都不再误报「任务完成」。
- 拒绝 Claude 的权限请求、这一轮随即结束时,完成提醒照常触发;Claude 完成约一分钟后的闲置提醒不再把会话从「跳到下一个待处理会话」里撤掉。
- 同一项目里有异常退出的终端时,边栏全局徽标不再盖住另一个正在跑的 AI;AI 会话结束或断线重连后,页签副标题不再残留旧标题。
- 背景图皮肤下,命令库、AI 完成通知、书签列表等浮层不再半透明透出底下的终端文字。
性能
- Claude Code 工作时每秒约 4 次改写窗口标题,这些变化在页签上本就不显示,此前却每次触发整窗重绘(窗口在后台也照样重绘),现在只记录不重绘。
1.13.10 25 de setembre del 2026 — 64 bits EXE (NSIS)
Notes de la versió
更新内容
新功能
- HTML 真预览:文件树打开本地 .html,预览态改用系统 WebView(Windows 为 WebView2)渲染,CSS 与脚本照跑,效果与浏览器一致。相对路径的样式、脚本、图片、字体按项目目录加载;在源码里改完不保存,切回预览就能看到效果。页面里的外链先弹确认再交给系统浏览器,链到本地文件的作为新页签打开。右键菜单、弹窗、通知、右侧抽屉照常盖在网页之上并且点得到;切页签或切到源码时网页隐藏,切回来页面状态还在。
- 页面脚本读不到项目里的其它文件(.env、配置、源码等),比直接用浏览器打开本地文件还收紧一档;下载一律拒绝。WebView2 运行时缺失、或设了环境变量 MT_DISABLE_HTML_WEBVIEW=1 时回落到原来的简版渲染。
体验
- 确认框、提示框底部的「取消 / 确定」按钮,鼠标移上去显示手型光标。
- 文件树标题栏精简:去掉粘贴、新建文件 / 文件夹、上传文件 / 文件夹五个图标,这些操作统一走空白处或目录行的右键菜单。
修复
- 背景图皮肤下,标题栏项目切换下拉面板不再半透明透出底下的内容。
下载

| 平台 | 文件 |
| ------------------- | ----------------------------------------------------------------------------------- |
| Windows x64 | Mini-Term_1.13.10_x64-setup.exe |
| macOS Apple Silicon | Mini-Term_1.13.10_aarch64.dmg(首次打开前执行 xattr -cr /Applications/Mini-Term.app) |
| macOS Intel | Mini-Term_1.13.10_x64.dmg(同上) |
| Linux x64 | Mini-Term_1.13.10_amd64.deb / Mini-Term_1.13.10_amd64.tar.gz |

校验和见 SHA256SUMS.txt;Windows 调试符号 Mini-Term_1.13.10_x64-pdb.zip 仅排查崩溃时需要。
完整变更:https://github.com/dreamlonglll/mini-term/compare/v1.13.9...v1.13.10
1.13.9 25 de setembre del 2026 — 64 bits EXE (NSIS)
Notes de la versió
更新内容
新功能
- 终端帧率可调:「设置 → 系统 → 性能」新增前台帧率(10240,默认 30)与后台帧率(窗口失焦但仍看得见时,160,默认 5),改完即时生效。高刷屏想让刷屏更顺就调高前台,笔记本想省电就调低;实际帧率不会超过显示器刷新率,窗口最小化时照旧一帧不画。后台帧率调得再低,切回前台也会当场补画并立刻换到前台节拍,不会冻着等上一拍。
- 皮肤库新增浅色皮肤 Morning Mist 晨雾:外观页点「更多皮肤」即可找到,下载后导入即用。
安全性
- SSH 密码自动填充不再「终身待命」:右键「SSH 连接」在公钥先登录成功时,密码填充此前会一直挂着,之后 sudo / su / mysql -p 的密码提示会被自动灌入 SSH 密码;现在写完连接命令即挂上「一打字就解除」并带过期时间。
- known_hosts 校验收紧:读取失败不再当空文件放行;支持 Linux 默认的哈希条目;同一主机换了密钥算法按「主机密钥变化」拒绝,不再当新主机静默接受。
- 中转桌面密钥加密保存,与 SSH 密码同一套封存;配置明文 ws:// 中转地址时给出警告。
- sidecar 的 SSH 文件传输护栏扩到 config.db / 备份 / credential.key。
- 会话续接命令拒绝以 - 开头的会话 id,防止被当成命令行参数注入;认不出的 AI 工具不再被拼成 claude --resume。
修复
- 配置在新旧版本之间来回装不再丢设置:旧版本只删自己认识的键,新版本写入的设置、项目与连接的未知字段原样保留;单个坏值按默认值降级,不再整库进入只读。
- 配置加载失败进入只读时给出提示,配置写盘失败也会提示;提交失败在提交框下方原样显示 hook / GPG 输出;暂存、丢弃、在外部程序中打开失败都有提示;删除 worktree 失败显示原因。
- 分屏后标签页较多时,整个界面不再被撑出窗口右侧。
- Git 历史分页在有合并的仓库里不再漏掉提交。
- Git 面板对项目根仓库点「在终端中打开」不再误带目录覆盖、改页签名。
- 看图页签在图片文件被改写后跟随刷新。
性能
- 终端底层改用随包的 Windows Terminal 1.24 便携 ConPTY(此前实际一直用的是系统 conhost);环境变量 MT_DISABLE_PORTABLE_CONPTY=1 可回落系统版。
- 启动更快:终端在后台启动(恢复多个分屏时界面不再卡一下),配置只读一次、备份挪到后台。
- 闲置分屏不再每帧重画;终端查找条在大回滚区里只重扫有变化的行。
- 目录监听改为全进程一个监听器(不再每个展开目录一条线程),注册挪出界面线程;文件树去掉常驻 100ms 轮询。
- Git 历史十万级提交的仓库翻页从数百毫秒降到毫秒级。
- 弹窗毛玻璃、看图、Markdown 图片、皮肤卡片用完即释放显存;全局内容搜索跳过超大文件并并行读取。
- 移动端镜像不再每秒重新定位会话文件,大会话换绑不再整文件读进内存;多个终端同时改标题时状态推送不再被拖延。
安装与交付
- 安装器只关闭安装目录下的 mini-term,先请它正常退出(保存配置)再强制结束,不再误杀其它位置的副本;卸载时清理四家 AI 工具里的 hook 注册(升级时保留)。
- 发布流程先建草稿、全部平台成功后才公开,并附 SHA256SUMS.txt;Windows 调试符号单独提供 x64-pdb.zip,崩溃日志带调用栈。
- deb 包声明运行时依赖。
升级须知
- 从 v1.13.7 及更早版本升级时,旧版卸载器仍会按进程名结束一次所有 mini-term;之后的升级只关安装目录下的实例。
- 用量统计的本地账本升级为新格式;装回旧版会自动重建一次,数据不丢。
- 全局内容搜索改为收齐候选后再出第一批结果。
下载

| 平台 | 文件 |
| ------------------- | ---------------------------------------------------------------------------------- |
| Windows x64 | Mini-Term_1.13.9_x64-setup.exe |
| macOS Apple Silicon | Mini-Term_1.13.9_aarch64.dmg(首次打开前执行 xattr -cr /Applications/Mini-Term.app) |
| macOS Intel | Mini-Term_1.13.9_x64.dmg(同上) |
| Linux x64 | Mini-Term_1.13.9_amd64.deb / Mini-Term_1.13.9_amd64.tar.gz |

校验和见 SHA256SUMS.txt;Windows 调试符号 Mini-Term_1.13.9_x64-pdb.zip 仅排查崩溃时需要。
完整变更:https://github.com/dreamlonglll/mini-term/compare/v1.13.7...v1.13.9
1.13.7 22 de setembre del 2026 — 64 bits EXE (NSIS)
Notes de la versió
更新内容
新功能
- 全局命令库(#81)— 终端控制条新增「命令」钮(与查找、分屏同排),或按 Ctrl+Shift+K 弹出命令库浮层:常用命令按分组保存,与项目 / SSH 连接无关,哪个终端里都是同一份
- 搜索框按名称与命令文本过滤,↑ / ↓ 选、↵ 直接在当前终端运行;Ctrl+↵ 或 Ctrl+点击 只把命令敲进终端不回车,先改参数再跑
- 行尾悬停出复制 / 编辑 / 删除,删除在行内二次确认;分组标题可折叠,支持新增到组、重命名、解散(命令回落未分组),底部「新增命令」「新建分组」
- 运行走与手敲同一条链路,终端里的 AI 输入检测照常生效;命令库存在全局配置里,不随项目走
- SSH 连接面板拖拽排序 — 「SSH」管理弹窗右栏的连接卡片可以上下拖着换位:拖到另一条的上 / 下半即插到它前 / 后(2px 指示线提示落点),拖到别的分组的卡片上顺带换组;顺序随配置保存,左栏分组先后不受影响,拖到一半按 Esc 取消
修复
- Markdown 预览里的 Mermaid 流程图按 mermaid.js 口径排版 — 三处与 mermaid.js 不一致的地方已对齐:节点标签里的 HTML 实体(<、#quot; 等)解码后再画;子图有节点连到外面时忽略自己的 direction、跟父图方向走;只靠虚线挂着的节点也参与分层,不再被扔到最左
- 弹窗里的右键菜单不再被弹窗盖住 — SSH 表单的分组下拉、搜索弹窗里的右键菜单等此前在 v1.13.x 里画在弹窗底下看不见(悬停亮了、焦点也被收走、下一次 Esc 关的是那个看不见的菜单),现在正常浮在弹窗之上
下载

| 平台 | 文件 |
| ------------------- | ------------------------------------------------------------------------------------ |
| Windows x64 | Mini-Term_1.13.7_x64-setup.exe |
| macOS Apple Silicon | Mini-Term_1.13.7_aarch64.dmg(首次打开前执行 xattr -cr /Applications/Mini-Term.app) |
| macOS Intel | Mini-Term_1.13.7_x64.dmg(同样需要 xattr -cr) |
| Linux | Mini-Term_1.13.7_amd64.deb / Mini-Term_1.13.7_amd64.tar.gz |

Full Changelog: https://github.com/dreamlonglll/mini-term/compare/v1.13.6...v1.13.7
1.13.6 21 de setembre del 2026 — 64 bits EXE (NSIS)
Notes de la versió
更新内容
1.2.14 17 de setembre del 2026 — 64 bits EXE (NSIS)
Notes de la versió
更新内容
新功能
- 文件编辑器补齐主流语言的语法高亮:C# / Swift / CMake / Proto / GraphQL 此前只有解析器没有配色,打开 .cs 整篇纯文本,现已正常上色;新增 PHP、Kotlin、Lua、PowerShell、XML(csproj / xaml / plist / svg 等)、Dart、Groovy(build.gradle / Jenkinsfile)、INI(.ini / .cfg / .conf / .editorconfig / .gitconfig / .properties)、批处理(.bat / .cmd)。vue / razor / scss 这类没有专属语法的文件退到最接近的语言上色,不再是纯文本。只收主流类型,安装包约增大 0.5 MB。
- 安装器可选桌面快捷方式:安装向导新增组件页,桌面快捷方式改为自行勾选;升级时沿用上一次的选择(旧版没装桌面图标就默认不勾),开始菜单快捷方式照常创建。
下载

| 平台 | 文件 |
| ------------------- | ------------------------------------------------------------------------------------ |
| Windows x64 | Mini-Term_1.2.14_x64-setup.exe |
| macOS Apple Silicon | Mini-Term_1.2.14_aarch64.dmg(首次打开前执行 xattr -cr /Applications/Mini-Term.app) |
| macOS Intel | Mini-Term_1.2.14_x64.dmg(首次打开前执行 xattr -cr /Applications/Mini-Term.app) |
| Linux | Mini-Term_1.2.14_amd64.deb / Mini-Term_1.2.14_amd64.tar.gz |

Full Changelog: https://github.com/dreamlonglll/mini-term/compare/v1.2.13...v1.2.14
1.2.13 15 de setembre del 2026 — 64 bits EXE (NSIS)
Notes de la versió
更新内容
回滚
- 撤回 v1.2.12 的终端列宽改动:①②③ 带圈符号、emoji 序列、中文全角符号按 2 列 / 整簇落格的那套覆盖层整体回滚,终端列宽恢复到 v1.2.11 的 alacritty 原生口径。随之撤回的还有同批的渲染层调整(缺字回退字形判定、⚠ ✔ ⏺ 单色符号字体、单格缩放居中),这些符号的显示回到 v1.2.11 的样子。
本版没有其他改动;v1.2.12 新增的「添加项目后直接打开」保留。
下载

| 平台 | 文件 |
| ------------------- | ------------------------------------------------------------------------------------ |
| Windows x64 | Mini-Term_1.2.13_x64-setup.exe |
| macOS Apple Silicon | Mini-Term_1.2.13_aarch64.dmg(首次打开前执行 xattr -cr /Applications/Mini-Term.app) |
| macOS Intel | Mini-Term_1.2.13_x64.dmg(首次打开前执行 xattr -cr /Applications/Mini-Term.app) |
| Linux | Mini-Term_1.2.13_amd64.deb / Mini-Term_1.2.13_amd64.tar.gz |

Full Changelog: https://github.com/dreamlonglll/mini-term/compare/v1.2.12...v1.2.13
1.2.12 14 de setembre del 2026 — 64 bits EXE (NSIS)
Notes de la versió
更新内容
新功能
- 添加项目后直接打开:弹窗、分组右键「添加项目」、拖目录进项目列表、添加远程项目、Worktree「设为项目」——任何一条入口添加完都直接切到新项目,并用默认 shell 开好第一个终端,不必再面对空态页点一次「新建终端」。路径撞上已有项目时只切过去不重复添加;已有终端的项目不会再多开一个。此前分组右键添加与拖放添加压根不切换,要自己去列表里找。
修复
- ①②③ 与 emoji 序列压住后面的字:终端列宽改按真实字位簇落格——①⑴ⓐⅠ 这类带圈枚举符号占 2 列;❤️ ⚠️ 呈现序列、👍🏽 肤色修饰、👨‍👩‍👧 ZWJ 组合、🇨🇳 区域指示符、1️⃣ 键帽整簇占一格,与 ConPTY / string-width 的口径对齐。AI 输出的清单与状态行不再互相叠字。
- 中文全角符号叠字、⚠ ✔ ⏺ 顶歪整行:※ ℃ № ★☆ ●○◎ ■□ ◆◇ ▲△▼▽ 等中文排版符号同样按 2 列落格;主字体没有的字此前被误判为「有字形」并进合并段,shape 时回退成两列字形把整行顶歪,现在按真实 shape 结果与字族名核对。⚠ ✔ ⏺ ☑ 这类文本呈现符号改走单色符号字体,能正确吃到前景色。
- 已知偏差:ConPTY 对 ① 仍按 1 列计光标,光标位置在这类字符后会偏一列。
下载

| 平台 | 文件 |
| ------------------- | ------------------------------------------------------------------------------------ |
| Windows x64 | Mini-Term_1.2.12_x64-setup.exe |
| macOS Apple Silicon | Mini-Term_1.2.12_aarch64.dmg(首次打开前执行 xattr -cr /Applications/Mini-Term.app) |
| macOS Intel | Mini-Term_1.2.12_x64.dmg(首次打开前执行 xattr -cr /Applications/Mini-Term.app) |
| Linux | Mini-Term_1.2.12_amd64.deb / Mini-Term_1.2.12_amd64.tar.gz |

Full Changelog: https://github.com/dreamlonglll/mini-term/compare/v1.2.11...v1.2.12
1.2.11 11 de setembre del 2026 — 64 bits EXE (NSIS)
Notes de la versió
更新内容
修复
- 分组右键「添加项目」后新项目看不见、重启后才出现,且可能顶掉一个旧项目:项目 / 分组 / SSH 连接 / AI 启动器的 id 此前只靠进程内计数生成,恢复布局后计数几乎固定,启动后不久添加的项目会与库里既有项目撞号——新项目在列表上不显示,落盘时旧项目的那一行被新项目覆盖。现在 id 带毫秒时间戳并对既有数据去重;启动时顺带清理撞号留下的树内重复项。已中招的用户升级后无需手动处理,但被顶掉的旧项目需要重新添加一次。
下载

| 平台 | 文件 |
| ------------------- | ------------------------------------------------------------------------------------ |
| Windows x64 | Mini-Term_1.2.11_x64-setup.exe |
| macOS Apple Silicon | Mini-Term_1.2.11_aarch64.dmg(首次打开前执行 xattr -cr /Applications/Mini-Term.app) |
| macOS Intel | Mini-Term_1.2.11_x64.dmg(首次打开前执行 xattr -cr /Applications/Mini-Term.app) |
| Linux | Mini-Term_1.2.11_amd64.deb / Mini-Term_1.2.11_amd64.tar.gz |

Full Changelog: https://github.com/dreamlonglll/mini-term/compare/v1.2.10...v1.2.11
1.2.10 11 de setembre del 2026 — 64 bits EXE (NSIS)
Notes de la versió
更新内容
新功能
- Claude Code 终端里粘图,直接交给 Claude — 终端里正跑着 Claude Code 时,剪贴板里有截图按 Ctrl+V(Ctrl+Shift+V / 右键粘贴同样)不再存成临时 PNG 再粘一条本机路径,而是发 Alt+V 让 Claude 自己从剪贴板取图:输入框直接出现 [Image #N],模型看到的是图本身而不是路径。Claude 退出后、或在 SSH 远程项目里(远端读的是远端剪贴板)仍走原来的落盘 / 上传路线。
- 智能 Ctrl+C/V 默认开启 — 有选区时 Ctrl+C 复制、无选区时中断程序,Ctrl+V 直接粘贴。新安装默认生效;已有配置保持你之前的选择,可在「设置 → 终端」里切换。
修复
- 125% / 150% 显示缩放下,页签名、分支徽章等截断文本明明放得下也会把末字换成省略号——现在测量宽度先取整到设备像素,并给「放得下」判定留一个像素的容差。
下载

| 平台 | 文件 |
| ------------------- | -------------------------------------------------------------------------------------- |
| Windows x64 | Mini-Term_1.2.10_x64-setup.exe |
| macOS Apple Silicon | Mini-Term_1.2.10_aarch64.dmg(首次打开前先执行 xattr -cr /Applications/Mini-Term.app) |
| macOS Intel | Mini-Term_1.2.10_x64.dmg(同样需要 xattr -cr /Applications/Mini-Term.app) |
| Linux x64 | Mini-Term_1.2.10_amd64.deb / Mini-Term_1.2.10_amd64.tar.gz |

Windows 是主要支持平台;macOS / Linux 构建可用但未经真机验证。
完整变更:https://github.com/dreamlonglll/mini-term/compare/v1.2.9...v1.2.10
1.2.9 10 de setembre del 2026 — 64 bits EXE (NSIS)
Notes de la versió
更新内容
性能
- Markdown 预览按块虚拟化 — 长文档预览滚动不再卡顿。预览把文档拆成块逐块渲染,只为视口附近的块做布局,不再每滚一格就把整篇重排一遍:65KB、17 张表格的实测文档,每帧主线程 CPU 从 152ms 掉到 23ms;226 项的长列表从 145ms 掉到 49ms。滚动位置照旧保住——切源码 / 预览、保存、拖分栏之后回到预览,位置像素级不动。
新功能
- 提交历史标出上游分支 — 查看本地分支的历史时,除了本地分支名,还会把它的上游(origin/xxx)作为一枚弱化胶囊钉在它真正指向的那次提交上:本地领先几个提交、最新代码推没推上去,一眼看到。提交或推送之后胶囊立即跟着走。
- 分支徽章按名字自适应宽度 — Git 面板仓库栏的分支徽章去掉了固定宽度上限,按分支名的自然宽度展示,只有仓库栏真挤不下时才截断并挂上全名 tooltip(收缩时优先保全分支名)。
修复
- Markdown 预览在长文档里滚动时,标题块会画到相邻块上造成显示错乱——按块虚拟化后一并消除。
- 各面板长文本截断补上省略号 — 此前挤不下的文本只是被裁掉,看着像被生生切了一刀。现在文件查看器面包屑、Git 变更 / 差异的路径与分组名、Git 工作树、项目列表的项目名 / 描述 / 分支与远程徽章、搜索结果路径、设置页签与主题包名、SSH 面板分组与连接名、面板预览卡的项目路径,截断后都会带上 …。
下载

| 平台 | 文件 |
| ------------------- | ----------------------------------------------------------------------------------------------- |
| Windows x64 | Mini-Term_1.2.9_x64-setup.exe |
| macOS Apple Silicon | Mini-Term_1.2.9_aarch64.dmg(首次打开若提示已损坏,执行 xattr -cr /Applications/Mini-Term.app) |
| macOS Intel | Mini-Term_1.2.9_x64.dmg(同上需 xattr -cr) |
| Linux x64 | Mini-Term_1.2.9_amd64.deb / Mini-Term_1.2.9_amd64.tar.gz |

Full Changelog: https://github.com/dreamlonglll/mini-term/compare/v1.2.8...v1.2.9
1.2.6 4 de setembre del 2026 — 64 bits EXE (NSIS)
Notes de la versió
更新内容
体验
- Git 仓库下拉区分同名仓库 — 仓库名取的是目录叶子名,monorepo 里 services/api、legacy/api 这类布局会排出一串一模一样的「api」,光看名字分不出是哪一个。现在下拉每条在名字下补一行弱化的父级路径(同名必然父目录不同,一定分得开),只有一层的仓库不加这行、不平白多出噪音;仓库栏里选中的那个同样带弱化的父级前缀,完整路径挂在 tooltip 上
- 仓库列表顺序稳定 — 仓库发现结果按路径排序,不再跟着文件系统的枚举顺序漂移,同名仓库也按父目录挨在一起便于对比
- 标题栏移除全局 AI 状态灯 — 项目切换胶囊右侧那颗灯撤掉了:胶囊自己左侧那颗点已经表达了当前项目的档位,并排两颗色点反而要人分辨谁是谁。「跳到下一个该我处理的会话」没丢——托盘图标左键做的是同一件事,胶囊下拉里逐项也各自跳自己那个项目
下载

| 平台 | 文件 |
| --------------------- | -------------------------------------------------------------------------------------- |
| Windows x64 | Mini-Term_1.2.6_x64-setup.exe |
| macOS (Apple Silicon) | Mini-Term_1.2.6_aarch64.dmg(首次运行如被拦截:xattr -cr /Applications/Mini-Term.app) |
| Linux | Mini-Term_1.2.6_amd64.deb / Mini-Term_1.2.6_amd64.tar.gz |

完整变更:https://github.com/dreamlonglll/mini-term/compare/v1.2.5...v1.2.6
1.2.4 3 de setembre del 2026 — 64 bits EXE (NSIS)
Notes de la versió
更新内容
- release: 升级版本号至 v1.2.4
- fix: 文件预览与 diff 面板按制表位展开 Tab,Go 等 Tab 缩进文件不再整篇顶格
- fix: 文件树移动的路径判定用例改用正斜杠,Linux 上也能通过
- style: 按 rustfmt 整理本轮变更行的折行
0.14.0 19 d’agost del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
布局不再一次定型 —— pane 拖拽移动 / 合并 / 重排 + 双击最大化
本版合入社区贡献者 @hitechr 的功能批次(#49,7 个提交 / 16 个文件),review 反馈(一处必修 + 一处 minor)已由作者逐条落实。
✨ 新功能
- 终端 tab 拖着走 — 按住 pane 的 tab 就能拖:拖到其它分组的 tab 栏按插入位精确落子(组内前后换位、跨组按位并入,3px 圆头指示线实时预告落点);拖到终端区中央整个并入该组;拖到终端区四边在对应方向拆出新分屏
- 双击最大化 — 双击 pane 标题 tab 临时铺满整个终端区,再双击还原;最大化状态下分屏 / 拖拽移动会先自动还原,新 pane 不会落进看不见的隐藏树里
- 落点预览讲信用 — 落下不会有任何动作的场景(独占一组的 pane 拖自己、拖回已在的组)不再显示高亮 / 指示线,指示了就一定有动作
🐛 修复
- tab 重排整屏重播动画 — 把 tab 拖到首位曾让整组终端重播淡入放大动画,像新开了一片分屏;分组 key 改用组内最小 pane id,重排恒稳
- 落子后拖拽态残留 — 曾出现松手后高亮框继续跟着鼠标走、下一次点击又移动一遍
🔧 内部
- 树变换全部纯函数化(movePaneInLayout / movePaneToTabIndex / insertSplitAt),复用既有摘除 / 替换原语,新增 15 例 Node 单测直测四边落点 / 合并 / no-op 边界 / 换锚拆出 / 不丢 pane
- 拖拽走 mousedown/mousemove/mouseup 自绘链路(与项目行、文件树拖拽同一模式)——Tauri dragDropEnabled(文件拖入终端功能依赖)拦截了 WebView 内的 HTML5 DnD,draggable/drop 在本应用里根本不触发
⚠️ 已知限制
- 跨组拖动组内最老的 pane 时,目标组会重播一次进场动画(彻底修复等 leaf 稳定 id 设计,已留档)

完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.13.1...v0.14.0
0.13.1 16 d’agost del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
统计面板显示细节修复
🐛 修复
- 金额与次数小字重叠 — 用量统计里「按项目 / 按模型」排行与 Top 会话列表的金额列原为固定宽度,$1,446.80 这类长金额放不下会向右溢出,压住最右侧的次数 / tokens 小字。金额与次数列改为最小宽度且不换行,放不下时由行首名称列截断让位;金额较短时布局与此前完全一致
- 「按项目」列表恒出横向滚动条 — 滚动容器吸收可点击行 hover 的出血外边距,行超宽时不再撑出横向滚动条
🔧 内部
- tauri dev 永久卡在等待 1450 端口 — Node 17+ 按系统解析顺序可能把 localhost 解析到 IPv6 回环,Vite 只绑 ::1 而 Tauri CLI 探测走 IPv4 连不上。dev 前端固定监听 127.0.0.1,devUrl 同步对齐;仅影响开发环境,发布包行为不变

完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.13.0...v0.13.1
0.13.0 15 d’agost del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
同一个任务,并排试两条思路 —— AI 会话分支树
本版合入社区贡献者 @hitechr 的功能批次(#47,31 个提交 / 37 个文件),review 反馈(两处必修 + 两处 minor)已由作者逐条落实。
✨ 新功能
- 分支会话到新分屏 — pane / 终端右键「分支会话到新分屏」:原会话原地继续跑,旁边分出的新 pane 里是复制出来的分支(Claude 走 claude --resume <id> --fork-session,Codex 走 codex fork <id>)。命令全部经白名单模板产出,注入向量有测试覆盖
- 历史面板分支树视图 — 平铺|树一键切换:fork 出的会话按缩进连线挂在父会话下,正在跑的节点带状态点;点任意节点——已开的切过去聚焦,没开的新终端自动恢复。分支节点显示「分叉后第一问」(父子会话用户消息前缀比对——Claude CLI fork 不写行级标记,标记不可依赖)
- 悬停家族面板 — 右键「查看会话分支」悬停即展开当前会话的家族全貌:家族树 + 当前位置标记 + 从任意节点再岔一条
- 厂商图标跟最新模型走 — 树与面板的厂商图标按会话最新使用的模型显示:claude CLI 挂 GLM / DeepSeek 中转时亮的是真实厂商的 icon(pane 标签上的 CLI 图标不变)
- grok 可从树 / 浮层恢复 — grok 补 resume 能力位,点击节点新终端 grok --resume;无 CLI 级 fork,分支入口不出现
- npm run package 一键出正式包 — 构建 + 产物收集一条命令走完
- 用量统计 KPI 行新增 Token 总数卡
🐛 修复
- 背景图皮肤下浮层看不清 — 抽屉与 Git 分支下拉补毛玻璃托底、右侧抽屉底色改不透明——盖在终端文字上的浮层按「浮层不透明」原则处理
- codex resume 后分支入口消失 — codex resume 不重新上报 SessionStart,恢复出的新 pane 现在当场写回会话身份,不再干等 hook
- hook 未注册时入口静默消失 — 输入检测认出 AI 在跑但拿不到会话身份时,菜单置灰并提示原因,不再让人以为功能坏了
🔒 安全
- session id 白名单统一 — 新增 session_id_path_safe:凡前端参数 / 持久化数据拼进会话文件路径的四处入口(本机 / WSL / SSH 远程)统一过 ^[A-Za-z0-9_-]+$ 白名单,附 ../ 等穿越向量测试
🔧 内部
- 新 command scan_session_lineage(70 → 71) — Claude forkedFrom + Codex forked_from_id 双源磁盘扫描分支边,与前端 fork 时的自记账边合并、磁盘优先——覆盖 Claude CLI fork 不落盘指针的缺口
- 能力位表 AgentBranchCaps 与树构建是纯逻辑,Node 测试直测;自记账边随 config 持久化(量级字节级,清理策略已留档)
⚠️ 已知限制
- WSL / SSH 远程来源的会话记录在别的机器 / 发行版里,本地 resume 恢复不了,点击会提示
- grok 无 CLI 级 fork(--resume 是接管不是复制),只有恢复、没有分支

完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.12.1...v0.13.0
0.12.1 14 d’agost del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
自定义主题下的终端,字距终于和内置主题一样了
带背景图的主题包激活时,终端只能走 DOM 渲染(xterm 上游的 WebGL 渲染器不支持透明背景),而两个渲染器的字符格宽算法并不一致——自定义主题下字距肉眼可见地更松,全角标点后面还多出一截空隙。本版从测量源头把两条渲染路径掰齐。
🐛 修复
- 字符间距比内置主题松 — WebGL 的格宽做设备像素向下取整、DOM 不取整(上游差异),字体步进带小数时每格差零点几像素,80 列一行累计 30px+。现在把字符宽度测量在源头量化到整设备像素:DOM 与 WebGL 的格宽从构造上相等,对 WebGL 是恒等变换、零行为变化。任意缩放比率下成立(穷举 6930 组字号 × 字体步进 × DPR 验证两条不变量零例外),缩放越高偏差本来越小,双显示器跨屏拖动自动跟随
- 全角标点每个比 WebGL 宽 6~7px — WebView2 里 xterm 对全角标点做孤立测量时未回退到 CJK 字体(量出半角步进),整行渲染又跟着相邻汉字按上下文取全角字形,letter-spacing 按错误测量补偿,「,」「。」等每个多出一截空隙;汉字在两种场景必然落到同一回退字体,所以纯中文不受影响、只有标点出问题。终端字体栈现在显式追加 CJK 回退(Microsoft YaHei / PingFang SC / Noto Sans CJK SC),测量与渲染走同一条确定的字体匹配路径,不再依赖引擎启发式
🔧 内部
- 两处修复都经反射 xterm 私有字段实现,带静默兜底:将来 xterm 升级改名时退回原行为(间距变宽),不抛错不影响功能
- 用户自选字体同样追加 CJK 回退;字体本身含 CJK(如更纱黑体)时按 CSS 先到先得自动失效,无副作用。机器缺齐三款回退字体时(如精简 Linux)落到 generic monospace,行为等同修复前,不会更糟

完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.12.0...v0.12.1
0.12.0 13 d’agost del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
终端里的 grok,终于和 Claude / Codex 同档了
来自 issue #46 的诉求:grok 没有桌面版,最该被适配的恰恰是它。本版把 grok 接到与另外两家同一档——不是只认个命令名,而是状态、镜像、历史、用量四条链路全通。
✨ 新功能
- grok 的实时状态 — 走 grok 官方 hook 拿状态,不靠猜输出:状态灯、完成播报、托盘黄绿灯与另外两家同一套判定。命令识别也认了 grok(--resume / --trust 算交互式启动,-p / --version / -h 照旧排除)
- grok 的对话镜像 — 手机上能看 grok 的对话。grok 把一条消息拆成任意多个分片流式落盘,攒到边界(工具调用、回合收尾、对方开口)才算一条,否则一句回答会碎成几十条
- grok 的 AI 历史面板 — 列出历史会话、点进去看正文、一键 grok --resume 续接
- grok 的用量统计 — token、成本、按模型排行进面板,数据取自会话记录里 turn_completed 自带的用量(按模型分解)
- hook 按 CLI 选择性注入 — 设置 → AI → AI Hook 事件新增「注入目标」:三家各一行可勾选,注册/卸载只作用于所选。每行显示配置文件路径与现状(未注册 / 已注册 N 个事件 / 旧版本 N/M)。默认勾选「已经装了的那几家」,老用户再点注册就是纯补齐,不会顺手往没在用的 CLI 里写配置
🐛 修复
- grok 的会话被认成 Claude,导致手机端镜像串台 — grok 默认会读 ~/.claude/settings.json 里的 hook,所以只要你给 Claude 注册过,grok 的事件其实一直在往 Mini-Term 发,却被按 Claude 记账:手机上会把同项目里 Claude 的对话贴到 grok 这个终端上。现在按 grok 注入的环境变量判准来源,兼容层的重复投递也会去掉
- 退出 grok 时白响一声「任务完成」 — grok 在会话收尾会补发一次 Stop(reason 为 channel_closed / shutdown),此前被当成任务做完了
🔧 内部
- 注册命令不能带空格:grok 只在命令含空格等元字符时才交给 shell,而 Windows 上具体是 git-bash / pwsh / powershell / cmd 由环境决定、四家引号语义互斥,写不出通用文本。因此注册进 ~/.grok/hooks/ 的是不含空格的裸文件名(hook 二进制随注册复制进同目录),事件名改由 grok 注入的 GROK_HOOK_EVENT 传递
- 会话是一整个目录,不是一个文件:{grok_home}/sessions/{URL 编码的 cwd}/{session-id}/。定位项目走解码目录名而非编码项目路径(后者要逐字复刻 grok 所用编码库的转义集;超长路径退化成 {slug}-{hash} 时回落读目录内的 .cwd)
- grok 没有 PermissionRequest 事件,「等你批准」是 Notification 的 permission_prompt 类型,归一化后点同一盏黄灯;它的 task_complete 是知会不是待办,不点灯
- 用量分桶按 ACP 口径换算成互斥语义(输入含缓存读写、输出含 reasoning),拆开后与 totalTokens 对账一致;models.dev 择优把 xai 纳入一方 provider,否则成本会按某个随机聚合商的报价算
⚠️ 已知限制
- 用量面板里 grok 没有「工具排行」:grok 落盘的会话记录只有给人看的工具标题(「Read file src/x.rs」这种),拿不到真正的工具名,硬拿标题顶替会把排行灌成一堆自然语言。token / 成本 / 模型 / 会话四类统计不受影响

完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.11.3...v0.12.0
0.11.3 13 d’agost del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
非激活 pane tab 也能悬停看一眼了
本版合入社区贡献者 @hitechr 的功能提交(#45,单提交 / 7 个文件,纯前端展示层)。
✨ 新功能
- pane tab 悬停缩略图 — 悬停非激活的 pane tab 250ms,弹出该 tab 终端画面的实时缩略图浮层,是 v0.11.0 项目行悬停预览的单格版:同一条渲染链路(缓存终端读 buffer → 同色 run 提取 → canvas 位图),打开期间 500ms 重画——隐藏 tab 的 buffer 一直被全局 pty-output 监听更新,画面是活的。未启动的 tab 显示「未启动」占位,远程断线叠加遮罩;卡片钳制左右边界,底部分屏下方放不下时自动翻到 tab 上方
- 刻意不做 AI 开闸 — 与项目行预览「只对 AI 会话弹」的口径不同:项目行预览回答「AI 在别的项目跑到哪了」,而隐藏 tab 的内容不切过去本来就看不见,无论跑不跑 AI 都有预览价值,预览回答的就是「那个 tab 里现在是什么」
🔧 内部
- 触发时序与项目行预览同一套:250ms 定时器、到点再取 rect、isConnected 判活;移出 / 点击 / 右键 / 滚动即关;收起走「渲染 gate + effect 收 state」双闸——用 X 关掉被悬停的 tab 时点击被 stopPropagation 拦下,只留渲染 gate 会残留旧锚点。这些均为前两版 review 反馈的沉淀写法,本次直接吸收
- 入场动画挂 .overlay-menu 类(reduced-motion 豁免名单内),系统关了动画的机器上依然可见
- 维护者审查:安全分析干净(纯展示层,无新 command / 网络 / 注入面);tsc --noEmit 通过,Node 测试 100 条与基线失败集合一致,无回归

完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.11.2...v0.11.3
0.11.2 10 d’agost del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
AI 停下来等你,也会叫你了
✨ 新功能
- 待确认提醒 — 此前只有「AI 跑完了」才发通知,而实际最需要被叫回来的往往是另一种停:AI 停下来等你批工具权限、等你填 MCP 表单,或这一轮因 API 错误结束需要你回来重发。这三种情形(PermissionRequest / Elicitation / StopFailure,与项目行黄灯同一判定)现在走完成通知的同一套通道——提示音、任务栏闪烁、右下角 Toast,共用你设的自定义提示音。Toast 用警告色 + 感叹号与绿色的「已完成」区分,点击同样跳到该项目;不发 DONE 徽章,那是完成态的标
- 开关独立,默认开 — 「设置 → AI → 通知提醒 → 触发时机」可单独关掉。没有和完成通知合用一个开关,是因为它触发得频繁得多(每次工具授权都算一次),只想留完成通知的人得能关
🔧 内部
- 判据取黄灯的上升沿,而不是「本次成因属待确认类」:后端 StatusEmitter 把这类事件显式排除在去重之外(为的是同一轮里第二次授权请求不被吞掉),按成因判会一次待确认响好几声。黄灯亮着期间不重复提醒;你往那个终端里敲字即视为已在处理(黄灯清除),下一次请求才重新构成上升沿
- 顺带修掉一处会被新 Toast 踩到的旧逻辑:完成 Toast 的去重原本只看项目 id,而待确认 Toast 挂的是同一个 id——批准后马上跑完的话,完成 Toast 会被自己的前一条吞掉。现已收窄为同类去重
- 设置页该分页的中文名随语义扩大从「完成通知」改为「通知提醒」
- 回归测试:Node 20 个文件 / 100 条用例。aiCompletion 新增三组上升沿断言(黄灯未亮才响、亮着不重复响、非待确认成因一律不响)

完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.11.1...v0.11.2
0.11.1 10 d’agost del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
pane 预览只对 AI 会话开闸 + 主题包示例一键生成
✨ 新功能
- 「生成示例」按钮 — 「设置 → 外观 → 外置皮肤」区新增,点一下就有一份可直接改的示例皮肤落进 themes/example/:全字段 theme.json(colors / art / effects / terminal / tokens)、示范锚点与旋钮变量的 theme.css,外加逐字段说明的 README.md(JSON 写不了注释,说明只能外置)。改完保存即热重载。同一份文件也在仓库 docs/theme-pack-example/——Rust 侧编译期嵌的就是它,文档模板与你点出来的产物不会漂开。目录已存在时报错而非覆盖,你改过的那份不会被静默抹掉
🎯 体验
- 悬停 pane 预览改为只对跑着 AI 会话的项目弹 — 判定与项目行的 AI 品牌图标同口径:行上亮着图标才有预览,AI 退出即收起。这张卡要回答的是「AI 在别的项目里跑到哪一步了」,普通 shell 项目悬停弹一张 520px 的卡只是打断视线;这类项目现在悬停只出绝对路径提示(路径此前挪进了浮层卡头,不弹卡就看不见了)
🔧 内部
- 浮层收起走「渲染 gate + effect 收 state」两道:只留渲染 gate 的话,同一次悬停里 AI 再起来,浮层会拿旧锚点复活,而列表这期间完全可能已经增删过项目,卡就贴到别的行上了
- 生成示例写到一半失败(盘满 / 权限 / 杀软锁文件)整个目录收回:留下只有 theme.json 的残包照样会被列成可选皮肤,而下次生成又撞「已存在」,用户从此自愈不了
- 外置皮肤区按钮增至五个,标题行与按钮组加换行防挤压
- 回归测试:Node 20 个文件 / 100 条用例,Rust 411 条。新增用例直接拿仓库里的示例文件跑应用自己的校验器——它同时是一键生成的产物,过不了校验就等于用户点一下拿到个装不上的包

完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.11.0...v0.11.1
0.11.0 10 d’agost del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
自定义主题体系 + 项目 pane 悬停预览
本版合入社区贡献者 @hitechr 的功能批次(#43,32 个提交 / 36 个文件),并附维护者审查加固批。
✨ 新功能
- 外置主题包 / 自定义皮肤 — 「设置 → 外观」可从文件夹或 zip 导入 Dream Skin 兼容格式的皮肤,落在 {app_data_dir}/themes/<themeId>/(theme.json 必需,theme.css / 背景图可选)。包内带 manifest.json 时逐文件核对 bytes + sha256 防损坏;导入先落暂存目录、校验通过才原子换入,坏包不会连累同名的既有皮肤。改动包内文件即热重载(300ms 防抖),设置页卡片直接铺实况缩略图
- 背景图氛围层 — 皮肤可自带背景图:面板与终端表面转半透明压在图上,压暗层与表面不透明度都能在 theme.json 里调。透明主题下终端渲染退回 DOM(xterm 上游的 WebGL canvas 不透明,会把图整块盖住),切回不透明主题自动恢复 WebGL。皮肤的明暗由作者在 appearance 里定死,激活期间内置主题按钮置为未选中态
- 项目行悬停 pane 预览 — 悬停项目行 250ms 弹出该项目终端区的微缩布局拼图:按分屏树等比复现真实排布,与切过去看到的所见即所得;打开期间 500ms 重画,预览是活的。每个分屏格显示当前 tab 的画面,隐藏 tab 以「+N」徽章示数并附其中最高优先级的状态点——藏在非激活 tab 里的 AI 状态不漏报;没起过终端的项目显示占位卡
🐛 修复
- 分屏下 + 号的落位 — 点某一组的 + 号,新 tab 就加进那一组。此前靠 DOM 焦点猜「用户在哪」,焦点不在任何终端上时会落到第一个分屏去
- 会话续接报 No conversation found — claude --resume 只认「启动目录」对应的会话桶,起于子目录的会话在项目根恢复必然找不到。现在续接直接以会话记录里的 cwd 起 PTY,存量记录反查一次后随身份写回持久化,下次重启免查
- 背景图皮肤下分不清激活的 pane tab — 该皮肤下 --bg-terminal 与 --bg-elevated 几乎同色,激活态补一条不吃主题的 accent 指示条
- 关掉 hook 开关会让黄灯永久卡死 — AI 正跑着时去设置里关掉 hook,该 pane 仍被认作 hook 权威、状态停在处理中,而唯一能把它拉回来的停摆收敛却被跳过
🔒 安全加固(维护者审查)
外置皮肤是从别处下载来的共享产物,而 tauri.conf.json 的 csp 为 null,没有第二道防线——一个外链就能把应用启动时机与 IP 回传。本版把闸口补齐:
- theme.css 与 theme.json 的 tokens 走同一道外链闸 — 此前只有 theme.css 查 url(),而 tokens 只校验「必须是对象」,键值原样进 setProperty:键名不带 -- 时设的是真实 CSS 属性,一行 {"background-image":"url(https://…)"} 就绕开了全部检查。现在键名限 -- 开头的 CSS 变量,值过同一道闸,effects 的两个旋钮同理
- 裸字符串写法一并挡住 — Chromium 认 image-set("https://…" 1x),不带 url() 照样发请求。现在 url() 与字符串字面量双查,取样前先剥 CSS 注释(注释里的 URL 是说明,不误杀)
- terminal 字段补色值校验 — 此前只有 colors 过校验,坏值会让 xterm 在换主题时半途抛,只改到一半、剩下的终端停在旧配色
- 带背景图时忽略 terminal.background — 它在展开顺序上排在透明化之后,一个照着内置主题抄全 24 字段的皮肤会把氛围图整块盖死,且没有任何提示
- 外置皮肤加载失败的回落 — 失败点若落在应用之后,此前只清配置不清 DOM,会留下「配置说没启用、界面上却还挂着」的半死状态
🔧 内部
- 6 套内置终端配色收敛进 builtinThemes.ts 统一出口
- pane 预览走「读 buffer 自绘」而非截图:隐藏 pane 的渲染是暂停的、WebGL 也没有 preserveDrawingBuffer,像素不可靠,但它的 buffer 一直被全局 pty-output 监听实时更新
- 回归测试:Node 20 个文件 / 99 条用例,Rust 410 条

- 感谢 @hitechr 贡献本版两块主体功能(#43)
0.10.7 7 d’agost del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
状态一览升级:托盘菜单列全量 AI 项目 + 标题栏项目切换器
✨ 新功能
- 托盘右键菜单列出所有进入 AI 会话的项目 — 不再只列「有动静」的:新增第四档 ⚪ AI 空闲(agent 已进入但待命),排序 待确认 > 处理中 > 已完成 > 空闲,条数上限沿用设置里的「最多显示项目数」;托盘灯与 tooltip 口径不变,空闲项目只进菜单不点灯
- 标题栏新增当前项目切换器 — 版本号右侧以竖线隔开的胶囊按钮,常显当前项目名与它自己的 AI 状态色点(无 AI 会话时压暗);下拉列出进入 AI 会话的项目及状态,点击即切换并定位到该项目内最该处理的分屏(与托盘菜单同一套落点),全都安静时只切换项目
- 全局状态灯移位 — 从最小化键左侧挪到项目切换器右边,全局态与当前项目态同处看齐;点击行为不变,右侧从此只剩窗口控制三键
🔧 内部
- 「进入 AI 会话的项目」聚合抽成 collectAiProjects 供托盘与标题栏共用;「已完成」判据集合由调用方注入——托盘用未读完成(随窗口聚焦清除),标题栏用完成队列(与全局状态灯同一套语义)
0.10.6 6 d’agost del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
Git 面板重排:变更与提交历史同屏
✨ 改进
- 上下两个可折叠区块取代互斥 tab — 更改在上、提交历史在下,同一仓库的变更与历史同屏可见;中缝可拖拽调节比例(钳 15%~85%),折叠态与比例在会话内记忆
- 顶部新增仓库栏 — 仓库级操作一处集中:下拉切换仓库(worktree 条目标 ⎇)、分支徽章点击只切历史查看分支(不 checkout,查看非 HEAD 分支时高亮提示)、刷新 / Pull / Push 收在栏上;右键仓库名可在终端打开或进入 Worktree 管理
- 提交历史直接平铺 — 历史区不再渲染逐仓库展开的仓库树,直接展示选中仓库的提交列表;分支拓扑图、滚动分页、双击看 diff、右键复制 hash 原样保留
- 折叠 / 展开带动画 — flex-grow 补间收放,两块同时补间总和不变、不跳动;按浮层惯例豁免系统「减弱动态效果」设置,拖拽调比例期间自动关掉补间保持跟手
🔧 内部
- 两个区块常驻挂载,折叠只把高度收到 0——已加载的提交列表、展开状态与提交说明草稿不会因折叠丢失,commit 成功仍自动刷新历史
- 换仓库 / 换分支用请求令牌作废在途响应,防止迟到数据串到别的仓库
⚠️ 行为变化
- 历史区严格跟随顶部选中的仓库,不再支持同时展开多个仓库的提交历史;多仓库项目通过顶部仓库栏切换查看
0.10.5 6 d’agost del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
本版重排了设置弹框的信息架构。原来六个平铺分页里,「系统设置」一页塞了界面语言、状态栏三项、启动自动续接、主题、皮肤、终端跟随主题、外部编辑器共九组控件,找一个开关要滚半页。现在按主题归组,每页只剩一屏左右。
体验
- 设置侧栏改为两级菜单 — 分组 + 分页:终端(Shell / 复制粘贴)、外观(主题与语言 / 字体)、AI(完成通知 / Hook 事件)、系统(常规 / 外部编辑器),快捷键与关于留在顶级。界面语言与主题、皮肤、终端跟随主题一并收进「外观」
- 三处过长分页拆开 — 「系统设置」散出去后只剩状态栏与启动两节;「回滚行数」此前错挂在「复制粘贴」小标题下,归入新的「终端行为」;「AI 完成通知」尾部整块 Hook 注册独立成页
- 切页时标签文字不再横向抖一下 — 选中指示条改为始终占位、未选中透明,此前只有选中项才渲染那根竖条,切换时文字会左右跳
兼容性
- 分页 id 保留旧值(terminal / system / font / ai-notification),从别处直达某个设置分区的深链不因重排失效;所有开关的取值与行为一字未改,升级上来配置照旧
下载

| 平台 | 文件 | 说明 |
| ------- | --------------------------------------------- | ------------------------------------------------------------------------ |
| Windows | Mini-Term_0.10.5_x64-setup.exe / .msi | 主要支持平台 |
| macOS | Mini-Term_0.10.5_aarch64.dmg(Apple Silicon) | 首次打开如被 Gatekeeper 拦截,执行 xattr -cr /Applications/Mini-Term.app |
| Linux | Mini-Term_0.10.5_amd64.AppImage / .deb / .rpm | 实验性支持 |

完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.10.4...v0.10.5
0.10.4 6 d’agost del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
本版把 pi(pi.dev)接进了 AI 会话识别,顺带修掉一个会把别人的对话贴到你这个分屏上的镜像串台问题;另外文件拖到终端途中现在可以按 Esc 反悔。
新增
- 支持 pi coding agent — 终端里跑 pi 会像 Claude / Codex 一样被认出来:分屏状态徽章、完成播报、AI 启动器校验、从手机发起会话四条链路一起打通,项目行与标签上显示 pi 的品牌图标。命令匹配是 basename 全等,pip / ping / pixi / pi.py 不会被误判;pi --model claude-sonnet-5 这类写法显示的是 pi 自己而不是 Claude
- 文件拖到终端途中可以按 Esc 取消 — 拖到一半改主意,按 Esc 当场取消:路径不写进终端(这次 Esc 被就地吞掉,不会变成 \x1b 送给 AI),松手也不会退化成一次普通点击把文件打开,悬停虚线框同步消失。只有真正进入拖拽后才吞 Esc,别处的 Esc 照常生效
修复
- 对话镜像不再串台 — opencode / pi 这类只靠输入检测识别的 agent 没有可解析的本地会话记录,此前手机端点进它们的会话,镜像会退而绑到同项目里最新的 Claude / Codex 会话文件,把别人的对话贴到这个分屏上。现在按白名单判定,没有会话记录的 agent 直接给空镜像;opencode 的同款老问题一并修掉。状态徽章与移动端发指令不受影响,照常可用
文档
- 双语 README 与完整功能清单补上上述两项,并订正 AI 识别的过时说法(无 hook 时是「输入检测 + 输出活跃度轮询」,名单为 claude / codex / opencode / pi)
下载

| 平台 | 文件 | 说明 |
| ------- | --------------------------------------------- | ------------------------------------------------------------------------ |
| Windows | Mini-Term_0.10.4_x64-setup.exe / .msi | 主要支持平台 |
| macOS | Mini-Term_0.10.4_aarch64.dmg(Apple Silicon) | 首次打开如被 Gatekeeper 拦截,执行 xattr -cr /Applications/Mini-Term.app |
| Linux | Mini-Term_0.10.4_amd64.AppImage / .deb / .rpm | 实验性支持 |

完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.10.3...v0.10.4
0.10.3 5 d’agost del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
本版集中修两件长期烦人的事:AI 徽章莫名卡在「处理中」、以及开久了渲染进程被内存压垮整页重载。另外状态栏图标(Windows 托盘 / macOS 菜单栏)现在点一下就能直接落到该处理的那个会话上。
新增
- 状态栏图标点击定位到会话 — 左键点图标不再只是切项目,而是切项目 + 激活到具体分屏 + 聚焦终端,优先级为「待确认 / 异常 > 最先跑完 > 还在处理中」,与标题栏状态灯同一套落点;右键菜单里点某个项目则定位到该项目内最该处理的那个分屏,目标已经安静下来时退回只切项目,不会点了没反应。不想让它改变当前视图的话,设置里新增了开关可以关掉(默认开)
- 终端回滚行数可调 — 设置里新增「回滚缓冲行数」,默认 1 万行,改小当场生效并立即释放内存
修复
- AI 徽章不再卡在「处理中」 — Stop hook 在若干情形下压根不触发,此前这些情形下徽章会一直顶着 ai-working 直到下一轮对话:
- 回合因 API 错误结束(限流 / 超载 / 鉴权失败)时官方发的是 StopFailure,现已注册并映射为「等你处理」,同时点亮托盘黄灯提示回来重发
- 你自己按 Esc / Ctrl+C 打断时官方不发任何事件,改由输入检测收敛
- 工具失败、并行工具批收尾、auto 模式拒绝、MCP 表单回填四个时刻此前没有任何事件覆盖,现已补齐
- 以上都覆盖不到的残余情况,再由停摆判定兜底:状态与终端输出双双静默 10 秒即把徽章摘下来,此前若已触发过退出(Ctrl+D / 连按两次 Ctrl+C / /exit)则直接判为已退出
- 四条路径的结论都一次性写定、不会来回摆动,也都不会被当作「任务完成」播报;正等你批准的面板(如 Codex 的权限请求)豁免停摆判定,托盘黄灯不会被误灭
- 权限提醒不再被文案误判 — Notification 改用官方的结构化类型判定(权限请求 / 闲置提醒 / 表单等),不再靠中英文关键词猜;顺带修掉权限文案里恰好出现 "rate limit" 字样就被当成 API 重试的隐患
- 老用户升级后自动补齐 hook 注册 — 注册是一次性手动动作,不补的话已注册用户的配置里永远是旧事件集,而他们没有任何理由知道要再点一次注册
- 消除渲染进程内存崩溃 — 终端回滚缓冲此前硬编码 10 万行,而 xterm 按列数逐行分配内存,120 列下单个终端最高能吃掉两百多 MB,且终端只在关闭分屏时才销毁(切项目、切标签都不销毁),多项目多分屏叠加足以把渲染进程推到 OOM。除了把行数改成可配置,本版还:
- 打通 PTY → 前端的全链路背压:cat 大文件或 AI 刷屏时,前端积压过高会一路顶回刷屏进程本身——慢终端拖慢进程,而不是把数据全堆进内存
- 页面加载时先回收上一轮遗留的 PTY:渲染进程被系统杀掉后页面重载,恢复出的分屏是全新 id 并各自新建 PTY,旧的 shell / AI 进程却无人引用地继续跑着——崩一次漏一整套,内存压力递增形成正反馈,现已掐断
- 终端写入加异常保护,并让 PTY 自然退出与手动关闭共用同一套清理,不再有旁路表要等你手动关分屏才回收
下载

| 平台 | 文件 | 说明 |
| ------- | --------------------------------------------- | ------------------------------------------------------------------------ |
| Windows | Mini-Term_0.10.3_x64-setup.exe / .msi | 主要支持平台 |
| macOS | Mini-Term_0.10.3_aarch64.dmg(Apple Silicon) | 首次打开如被 Gatekeeper 拦截,执行 xattr -cr /Applications/Mini-Term.app |
| Linux | Mini-Term_0.10.3_amd64.AppImage / .deb / .rpm | 实验性支持 |

完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.10.2...v0.10.3
0.10.2 5 d’agost del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
标题栏不再是系统那条灰白色的了 —— 换成应用自绘,配色跟着主题走,并按各平台的窗口习惯分别适配(#39)。另修掉用量统计里成本金额随刷新反复横跳的问题。
新增
- 自定义标题栏 — 窗口去掉系统装饰,改由应用自绘 32px 顶栏:左侧应用名与版本号,右侧全局状态灯与窗口控制,配色直接读主题变量,深色主题下不会再顶着一条浅色系统标题栏。按平台适配:
- Windows / Linux — 最小化 / 最大化 / 关闭三键靠右,关闭键悬停变红。Win11 的贴靠布局照常可用:后端子类化窗口过程,在 WM_NCHITTEST 中把最大化按钮那块矩形认作系统最大化按钮,悬停即弹分屏菜单
- macOS — 保留系统原生交通灯(titleBarStyle: Overlay),左上角留出让位,不自绘三色圆点,全屏 / 手势 / 系统集成一并保住
- 双击顶栏最大化 / 还原;拖拽走 Tauri 原生 API,避开 WebView2 模态循环导致的输入锁定
- 标题栏全局状态灯 — 汇总所有项目所有分屏的最紧急一档(异常 > 待确认 > 处理中 > 已完成),点一下直接跳到「下一个该我处理」的会话:待确认 / 异常优先,其次是最先跑完的那个,最后才是还在跑的。与托盘右键菜单的排序有意不同 —— 托盘回答「哪些项目还活着」,状态灯回答「下一件该做什么」
修复
- 用量统计成本不再随刷新在两个金额间跳变 — models.dev 上同一个模型被数十家 provider 以不同 id、不同价登记,原先按原始 modelId 建价格键使「官方价优先」的规则失效,碰撞最终由 HashMap 的随机迭代顺序决定谁胜出,表现为每点一次刷新金额换一个值(实测 claude-opus-5 的官方价与某欧区转售价恰好差 1.10 倍,同一天用量在 $10.02 / $11.02 之间来回跳)。现在价格键改为 canonical 形式并按全序比较器择优,构造结果与迭代顺序无关;同时丢弃会把整段成本抹成 0 的占位价、让缓存单价齐全者胜出(缺 cacheRead 会砍掉 Claude 侧七成以上成本),定价缓存加版本号避免旧缓存被当新鲜值使用
下载

| 平台 | 文件 | 说明 |
| ------- | --------------------------------------------- | ------------------------------------------------------------------------ |
| Windows | Mini-Term_0.10.2_x64-setup.exe / .msi | 主要支持平台 |
| macOS | Mini-Term_0.10.2_aarch64.dmg(Apple Silicon) | 首次打开如被 Gatekeeper 拦截,执行 xattr -cr /Applications/Mini-Term.app |
| Linux | Mini-Term_0.10.2_amd64.AppImage / .deb / .rpm | 实验性支持 |

完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.10.1...v0.10.2
0.10.0 4 d’agost del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
本版合入社区贡献者 @hitechr 的功能同步批次(#38,35 个提交、80+ 文件),并附维护者审查修复批。
新增
- 使用统计面板 — 顶栏「统计」查看 Claude Code / Codex 的成本、调用、会话数多维聚合:按日 / 按小时趋势图、模型与项目排行、Top 会话。本地会话记录解析进 rusqlite 账本,面板毫秒级出数、后台增量同步;fork 复制的历史按血缘去重不重复计费,缓存读写按官方价差精确计价;价格表每日从 models.dev 拉一次(只读公开价目,不上传任何用量数据),拉不到用缓存,绝不显示凭空编造的数字
- 系统托盘状态灯 — 黄=待确认、蓝=处理中、绿=完成未读、灰=安静,多状态失焦轮播;右键按项目查看各自状态,左键唤起主窗口;仅权限 / 确认类文案点黄灯,API 错误与重试等待不误报
- AI 会话自动续接 — 重启后每个分屏自动 claude --resume / codex resume 续回原会话:身份来自 hook 上报、随布局持久化;写回终端前白名单校验(仅字母数字与 -_、长度上限),远程 pane 不参与,识别不了的一律不写
- 满屏图标 — 文件树 Material 文件图标、项目行技术栈 + AI 品牌图标(按厂商去重、单色品牌图标上品牌色)、pane 标签与会话列表品牌图标;全量图标数据(gzip ≈1.2MB)独立 chunk 动态加载,主包零增量
- 项目描述 — 右键「编辑描述」给项目补一行灰色小字备注,一排 worktree 子项目各自在干什么一眼分清
- 拖选停留自动复制 — 拖选后按住鼠标静止超过设定时长自动复制选区并弹「已复制」气泡,时长可调(默认 1s,0 = 关闭)
- 配置写盘令牌 — load_config 成功才发放写盘令牌,空白页面 / 异常启动不再可能用空配置覆盖磁盘完整配置;备份自愈覆盖后台启动路径,损坏主文件不会覆盖有效备份
性能
- 启动路径零网络请求 — 移除 index.html 的 Google Fonts 渲染阻塞外链(离线 / 受限网络下首帧挂数秒的元凶),字体改 @fontsource 本地 woff2 随安装包分发(+204KB)
- 五个重型弹窗 React.lazy 按需加载(设置 / 文件查看 / 会话查看 / 移动端 / 统计):主包 gzip 631KB → 378KB
- Rust / WebView 统一时间轴启动埋点写 stderr([startup+xxxms]),便于回归定位;实测 release 冷启动约 1.5s、热启动约 0.7s(macOS ARM)
修复(审查修复批)
- 用量账本 sync 锁 panic 中毒后统计永久停更(恢复中毒 guard 继续执行,新增回归测试);恢复 merge 时误删的 v0.9.3 完成通知回归测试
- 文件监听 watcher 引用计数:目录压缩链多节点 watch 同一路径不再互相摘除;压缩链加 8 层深度上限;文件图标 data URI 加缓存,消除每次渲染全量 base64 编码
- resume 命令拼装收口为统一白名单守卫,会话列表手动恢复同样过校验,id 形态异常不再提供写终端 / 复制入口
- 拖选自动复制松手时选区已增长则补复制一次,剪贴板始终是最终完整选区;worktree 子项目缩进恢复 16px 相对层级;用量面板动效纳入 reduced-motion 豁免体系
构建
- MSRV 升至 Rust 1.95(libsqlite3-sys 0.38 的 cfg_select! 要求),从源码构建请先 rustup update
- git2 启用 vendored-openssl,修复 macOS ARM 本地构建误链 Intel Homebrew OpenSSL;仅 unix 平台生效,Windows 构建不受影响(openssl 不在 Windows 依赖图,已实证)
致谢
- 感谢 @hitechr 贡献本版全部五块主体功能(#38)
下载

| 平台 | 文件 | 说明 |
| ------- | --------------------------------------------- | ------------------------------------------------------------------------ |
| Windows | Mini-Term_0.10.0_x64-setup.exe / .msi | 主要支持平台 |
| macOS | Mini-Term_0.10.0_aarch64.dmg(Apple Silicon) | 首次打开如被 Gatekeeper 拦截,执行 xattr -cr /Applications/Mini-Term.app |
| Linux | Mini-Term_0.10.0_amd64.AppImage / .deb / .rpm | 实验性支持 |

完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.9.3...v0.10.0
0.9.3 3 d’agost del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
修复
- 修复 AI 任务跑完之后,完成通知每隔 20~50 秒重复触发一次的问题:任务其实早就结束了,状态却在 ai-working 和 ai-idle 之间反复横跳,每跳一次就响一声提示音、闪一次任务栏
- 根因是状态判定里一条无记忆的兜底:当 hook 卡在 ai-working(Stop 事件丢失,或同一会话里迟到的 PostToolUse 又把状态推了回去),「连续 3 秒无输出即视为空闲」算出的降级结果并不落盘。于是 AI 空闲期每一次 TUI 定时重绘都会把状态抬回 ai-working、3 秒后再落回 ai-idle,形成以重绘间隔为周期的假完成脉冲
- 现在 hook 一旦接入,就是该面板唯一的状态来源,输出活跃度不再参与判定;没有 hook 的面板(WSL / SSH / 手动关掉 hook)仍走原来的进程轮询降级,行为不变
- 代价是 Stop 事件真的丢失时,徽章会残留在 ai-working,直到下一个 hook 事件或会话结束——罕见、纯视觉,下一轮对话即自愈
- 修复权限审批框弹出时被误报成「任务完成」:PermissionRequest 和 Stop 一样都落到 ai-idle,此前每次弹审批都会播报一次完成。现在完成信号只认 Stop 事件,通知与澄清请求同理不再误报(Codex 侧此前已单独规避,本次补齐 Claude 侧)
下载

| 平台 | 文件 | 说明 |
| ------- | -------------------------------------------- | ------------------------------------------------------------------------ |
| Windows | Mini-Term_0.9.3_x64-setup.exe / .msi | 主要支持平台 |
| macOS | Mini-Term_0.9.3_aarch64.dmg(Apple Silicon) | 首次打开如被 Gatekeeper 拦截,执行 xattr -cr /Applications/Mini-Term.app |
| Linux | Mini-Term_0.9.3_amd64.AppImage / .deb / .rpm | 实验性支持 |

完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.9.2...v0.9.3
0.9.2 3 d’agost del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
修复
- 修复外部删除 worktree 后项目列表残留失效子项目的问题:AI agent(或你自己)在终端里执行 git worktree remove 之后,挂在主项目下面的 worktree 子项目仍留在列表里,点进去是个已经不存在的目录,只能手动删。现在项目列表在启动与窗口重获焦点时探测子项目目录是否还在,目录已消失的子项目会连同它的终端资源一起自动移除
- 只在父项目目录仍然存在时才清理,盘符掉线、整棵目录树暂时不可见的情况不会误删项目;SSH 远程项目与 UNC(WSL) 路径不参与探测
- worktree 管理弹窗的「清理失效条目」也对齐了这个口径:清理成功后,指向那些确已消失的 worktree 的项目一并移除
- 修复**⎇ 分支徽章在外部切分支 / 删 worktree 后不刷新**:徽章探测改为窗口重获焦点时重跑,回到 Mini-Term 就能看到当前真实分支
下载

| 平台 | 文件 | 说明 |
| ------- | -------------------------------------------- | ------------------------------------------------------------------------ |
| Windows | Mini-Term_0.9.2_x64-setup.exe / .msi | 主要支持平台 |
| macOS | Mini-Term_0.9.2_aarch64.dmg(Apple Silicon) | 首次打开如被 Gatekeeper 拦截,执行 xattr -cr /Applications/Mini-Term.app |
| Linux | Mini-Term_0.9.2_amd64.AppImage / .deb | 实验性支持 |

完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.9.1...v0.9.2
0.9.1 1 d’agost del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
修复
- 修复 Codex 会话退出后标签状态残留的问题:此前 Codex 的 hook 注册漏了 SessionEnd 事件,退出 Codex 后标签页与项目列表上的状态灯会一直停在 ai-idle,只能等下次启动 AI 会话才自愈。现在退出即回落 idle,并补了注册契约测试防止退出事件再次遗漏
- 已启用过 hook 的用户请到设置里重新注册一次 Hook(合并写入,不会覆盖你已有的 hook 配置),新的 SessionEnd 条目才会落到 Codex 配置里
下载

| 平台 | 文件 | 说明 |
| ------- | -------------------------------------------- | ------------------------------------------------------------------------ |
| Windows | Mini-Term_0.9.1_x64-setup.exe / .msi | 主要支持平台 |
| macOS | Mini-Term_0.9.1_aarch64.dmg(Apple Silicon) | 首次打开如被 Gatekeeper 拦截,执行 xattr -cr /Applications/Mini-Term.app |
| Linux | Mini-Term_0.9.1_amd64.AppImage / .deb | 实验性支持 |

完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.9.0...v0.9.1
0.9.0 31 de juliol del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
- release: 升级版本号至 v0.9.0 - 主要变更:SSH 工具从 MCP 迁移到 mt-ssh-cli + SKILL.md 注册(全机单例 daemon 持久连接池、每次调用强制携带项目能力令牌 fail closed、stdout/stderr 与退出码原样流式透传、daemon 不可用自动降级进程内直连);修复 claude 运行中 tab 状态概率性回落 idle;write_file_content 补写侧 1MB 上限 - package.json / Cargo.toml / tauri.conf.json / Cargo.lock 版本号同步升级 0.8.5 → 0.9.0 - README.md / README.en.md 重写「SSH 连接变成 AI 能调用的工具」一节:MCP 表述整体换成 CLI + Skill 架构、令牌授权与 daemon 生命周期,并标注 mt-ssh-mcp 过渡期仍随包发布;四处版本徽章同步 0.9.0 - docs/features.md / features.zh-CN.md 测试计数按合并后实测更新为 503 个 Rust 测试(桌面端 450 = tauri-app 296 + mt-core 44 + mt-ssh 26 + mt-sidecars 84,中转 53)
- fix: 加固 SSH CLI 授权与守护进程可靠性
- fix: code-review 修复 —— skill 撇号转义 / daemon 断连感知与错误分类 - SKILL.md 的 allowed-tools 行对路径撇号做 YAML 双写转义(如 O'Brien 用户目录),否则 frontmatter 断裂导致 skill 静默加载失败 - daemon 的 exec 增加读端 EOF 主动断连探测:无输出的长命令在 CLI 被杀后立即关闭 channel,不再等到下一次写帧失败或超时;serve 错误分为「端点被占让位」与「运行期故障」两类,前台模式不再把 accept 故障伪装成静默让位(exit 0 → 2) - daemon-status 退出码补注释(0/1 对齐状态探测命令语义,不受业务 exit 2 契约约束);版本握手比对抽纯函数并补单测 - 收敛重复:Op::transfer_direction() 替代三处 if 级联,Result 帧构造 helper 消除全 None 手写,exec/transfer 审计落盘共用 append_audit_line;spec 回写 pipe 名用 SID 原文与 detach 手段的实现差异说明,手动矩阵补跨用户 IPC 一项
- docs: spec 回写 PR1-PR3 落地结论与剩余手动矩阵 - 取舍表补落地结论列:daemon 生命周期全项真机验证通过,开放问题 #3(allowed-tools)部分收口并补 PowerShell 双条目,#5(触发率)4/4 轮自然语言触发无忧,#2(Codex 沙箱)留待手动实测 - 新增 §11 验证记录:CLI 契约 / daemon 生命周期 / skill 端到端的自动化 e2e 明细,与四项需交互式环境的剩余手动矩阵 - SKILL.md 模板 allowed-tools 行同步实现(Bash + PowerShell 双条目)
- feat: 「关联 SSH」切换为 SKILL.md 注册(替代 MCP 配置) - 新增 ssh_skill_registry:启用时生成 Claude / Codex 两份 SKILL.md(内嵌 mt-ssh-cli 绝对路径与 project-id,Claude 版带 Bash/PowerShell 双 allowed-tools,整文件覆盖 + generated 头注释),gitignore 幂等追加,并自动摘除存量项目的旧 MCP 注册(.mcp.json 条目 / 项目 Codex 配置 / Claude 免审批白名单,他人条目毫发无损);停用删净 SKILL.md 与空目录并兜底同样的迁移清理 - ssh_mcp_registry 收缩为读侧清理模块:写入路径与旧 enable/disable command 移除(已无调用方),保留 remove/trust/白名单函数供 skill 注册器迁移存量项目复用 - 前端 SshAssocModal 改调 enable_ssh_tools / disable_ssh_tools,sshAssoc 双语文案「SSH MCP」改「SSH 工具」,types 注释说明 sshMcpEnabled 字段名保留仅为存量配置兼容 - features 双语文档同步新架构(SKILL.md 注册 / CLI + daemon / 过渡期 MCP 表述)与测试计数;真机 e2e:新起 Claude Code 会话自然语言可触发 skill 并经 daemon 成功执行远程命令
- feat: 新增 mt-ssh-cli sidecar(CLI + daemon + IPC 池复用) - 新增 mt-ssh-cli 二进制:list/exec/upload/download 四个子命令,远程 stdout/stderr 原样流式透传、退出码透传、超时 124、CLI 错误 2 + stderr 前缀,--project-id flag 优先 env 兜底,本地路径在调用现场绝对化 - daemon 架构:全机单例守护进程持全局 SshPool(named pipe 仅当前用户 ACL / Unix socket 0600),NDJSON 帧协议(hello 版本握手、stdout/stderr 分片 base64、终帧),同一连接二次调用免 SSH 握手 - 生命周期自治:CLI 连不上自动 detached 拉起并退避重连,端点绑定互斥收敛并发竞态,空闲 10 分钟 drain 池自退,版本不符自动踢旧拉新;配套 daemon/daemon-status/daemon-stop 运维子命令 - daemon 不可达自动降级进程内 one-shot(stderr 记一行),两条路径输出与退出码契约一致;构建管线接入 stage-sidecars 与 externalBin,协议帧/退出码矩阵/生命周期均有单测与进程内集成测试
- refactor: SSH 业务编排下沉为 mt-sidecars 共享 service 层 - mt-sidecars 新增 lib target,ssh_service 承接连接查找、池 acquire、evict+重试、auth 冷却、审计日志、config.json 传输护栏的完整编排,错误信息不含密码、连接视图不含敏感字段的纪律随迁 - exec 输出改为流式回调(on_output),为 CLI/daemon 实时转发铺路;MCP 侧回调收集进缓冲再 100KB 封顶打包,超时清空缓冲,与迁移前返回体逐字节一致 - mt-ssh-mcp 瘦身为 rmcp 薄适配层:只留工具注册、入参 schema 与错误映射,业务全部转调 service 层,对外行为不变 - 既有 40+ 单测随代码迁入 ssh_service,MCP 侧补收集/超时清空/截断的适配层单测
- docs: 新增 SSH 工具 CLI + Skill 迁移方案 spec - 记录从 MCP 迁移到 mt-ssh-cli + SKILL.md 注册的完整设计:daemon 架构与 IPC 协议、service 层抽取、skill 注册器、分阶段落地与开放问题
- fix: 修复 claude 运行中 tab 状态有概率显示 idle 而非 ai-* 的问题 - process_monitor 删除 "hook 状态 ai-idle 且输入检测未在会话中即拆 hook 降级 idle" 的裁决分支:任务运行中双击 Ctrl+C 打断(claude 不退出)或别名启动漏检会让输入检测误判,整个会话期状态被永久打回 idle;hook 一旦启用即为权威,判定逻辑抽为 resolve_status 纯函数并补 5 个回归测试 - hook_server 新增每 pane 活跃会话集,SessionEnd 只在移除后集合为空时才清状态推 idle:防止嵌套非交互实例(Bash 工具里跑 claude -p / codex exec 继承 MINITERM_PTY_ID)结束时误杀外层会话,同时覆盖退出后立刻重开的事件乱序,取代原 session_end_is_stale 判定 - pty 新增 mark_ai_session(幂等、不重置 ai_started),hook 映射出状态的事件即调用,把误判退出/漏检启动的 AI 会话标记扶正,顺带救回这两种场景下丢失的 AI marker 与移动端会话语义;SessionEnd 丢失时徽章残留 ai-idle 为有意接受的失败模式(旧代码同样卡死,pane 下次启动 AI 会话自愈) - CLAUDE.md 修正三处过时描述:process_monitor 实际为 hook 权威 + 输入检测降级的两层判定,非"轮询子进程名";PaneStatus 无 running 状态
- fix: write_file_content 补写侧大小上限与单元测试 - 写入内容超过 MAX_FILE_VIEW_SIZE(1MB) 直接拒绝:编辑器本就打不开超限文件,后
0.8.5 30 de juliol del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
新功能
- 内置文件编辑器:文件树里点开文件不再只是预览,而是一个完整的代码编辑器(CodeMirror 6 内核)
- 140+ 语言语法高亮,按文件类型自动匹配、按需懒加载,不拖慢启动
- 查找替换(Ctrl+F,面板已中文化)、代码折叠、括号匹配、多光标编辑
- Ctrl+S 保存,原子落盘不怕写坏文件;CRLF 文件按原行尾保存,不会产生整文件行尾 diff;有未保存修改时关闭会先确认
- 文件被外部程序改动时自动感知:无本地修改直接静默重载,有修改则出提示条由你决定
- Markdown / HTML 的「预览 / 源码」切换保留,预览实时渲染未保存的草稿
- 语法配色跟随主题与皮肤(Dark / Light / Blueprint / Fluent2 各成一套)
体验
- Git 抽屉的「提交历史 / 更改」tab 切换补齐动效:内容横向淡入、下划线滑动定位,与其他面板切换手感一致
修复
- 修复切 tab / 切项目 / 分屏重挂载时 ConPTY 收到同尺寸 resize 触发 TUI(Claude Code 等)整屏重绘、往回滚缓冲区漏重复内容的问题:后端对 resize_pty 做同尺寸去重
下载

| 平台 | 文件 | 说明 |
| ------- | ------------------------------------- | ------------------------------------------------------------------------ |
| Windows | Mini-Term_0.8.5_x64-setup.exe / .msi | 主要支持平台 |
| macOS | Mini-Term_0.8.5_aarch64.dmg / x64.dmg | 首次打开如被 Gatekeeper 拦截,执行 xattr -cr /Applications/Mini-Term.app |
| Linux | Mini-Term_0.8.5_amd64.AppImage / .deb | 实验性支持 |

完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.8.4...v0.8.5
0.8.4 29 de juliol del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
界面动效
- 弹窗、菜单、抽屉统一进出场动画 — 此前所有弹窗都是瞬间出现、关闭直接消失。现在遮罩淡入、面板从上方落下并放大到位;关闭时反向播完再卸载,这段时间面板已退出覆盖物栈,不再响应点击与 Esc,内容也被冻结,不会在淡出过程中变空。右键菜单改为从光标位置展开(贴边翻转时展开原点跟着换角),右侧抽屉与终端查找条补上滑入
- 切换终端与新建分屏的过渡 — 同一格子里切换终端时新终端淡入并轻抬;新分出来的 pane 淡入并放大到位
- 抽屉内 Sessions / Git 切换 — 选中态改为一块底色滑过去,内容区横向淡入,替代原先两边各自亮灭
- 系统关掉窗口动画时仍保留转场 — Windows 关闭「动画效果」会让 WebView 报告 prefers-reduced-motion: reduce,此前应用内所有动画会被一并压掉,这套新动效在这些机器上等于不存在。现在浮层与终端切换的一次性转场照常播放,只停掉状态点闪烁这类循环动画
修复
- 侧拉抽屉被分屏分隔线压住 — 抽屉层级低于分屏分隔条,Sessions / Git 面板上会看到一根穿过去的竖线
下载

| 平台 | 文件 |
| --------------------- | ------------------------------ |
| Windows (推荐) | Mini-Term_0.8.4_x64-setup.exe |
| Windows (MSI) | Mini-Term_0.8.4_x64_en-US.msi |
| macOS (Apple Silicon) | Mini-Term_0.8.4_aarch64.dmg |
| Linux (Debian/Ubuntu) | Mini-Term_0.8.4_amd64.deb |
| Linux (Fedora/RHEL) | Mini-Term-0.8.4-1.x86_64.rpm |
| Linux (通用) | Mini-Term_0.8.4_amd64.AppImage |

macOS 未签名,首次打开若提示「已损坏」,请在终端执行:xattr -cr /Applications/Mini-Term.app
完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.8.3...v0.8.4
0.8.3 28 de juliol del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
修复
- 修复分屏终端长时间静置后整屏乱码:多个终端共享同一份 WebGL 字形纹理图集(atlas),此前单个终端挂载或切回可见时会把共享图集整个清空、却只修复自己 —— 其余终端的顶点数据仍指向旧坐标,在图集按新布局重新填充后的下一次渲染出现整屏「换字」乱码,只能靠滚动或切换项目恢复。现在改为只重建本终端自身的渲染模型与顶点缓冲,不再触碰共享图集,静置的分屏终端不会再被其他终端的操作「投毒」
- 修复 WebGL context 丢失后无法恢复的问题:此前显卡上下文丢失(如驱动重置)后该终端会永久退回 DOM 渲染,现在重新打开标签页即可恢复 WebGL 渲染
下载

| 平台 | 文件 |
| --------------------- | ------------------------------ |
| Windows (推荐) | Mini-Term_0.8.3_x64-setup.exe |
| Windows (MSI) | Mini-Term_0.8.3_x64_en-US.msi |
| macOS (Apple Silicon) | Mini-Term_0.8.3_aarch64.dmg |
| Linux (Debian/Ubuntu) | Mini-Term_0.8.3_amd64.deb |
| Linux (Fedora/RHEL) | Mini-Term-0.8.3-1.x86_64.rpm |
| Linux (通用) | Mini-Term_0.8.3_amd64.AppImage |

macOS 未签名,首次打开若提示「已损坏」,请在终端执行:xattr -cr /Applications/Mini-Term.app
完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.8.2...v0.8.3
0.8.2 27 de juliol del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
本版主线是 Git Worktree 的完整落地——从「能建能删」做到「建完就能当项目用」,同时给提交历史补上了分支拓扑图。
新功能
- Worktree 管理 — 项目右键菜单或 Git 面板仓库行右键打开管理弹窗:列出全部 worktree、基于现有分支或新建分支创建、删除(可强制)、清理失效条目,增删后仓库列表即时刷新。worktree 可一键「设为项目」或直接在终端打开;pane 支持工作目录覆盖并随布局持久化,分屏继承目录。
- 向下发现仓库 + 多选批量新建 — 项目根目录本身不是 Git 仓库时不再直接报错,而是向下扫描子仓库并按主工作区归并成分组列表;组头可勾选(多选 / 全选),一次为每个勾选的仓库各建一个 worktree。多选时分支下拉取各仓库的分支交集,路径框语义变为父目录并预览 <仓库名>-<分支> 的完整落点,失败的逐仓库列出错误。
- Worktree 子项目 — 「设为项目」后挂在主项目下方作子项目(缩进跟随分组),拖出或右键「脱离父项目」转回顶层,删除父项目时子项目原位晋升不丢失;项目列表为 worktree 显示 ⎇ 分支徽章,仓库列表与 Changes 下拉同样标注。
- 提交历史分支拓扑图 — 每行左侧绘制 SVG 拓扑图,按 lane 布局画出分支、合并与直穿连线,节点按 lane 上色、合并提交用实心点套外环;汇入线用分支自身颜色的贝塞尔曲线并在根部渐变融入主线。后端 revwalk 追加 TOPOLOGICAL 排序,避免时钟偏移或 rebase 后父提交排在子提交之前导致连线断裂。
- 分组右键直接添加远程项目 — 分组右键新增「添加远程项目」,新建的 SSH 项目直接落入该组,折叠的组自动展开;弹窗改为与「SSH 连接」「关联 SSH」同构的分组分栏布局。
修复
- Claude 提问文字在暗色下不可见 — 终端启用最小对比度。
- 会话列表剩余会话加载不出来 — 底部改用「加载更多」按钮:原先靠滚动到底触发,而一页 20 条撑不满面板高度时容器不产生滚动条,scroll 事件永不触发。
- 拓扑图分支线配色与拐弯方向 — 分支汇入主线时错用目标 lane 的颜色导致整段变主线色,已改用分支自身颜色;连线拐弯由圆角折线改为两端切线垂直的贝塞尔曲线。
- 提交历史分页带回重复 commit — 从上一页末尾 commit 的 parent 重新 revwalk 时按 hash 去重,整页重复则停止分页。
- commit 行挂满无关分支 — 只标注本仓库自己检出的分支(及正在查看的分支),不再把其他工作区 / 远程分支全列上去。
体验
- 退出确认不再动不动就弹 — 关窗盘点改为只统计 AI 会话(ai-working / ai-idle 的 pane),裸 shell 终端不计入;仅当存在 AI 会话时才弹确认并列出会话名清单。
- 项目 / 分组右键菜单补确认与树形选择 — 「删除分组」先弹确认并说明组内项目会移到上一级而非被删除;项目右键新增红色「移除项目」;「移动到分组」由平铺列表改为按分组树逐级展开的子菜单,当前所在组标 ✓ 并置灰。菜单支持多级子菜单与 ArrowLeft 逐层返回。
- 「关联 SSH」弹窗改为分组分栏 — 与「SSH 连接」弹窗同构,全部视图下按组折叠;全选 / 全不选只作用于当前可见连接,在某个分组里点全选不会顺手勾上其他分组。
安全性
- 删除 SSH 连接加二次确认 — 提示该操作不可撤销,会丢失已存密码与私钥路径,并收窄已关联项目的可见范围。
下载

| 平台 | 产物 |
| --------------------- | ----------------------------------------------------------------------------------------- |
| Windows | Mini-Term_0.8.2_x64-setup.exe(推荐)· Mini-Term_0.8.2_x64_en-US.msi |
| macOS (Apple Silicon) | Mini-Term_0.8.2_aarch64.dmg · Mini-Term_aarch64.app.tar.gz |
| Linux | Mini-Term_0.8.2_amd64.AppImage · Mini-Term_0.8.2_amd64.deb · Mini-Term-0.8.2-1.x86_64.rpm |

macOS 提示:产物未经 Apple Developer ID 签名,双击可能提示「已损坏,移到废纸篓」。把 .app 拖入 /Applications 后执行一次 xattr -cr /Applications/Mini-Term.app 即可正常启动,每次升级后需重新执行。
完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.8.1...v0.8.2
0.8.1 26 de juliol del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
单修复版:解决状态栏对 AI 会话退出的判定问题——在 Claude Code 里双击 Ctrl+C 退出后,pane 状态有概率不回 idle,而是弹回并永久卡在 ai-idle。
问题修复
- Claude 双击 Ctrl+C 退出后状态有概率卡回 ai-idle — 一次修掉三个叠加的成因:
- 状态事件双发射源打架 — pty-status-change 由 hook 直推和后台轮询两处发出,各自维护去重表。Claude 收尾的 Stop hook 若比 SessionEnd 晚到(hook 是独立进程、POST 顺序无保证),会把前端推回 ai-idle,而轮询算出的纠正值与自家去重表相同、被吞掉不发——前端就永远停在错误状态。现在两个发射源共用同一份去重表,任何误推都会在下一个轮询周期(≤500ms)被纠正。
- 迟到的旧会话事件缺少拦截 — SessionEnd 后给该会话 id 打墓碑,旧会话迟到的 Stop / Notification 直接丢弃,从根上挡住乱序;退出后立刻重开新会话的场景有专门守卫,不会误伤新会话。
- 双击间隔超过 1 秒时输入检测漏判 — 两次 Ctrl+C 间隔拉长时,输入侧的退出检测可能没触发,AI 会话标记卡住,轮询降级后稳定输出 ai-idle。现在解析 SessionEnd 的 reason 字段作为权威退出信号自愈(/clear 换会话不受影响)。
- 顺带堵住一个小漏洞:退出瞬间 ConPTY 重绘可能把 scrollback 里的 > claude 命令回显再吐一遍,被输出扫描误判成新会话又标回去;现在退出时同步关闭扫描窗口。
内部变更
- 新增 6 个单元测试覆盖墓碑机制、过时 SessionEnd 守卫与会话标记清理,桌面端 Rust 测试增至 381 个(合计 419)。
下载

| 平台 | 产物 |
| --------------------- | ----------------------------------------------------------------------------------------- |
| Windows | Mini-Term_0.8.1_x64-setup.exe(推荐)· Mini-Term_0.8.1_x64_en-US.msi |
| macOS (Apple Silicon) | Mini-Term_0.8.1_aarch64.dmg · Mini-Term_aarch64.app.tar.gz |
| Linux | Mini-Term_0.8.1_amd64.AppImage · Mini-Term_0.8.1_amd64.deb · Mini-Term-0.8.1-1.x86_64.rpm |

macOS 提示:产物未经 Apple Developer ID 签名,双击可能提示「已损坏,移到废纸篓」。把 .app 拖入 /Applications 后执行一次 xattr -cr /Applications/Mini-Term.app 即可正常启动,每次升级后需重新执行。
0.8.0 26 de juliol del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
这一版把注意力从「加功能」转回「用得顺手」:快捷键成体系、10 万行 scrollback 终于能搜、11 个弹窗的 Esc 行为归一。另外两件事值得单独说——远程终端里粘图片终于能被远端的 agent 读到,以及 Claude Code 这类 TUI 在终端里累积重复内容的老毛病修掉了。
新功能
- 全局快捷键体系 — 新建 / 关闭 / 切换终端、分屏、分屏间移焦、项目快速切换器、折叠侧栏全部有键位。键位表是唯一事实来源,同时驱动实际派发、设置页展示与界面提示,不会出现「设置页写着一个键、实际是另一个」。统一走 Ctrl+Shift+* 以避开 shell 的行编辑按键。
- 终端内查找(Ctrl+F) — 10 万行 scrollback 从只能手滚变为可检索,支持大小写 / 全词 / 正则与命中计数。
- 远程 SSH / WSL 粘贴自动落地(#36)— 粘贴图片和超长文本原本是「转存成本机文件、再粘路径」,这套逻辑在远程终端里是断的:粘进去的 C:\... 远端根本不存在,远端 agent 只会报文件不存在。现在会自动换算落点:
- SSH 远程项目 — 经 SFTP 上传到远端后粘贴远端路径。默认落 <项目根>/.mini-term/pasted,选在项目内是因为 agent 对项目目录天然有读权限,不像 /tmp 那样会触发 Claude Code 的项目外路径确认;目录可在设置里改成 /tmp/mini-term、~/uploads 等。
- WSL 项目 — 把 C:\... 换算成 /mnt/c/...,不用上传(文件本身经 automount 就能读到,缺的只是路径形式)。
- 上传目录会自动写入一个自忽略的 .gitignore,粘图不再弄脏你仓库的 git status。
- 首启引导 / Sessions 直接 resume / 抽屉内面板切换 — 首次启动给一条上手路径;会话列表可直接续接而不必手动复制命令。
体验改进
- 弹窗行为统一 — 新增共享 overlay 栈接管 Esc / 遮罩关闭、焦点陷阱与焦点还原,11 个弹窗规则归一;命令式弹窗与右键菜单纳入同一栈,Esc 只作用于最上层。
- 关窗确认改为条件触发 — 只在真有活终端时才问,并列出将被终止的 AI 会话;没有终端时不再多问一句。
- 无障碍 — 状态点改为形状 + 颜色双编码(不再只靠颜色区分),新增 :focus-visible 焦点环,项目列表 / 文件树 / 右键菜单支持键盘操作。
- 字号随「界面字体大小」缩放 — 此前写死 px 的地方不跟随设置,两套皮肤 CSS 一并修正。
- i18n 补齐漏网文案 — 面板标题、Git 面板、分屏 tooltip、状态枚举名等。
问题修复
- AI 终端 scrollback 累积重复内容 — 此前把 TUI 摁在主缓冲区,Ink 类 TUI(Claude Code)界面比窗口高时,相对光标上移够不到已滚入 scrollback 的帧首,每帧都留下擦不掉的残留,滚轮转发给 TUI 触发额外重绘后尤其明显。现在放行 alternate screen 切换,让 TUI 回到备用缓冲区原地重绘。
- 设置图标画错了 — 原先是「中心小圆 + 8 条放射短线」,那是太阳 / 星芒的画法;改为闭合的 6 齿轮廓 + 轴孔(齿数取 6 是因为图标实际只有 18px,齿少才咬得出形状)。
- AI 运行中的状态点纹丝不动 — 形状是 spinner 却不转,看上去像卡死的加载指示器。顺带修了 prefers-reduced-motion 一刀切把它也停掉的问题:进行中指示器传达的是状态本身而非装饰,改为放慢到 2.4s 继续循环;闪烁类动效仍照常停用。
- 终端标签宽窄不一 — 状态点 + 标题 + 关闭按钮作为一组居中,左右 padding 对称并给出最小宽度。
- 快捷键漏进 PTY、右键菜单抢焦点、分屏竞态下产生孤儿 PTY 等审查发现的缺陷。
内部变更
- 删除项目级 tab 死状态层 — ProjectState 由 tabs[] 收敛为单棵 layout 树(界面上从来没有那层的切换入口)。旧配置的多 tab 布局在迁移时把 pane 合并进保留树而非丢弃,不会丢你的终端。
- 一并删除无人消费的 togglePanel 与四个 *Visible 字段(含 Rust 侧)。
已知限制
- 图片粘贴仍只在 Windows 可用(read_clipboard_image 只有 Windows 实现),macOS / Linux 下远程粘图会回退到 Alt+V 而对远端无效。长文本转存与 WSL 路径换算不受此限。
- 远端上传目录不会自动清理(本机临时文件有 24 小时清理)。
下载

| 平台 | 产物 |
| --------------------- | ----------------------------------------------------------------------------------------- |
| Windows | Mini-Term_0.8.0_x64-setup.exe(推荐)· Mini-Term_0.8.0_x64_en-US.msi |
| macOS (Apple Silicon) | Mini-Term_0.8.0_aarch64.dmg · Mini-Term_aarch64.app.tar.gz |
| Linux | Mini-Term_0.8.0_amd64.AppImage · Mini-Term_0.8.0_amd64.deb · Mini-Term-0.8.0-1.x86_64.rpm |

macOS 提示:产物未经 Apple Developer ID 签名,双击可能提示「已损坏,移到废纸篓」。把 .app 拖入 /Applications 后执行一次 xattr -cr /Applications/Mini-Term.app 即可正常启动,每次升级后需重新执行。
0.7.1 26 de juliol del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
上一版让手机能看桌面上跑着的 AI,这一版让手机能开一个新的:右下角 + → 选项目 → 选启动器,桌面端后台把 agent 拉起来,不打断你桌面上正在看的现场。
自托管中转的用户请注意:本版中转协议升到 v2 并加了桌面端接入密钥,必须重新部署中转并配置 MT_RELAY_DESKTOP_KEY,否则桌面端连不上(fail-closed 的有意代价)。三步走完即恢复,见部署文档的「升级与运维」一节。
新功能
- 手机发起新 AI 会话 — 右下角 + → 选项目 → 选 AI 启动器,桌面端在该项目后台开一个终端标签并把 agent 拉起来;会话真起来后手机自动进入它的对话镜像,桌面端弹通知提示(凭证被盗时这是唯一的审计迹象,所以即便不切过去也要弹)。
- AI 启动器 — 桌面端「移动端」面板里维护的具名条目(名称 / shell / 命令,默认预置 Claude / Codex)。手机只按 id 引用、只看得到名字,命令文本从不经过手机或中转——这是设计边界,不是实现细节。
- 选项目按桌面端分组层级展示 — 发起弹层里的项目列表还原桌面端侧栏的分组结构:折叠箭头 + 组名 + 项目计数,可逐级折叠。折叠状态存在手机本地,桌面端折叠了什么与手机无关。
- 会话重命名 — 手机上给会话改个看得懂的名字(列表行的 ✎ 或镜像页标题),同步显示在桌面端的终端标签上;留空恢复默认名。
变更
- 中转协议 v2 — 桌面端接入中转需要携带共享密钥 MT_RELAY_DESKTOP_KEY。中转地址不是秘密(PWA 就托管在它上面,地址早已躺在手机浏览器历史里),因此 /ws/desktop 端点必须自己鉴权。未配置密钥的中转会拒绝一切桌面端连接——"能跑起来"不等于"配好了",宁可让你立刻发现。
- 版本不匹配时握手明确拒绝并提示升级,不会静默错乱;填错密钥时桌面端显示「接入密钥不正确」并停止重连(配置问题不是网络问题,重试无意义)。
安全性
- 中转日志只记录鉴权失败这件事,不记录密钥本身。
- 移动端发起会话时,桌面端只校验"目标项目存在且支持",不校验命令内容——命令来自桌面端自己的配置,这道边界本身就是防线。
- SSH 远程项目与 WSL 根项目在发起弹层里置灰:在那里开会话只能盲发指令、看不到回复。
下载

| 平台 | 产物 |
| --------------------- | ----------------------------------------------------------------------------------------- |
| Windows | Mini-Term_0.7.1_x64-setup.exe(推荐)· Mini-Term_0.7.1_x64_en-US.msi |
| macOS (Apple Silicon) | Mini-Term_0.7.1_aarch64.dmg · Mini-Term_aarch64.app.tar.gz |
| Linux | Mini-Term_0.7.1_amd64.AppImage · Mini-Term_0.7.1_amd64.deb · Mini-Term-0.7.1-1.x86_64.rpm |

macOS 提示:产物未经 Apple Developer ID 签名,双击可能提示「已损坏,移到废纸篓」。把 .app 拖入 /Applications 后执行一次 xattr -cr /Applications/Mini-Term.app 即可正常启动,每次升级后需重新执行。
平台支持:Windows 为主要支持平台,macOS / Linux 代码层面已支持但未经充分打磨。
完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.7.0...v0.7.1
0.7.0 25 de juliol del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
本版主角是移动端 + 自托管中转:出门在外用手机看桌面上跑着的 AI,并直接给它发指令。桌面端只出不进(出站长连),不需要公网 IP、不需要内网穿透、不需要在路由器上开端口。
新功能
- 移动端体系上线 — 顶栏「移动端」面板一站式走完:填中转地址 → 保存并连接 → 生成配对二维码。手机相机扫码即打开 PWA 自动完成配对,配对码一次性有效(10 分钟),新设备配对自动顶替旧设备,「重置配对」立即吊销全部凭证。
- 活跃 AI 会话列表 — 手机端按项目分组展示正在跑的 Claude / Codex 会话,状态灯与桌面端实时同步增删变色;桌面端离线时顶部横幅提示并置灰,恢复后自动消除。
- 对话镜像(只读) — 点进任一会话实时查看对话内容,AI 回复 Markdown 渲染、桌面输入原文展示,滚动到顶自动分页加载更早消息。
- 移动端指令 — 镜像页底部输入框把文本写穿到桌面对应终端,等价于本人在键盘上敲下并回车,带即时回执与明确失败原因;桌面端离线时中转直接拒绝,不做存储转发。
- 中转服务开箱即部署 — 自带三阶段 Dockerfile 与 compose 示例,一条命令从源码构建启动;反代 + TLS 配置、环境变量表与运维注意见 部署文档。
- PWA 体验 — 手机浏览器「添加到主屏幕」后以独立窗口运行,断线指数退避重连并自动恢复订阅,内置与桌面端同模式的中英双语。
变更
- 移除 cc-connect 集成 — 删除后端模块与全部 10 个相关命令,连接弹窗、Dashboard 嵌入、顶栏「连接」入口一并移除;带该字段的旧配置静默加载并在下次保存时自动清除,无需手工处理。移除原因与替代方案见仓库内 ADR 0001。
修复
- 对话镜像新会话不再错绑上一次会话的记录:镜像以 pane 内 AI 会话启动时刻为下限过滤,新会话首条消息落盘前给空镜像而不是展示旧内容。
- 同项目并行开多个 AI pane 不再互相串台:镜像绑定改为经 Hook 会话身份精确到具体会话,/clear 换会话自动跟进;未启用 Hook 时退回原启发式,行为不劣化。
体验
- 「移动端」的连接配置与配对配置合并到同一个面板,不必再先去设置中心配地址再回来配对;设置中心的「移动端」页随之移除。
- 「移动端」面板点击遮罩不再关闭,避免输入中转地址时误点外侧丢掉未保存内容。
安全性
- 中转服务器只做转发,不存储任何消息体,日志仅记录元数据;有子进程级自动化测试断言全流程零文件残留。
- Hook 上报的 session_id 做字符白名单校验,防止经 hook 端口构造路径穿越。
下载

| 平台 | 产物 |
| --------------------- | ----------------------------------------------------------------------------------------- |
| Windows | Mini-Term_0.7.0_x64-setup.exe(推荐)· Mini-Term_0.7.0_x64_en-US.msi |
| macOS (Apple Silicon) | Mini-Term_0.7.0_aarch64.dmg · Mini-Term_aarch64.app.tar.gz |
| Linux | Mini-Term_0.7.0_amd64.AppImage · Mini-Term_0.7.0_amd64.deb · Mini-Term-0.7.0-1.x86_64.rpm |

macOS 提示:产物未经 Apple Developer ID 签名,双击可能提示「已损坏,移到废纸篓」。把 .app 拖入 /Applications 后执行一次 xattr -cr /Applications/Mini-Term.app 即可正常启动,每次升级后需重新执行。
平台支持:Windows 为主要支持平台,macOS / Linux 代码层面已支持但未经充分打磨。
完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.6.11...v0.7.0
0.6.11 23 de juliol del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
v0.6.11 · 修复窗口失焦后的系统输入锁定
🐛 缺陷修复
- 失焦输入锁定:此前窗口失焦瞬间若左键仍处于按下状态(拖动标题栏时切换窗口、截图工具抢焦点等场景),鼠标捕获与 Win32 模态输入状态会被完全跳过清理,残留的模态状态可能阻塞整个桌面的输入切换。现在失焦后会等待左键松开,再检查并投递 WM_CANCELMODE 完成延迟清理,正常的窗口拖动 / 缩放不受影响。
- 句柄安全防护:延迟恢复操作通过窗口身份标记校验目标窗口,避免误操作已销毁或被系统复用的窗口句柄。
⚙️ 工程维护
- Rust 单元测试增至 334 个,补充系统菜单锁定、鼠标捕获与延迟释放的回归测试。

Windows:Mini-Term_0.6.11_x64-setup.exe(推荐)或 _x64_en-US.msi · macOS(Apple Silicon):_aarch64.dmg · Linux:.AppImage / .deb / .rpm
0.6.10 23 de juliol del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
v0.6.10 · SSH 连接分组管理
🗂️ SSH 分组管理
- 两栏管理弹窗:SSH 连接弹窗重构为左右两栏——左侧分组列表(全部连接 / 具名分组 / 未分组,带连接数),右侧展示选中分组的连接;「全部连接」视图下分组标题可折叠 / 展开。
- 分组增删改:左栏空白处右键「新增分组」,分组右键可重命名 / 解散;空分组可持久保存(新增 sshGroups 配置字段,老配置无感兼容),重命名自动同步组内所有连接,重命名为已有组名时自然合并。
- 拖拽调整归属:右侧连接行按住拖到左侧任意分组(含「未分组」)松手即切换归属,落点虚线高亮;采用鼠标事件模拟拖拽,规避 WebView2 dragDropEnabled 拦截 HTML5 拖放的限制。
- 表单分组下拉:连接编辑表单的分组字段升级为组合输入框,聚焦即可下拉选择已有分组(随输入过滤),也可直接输入新分组名;在某个分组视图下新建连接会自动预填该分组。
⚙️ 工程维护
- 修复 Git Bash 环境下 npm run tauri dev 报错:解压 ConPTY .nupkg 时固定使用 Windows 自带的 bsdtar(System32\tar.exe),不再受 PATH 上 GNU tar 无法识别 zip 容器影响。
- Rust 单元测试增至 328 个,补充 sshGroups 配置字段的 round-trip 与向后兼容测试。

Windows:Mini-Term_0.6.10_x64-setup.exe(推荐)或 _x64_en-US.msi · macOS(Apple Silicon):_aarch64.dmg · Linux:.AppImage / .deb / .rpm
0.6.9 21 de juliol del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
v0.6.9 · Codex 终端兼容与状态修复
🖥️ Codex 滚动与内容折叠
- 固定 Windows ConPTY 运行时:Windows 安装包内置官方 ConPTY 兼容运行时,并在启动时完成资源与架构校验;资源异常时自动回退系统 ConPTY,改善不同 Windows 版本下 Codex 的滚动兼容性。
- 恢复 Codex 自动折叠:重新遵循 CSI 3J(ED3),允许 Codex 清理流式临时历史并重放折叠后的最终内容;继续保留 10 万行滚动缓冲和 alternate-screen 拦截,/clear 也能真正清除旧历史。
🤖 AI 状态检测
- 修复 Codex 审批状态:PermissionRequest 从审批弹出、用户批准到工具执行完成期间保持 ai-working,不再提前进入 idle 或误报“任务完成”。
- 修正 Hook Agent 识别:改用 Codex 专有的 turn_id 区分 Codex 与 Claude Code,避免两者都携带 transcript_path 时识别错误。
🐛 其他修复
- 修复 Git Changes 面板丢弃新增(未跟踪)文件无反应的问题,新增文件和新增目录内文件均可正确删除。
- 补充 Tauri set-title 权限,原生标题栏恢复显示 Mini-Term v0.6.9。
⚙️ 工程维护
- 补充 ConPTY 资源布局、架构选择、加载回退和 xterm 滚动行为的回归测试与契约说明。
- 移除已停用的 Trellis 工作流及相关项目集成。

Windows:Mini-Term_0.6.9_x64-setup.exe(推荐)或 _x64_en-US.msi · macOS(Apple Silicon):_aarch64.dmg · Linux:.AppImage / .deb / .rpm
0.6.8 13 de juliol del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
v0.6.8 · 主界面三栏重构
🧭 界面重构
- 三栏新布局:最左新增常驻图标侧栏(折叠中间栏 / Sessions / Git / 设置 / SSH / 连接);中间栏纵向叠放 Projects 与 Files、可一键整栏折叠;右侧为终端。
- Sessions / Git 悬浮抽屉:从右边缘滑出、浮在终端之上,互斥单开,左缘可拖拽调宽(240–720px,宽度持久化),✕ 关闭;开合态每次启动默认收起。
- 顶栏精简:移除自定义标题栏,版本号写入原生窗口标题(Mini-Term vX);设置 / SSH / 连接三入口收入图标侧栏;「有新版本」提示改为侧栏图标高亮、点击前往下载。
🐛 修复
- 右侧抽屉拖拽调宽时禁用页面文本选中,避免划过终端误选。
⚙️ 其他
- 新增配置 middleColumnVisible / rightDrawerWidth(前后端对齐,兼容旧 config.json)。

Windows:Mini-Term_0.6.8_x64-setup.exe(推荐)或 _x64_en-US.msi · macOS(Apple Silicon):_aarch64.dmg · Linux:.AppImage / .deb / .rpm
0.6.7 6 de juliol del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
本版为深度 review 修复版,修复三处问题——其中一处影响多服务器场景下的文件树正确性,两处涉及 SSH 凭据边界。
修复
- 文件树跨服务器串台 — 同时管理两个远程路径相同的 SSH 项目(如两台服务器都有 /root/app)时,从一个切回另一个(缓存命中)会让文件树里已展开的子目录显示另一台服务器的文件。根因是文件树节点的 React key 只用了路径、未掺连接 id,切回时复用了上一台服务器遗留的子树状态。改为 key 掺入连接 id:不同服务器强制整树重挂并按当前连接重新拉取,切回同一项目仍复用实例、保留展开态。
- SSH 登录密码被灌进远程 su / mysql -p / passwd 提示 — SSH 远程项目的连接同时配了私钥和密码时,publickey 登录成功后全程不出现密码提示,密码自动填充便终身待命,会把 SSH 登录密码打进之后任意以 password: 结尾的提示。改为用户首次在终端真实输入即解除自动填充(排除 xterm 焦点进/出序列,不误伤认证阶段),并在 PTY 退出时清除驻留的明文密码;终端右键「SSH 连接」功能行为保持不变。
- 关联 SSH 范围静默扩大 — 「关联 SSH」范围为旧空值(语义是"含未来新增连接")的项目,在全选保存时被判为无变化而不落盘迁移,导致之后新增 SSH 连接被静默纳入该项目的可访问范围。改为强制迁移成显式连接列表;有效范围不变时静默落盘、不打扰。
质量
- 新增 4 条 SSH 密码自动填充单元测试,Rust 单元测试总数 313 → 317,全绿。
下载
平台 产物
Windows Mini-Term_0.6.7_x64-setup.exe / Mini-Term_0.6.7_x64_en-US.msi
macOS Mini-Term_0.6.7_aarch64.dmg(Apple Silicon)
Linux Mini-Term_0.6.7_amd64.AppImage / Mini-Term_0.6.7_amd64.deb / Mini-Term-0.6.7-1.x86_64.rpm
macOS 提示:产物未做 Apple Developer ID 签名,首次打开若提示"已损坏",将 .app 拖入 /Applications 后执行 xattr -cr /Applications/Mini-Term.app 即可。
平台支持:Windows 为主要支持平台;macOS / Linux 可用性欠佳,欢迎反馈 Issue。
完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.6.6...v0.6.7
0.6.6 5 de juliol del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
新功能
- SSH 远程项目 — 把远程服务器上的目录直接添加为 mini-term 项目:
- 项目列表新增「添加远程项目」入口,选择已保存的 SSH 连接并填写远程路径,保存前自动远程验证目录存在
- 文件树经 SFTP 懒加载展开,展开行内 loading 反馈,支持手动刷新,遵循远端根 .gitignore 过滤
- 终端直连远程服务器并自动进入项目目录,断线后覆盖层一键重连
- Session 面板按时间混排远程机器上的 Claude / Codex 历史会话,支持查看会话正文
- 远程项目带连接名徽标;引用的 SSH 连接被删除时显示「断链」状态而非静默失效
- 全部新界面文案中英双语
体验
- 远程文件树展开目录时以行内旋转圆环替换箭头,SFTP 拉取期间有明确反馈,加载中忽略重复点击避免叠发请求
- 远程项目下不适用的本地能力(git 徽章、文件监听、搜索、环境变量、cc-connect 导入等)逐点隐藏,不再展示无效入口
架构
- russh 持久会话池与 SFTP 原语抽为 mt-ssh 共享 crate,主程序与 SSH MCP sidecar 共用同一套实现
- 远程数据缓存键掺入连接 id,防止两台服务器同名路径互相串数据
下载
平台 产物
Windows Mini-Term_0.6.6_x64-setup.exe / Mini-Term_0.6.6_x64_en-US.msi
macOS Mini-Term_0.6.6_aarch64.dmg(Apple Silicon)
Linux Mini-Term_0.6.6_amd64.AppImage / Mini-Term_0.6.6_amd64.deb / Mini-Term-0.6.6-1.x86_64.rpm
macOS 提示:产物未做 Apple Developer ID 签名,首次打开若提示"已损坏",将 .app 拖入 /Applications 后执行 xattr -cr /Applications/Mini-Term.app 即可。
平台支持:Windows 为主要支持平台;macOS / Linux 可用性欠佳,欢迎反馈 Issue。
完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.6.5...v0.6.6
0.6.5 4 de juliol del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
新功能
- Session 块支持查看 WSL 内的 Claude / Codex 历史会话
- WSL 根项目(\\wsl$ / \\wsl.localhost 路径)零配置:自动从路径推导发行版与项目目录,直接加载 WSL 内的历史会话
- Windows 路径项目:右键菜单新增「WSL 会话」子菜单选择发行版,按 /mnt 规则映射路径后扫描,并靠会话内 cwd 精确校验,不会串到其他项目的会话
- WSL 会话与本机会话按时间合并混排,条目带 WSL 标识;列表分段加载——本机会话先显示,WSL 会话到达后再合入,加载期间头部显示 spinner
- 右键「查看」同样支持读取 WSL 会话正文
- 实现上不启动 wsl.exe:发行版列表读注册表枚举,会话文件走 \\wsl$ UNC 直读,发行版未运行或读取失败时静默降级,不影响本机会话展示

下载
平台 文件
Windows Mini-Term_0.6.5_x64-setup.exe / Mini-Term_0.6.5_x64_en-US.msi
macOS (Apple Silicon) Mini-Term_0.6.5_aarch64.dmg
Linux Mini-Term_0.6.5_amd64.deb / Mini-Term-0.6.5-1.x86_64.rpm / Mini-Term_0.6.5_amd64.AppImage
Windows 为主要支持平台;macOS / Linux 为实验性支持。
0.6.4 27 de juny del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
Bug 修复
- 修复 Markdown 预览中点击本地文件链接导致整个程序重载
- 根因:链接点击处理对非 http 链接(相对路径 / 锚点 / mailto)直接放行,而 Markdown 渲染在主文档中,<a> 的默认导航会让 WebView 离开 SPA,造成整个程序重载、状态丢失
- 改为任何链接都先阻止默认导航,绝不放行顶层跳转(会话查看器同时受益)
功能改进
- 文件预览支持本地链接在预览内跳转
- 解析相对 / 绝对路径(归一化 ./ 与 ..),经项目根目录校验后在预览内打开
- 新增跳转历史与「← 返回」按钮,跳转后内容区自动回到顶部
- 文档内锚点链接改为预览内平滑滚动到对应标题(为各级标题生成 slug id);mailto / tel 等协议交由系统打开

下载
平台 文件
Windows Mini-Term_0.6.4_x64-setup.exe / Mini-Term_0.6.4_x64_en-US.msi
macOS (Apple Silicon) Mini-Term_0.6.4_aarch64.dmg
Linux Mini-Term_0.6.4_amd64.deb / Mini-Term-0.6.4-1.x86_64.rpm / Mini-Term_0.6.4_amd64.AppImage
Windows 为主要支持平台;macOS / Linux 为实验性支持。
0.6.3 23 de juny del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
Bug 修复
- 修复新增 SSH 连接后项目关联弹框全部复选框被自动勾选
- 「关联 SSH」弹框保存时,若恰好勾选了全部已有连接,范围会存为 undefined(语义为"含将来新增"),导致新增 SSH 后重新打开弹框时所有连接都被自动勾选
- 改为始终存储显式 id 列表,新增连接不会被自动纳入已有项目的关联范围
- 兼容旧配置:undefined 视为当前全量,打开旧配置无修改不触发误报
0.6.2 18 de juny del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
🐛 Bug 修复
终端 emoji 字符显示宽度不对,导致表格列错位
现象 AI / CLI 工具在终端里输出带 ✅ ❌ ⚠️ 等 emoji 的 box-drawing 表格时,竖线 │ 逐行错位、字形互相挤偏,整张表对不齐。
根因 xterm.js 默认用 Unicode 6 的字符宽度表,把这些 emoji 判为窄字符(占 1 格);而生成表格的程序按现代约定(emoji = 2 格,和 Windows Terminal / iTerm2 一致)计算对齐填充。两端口径不一致 —— xterm 只给 emoji 预留 1 格、字形却画成约 2 格宽,于是后面的字符被覆盖、整行往左塌。其中 ⚠️(U+26A0 + 变体选择符 U+FE0F)更隐蔽:官方 unicode11 宽度表里既没收录 U+26A0,也不对 U+FE0F 做 emoji 形态的宽度提升,单靠官方 addon 仍把它当 1 格。
修复
- 接入官方 @xterm/addon-unicode11,切到 Unicode 11 宽度表,修正 ✅(U+2705) / ❌(U+274C) 这类标准 emoji 为 2 格;
- 在其之上新增 '11-emoji' 宽度 provider:当变体选择符 U+FE0F 紧跟一个有宽度的基字符时,把整体提升为 2 格,修正 ⚠️ 等 addon 自身仍漏判的序列;取不到内部宽度表时优雅回退标准 v11,至少保住 ✅/❌;
- 修正范围精确收窄:只有「U+FE0F 紧跟基字符」会被提为 2 格,组合符、行首孤立变体选择符、文本形态选择符 U+FE0E 均不误伤;东亚歧义宽度字符(①② → ● 等)维持终端默认的 1 格不动。
完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.6.1...v0.6.2
0.6.1 17 de juny del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
🐛 Bug 修复
中文输入法候选框把窗口布局「顶开」(#34)
现象 Windows 11 下用微信 / 系统原生输入法打中文时,候选框一出现,窗口底部就裂出一道缝,透出半透明窗口背板(被压暗的桌面);英文输入态没有候选框则一切正常。
根因 IME composition 期间,WebView2 会对获得焦点的 xterm helper-textarea 执行 scrollIntoView,把某个 overflow:hidden 的布局祖先横向滚动(scrollLeft 被设为非 0)。关键点在于 overflow:hidden 只能阻止用户拖动滚动条,挡不住程序化滚动,于是内容被横向推走、底部/右侧露出背板。
修复 新增一个捕获阶段的全局 scroll 监听:一旦发现 overflow:hidden 容器出现横向偏移,立即把 scrollLeft 复位为 0。合法的横向滚动容器(overflow-x:auto/scroll,如代码块、tab 栏、modal)经 scrollLeft===0 短路与 overflowX 判定被放过,不受影响;竖向滚动零额外开销。
完整变更:https://github.com/dreamlonglll/mini-term/compare/v0.6.0...v0.6.1
0.6.0 9 de juny del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
- release: 升级版本号至 v0.6.0 - package.json / tauri.conf.json / Cargo.toml / Cargo.lock 同步升至 0.6.0 - README 中英双版更新版本徽章至 0.6.0 - 本版新增:mt-ssh-mcp(SSH MCP sidecar)文件传输能力——接入 russh-sftp 2.3.0,在现有 russh 0.61 持久会话池上新增 ssh_upload / ssh_download 两个 MCP 工具,让 AI agent 直接收发远程文件,摆脱 ssh_exec + base64 受 100KB 输出封顶限制的 workaround;大文件流式分块(open_with_flags + 8KB 缓冲)内存恒定;新增安全硬护栏拒传含全部 SSH 明文密码的 config.json;修正 russh-sftp 协议层 set_timeout 默认 10s 逐请求计时致慢链路大文件被误中断的问题
- chore: record journal
- chore(task): archive 06-09-ssh-mcp-sftp-transfer
- docs: 固化 russh-sftp 文件传输后端 spec - 新增 russh-sftp-file-transfer.md:7 段可执行契约(签名/契约/错误矩阵/Good-Base-Bad/Tests/Wrong-vs-Correct),含接入模式(request_subsystem+into_stream)、大文件流式分块、协议层 10s 逐请求超时坑、config.json 明文密码外泄硬护栏 - backend/index.md 规范索引补一行指向新 spec
- feat: 新增 mt-ssh-mcp SFTP 文件上传/下载工具 - 接入 russh-sftp 2.3.0,在现有 russh 0.61 持久会话池上新增 ssh_upload / ssh_download 两个 MCP 工具,让 AI agent 直接收发远程文件,摆脱 ssh_exec + base64 受 100KB 输出封顶限制的 workaround - 大文件流式分块(open_with_flags + 8KB 缓冲),内存恒定,不用整文件进内存的 SftpSessionread/write;下载先写 .mt-sftp-partial 临时文件再原子 rename,失败清理半截文件 - 安全硬护栏 is_blocked_local_path:拒传 mini-term 自身 config.json(含全部 SSH 明文密码),canonicalize 比对 + lexical 兜底防 .. 绕过/大小写,upload/download 双向都拦 - 修正 russh-sftp 协议层 SftpSessionset_timeout 默认 10s 且逐请求计时的坑,放宽到外层传输窗口(默认 300s,可 timeout_secs 覆盖),避免慢链路大文件被误中断 - transport 错(channel/subsystem/握手)走 evict+单次 retry,SFTP 业务错(路径不存在/无权限)直接返 agent 不 evict;每次传输记 ssh-mcp-audit.log;错误不含密码 - 依赖复核:russh-sftp 不依赖 russh、Cargo.lock 零 aws-lc、ssh-key/ssh-encoding/rsa 精确锁未变(规避 Windows MSVC NASM),tokio 补 fs/io-util feature - README 中英双版补充两个新工具说明;新增 SFTP 相关单测(护栏/审计行/错误分类/入参解析)
0.5.3 6 de juny del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
🐛 修复
SSH MCP(mt-ssh-mcp)无法用传统 PKCS#1 RSA 私钥连接服务器
部分服务器下发的私钥是传统 PKCS#1 明文格式(-----BEGIN RSA PRIVATE KEY-----,常见于 Oracle Cloud 控制台、ssh-keygen -m PEM、OpenSSL)。此前用这类 key 通过内置 SSH 工具连接会直接失败(报 Unsupported key type RSA),而系统 ssh 用同一把 key 却能正常登录。本版修复:
- 新增 PKCS#1 私钥解析兜底:原本只认 OpenSSH / PKCS#8 格式,现对传统 PKCS#1 明文 RSA 私钥做纯 Rust 解析,无需再手动转换 key 格式。
- 修正 RSA 公钥签名算法:此前 RSA 认证默认用 SHA-1(ssh-rsa),会被现代 OpenSSH(≥ 8.8,如 Ubuntu 22.04/24.04)默认拒绝;现按服务器通告的 server-sig-algs 自动选用 rsa-sha2-512/256,并跳过对 ed25519 等密钥的无谓查询。
- 加密私钥(带 passphrase)暂仍不支持,会给出明确提示。
影响范围:使用 RSA 私钥连接 SSH 的用户,尤其是 Oracle Cloud / 老格式 key 用户。ed25519 等其它密钥类型不受影响。

下载:Windows 选 Mini-Term_0.5.3_x64-setup.exe(或 .msi);macOS 选 _aarch64.dmg;Linux 选 .AppImage / .deb / .rpm。
0.5.2 2 de juny del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
- release: 升级版本号至 v0.5.2 - package.json / tauri.conf.json / Cargo.toml / Cargo.lock 同步升至 0.5.2 - README 中英双版更新版本徽章至 0.5.2 - 本版修复:含中文/特殊字符路径的项目(如 D:\Git\bhyt-一体机)AI 会话列表始终为空——会话目录名编码规则未对齐 Claude Code(实际把非字母数字字符均转为 -);同时修复前缀相同的兄弟项目(如 D:\Git\bhyt 与 D:\Git\bhyt-一体机)会话互相串台
- fix: 修复含中文/特殊字符路径的项目 AI 会话列表始终为空 - encode_project_path 改为将所有非字母数字字符(含中文/点/空格)统一转为 -,对齐 Claude Code 实际的会话目录编码规则,修复 D:\Git\bhyt-一体机 等含中文路径算出的目录名与实际落盘目录(D--Git-bhyt----)对不上、导致 sessions 恒空的问题 - find_claude_project_dirs 对「前缀相同仅尾部多 -」的模糊匹配新增 dir_matches_project 校验,读取会话文件内真实 cwd 精确比对,避免兄弟项目(如 D:\Git\bhyt 与 D:\Git\bhyt-一体机)会话互相串台
0.5.1 1 de juny del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
v0.5.1 — 稳定性修复
继 v0.5.0 之后的修复版,重点解决搜索崩溃与若干资源/数据安全问题。
🐛 修复
- 搜索遇中文/多字节字符崩溃:搜索含中文(及 emoji、土耳其语 İ 等)的文件名或内容时,后端按字节切分多字节字符会 panic,导致搜索框永久卡在「搜索中」。已重写为按字符匹配,并为搜索线程加 panic 兜底。
- 剪贴板图片粘贴内存安全隐患:粘贴非标准格式(部分截图工具)图片时,DIB 解析缺少长度校验,畸形数据可能触发越界读/整数溢出。已补全边界与维度校验。
- 配置文件写入防损坏:config.json、cc-connect、MCP/Codex/Claude 等配置改为原子写入(临时文件 + 重命名),杜绝写入中途崩溃/断电留下半截损坏文件而丢失配置;覆盖时保留原文件权限。
- 删除项目时的资源泄漏:删除仍开着终端的项目时,会一并回收后端 shell/AI 子进程与前端终端实例,不再残留孤儿进程。
- 文件树监听句柄泄漏:展开/折叠目录、切换项目时不再累积文件系统监听句柄。
- 点击 Git 上/下箭头(pull/push)偶发 UI 卡顿:移出主线程执行,避免冻结界面。
✨ 细节优化
- 项目列表中 idle 状态的项目不再显示状态小圆点,列表更清爽。
0.5.0 31 de maig del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
本版主特性:全应用中英双语 (i18n)。每个页面、每个功能的界面文案均支持 中文 / English 一键切换 —— 覆盖设置中心、项目列表、文件树、终端右键菜单、Git、SSH、cc-connect、各类弹窗与提示。
新增
- 中英双语界面 (i18n) — 「设置 → 系统」新增语言切换开关,一键在 中文 / English 间切换,整个 UI 实时重渲染、无需重启;首次启动按系统语言(navigator.language)自动探测,之后记忆到本地并在重启后保留。
- 全覆盖 — 28 个组件 / 工具的全部用户可见文案抽取为 29 个 zh / en 命名空间字典,含按钮、菜单项、输入占位符、标题 / tooltip、toast / 通知 / 确认弹窗、空状态、相对时间等。
- 轻量实现 — 内置基于 Zustand 的极简 i18n 层(点分 key + {占位符} 插值 + 中文兜底),无新增运行时依赖;中文用户的文案与行为与旧版逐字一致。
说明
- 少量由后端 (Rust) 生成的诊断 / 报错文案本版暂未纳入翻译(语言偏好为纯前端态);代码注释与 console 调试日志按约定保持原样。
下载
- Windows — Mini-Term_0.5.0_x64-setup.exe(NSIS,推荐)或 Mini-Term_0.5.0_x64_en-US.msi
- macOS (Apple Silicon) — Mini-Term_0.5.0_aarch64.dmg(首次启动需在终端运行 xattr -cr /Applications/Mini-Term.app 解除 Gatekeeper quarantine)
- Linux — Mini-Term_0.5.0_amd64.AppImage / Mini-Term_0.5.0_amd64.deb / Mini-Term-0.5.0-1.x86_64.rpm
平台支持:Windows 为主要支持平台,日常开发与测试均在 Windows 上进行;macOS / Linux 代码层面已支持,但未经充分打磨,可用性欠佳,欢迎提 Issue 反馈。

完整 commits: https://github.com/dreamlonglll/mini-term/compare/v0.4.22...v0.5.0
0.4.22 29 de maig del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
本版为 v0.4.21 的修复版:v0.4.21 在打包后(生产环境)打开 cc-connect Dashboard 会被 WebView CSP 拦成「已阻止此内容」空白页,本版修复。功能与 v0.4.21 一致。
修复
- 生产环境打开 cc-connect Dashboard 显示「已阻止此内容」空白页 — Dashboard 以 iframe 加载本机 http://127.0.0.1:<port> 的 cc-connect Web 控制台,而 tauri.conf.json 的 CSP frame-src 白名单不含本地回环地址;开发环境前端走 Vite dev server 不注入 CSP 所以正常,打包后走 Tauri 自定义协议、CSP 生效,iframe 被拦截。本版移除 CSP 限制,使内嵌 Dashboard 在生产环境正常加载。
- cc-connect 在 Windows 上的进程管理兼容性 — cc-connect 常以 npm 脚本壳(cc-connect.cmd / .ps1)安装、无原生 .exe,旧逻辑 Command::new 解析裸名只补 .exe 导致 program not found;现按 PATH × PATHEXT 像终端一样解析(.cmd / .bat 原生 spawn、.ps1 包 powershell -NoProfile -File)。停止 / 重启遗留孤儿进程(真实 node 是脚本壳子孙、child.kill() 杀不到)改用 taskkill /T /F 杀整棵进程树。探活 HTTP 改异步执行,不再因 5s 轮询冻结 UI。
- 导入项目缺平台导致 cc-connect 无法冷启动 — cc-connect 强制每个 [[projects]] 至少一个 [[projects.platforms]],否则配置校验失败、进程 os.Exit(1)。导入时为每个项目注入一个冷启动安全的占位 Telegram 平台(非空假 token,异步重连失败不崩),彻底避免写出无法启动的配置。
新增
- cc-connect 集成 — 把本机 AI agent 通过 IM 平台(飞书 / Slack / Telegram / Discord / 钉钉 / 微信等)远程驱动 — 与上游 chenhg5/cc-connect 桥接,入口统一收在顶栏「连接」按钮弹窗内:
- 进程管理(零配置) — 一键启动 / 停止 / 重启 / 测试连接 / 编辑 config.toml,可选 mini-term 启动时自动 spawn;可执行文件 / 配置路径留空时自动回退 PATH 中的 cc-connect 与 ~/.cc-connect/config.toml,零配置即可使用;关闭 mini-term 不联动 kill,保证 IM 持续可用。
- 一键导入项目 — 弹窗内列出全部 mini-term 项目,勾选 / 全选后一键批量导入到 cc-connect(用 toml_edit 追加 [[projects]] 保留注释、单次写盘 + 仅重启一次、同名冲突加 8 字符 hash 后缀),也可逐项单独导入;已导入项显示「● 已导入」并可一键移除。每个导入项目会附带一个占位 Telegram 平台保证 cc-connect 能冷启动,导入后到 Dashboard 把占位替换为真实 IM 平台即可启用。
- Dashboard 嵌入 — 弹窗内「打开 Dashboard」直接在 mini-term 内嵌 cc-connect Web 控制台(自动登录态),配置 IM 平台 / 切换 provider / 管理 cron,无需另开浏览器。
下载
- Windows — Mini-Term_0.4.22_x64-setup.exe(NSIS,推荐)或 Mini-Term_0.4.22_x64_en-US.msi
- macOS (Apple Silicon) — Mini-Term_0.4.22_aarch64.dmg(首次启动需在终端运行 xattr -cr /Applications/Mini-Term.app 解除 Gatekeeper quarantine)
- Linux — Mini-Term_0.4.22_amd64.AppImage / Mini-Term_0.4.22_amd64.deb / Mini-Term-0.4.22-1.x86_64.rpm
平台支持:Windows 为主要支持平台,日常开发与测试均在 Windows 上进行;macOS / Linux 代码层面已支持,但未经充分打磨,可用性欠佳,欢迎提 Issue 反馈。

完整 commits: https://github.com/dreamlonglll/mini-term/compare/v0.4.21...v0.4.22
0.4.21 29 de maig del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
- release: 升级版本号至 v0.4.21,首次将 cc-connect 集成并入主线
- feat: 「连接」弹窗内一键导入项目到 cc-connect,占位平台修复冷启动
- fix(cc-connect): 修复 Windows 启动失败/孤儿进程/卡顿,并移除会产出无效配置的项目导入
- chore(task): archive research-clawd-on-desk
- feat: 「连接」弹窗内置项目导入,支持勾选批量一键导入 - 弹窗新增“导入项目到 cc-connect”区块,可单个导入或勾选后一键批量导入,已关联项显示解除、失效项显示清理 - 新增后端 cc_connect_import_projects 命令:批量一次写盘 + 仅重启一次 cc-connect,避免逐个导入多次断开 IM 会话 - 批量导入在“现有项目 + 批次内部”统一去重(冲突加 hash 后缀),并一次性写入全部 projectLinks - 探活改为常驻 + 放宽右键导入门控,零配置(未保存路径)下也能识别运行态并导入 - 确认框 .prompt-message 支持换行与超长滚动,批量清单超 15 条折叠显示
- feat: cc-connect 入口从设置页迁移为顶栏「连接」弹窗并支持零配置 - 顶栏改为「设置 | SSH | 连接」三按钮,移除原 cc-connect 状态点与独立 Dashboard 入口 - 新增 CcConnectModal 整合进程管理(启停/重启/测试/编辑配置)与 Dashboard 嵌入入口,从设置面板移出 - 设置面板删除 cc-connect 分页及对应菜单项、SettingsPage 类型值 - 未填写可执行文件/配置时回退默认值(PATH 中的 cc-connect + ~/.cc-connect/config.toml),启动/停止/重启/测试/编辑配置及开机自启均可零配置使用 - 新增后端命令 cc_connect_config_path 解析默认 config.toml 路径,供「编辑配置文件」在未填写时打开
- chore(task): archive 05-28-fluent2-skin
- chore(task): archive 05-28-fix-xterm-atlas-mojibake-v2
- chore: record journal
- docs: 同步 README 与 Cargo.toml 介绍 cc-connect 集成 - README 顶部 slogan 加 · IM 平台远程驱动 (cc-connect) 亮点,功能特性新增 ### cc-connect 集成 分组,涵盖进程管理 (启停 / 测试连接 / autoStart / 顶部状态点三态) / 项目导入与关联 (toml_edit 写盘 + restart + hash 冲突后缀 + race-safe icon) / Dashboard 嵌入 (iframe 自动登录 + createPortal 绕 Fluent 2 + keep-alive) / 半同步态处理 (tomlWritten 与 deletedOk 分支) / 优雅降级 五大子项 - src-tauri/Cargo.toml description 从占位符 "A Tauri App" 改成 mini-term: AI-aware desktop terminal manager built on Tauri v2 — multi-project, multi-tab, split-pane, IM bridged via cc-connect 真实描述
- chore: record journal
- chore(task): archive 05-29-fix-cc-connect-panel-critical
- fix: cc-connect-panel review 三 Critical + Major #7 半同步态修复 - Critical #1:CcConnectDashboard 提到 App 顶层单例,store 加 dashboard slice (ccDashboardOpen/ccDashboardDeepLink + openCcDashboard/closeCcDashboard action),ProjectList 删 local state 改用 store,grep 验证全仓仅 App.tsx 一处挂载,消除双挂载 keep-alive 内存翻倍 + z-index 重叠 + Esc 行为不确定 - Critical #2:CcConnectDashboard 加 lastSeenRunningRef/lastSeenOwnPidRef 边缘检测,running false→true 或 ownPid 变化时 setIframeUrl(null) 强制 rebuild;running true→false 保留 url 避免 cc-connect 临时掉线白屏闪烁;首次 mount 时 lastSeenRunning 初值取 status.running 不误触 - Critical #3:cc_connect_restart fallback 顺序调整,exe_path.ok_or_else 提到 take child 之前,exe_path=None 时不杀 child 不破坏 state,Err 信息提示用户填路径后手动启动避免半同步态 - Major #7:cc_connect_import_project / cc_connect_unlink_project 返回值改 ImportProjectResult/UnlinkProjectResult struct (tomlWritten/restartOk/restartError 与 deletedOk/restartOk/restartError),toml/DELETE 成功后 restart 失败编码到 result 不返 Err,前端按 tomlWritten/deletedOk 仍写/清 projectLinks + 警告 toast 消除"项目存在但未关联""项目已删但 icon 仍红"半同步态 - types.ts 加 ImportProjectResult/UnlinkProjectResult interface 严格 camelCase 对齐;spec cc-connect-integration.md Validation Matrix 同步契约从"返 Err"改"返 result.restartOk=false";cargo test 154 全过 / cargo check / tsc / vite build clean
- chore: record journal
- chore(task): archive 05-28-embed-cc-connect-panel
- docs: 沉淀 cc-connect 集成 4 项 spec (task 05-28-embed-cc-connect-panel 收尾) - backend/toml-edit-array-of-tables.md (新):TOML [[xxx]] 数组表标准模式 + ArrayOfTables 无 Index / 类型推断歧义 / 引号风格 assertion 脆 等坑的 Wrong vs Correct,5 个必跑单测点 - backend/cc-connect-integration.md (新):Management API :9820 接入面 / token 位置 / 创建项目必经 toml_edit + /api/v1/restart (/reload 不生效) / iframe URL + race-safe broken 标记 / probe 不抛错的轮询契约 - backend/tauri-command-nested-args.md (新):后端 command 含 struct 参数时前端 invoke 必须 wrap { req: } 而非散开,跨边界字段严格 camelCase 1:1 对齐 Rust serde 产物,常见错误信息映射 - frontend/fluent2-portal-modal.md (新):[data-panel] backdrop-filter 形成 containing block,fixed inset-0 全屏 modal/iframe 统一 createPortal 到 document.body,沿用 commit e7316e5 七 modal 修复范式 + iframe keep-alive display:none 不卸载避免重 login - backend/index.md / frontend/index.md 同步加索引
- feat: cc-connect 项目同步与 dashboard 嵌入 (mini-term × cc-connect PR3) - ProjectList 右键加 "导入到 cc-connect" / "在 cc-connect 配置平台" / "解除关联" / "清理失效关联" 四项,导入流程 confirm 显式提示重启风险 + 冲突 8 字符 hash 后缀 + 立即 probe 刷新,DELETE 失败走二次 conf
0.4.20 28 de maig del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
新增
- Fluent 2 皮肤 — 设置 → 外观新增「Fluent 2」选项,整体切到 Windows 11 风格视觉:柔和渐变背景配双层 radial-gradient「天光」、亚克力玻璃面板(backdrop-filter: blur(24px) saturate(140%))、Fluent 蓝主色(深色 #4cc2ff / 浅色 #0067c0)、清晰圆角与高光描边。File tree hover、button hover、scrollbar、Allotment 分隔条 hover 全套带 Fluent 缓动曲线(cubic-bezier(0.33, 0, 0.67, 1),180ms)。深/浅主题各自独立色板,终端配色随「终端跟随主题」切到 Fluent 专属色板。
修复
- Fluent 2 下右键 Session / Git 查看弹窗位置异常 — 启用 Fluent 2 后右键 Session 列表项「查看」、右键 Git 提交「查看」弹出的 modal 不再页面正中铺满,而是「挤」在对应面板的内容区域里,看起来像窗口被截断了一半。根因:Fluent 2 给 [data-panel] 加 backdrop-filter: blur(...) 实现亚克力玻璃,而 CSS 规范规定祖先有 backdrop-filter / transform / filter / perspective / will-change / contain 等属性时即成为后代 position: fixed 的 containing block —— modal 的 fixed inset-0 不再贴 viewport 而是贴面板边界。本版把挂在面板子树内的 7 个 modal(SessionViewer / CommitDiff / FileViewer / Diff / ProjectEnvVars / SshAssoc + ProjectList 内联删除确认)统一改用 createPortal(jsx, document.body) 渲染到 body 子节点,彻底绕开任何祖先的 containing block 拽拉,以后任何主题在祖先链加 containing-block-触发属性都不会再复现。
- Fluent 2 亚克力面板内嵌 SessionList / GitHistoryContent 子容器实色背景破坏玻璃感 — Fluent 2 下 SessionList 与 Git 历史内容区子容器自带 bg-[var(--bg-surface)] 实色,叠在半透明亚克力面板内部呈现「面板里又套了一块深色矩形」,破坏整体玻璃感。本版加 [data-skin="fluent2"] [data-panel] .bg-[var(--bg-surface)]:not(.sticky) 透明覆盖让子容器继承面板亚克力底色,保留 GitHistoryContent sticky 表头实色避免滚动穿透。
- v0.4.19 atlas glyph 错位乱码 _isPaused 拦截路径兜底 — v0.4.19 修复多 Claude Code 终端共享 atlas 同时乱码后,仍偶发单行/部分行换字型乱码(中文/数字变拉丁字母组合),切走再切回 tab 时部分行不自愈,必须 resize 才能恢复。根因:xterm.js core RenderService 自带 IntersectionObserver 监视 screenElement,wrapper.remove 后 _isPaused=true,atlas 事件路径的 term.refresh 全被 refreshRows 吞掉只设 _needsFullRefresh;切回 tab 时虽自动 flush 一次 refreshRows,但 partial _updateModel(start, end) 不覆盖含旧 glyph 坐标的行 → 表现为单行/部分行换字、不会自愈。本版在 TerminalInstance mount 第三层 rAF + visibilityObserver intersecting 回调内调 clearAtlasForPty(ptyId)(内部走 webglAddon.clearTextureAtlas() + 全行 _clearModel / _updateModel(0, rows-1) 重写所有 cell glyph 坐标),绕开 _isPaused 期间被吞的 term.refresh 残留;事件路径保留 term.refresh 不切 clearTextureAtlas,避免可见终端因 vertex buffer / lineLengths 全 fill(0) 出现 < 1 帧空白闪烁。新增可开关诊断日志 localStorage.miniterm.atlasDebug='1' 触发 atlas-event / clear-atlas console.log(含 reason / cacheSize / 各终端 isPaused 反射读 RenderService 私有字段),默认 OFF 不污染普通用户控制台。
下载
- Windows — Mini-Term_0.4.20_x64-setup.exe(NSIS,推荐)或 Mini-Term_0.4.20_x64_en-US.msi
- macOS (Apple Silicon) — Mini-Term_0.4.20_aarch64.dmg(首次启动需在终端运行 xattr -cr /Applications/Mini-Term.app 解除 Gatekeeper quarantine)
- Linux — Mini-Term_0.4.20_amd64.AppImage / Mini-Term_0.4.20_amd64.deb / Mini-Term-0.4.20-1.x86_64.rpm
平台支持:Windows 为主要支持平台,日常开发与测试均在 Windows 上进行;macOS / Linux 代码层面已支持,但未经充分打磨,可用性欠佳,欢迎提 Issue 反馈。

完整 commits: https://github.com/dreamlonglll/mini-term/compare/v0.4.19...v0.4.20
0.4.19 28 de maig del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
修复
- v0.4.18 终端连体字 (ligatures) 开关完全不生效的 hotfix — 上一版「启用连体字」开关切到 ON 后,终端无任何视觉变化,== => != -> 仍渲染为单字符,看似功能未上线。根因:new Terminal({...}) 配置漏开 allowProposedApi: true,而 LigaturesAddon 内部调用的 registerCharacterJoiner 在 xterm.js v6 中仍标记为 proposed API(未来可能调整签名),默认禁用。Addon 加载时抛 "You must set the allowProposedApi option to true to use proposed API",错误被 loadLigaturesIfEnabled 内的 try/catch 静默吞掉(只 console.error),UI 表现为开关切到 ON 但终端无任何视觉变化 —— devtools 没打开根本看不出来。本版在 new Terminal() 显式开启该选项,Windows + Fira Code / JetBrains Mono 等含 calt 表的字体下立即生效。Spec 文档同步新增「约束 3」+ Wrong vs Correct 代码对照,标注 "错误被 try/catch 静默吞掉" 这个隐性陷阱。
下载
- Windows — Mini-Term_0.4.19_x64-setup.exe(NSIS,推荐)或 Mini-Term_0.4.19_x64_en-US.msi
- macOS (Apple Silicon) — Mini-Term_0.4.19_aarch64.dmg(首次启动需在终端运行 xattr -cr /Applications/Mini-Term.app 解除 Gatekeeper quarantine)
- Linux — Mini-Term_0.4.19_amd64.AppImage / Mini-Term_0.4.19_amd64.deb / Mini-Term-0.4.19-1.x86_64.rpm
平台支持:Windows 为主要支持平台,日常开发与测试均在 Windows 上进行;macOS / Linux 代码层面已支持,但未经充分打磨,可用性欠佳,欢迎提 Issue 反馈。

完整 commits: https://github.com/dreamlonglll/mini-term/compare/v0.4.18...v0.4.19
0.4.17 27 de maig del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
新功能
- Markdown 外部链接点击拦截 + 系统浏览器打开 — 此前 FileViewerModal 预览 Markdown 文档与 SessionViewerModal 回放 AI 会话时,链接误点会直接在应用 webview 内打开外部页面(不可后退、会污染应用状态)。本版本新增 utils/externalLink.ts 抽出 isHttpUrl + handleExternalLinkClick 工具:http(s) 链接先 preventDefault 弹 showConfirm 让用户二次确认,确认后调 @tauri-apps/plugin-opener 的 openUrl 在系统默认浏览器打开;非 http(s)(相对路径 / 锚点 / mailto: 等)放行不干预。两个 modal 的 ReactMarkdown 渲染器 components.a 均已接入拦截。
下载
- Windows — Mini-Term_0.4.17_x64-setup.exe(NSIS,推荐) 或 Mini-Term_0.4.17_x64_en-US.msi
- macOS (Apple Silicon) — Mini-Term_0.4.17_aarch64.dmg(首次启动需在终端运行 xattr -cr /Applications/Mini-Term.app 解除 Gatekeeper quarantine)
- Linux — Mini-Term_0.4.17_amd64.AppImage / Mini-Term_0.4.17_amd64.deb / Mini-Term-0.4.17-1.x86_64.rpm
平台支持:Windows 为主要支持平台,日常开发与测试均在 Windows 上进行;macOS / Linux 代码层面已支持,但未经充分打磨,可用性欠佳,欢迎提 Issue 反馈。

完整 commits: https://github.com/dreamlonglll/mini-term/compare/v0.4.16...v0.4.17
0.4.16 27 de maig del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
修复
- Windows 深色模式标题栏跟随主题切换 (#33) — 此前深色模式下原生标题栏仍为浅色,与窗口主体配色割裂、观感突兀。本版本后端新增 window_theme::set_window_dark_mode Tauri command,Windows 调 Win32 DwmSetWindowAttribute(DWMWA_USE_IMMERSIVE_DARK_MODE=20) 切原生标题栏配色;前端 themeManager.applyToDOM 末尾自动 invoke('set_window_dark_mode'),在 theme 切换 / 启动加载 config / auto 模式系统色变化 三处自动同步标题栏。
技术细节
- 启动 applyTheme 在 window.show 之前以双 requestAnimationFrame 调用,深色用户标题栏先变深再可见,无首帧浅色闪烁。
- HRESULT 失败仅 eprintln 不阻塞主流程;纯浏览器 dev 模式 invoke reject 由 .catch 静默吞错。
- 非 Windows 平台用 cfg 包裹空实现保持跨平台编译;Cargo.toml windows crate 新增 Win32_Graphics_Dwm feature。
兼容性
- 适配范围:Windows 10 20H2+ 与 Windows 11;1809-1909 不做 DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1=19 fallback。
下载
- Windows — Mini-Term_0.4.16_x64-setup.exe(NSIS,推荐) 或 Mini-Term_0.4.16_x64_en-US.msi
- macOS (Apple Silicon) — Mini-Term_0.4.16_aarch64.dmg(首次启动需在终端运行 xattr -cr /Applications/Mini-Term.app 解除 Gatekeeper quarantine)
- Linux — Mini-Term_0.4.16_amd64.AppImage / Mini-Term_0.4.16_amd64.deb / Mini-Term-0.4.16-1.x86_64.rpm
平台支持:Windows 为主要支持平台,日常开发与测试均在 Windows 上进行;macOS / Linux 代码层面已支持,但未经充分打磨,可用性欠佳,欢迎提 Issue 反馈。

完整 commits: https://github.com/dreamlonglll/mini-term/compare/v0.4.15...v0.4.16
0.4.15 26 de maig del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
新功能
- WSL 项目 envVars 通过 WSLENV 透传 — v0.4.14 引入项目级环境变量时 WSL 项目被跳过注入(顶部黄色警告条),本版本通过 Windows WSLENV 协议正式打通。后端 pty.rs 抽出纯函数 build_wslenv_value 拼接 WSLENV=K1/u:K2/u(/u 表示 Win→WSL Unicode 转换),并把宿主进程既有 WSLENV 追加到尾部合并,对齐 JetBrains IDEA terminal 业界惯例。WSL 项目顶部警告条由黄变绿,文案改为提示透传成功与「.bashrc 覆盖」语义。
安全性
- 防御纵深:在 MINITERM_ 前缀过滤之外,新增 WSLENV key 前后端双重拒绝(大小写敏感等值比较)。前端 ProjectEnvVarsModal 不允许用户填 WSLENV 作为 key,后端在拼接前再次过滤;用户直接改 config.json 绕过前端校验也无法覆盖 mini-term 自己拼的 WSLENV 字符串。
测试与契约
- 新增 7 个 build_wslenv_value 单元测试,覆盖空 list / 单变量 / 多变量顺序 / 宿主既有值合并 / 空字符串边界。
- spec backend/pty-env-vars-injection.md 的 WSL 章节从 v2 预留升级为已实现,wrong / correct 矩阵新增 WSL 反例与「MINITERM_* 已启用」措辞修正。
下载
- Windows — Mini-Term_0.4.15_x64-setup.exe(NSIS,推荐)或 Mini-Term_0.4.15_x64_en-US.msi
- macOS (Apple Silicon) — Mini-Term_0.4.15_aarch64.dmg(首次启动需在终端运行 xattr -cr /Applications/Mini-Term.app 解除 Gatekeeper quarantine)
- Linux — Mini-Term_0.4.15_amd64.AppImage / Mini-Term_0.4.15_amd64.deb / Mini-Term-0.4.15-1.x86_64.rpm
平台支持:Windows 为主要支持平台,日常开发与测试均在 Windows 上进行;macOS / Linux 代码层面已支持,但未经充分打磨,可用性欠佳,欢迎提 Issue 反馈。

完整 commits: https://github.com/dreamlonglll/mini-term/compare/v0.4.14...v0.4.15
0.4.14 26 de maig del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
新功能
- 项目级环境变量 — 项目右键菜单新增「环境变量…」入口,按项目独立维护一组 key / value / enabled 环境变量,启动该项目终端时注入 PTY 子进程。Modal 行级 [启用 checkbox] [key] [value] [✕] 布局,「+ 新增一行」自动 focus;严格 POSIX 校验(key 匹配 ^[A-Za-z_][A-Za-z0-9_]*$、不可使用 MINITERM_ 前缀、项目内不重复,value 禁 \n/\r/\0),违规行红框提示且保存按钮 disabled。WSL 项目跳过注入并在 modal 顶部黄色警告条提示。
安全性
- 内部 hook 协议环境变量(MINITERM_* 前缀)前后端双重过滤:即便用户手改 config.json 绕过前端校验,后端在注入 PTY 前也会拦截 MINITERM_ 前缀的 key,hook 协议不会被破坏。
体验
- Modal 保存失败时自动回滚 store 到磁盘旧值并弹 Alert 提示,避免 store 与 config.json 不一致导致下次启动丢用户改动(同套约定已落地到 SshAssocModal)。
- 旧 config.json 无 envVars 字段时自动反序列化为空 Vec,空 Vec 写盘时跳过序列化保持文件干净,旧版本配置升级无感知。
下载
- Windows — Mini-Term_0.4.14_x64-setup.exe(NSIS,推荐)或 Mini-Term_0.4.14_x64_en-US.msi
- macOS (Apple Silicon) — Mini-Term_0.4.14_aarch64.dmg(首次启动需在终端运行 xattr -cr /Applications/Mini-Term.app 解除 Gatekeeper quarantine)
- Linux — Mini-Term_0.4.14_amd64.AppImage / Mini-Term_0.4.14_amd64.deb / Mini-Term-0.4.14-1.x86_64.rpm
平台支持:Windows 为主要支持平台,日常开发与测试均在 Windows 上进行;macOS / Linux 代码层面已支持,但未经充分打磨,可用性欠佳,欢迎提 Issue 反馈。

完整 commits: https://github.com/dreamlonglll/mini-term/compare/v0.4.13...v0.4.14
0.4.13 25 de maig del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
- release: 升级版本号至 v0.4.13 - 主要变更:「字体」设置从「系统设置」中独立成单独菜单,承载界面/终端字体大小与 font-family 共 4 项配置;修复输入框输入大写 F 被 F1-F12 拦截逻辑误吞的隐藏 bug(任何文本输入框都受影响,不止字体输入框) - 字体菜单:在「系统设置」与「AI 完成通知」之间插入,系统设置迁出后聚焦于主题/皮肤/外部编辑器 - F 键 bug 修复:main.tsx 中 F1-F12 拦截原写法 e.key.startsWith('F') && !isNaN(Number(e.key.slice(1))),单独 'F' 时 slice(1) 为空串、Number('') 为 0 不是 NaN 命中拦截;改为正则 /^F([1-9]|1[0-2])$/ 精确匹配 - package.json、Cargo.toml、tauri.conf.json 与 Cargo.lock 版本号同步升级至 0.4.13,README 版本徽章同步
- fix: 修复输入框无法输入大写 F 的问题 - main.tsx 中 F1-F12 功能键拦截逻辑漏判:e.key === 'F' 时 'F'.slice(1) === '',Number('') 为 0 不是 NaN,单独的大写 F 被误判为功能键 preventDefault - 改为正则 /^F([1-9]|1[0-2])$/ 精确匹配 F1-F12,单独的 'F' 不再被拦截 - 影响范围不止字体输入框,任何文本输入框输入大写 F 都被吞掉
- refactor: 字体设置从系统设置中独立成单独菜单 - SettingsPage 类型新增 'font',菜单项在「系统设置」与「AI 完成通知」之间插入「字体」 - 新增 FontSettings 组件,承载字体大小(界面/终端)与字体 family(界面/终端)四项配置 - SystemSettings 中字体大小滑块、字体 family 输入框及对应 4 个 handler 整块迁出,迁出后系统设置只保留主题/皮肤/终端跟随主题/外部编辑器
- feat: 新增界面与终端字体自定义能力 - AppConfig 增加 ui_font_family / terminal_font_family 两个可选字段,配套 2 条 serde 往返单测覆盖老配置缺省与新字段读写 - styles.css 把硬编码 font-family 抽成 --app-font-family / --app-font-mono CSS 变量,新增 .font-mono 重定向覆盖 Tailwind v4 默认值 - 新增 utils/fontManager.ts,单字段同时写入两个变量实现「一项覆盖整个 UI」;空值移除 inline style 回退默认 - SettingsModal 设置面板增加「字体」分组与 FontFamilyInput 子组件,onBlur/Enter 提交避免每键写盘 - TerminalInstance 监听 terminalFontFamily 变化实时刷新 xterm.options.fontFamily 并 refit,无需重开终端 - terminalCache 抽出 DEFAULT_TERMINAL_FONT_FAMILY 常量与 resolveTerminalFontFamily 工具,新建终端时直接用配置值
- chore(task): archive 05-25-support-wsl-project-root
0.4.12 25 de maig del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
- release: 升级版本号至 v0.4.12 - 主要变更:新增 WSL 项目根支持,Windows 用户能把 \wsl$<distro><unix-path> 与 \wsl.localhost<distro><unix-path> 形式 WSL 路径加为项目,文件树自动剥 ?\UNC\ verbatim 前缀,开终端时 create_pty 入口自动检测 WSL UNC 并改用 wsl.exe -d --cd 启动(无视用户配置的 cmd/pwsh 强制覆盖,与 Windows Terminal MangleStartingDirectoryForWSL 行为一致),cwd 真正落在 WSL 内,前端弹一次性 toast 提示 - 后端新增 mt-core wsl_path 模块(parse_unc 含 12 单测)+ src-tauri fs.rs strip_verbatim_prefix 扩展 UNC verbatim 支持(含 PathBuf 包装版与 verify_under_project_root 集成共 14 单测)+ pty.rs decide_wsl_override 决策分支(7 单测)共 33 条新单测全过 - 沉淀 3 条后端 spec 便于后续复用:portable-pty ConPTY cwd 静默 fallback / Windows ?\UNC\ verbatim 前缀 dunce 盲区 / wsl.exe --cd 路径语义 - README 版本徽章升级,SSH 章节后新增「WSL 支持(Windows)」段,含 AI 状态识别在 wsl.exe 启动后失效 + notify 9P 文件系统事件可能丢失两条已知 caveat - package.json、Cargo.toml、tauri.conf.json 与 Cargo.lock 版本号同步升级至 0.4.12
- docs: 新增后端 spec 沉淀 PR3 Windows + WSL 集成的 3 条非显然 gotcha
- refactor: 处理 PR3 review 留下的三条小尾巴(注释 + toast 视觉 + README 表述)
- feat: 接通 WSL 启动器,create_pty 入口检测 UNC 自动改用 wsl.exe -d --cd

- test: 补全 fs.rs WSL UNC 单测,覆盖 PathBuf 包装版与 verify_under_project_root 集成
- feat: 新增 WSL UNC 路径识别 + 扩展 verbatim 前缀剥离,为「打开 WSL 项目根」铺底层
0.4.11 22 de maig del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
- release: 升级版本号至 v0.4.11 - 主要变更:从前端 SshModal、SshConnection 数据模型、TerminalInstance ssh 命令拼接到 mt-ssh-mcp sidecar pool 入口拒绝逻辑,整链路清理 SSH 跳板机/ProxyJump 能力 - mt-core 新增兼容测试,老 config.json 残留的 proxyJump 字段被 serde 静默忽略,避免升级后旧配置反序列化失败 - README 版本徽章、SSH 章节的跳板机能力描述同步更新 - package.json、Cargo.toml、tauri.conf.json 与 Cargo.lock 版本号同步升级至 0.4.11
- refactor: 移除 SSH 跳板机/ProxyJump 功能 - 删除前端 SshModal 的「跳板机」输入框、SshConnection 的 proxyJump 字段以及 TerminalInstance 里 ssh -J 拼接逻辑,SSH 设置中不再出现该字段 - 移除 mt-core SshConnection 的 proxy_jump 字段,并新增兼容测试确认老 config.json 残留的 proxyJump 字段被 serde 静默忽略 - 删除 mt-ssh-mcp sidecar 在 SshPool::acquire 入口的跳板机拒绝分支与配套两个单测,russh 持久会话池路径彻底无 jump 概念 - 同步清理 README 中跳板机/ProxyJump 的特性描述与 ssh_exec 的跳板机能力说明,文档与实际能力对齐
0.4.9 19 de maig del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
- release: 升级版本号至 v0.4.9 - 新增 SSH MCP Server:把 SSH 连接作为 MCP 工具暴露给终端内的 AI agent(Claude/Codex),提供 ssh_list_connections、ssh_exec,支持密码自动填充 / 私钥 / 跳板机、超时与审计日志 - SSH MCP 改为按项目关联授权:项目右键「关联 SSH」勾选连接即启用并限定可见范围 - sidecar 二进制抽成独立 mt-sidecars crate,经 Tauri externalBin 打包,新增 stage-sidecars 构建脚本 - README 同步至 v0.4.9:更新版本徽章、补充 SSH MCP 功能说明与多 crate 项目结构 - package.json、Cargo.toml、tauri.conf.json 与 Cargo.lock 版本号同步升级
- refactor: sidecar 二进制抽成独立 mt-sidecars crate 并经 externalBin 打包 - 新建 src-tauri/mt-sidecars 独立 crate,迁入 miniterm-hook 与 mt-ssh-mcp,不依赖 tauri/tauri-build,避免单独构建触发主程序 externalBin 校验 - src-tauri/Cargo.toml 移除两个 [[bin]] 声明及随之外迁的 rmcp、tokio 依赖 - 新增 scripts/stage-sidecars.mjs 按 triple 构建并命名就位 sidecar,package.json 以 build-sidecars 替换 build-hook,release.yml 增加构建步骤,tauri.conf.json 声明 bundle.externalBin - .gitignore 忽略本机 SSH MCP 配置(.mcp.json、.codex/)及 sidecar、mt-core 构建产物 - 补充 .trellis 中 SSH MCP server、按项目隔离、sidecar 打包三个任务记录
- feat: SSH MCP 连接授权改为按项目关联 - 移除连接级 agentAccessible 开关,所有 SSH 连接默认可被 MCP 工具访问,SshModal 去掉对应勾选框与连接行标签 - 项目右键菜单新增「关联 SSH」弹窗替代原「启用/停用 SSH MCP」,勾选连接即启用并限定范围、全不勾即停用,ProjectConfig 新增 sshConnectionIds 持久化范围 - mt-ssh-mcp sidecar 新增 --project-id 参数,按项目 sshConnectionIds 实时过滤可见连接,enable_ssh_mcp 把项目 id 写入 .mcp.json 与 Codex 注册的 args - mt-core config_reader 增读项目关联范围并新增 read_ssh_connections_for_project,后端 spec 同步函数名引用
- docs: 新增后端 spec 记录 Agent 配置注入模式 - 新建 .trellis/spec/backend 规范层,收录 mt-core 共享 crate 约定与 BatchMode、stdio 等坑 - 新增 agent-config-injection 文档,固化「读-改-写 + 命名 marker 幂等」写外部 agent 配置文件的模式
- feat: SSH 管理做成按项目隔离的 MCP Server,供终端 AI agent 调用 - 新增 mt-core 库 crate(不依赖 tauri),抽出 SshConnection 类型、SSH 提示词扫描、私钥临时副本处理、config.json 读取,供主程序与 sidecar 共用 - 新增 mt-ssh-mcp sidecar:基于 rmcp 的 stdio MCP server,提供 ssh_list_connections 与 ssh_exec 工具,支持密码 PTY 自动填充、私钥、跳板机、超时与输出封顶,并写审计日志 - SshConnection 新增 agentAccessible 开关,仅勾选的连接对 agent 可见,SshModal 表单加对应勾选框 - 新增 ssh_mcp_registry:项目右键菜单按项目启用/停用 SSH MCP,启用时幂等写入 Claude .mcp.json 与 Codex .codex/config.toml 并放行信任,停用时按 marker 精确移除 - ProjectConfig 新增 sshMcpEnabled 状态,prompt 工具新增 showAlert 提示框
0.4.8 18 de maig del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
- release: 升级版本号至 v0.4.8 - 新增 SSH 连接管理器:顶栏「SSH」按钮管理连接(主机/端口/用户名/密码/私钥/跳板机/分组),终端右键子菜单快速连接,后端扫描 PTY 输出自动填充密码 - 新增 SSH 私钥权限自动处理:连接前把私钥复制到权限收紧的临时副本,绕过 Windows OpenSSH UNPROTECTED PRIVATE KEY FILE 拒绝 - 分组右键菜单支持直接添加项目并归入该组 - 修复 hooks 模式下 AI 状态可能卡死的问题,新增兜底回退 - README 同步至 v0.4.8 并补充 SSH 功能特性;package.json、Cargo.toml、tauri.conf.json、Cargo.lock 四处版本号同步升级
- chore: record journal
- chore(task): archive 05-18-ssh-manager
- feat: SSH 连接私钥权限自动处理 - 新增后端 ssh.rs 模块,连接前把私钥复制到权限收紧的临时副本,绕过 Windows OpenSSH "UNPROTECTED PRIVATE KEY FILE" 拒绝 - prepare_ssh_key 命令按源路径稳定哈希命名临时副本,重连复用,启动时清理临时密钥目录;Windows 用 icacls 收紧 ACL、Unix 设 0600 - 前端 connectSsh 连接前调用 prepare_ssh_key 取临时副本路径,准备失败回退原始路径不阻断连接
- feat: 新增 SSH 连接管理器 - 顶栏新增「SSH」按钮,打开管理弹窗对 SSH 连接增删改,支持主机/端口/用户名/密码/密钥/跳板机/分组字段,持久化到 config.json - 终端内右键新增「SSH 连接」子菜单,按分组列出已保存连接,选中后在当前终端拼接 ssh 命令直接连接 - 后端新增密码自动填充,扫描 PTY 输出命中密码提示时回写已存密码,每会话只填一次并在密码错误时停止以防连灌错误密码 - 扩展右键菜单组件支持一级子菜单与分组标题;私钥路径反斜杠转正斜杠以兼容 Nushell 等 shell
- feat: 分组右键菜单支持添加项目 - 分组右键菜单新增「添加项目」入口,选择目录后直接归入该分组 - 目标分组若处于折叠状态会自动展开,确保新项目可见
- fix: hooks 模式下 AI 状态卡死兜底回退
0.4.7 17 de maig del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
- release: 升级版本号至 v0.4.7
- chore: record journal
- chore(task): archive 05-17-copy-paste-hotkey
- docs: 补充智能复制粘贴任务的 spec 与流程上下文 - state-management.md 补充 Overview 及「AppConfig 字段扩展」四处同步契约,index 状态改为 Partial - 填充 copy-paste-hotkey 任务的 implement/check.jsonl spec 上下文清单
- feat: 终端支持智能 Ctrl+C/V 复制粘贴 - 新增「智能 Ctrl+C/V」开关,开启后选中文本时 Ctrl+C 复制、无选区时透传中断信号,Ctrl+V 直接粘贴 - 设置项位于终端设置页,默认关闭,Ctrl+Shift+C/V 始终保留,不影响现有用户 - 快捷键说明页随开关动态展示当前生效的键位,README 功能说明同步 - AppConfig 新增 smartCopyPaste 字段并兼容旧配置,顺带补全 Cargo.lock 版本号至 0.4.6
0.4.6 14 de maig del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
- release: 升级版本号至 v0.4.6 - 子代理完成后不再误触提示音 - README 版本徽章同步更新 - 三个版本文件同步升级:package.json、Cargo.toml、tauri.conf.json
- fix: 子代理完成后不再误触提示音 - 将 SubagentStop 事件从 ai-idle 改为 ai-working,子代理结束后主代理仍在处理结果,不应视为空闲
0.4.5 14 de maig del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
- release: 升级版本号至 v0.4.5 - 修复 HTML 预览在 release 模式下无法显示本地图片 - README 版本徽章同步更新 - 三个版本文件同步升级:package.json、Cargo.toml、tauri.conf.json
- fix: 修复 HTML 预览在 release 模式下无法显示本地图片 - 将 base 标签注入方案改为直接改写 HTML 内相对路径的 src/href 为 asset 协议绝对 URL,绕过 release 模式 CSP base-uri 限制 - CSP frame-src 从 'none' 改为允许 asset 协议,支持 iframe srcDoc 渲染
0.4.4 13 de maig del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
- release: 升级版本号至 v0.4.4 - 文件预览支持渲染 HTML 文件,iframe + srcDoc 模式自动注入 base 标签解析相对路径 - README 补充 HTML 预览说明,版本徽章同步更新 - 三个版本文件同步升级:package.json、Cargo.toml、tauri.conf.json
- feat: 文件预览支持渲染 HTML 文件 - 新增 isHtmlFile 检测 .html/.htm 格式,预览模式使用 iframe + srcDoc 渲染 - 通过注入

标签将相对路径解析到文件所在目录,本地图片和网络图片均可正常显示 - 支持预览/源码切换,与 Markdown 预览体验一致
0.4.3 12 de maig del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
- release: 升级版本号至 v0.4.3 - 文件预览支持图片格式直接展示 - 文件树改用自然排序,数字部分按数值比较(V1 → V2 → V10) - README 补充图片预览和自然排序说明,版本徽章同步更新 - 三个版本文件同步升级:package.json、Cargo.toml、tauri.conf.json
- fix: 文件列表改用自然排序,数字部分按数值比较
- feat: 文件预览支持图片格式直接展示 - 新增 isImageFile 检测 png/jpg/gif/bmp/webp/svg/ico/avif/tiff 等常见图片格式 - 图片文件跳过后端 read_file_content 调用,直接使用 convertFileSrc 生成本地协议 URL 渲染 - 图片居中自适应显示,不超出 modal 区域
0.4.2 9 de maig del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
- release: 升级版本号至 v0.4.2 - 支持从系统资源管理器拖拽文件到终端粘贴路径,精准定位目标分屏 pane - 修复 sort_newest_session_paths 在文件不存在时排序不确定的问题,降级为路径排序 - README 补充外部文件拖拽说明和 useExternalFileDrop hook,版本徽章同步更新 - 三个版本文件同步升级:package.json、Cargo.toml、tauri.conf.json
- chore(task): archive 05-08-explorer-drag-to-terminal
- feat: 支持从系统资源管理器拖拽文件到终端粘贴路径 - 新增 useExternalFileDrop hook,监听 Tauri onDragDropEvent 实现外部文件拖入终端 - TerminalInstance 添加 data-pty-id 属性,配合 elementFromPoint 精准定位目标分屏 pane - 拖拽悬停时显示与内部拖拽一致的蓝色虚线 overlay,松手后路径以单引号包裹写入终端 - 处理 React StrictMode 双挂载和 WebView2 多文件重复 drop 事件的兼容问题
0.4.1 8 de maig del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
- release: 升级版本号至 v0.4.1 - Hook Server 按需启动,由设置页面开关控制,避免 Windows 防火墙无条件弹出 - Hook 配置片段改为 Tab 选项卡分别展示 Claude Code 和 Codex - README 补充 toggle_hook_server 命令,命令数更新至 44 个 - 三个版本文件同步升级:package.json、Cargo.toml、tauri.conf.json
- feat: Hook 配置片段改为 Tab 选项卡分别展示 Claude Code 和 Codex - 后端 get_hook_config_snippet 返回结构化 JSON,拆分 claude/codex 两部分数据 - 前端配置片段区域新增 Tab 切换,Claude Code 和 Codex 各自独立展示 - Codex Tab 清晰列出需修改的两个文件(hooks.json 和 config.toml),标注追加说明
- chore(task): 新增 hook-server-on-demand 任务目录 - 记录 Hook Server 按需启动功能的 PRD 和上下文配置
- feat: Hook Server 按需启动,由用户在设置页面控制是否启用 - 新增 hookEnabled 配置项(默认关闭),避免 Windows 防火墙在启动时无条件弹出授权 - 设置页面 Hook 区域顶部新增开关,关闭时下方注册/卸载按钮和状态信息整块置灰 - 新增 toggle_hook_server 命令支持运行时启动/停止 server,通过 unblock() 优雅退出监听线程 - start_hook_server 改为返回 Result,端口绑定失败时错误传播到前端展示
0.3.10 7 de maig del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
- fix: 升级 @tauri-apps NPM 包至 2.11,修复 CI 版本不匹配错误 - @tauri-apps/api 从 2.10.1 升级至 2.11.0,与 Rust 端 tauri 2.11.1 对齐
- fix: 修复 Sessions 面板遗漏部分 Claude 会话的问题 - 扫描 ~/.claude/projects/ 下所有匹配目录(含尾部斜杠产生的变体),不再只读单一编码路径 - encode_project_path 先去除尾部路径分隔符,避免不同 shell 的 cwd 差异导致编码不一致 - session 内容加载同样跨多目录查找,确保变体目录中的会话也能正常打开
- release: 升级版本号至 v0.3.10 - 同步更新 package.json、tauri.conf.json、Cargo.toml 版本号 - 更新 README 版本徽章及终端滚动缓冲功能描述
- chore: 添加 AI 工具配置文件 - 添加 .agents、.claude、.codex、.trellis 配置目录及 AGENTS.md
- chore: 同步 Cargo.lock 版本号至 v0.3.9 - Cargo.lock 中 tauri-app 版本从 0.3.8 更新为 0.3.9,与 Cargo.toml 保持一致
- feat: 拦截 alternate screen 切换,TUI 程序保留滚动条和 scrollback - 拦截 DECSET/DECRST 47、1047、1049,阻止终端进入备用缓冲区 - codex 等 TUI 输出留在主缓冲区,用户始终可通过滚动条查看历史内容
- fix: 修复 git log 等命令中文显示为十六进制转义的乱码问题 - PTY 环境补充 LANG=C.UTF-8,让 Git for Windows 识别终端为 UTF-8 编码,不再回退到系统代码页 GBK - 添加 LESSCHARSET=utf-8,使 git 默认 pager(less)直接输出 UTF-8 字节而非 转义 - 修正 LC_CTYPE 的值从无效的 "UTF-8" 改为标准的 "C.UTF-8"
0.3.9 2 de maig del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
- release: 升级版本号至 v0.3.9 - 同步更新 package.json、tauri.conf.json、Cargo.toml 版本号 - 更新 README 版本徽章及功能描述
- feat: Session 列表分页加载,首屏仅渲染 20 条 - 首次加载和刷新时只显示前 20 条 session,减少初始渲染开销 - 滚动到底部时自动加载下一页(每页 20 条),直到全部显示 - 切换项目时重置分页计数,避免残留旧项目的滚动状态
- refactor: 优化项目切换性能,减少卡顿 - 合并切换时的 flush 调用为一次 setConfig,避免重复触发全量 re-render - FileTree/GitHistory 移除 key 强制重建,改为缓存恢复 + 增量刷新 - list_directory 与 get_git_status 改为并行加载,缩短切换等待时间 - Rust 端 find_repos 结果缓存 30 秒,避免来回切换时重复扫描磁盘 - Repository::discover 限制向上遍历最多 5 层,防止遍历到磁盘根目录 - setActiveProject 不再修改 config 对象,消除不必要的 config 订阅者重渲染
0.3.8 1 de maig del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
- release: 升级版本号至 v0.3.8
- feat: AI 进程检测适配 OpenCode
- fix: 修复 Git History 推送/拉取操作导致 UI 卡顿 - 提取 CommitItem 组件并用 React.memo 包裹,避免 pullState/pushState 变化时所有 commit 行重复渲染 - GitActionButton 加 memo,仅状态实际变化的按钮才重新渲染 - buildRepoTree 结果用 useMemo 缓存,避免每次 re-render 重建树 - 新增 EMPTY_BRANCHES 常量替代内联 [],防止 memo 因引用不稳定而失效
0.3.7 29 d’abril del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
- chore: 升级版本号至 v0.3.7
- docs: 更新项目截图
- fix: 修复空终端误判 AI 工作状态
- fix: 快捷键支持 macOS Cmd 键 + 设置页展示全局搜索快捷键 - 全局搜索、终端复制粘贴、AI 标记跳转均兼容 Cmd 键,macOS 下可正常使用 - 新增 platform.ts 平台检测,所有快捷键提示文本根据系统显示 ⌘ 或 Ctrl - 设置页快捷键列表新增"全局搜索"分组,展示 Ctrl/⌘+Shift+F
0.3.6 29 d’abril del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
- chore: 升级版本号至 v0.3.6 - 同步更新 package.json、tauri.conf.json、Cargo.toml 版本号 - README 新增 Blueprint 蓝图皮肤功能说明,更新版本徽章
- docs: 新增项目切换性能优化实施计划 - 添加 Issue #24 的实施计划文档,涵盖 FileTree/GitHistory 缓存、错开加载策略
- feat(css): blueprint.css 新增日间模式覆盖规则
- feat(css): Blueprint 日间模式 CSS 变量覆盖
- feat(terminal): 新增 Blueprint 日间终端配色 + getTerminalTheme 分支
- refactor(skin): 去掉 Blueprint 强制 dark,恢复主题选择器
- docs: 新增 Blueprint 日间模式实施计划
- docs: 新增 Blueprint 日间模式设计规格
- chore: 更新 Cargo.lock
- feat: 面板添加 data 属性标记,使 Blueprint CSS 选择器生效 - ProjectList、FileTree、TerminalArea、GitHistory 根容器添加 data-panel 属性 - FileTree 标题栏和 PaneGroup tab 栏添加 data-panel-header 属性 - PaneGroup 每个标签页添加 data-pane-tab 属性 - FileTree 的 TreeNode 行添加 data-file-item 属性
- feat(settings): 新增皮肤选择器 + Blueprint 时禁用主题切换 - 新增 handleSkinChange 回调,切换皮肤时同步保存配置并刷新终端配色 - 新增皮肤选择器 UI(无/蓝图两个按钮),显示当前选中状态 - Blueprint 皮肤激活时主题按钮置灰禁用,并显示"仅支持深色主题"提示
- feat(app): useEffect 监听 skin 变化,设置 data-skin + 强制 dark + 同步终端配色
- feat(css): 新增 blueprint.css — 网格/角标记/字体/光晕/滚动条专属样式
- feat(css): Blueprint 皮肤 CSS 变量覆盖 + noise texture 隐藏
- feat(terminal): 新增 Blueprint 终端配色方案及决策树逻辑
- feat(types): 前端 AppConfig 新增 skin 类型定义和默认值
- feat(config): Rust AppConfig 新增 skin 字段,默认 'none' - 在 AppConfig 结构体中新增 skin 字段,用于持久化用户皮肤偏好 - 新增 default_skin() 函数返回默认值 "none",与 default_theme() 模式保持一致 - Default impl 同步补充 skin 初始化
- docs: 新增 Blueprint 皮肤实施计划(已修复审查问题)
- docs: 修复 Blueprint 设计规格审查问题
- docs: 新增 Blueprint 蓝图皮肤设计文档
0.3.5 28 d’abril del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
- release: 发布 v0.3.5,性能优化专项 - 修复多开 Claude Code 时界面卡顿,pty-output 改为单一监听器 + AI PTY 标记跳过高频输出 - 项目切换不再卡顿,FileTree/GitHistory 接入内存缓存 + 串行加载 - 修复 History 面板分支下拉框被其他仓库标题遮挡的问题 - README、package.json、tauri.conf.json、Cargo.toml 版本号同步升级至 0.3.5
- perf: 项目切换不再卡顿,FileTree/GitHistory 接入内存缓存 - 新增 projectDataCache 模块,按 projectPath 缓存文件树和 Git 仓库数据,切回已访问项目时零延迟渲染 - FileTree 初始化改为串行加载:先渲染目录结构,完成后再加载 Git 状态,避免两者竞争 Tauri 线程池 - 首次访问无缓存项目时显示"加载中……"指示器,UI 保持响应不白屏 - 项目删除时同步清理缓存,防止内存泄漏
- fix: 修复多开 Claude Code 时界面卡顿的性能问题 - pty-output 事件改为全局单一监听器 + Map 查表分发,消除 N 个终端各自监听的 O(N) 广播开销 - 新增 AI PTY 标记机制(markAiPty/isAiPty),FileTree、GitChanges、GitHistoryContent 跳过 AI 会话的高频输出,避免无意义的正则匹配 - 终端销毁时自动清理 AI 标记,防止状态泄漏
- fix: 修复 History 面板切换分支下拉框被其他仓库标题遮挡的问题 - 分支下拉框打开时将所在 sticky 标题的 z-index 提升至 50,避免被后续同级仓库标题遮挡
- style: 文件树面板滚动时标题栏固定不动 - 将 overflow-y-auto 从外层容器移至文件列表区域,滚动不再影响标题栏 - 标题栏添加 flex-shrink-0 防止被压缩
0.3.4 28 d’abril del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
- release: 发布 v0.3.4,设置弹框布局优化 - 设置弹框固定顶部定位,切换菜单页时不再上下跳动 - README、package.json、tauri.conf.json、Cargo.toml 版本号同步升级至 0.3.4
- style: 设置弹框固定顶部定位,避免切换菜单时位置跳动 - 弹框改为距顶部 10vh 固定定位,切换不同高度的设置页时左侧菜单不再上下位移
- fix: 消除 track_input 未使用的编译警告 - 该方法仅在测试中使用,添加 #[cfg(test)] 限定编译范围
- fix: 修复 Markdown 预览本地图片无法显示的问题 - 启用 Tauri asset protocol,允许 webview 通过 asset URL 直接访问本地文件 - Markdown 预览中自定义 img 组件,将本地相对路径转为 asset protocol URL - tauri 依赖新增 protocol-asset feature,tauri.conf.json 配置 assetProtocol scope
0.3.3 28 d’abril del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
- release: 发布 v0.3.3,修复 Markdown 预览渲染问题 - 修复 Markdown 预览中 HTML 标签和外部图片无法显示的问题 - 文件树点击变更文件改为打开预览,查看变更通过右键菜单进入 - README 补充文件预览 Markdown 渲染能力说明,三个版本文件同步升级至 0.3.3
- fix: 修复 Markdown 预览 HTML 标签和外部图片无法显示的问题
- revert: 回滚 Markdown 预览相关的三次修改 - 还原 FileViewerModal、SessionViewerModal 到修改前状态 - 移除 rehype-raw、base64 依赖和 read_image_base64 命令 - 还原 CSP 配置和 .md-preview img 样式
- fix: 修复 Markdown 预览本地图片无法加载及 badge 竖排问题 - 新增 read_image_base64 Rust 命令,读取本地图片返回 base64 data URI - Markdown 渲染前预处理内容,将本地图片路径替换为 data URI,不再依赖 asset protocol - 修复 badge 图片竖排:img 默认 inline 显示,仅段落中唯一图片时为 block 布局
- fix: 文件树中点击变更文件改为打开预览而非 diff - 点击变更文件统一执行文件预览,查看变更仍可通过右键菜单进入
- fix: 修复 Markdown 预览中 HTML 标签显示为源码的问题 - 新增 rehype-raw 插件,支持渲染 Markdown 中的原始 HTML 标签(如 、
等) - FileViewerModal 和 SessionViewerModal 同步启用 rehypeRaw
- fix: 修复 Markdown 预览中图片无法正确显示的问题 - 自定义 ReactMarkdown img 组件,将相对路径通过 convertFileSrc 转为 asset URL 加载本地图片 - CSP img-src 补充 https: 指令,允许加载外部 HTTPS 图片
- feat: 发布 v0.3.2,修复 git diff 并排显示问题 - 并排视图改用 Allotment 组件,支持拖拽分隔线调节左右比例 - diff 代码字号跟随终端字体大小设置,行号列宽度改用固定像素值 - 三个版本文件同步升级至 0.3.2
- fix: 修复 git diff 并排显示布局问题并增强交互体验 - 并排视图改用 Allotment 组件,支持拖拽分隔线调节左右比例 - diff 代码字号跟随终端字体大小设置,不再固定为过小的 text-sm - 行号列宽度改用固定像素值,避免 UI 字号变化导致布局错乱
0.3.1 28 d’abril del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
- feat: 发布 v0.3.1,新增 AI 提示音与会话列表修复 - 新增 AI 任务完成提示音(Web Audio API 合成默认音 + 自定义音频文件) - 文件搜索弹窗新增右键「复制文件地址」功能 - 修复会话列表因 UUID 排序导致新记录被截断丢失的问题 - AI 完成通知设置独立为单独页面,三个版本文件同步升级至 0.3.1
- refactor: AI 完成通知设置独立为单独页面 - 从「系统设置」中拆分 AI 通知相关配置,新增「AI 完成通知」独立设置页 - 统一用 saveConfigPatch 替代多个独立 handler,减少重复代码
- fix: 修复会话列表丢失最新记录的问题 - 会话文件排序从 UUID 字符串排序改为按文件修改时间降序,确保最新会话优先被扫描 - 当文件总数超过 MAX_SESSIONS_PER_SOURCE 时,旧排序会随机丢弃新会话
- feat: AI 任务完成提示音功能 - 新增 Web Audio API 合成默认提示音(880Hz→660Hz 双音),支持自定义音频文件播放 - 后端 AppConfig 新增 aiCompletionSound 开关和 aiCompletionSoundPath 自定义路径字段 - 设置面板新增「AI 完成通知」统一板块,整合弹框提醒、任务栏闪烁、提示音开关及文件选择/试听 - CSP 补充 media-src 指令,确保自定义音频文件可正常加载
- feat: 文件搜索弹窗新增右键「复制文件地址」功能
0.3.0 27 d’abril del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
- feat: 发布 v0.3.0,新增全局文件搜索与会话查看功能 - 新增全局文件搜索(Ctrl+Shift+F),支持文件名和内容搜索、正则匹配、流式推送结果 - 会话历史右键「查看」展示完整对话,支持搜索高亮和 User 消息快速导航 - 文件预览支持 Markdown 渲染、二进制/超大文件提供默认工具打开按钮 - 三个版本文件同步升级至 0.3.0,README 同步更新功能列表
- fix: 修复补全命令启动 AI 状态识别
- feat: 全局文件搜索功能,支持文件名和内容搜索 - 后端新增 search.rs 模块,使用 ignore crate 遍历文件树,支持子串和正则匹配,流式批量推送结果(每 50 条或 100ms),Arc 取消机制 - 新建 SearchModal 弹窗组件,文件名/内容模式切换,正则开关,结果关键词高亮,内容模式按文件分组显示行号 - FileViewerModal 新增 highlightLine 属性,搜索结果单击预览自动滚动到匹配行并高亮 - 双入口:Ctrl+Shift+F 全局快捷键 + FileTree 工具栏搜索按钮,切换模式自动清空旧结果
- docs: 文件搜索功能设计文档
- feat: 会话查看弹窗新增搜索和用户消息快速导航 - 搜索栏常驻弹窗顶部,支持 Ctrl+F 聚焦、Enter/Shift+Enter 切换匹配项,不匹配消息降低透明度 - 标题栏右侧 ▲▼ 按钮在 User 消息间快速跳转,显示当前位置 "User N/M" - User 消息内对搜索关键词做文本级高亮标记
- feat: Sessions 右键菜单新增「查看」,弹窗展示会话内容 - 后端新增 get_ai_session_content 命令,解析 Claude/Codex JSONL 文件提取 user/assistant 消息 - 新建 SessionViewerModal 弹窗组件,User 消息纯文本渲染,Assistant 消息 Markdown 渲染 - SessionList 右键菜单增加「查看」入口,点击后加载并展示完整对话内容
- feat: 文件预览弹窗为二进制和超大文件提供「使用默认工具打开」按钮 - 二进制文件和超大文件(>1MB)提示下方新增按钮,调用 open_path_with_default_app 命令与 FileTree 右键菜单行为一致
- feat: 文件预览支持 Markdown 渲染 - FileViewerModal 检测 .md/.markdown/.mkd/.mdx 文件,默认以渲染模式展示,工具栏提供「预览/源码」切换按钮 - 新增 react-markdown + remark-gfm 依赖,支持 GFM 表格、任务列表、删除线等扩展语法 - styles.css 新增 .md-preview 样式集,覆盖标题、代码块、引用、表格、列表等元素,适配深色/浅色主题
0.2.28 26 d’abril del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
- release: 发布 v0.2.28,修复终端方向键 / 多行粘贴 / 右键菜单越界三处体验 - package.json / src-tauri/Cargo.toml / src-tauri/tauri.conf.json 同步到 0.2.28,Cargo.lock 跟随;README 顶部 version badge 同步 - 修复终端方向键长按松手后延迟移动:重写 PTY 输入队列为单 flight 合并写入,减少高频方向键 repeat 造成的 IPC 积压;保持同一 PTY 写入顺序避免并发乱序;补充队列合并回归测试并修正测试编译产物引用路径 - 修复多行粘贴误触发 AI 输入:自定义文本粘贴改走 xterm paste 让 Ctrl+Shift+V 和右键粘贴支持 bracketed paste;后端输入追踪识别 bracketed paste 范围,粘贴中的换行不再当作 Enter 提交;补充多行粘贴不触发提交与粘贴后回车只提交一次的回归测试 - 修复右键菜单贴近屏幕右/下边界时溢出窗口:contextMenu.ts 挂载后测量菜单尺寸,右侧溢出则向左弹,底部溢出则向上弹,留 4px 边距并兜底防贴出左/上边界;挂载前 visibility: hidden,等坐标修正后再显示避免用户看到错位的初始位置
- fix: 修复右键菜单贴近屏幕边界时溢出窗口 - contextMenu.ts 挂载后测量菜单尺寸,右侧溢出则向左弹,底部溢出则向上弹,留 4px 边距并兜底防贴出左/上边界 - 挂载前先 visibility: hidden,等坐标修正后再显示,避免用户看到错位的初始位置
- fix: 修复多行粘贴误触发 AI 输入
- fix: 修复终端方向键长按松手后延迟移动
0.2.27 25 d’abril del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
- release: 发布 v0.2.27,启动终端懒加载 + 项目切换保留终端内容 - package.json / src-tauri/Cargo.toml / src-tauri/tauri.conf.json 同步到 0.2.27,Cargo.lock 跟随;README 顶部 version badge 同步,「测试覆盖」从 63 改为 64 个 Rust 单元测试 - 随版发布启动卡顿根治:终端布局只恢复元数据,可见 pane 首次显示时再创建 PTY,且仅渲染当前项目/当前 tab/当前 pane,避免历史项目越多启动越卡;ai_sessions 查询新增最近文件限量扫描与短缓存,降低历史记录增长后的启动压力,补 layoutRestore 测试纳入测试编译配置 - 随版发布项目切换保活:为访问过的项目保留 TerminalArea 挂载状态,切换回来时复用已有终端 DOM,新增 keep-alive 项目集合工具与 projectKeepAlive 测试覆盖切换保活逻辑 - README「终端缓存」条目改写为「切换项目 / 标签 / 分屏不重建 xterm 实例」+「启动按需懒加载,仅当前可见 pane 创建 PTY」,与本次代码行为对齐
- fix: 保留项目切换后的终端内容
- fix: 根治启动终端批量恢复卡顿
0.2.25 23 d’abril del 2026 — 64 bits EXE (NSIS)64 bits MSI
Notes de la versió
更新内容
- release: 发布 v0.2.25,修复终端焦点切换导致 AI 状态与视口回归 - 修复 AI 会话中切换终端焦点会把 ai-idle 误判为 ai-working:xterm.js 在 TUI 开启 sendFocus(DEC 1004) 后 focus/blur 会向 PTY 写入 CSI I/CSI O,Claude/Codex 响应焦点事件做局部重绘,重绘输出刷新 last_output 被 process_monitor 捕获 - 后端 pty.rs 新增 FOCUS_COOLDOWN=800ms 焦点冷却窗口,write_pty 严格匹配 CSI I/CSI O 时通过 bump_cooldown 打开窗口,窗口内 PTY 输出不刷新 last_output;字段 resize_cooldown_until 重命名为 tui_redraw_cooldown_until(现承载 resize+focus 双职责),bump_cooldown 改用 max 语义避免短冷却覆盖长冷却 - 修复 AI 会话中切换焦点会把终端视口强制打回底部:同一焦点序列还会进入 xterm.onData 被 scrollToBottom 误扫(用户往上翻历史时一切焦点就被打回底部);前端 terminalCache.ts 在 onData 里对 FOCUS_IN_SEQ/FOCUS_OUT_SEQ 跳过 scrollToBottom,保留 PTY 写入让 TUI 仍能感知焦点 - 新增 7 个焦点冷却相关单测(触发/非触发/箭头键/嵌入子串不匹配/max 语义/按 pty 隔离),cargo test 共 63 passed - package.json / src-tauri/Cargo.toml / src-tauri/tauri.conf.json 同步到 0.2.25,Cargo.lock 跟随;README version badge 与"测试覆盖"数量(35→63)同步
- docs: README 增加 macOS 安装"已损坏"提示的说明 - 在「平台支持说明」后新增「macOS 安装提示」小节,解释 Gatekeeper 弹出 "is damaged and can't be opened" 实际是 Release 产物未做 Apple Developer ID 签名,被 quarantine 标记拦截,而非文件真损坏 - 给出一行解除命令 xattr -cr /Applications/Mini-Term.app,并提示升级新版本需重做一次,降低 macOS 用户首次使用的卡点
0.2.24 21 d’abril del 2026 — 64 bits MSI64 bits EXE (NSIS)
Notes de la versió
更新内容
- chore: 发布 v0.2.24 - package.json / src-tauri/Cargo.toml / src-tauri/tauri.conf.json 版本号同步到 0.2.24,Cargo.lock 跟随更新 - README 顶部 version badge 同步到 0.2.24
- feat: 长文本粘贴转临时文件功能新增可配置开关与阈值 - AppConfig 新增 longPasteToFile / longPasteLineThreshold / longPasteCharThreshold 三个字段,带 default 兜底,老 config.json 自动补齐,默认开启并沿用原 10 行 / 2000 字符阈值 - pasteToTerminal 改为运行时从 store 读取配置,总开关关闭时直接粘贴原文,任一阈值设为 0 表示不按该维度判断 - 设置弹窗「终端设置」页底部新增「长文本粘贴」区块,提供开关和两个数字输入,blur/Enter 提交,关闭时阈值输入半透明禁用
- fix: 终端长文本复制不全改走 Webview 原生 Clipboard API - copyTerminalSelection 优先调用 navigator.clipboard.writeText,失败时回退到 Tauri 插件 writeText,规避长字符串经 Tauri IPC+JSON 序列化出现截断(复制结果只剩开头+结尾片段)的问题 - 右键菜单"复制"和 Ctrl+Shift+C 快捷键共用该函数,两种触发路径一并修复

Comparteix