פופולרי: הנתונים עודכנו ב־27 באוקטובר 2026

קטגוריות

אינטרנט1,356
תקשורת321
אודיו ווידאו898
גרפיקה ועיצוב539
משרד ופרודוקטיביות1,124
כלי פיתוח3,134
כלי בינה מלאכותית529
אבטחה ופרטיות385
כלי מערכת3,114
משחקים523
חינוך ומדע239
רשת ו־IT284

הורדת גרסאות קודמות של Mini-Term

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

ברשימה 94 גרסאות של Mini-Term, מ־21 באפריל 2026 ועד הגרסה הנוכחית 1.13.18. כל גרסה מקושרת לקובצי ההתקנה של המפיץ עצמו.

2026: 94 94 26
גרסהתאריךגודלקבצים
1.13.18אחרונה 21 באוקטובר 2026 — 64 ביט EXE (NSIS)
הערות גרסה
本版汇总 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 באוקטובר 2026 — 64 ביט EXE (NSIS)
הערות גרסה
更新内容
⚠️ 自托管中转需要同步更新:本版给对话镜像加了工具调用信息,旧版中转会丢掉新字段,它自带的旧手机页面还会把每次工具调用显示成一个普通的 AI 回复气泡。请先按部署文档用本版源码重建中转,再升级桌面端。中转重启后手机需要重新扫码配对一次。
新功能
- 手机端工具活动:AI 连续调用工具时,镜像里折叠成一条「工具调用 N 次 · 最近:…」,点开逐条看工具名和目标:项目里的文件显示相对路径,命令只显示第一行。
- 手机端工作状态:镜像底部实时显示「AI 工作中」或「等你处理」;有待作答的提问时,提示你去回答上方的提问。
- 手机端 Markdown 增强:AI 回复支持表格、删除线、任务列表和裸链接;宽表格、长代码行在气泡内横向滚动;代码块顶栏一键复制。
- 手机端阅读体验:很长的输入自动折叠,可展开、收起;用户打断显示为居中的「已打断」提示;上滑加载更早消息时,阅读位置不跳。
修复
- 从手机发送的长指令(约百字以上)只写进了 Claude 的输入框、没有提交,回执却显示成功。现在长指令和多行指令都能正常提交。
- 手机镜像和桌面会话面板会把 Claude 写进会话记录的系统注入当成用户输入显示出来,包括 skill 正文、本地命令输出、后台任务通知等。现在这些都滤掉了,斜杠命令显示成 /xxx。
- 新版 Claude Code 的 /context、/usage 这类本地命令,在手机镜像和桌面会话面板里看不到。
- 从手机发起的新会话里,第一条手机指令被标成「桌面输入」。
1.13.14 10 באוקטובר 2026 — 64 ביט EXE (NSIS)
הערות גרסה
更新内容
新功能
- PDF 预览:文件树里点开本地 .pdf,直接在页签里查看。用的是系统 WebView 自带的阅读器(Windows 上是 Edge 阅读器),书签目录、页码跳转、搜索、缩放都能用。文件在磁盘上被改写后自动重新加载,工具栏可一键「使用默认工具打开」。文档里的外链先确认再交给浏览器,指向本地文件的链接作为新页签打开。Linux、远程项目里的 PDF,或系统缺少 WebView 时,显示打开 / 下载提示。
- Markdown 预览目录栏:文档有两条以上标题时(写在列表、引用里的不算),预览左侧显示目录,按层级缩进,过长的标题截断、悬停看全文。点一条跳到对应章节,当前章节随滚动高亮,标题很多时高亮项会自动滚进可视范围。工具栏「目录」按钮控制开关,所有页签共用,重启后保持。用到脚注或引用式链接的文档暂不显示目录。
修复
- 拖动分隔条调整终端宽度后,Claude Code 的输出在回滚区里重复出现多份(慢慢拖窄再拖回时可多达二十余份)。
- Windows 上缩窄终端(拖分隔条、拖窗口边、一次缩小一大截)或一次减少很多行后,PowerShell 的下一条输入画到提示符的上一行、输出盖掉提示符。
1.13.13 4 באוקטובר 2026 — 64 ביט EXE (NSIS)
הערות גרסה
更新内容
新功能
- 状态灯第五态「等你处理」: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 בספטמבר 2026 — 64 ביט EXE (NSIS)
הערות גרסה
更新内容
新功能
- 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 בספטמבר 2026 — 64 ביט EXE (NSIS)
הערות גרסה
更新内容
新功能
- 终端帧率可调:「设置 → 系统 → 性能」新增前台帧率(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 בספטמבר 2026 — 64 ביט EXE (NSIS)
הערות גרסה
更新内容
新功能
- 全局命令库(#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 בספטמבר 2026 — 64 ביט EXE (NSIS)
הערות גרסה
更新内容
1.2.14 17 בספטמבר 2026 — 64 ביט EXE (NSIS)
הערות גרסה
更新内容
新功能
- 文件编辑器补齐主流语言的语法高亮: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 בספטמבר 2026 — 64 ביט EXE (NSIS)
הערות גרסה
更新内容
回滚
- 撤回 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 בספטמבר 2026 — 64 ביט EXE (NSIS)
הערות גרסה
更新内容
新功能
- 添加项目后直接打开:弹窗、分组右键「添加项目」、拖目录进项目列表、添加远程项目、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 בספטמבר 2026 — 64 ביט EXE (NSIS)
הערות גרסה
更新内容
修复
- 分组右键「添加项目」后新项目看不见、重启后才出现,且可能顶掉一个旧项目:项目 / 分组 / 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 בספטמבר 2026 — 64 ביט EXE (NSIS)
הערות גרסה
更新内容
新功能
- 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 בספטמבר 2026 — 64 ביט EXE (NSIS)
הערות גרסה
更新内容
性能
- 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 בספטמבר 2026 — 64 ביט EXE (NSIS)
הערות גרסה
更新内容
体验
- 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 בספטמבר 2026 — 64 ביט EXE (NSIS)
הערות גרסה
更新内容
- release: 升级版本号至 v1.2.4
- fix: 文件预览与 diff 面板按制表位展开 Tab,Go 等 Tab 缩进文件不再整篇顶格
- fix: 文件树移动的路径判定用例改用正斜杠,Linux 上也能通过
- style: 按 rustfmt 整理本轮变更行的折行
0.14.0 19 באוגוסט 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
布局不再一次定型 —— 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 באוגוסט 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
统计面板显示细节修复
🐛 修复
- 金额与次数小字重叠 — 用量统计里「按项目 / 按模型」排行与 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 באוגוסט 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
同一个任务,并排试两条思路 —— 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 באוגוסט 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
自定义主题下的终端,字距终于和内置主题一样了
带背景图的主题包激活时,终端只能走 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 באוגוסט 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
终端里的 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 באוגוסט 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
非激活 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 באוגוסט 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
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 באוגוסט 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
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 באוגוסט 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
自定义主题体系 + 项目 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 באוגוסט 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
状态一览升级:托盘菜单列全量 AI 项目 + 标题栏项目切换器
✨ 新功能
- 托盘右键菜单列出所有进入 AI 会话的项目 — 不再只列「有动静」的:新增第四档 ⚪ AI 空闲(agent 已进入但待命),排序 待确认 > 处理中 > 已完成 > 空闲,条数上限沿用设置里的「最多显示项目数」;托盘灯与 tooltip 口径不变,空闲项目只进菜单不点灯
- 标题栏新增当前项目切换器 — 版本号右侧以竖线隔开的胶囊按钮,常显当前项目名与它自己的 AI 状态色点(无 AI 会话时压暗);下拉列出进入 AI 会话的项目及状态,点击即切换并定位到该项目内最该处理的分屏(与托盘菜单同一套落点),全都安静时只切换项目
- 全局状态灯移位 — 从最小化键左侧挪到项目切换器右边,全局态与当前项目态同处看齐;点击行为不变,右侧从此只剩窗口控制三键
🔧 内部
- 「进入 AI 会话的项目」聚合抽成 collectAiProjects 供托盘与标题栏共用;「已完成」判据集合由调用方注入——托盘用未读完成(随窗口聚焦清除),标题栏用完成队列(与全局状态灯同一套语义)
0.10.6 6 באוגוסט 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
Git 面板重排:变更与提交历史同屏
✨ 改进
- 上下两个可折叠区块取代互斥 tab — 更改在上、提交历史在下,同一仓库的变更与历史同屏可见;中缝可拖拽调节比例(钳 15%~85%),折叠态与比例在会话内记忆
- 顶部新增仓库栏 — 仓库级操作一处集中:下拉切换仓库(worktree 条目标 ⎇)、分支徽章点击只切历史查看分支(不 checkout,查看非 HEAD 分支时高亮提示)、刷新 / Pull / Push 收在栏上;右键仓库名可在终端打开或进入 Worktree 管理
- 提交历史直接平铺 — 历史区不再渲染逐仓库展开的仓库树,直接展示选中仓库的提交列表;分支拓扑图、滚动分页、双击看 diff、右键复制 hash 原样保留
- 折叠 / 展开带动画 — flex-grow 补间收放,两块同时补间总和不变、不跳动;按浮层惯例豁免系统「减弱动态效果」设置,拖拽调比例期间自动关掉补间保持跟手
🔧 内部
- 两个区块常驻挂载,折叠只把高度收到 0——已加载的提交列表、展开状态与提交说明草稿不会因折叠丢失,commit 成功仍自动刷新历史
- 换仓库 / 换分支用请求令牌作废在途响应,防止迟到数据串到别的仓库
⚠️ 行为变化
- 历史区严格跟随顶部选中的仓库,不再支持同时展开多个仓库的提交历史;多仓库项目通过顶部仓库栏切换查看
0.10.5 6 באוגוסט 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
本版重排了设置弹框的信息架构。原来六个平铺分页里,「系统设置」一页塞了界面语言、状态栏三项、启动自动续接、主题、皮肤、终端跟随主题、外部编辑器共九组控件,找一个开关要滚半页。现在按主题归组,每页只剩一屏左右。
体验
- 设置侧栏改为两级菜单 — 分组 + 分页:终端(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 באוגוסט 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
本版把 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 באוגוסט 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
本版集中修两件长期烦人的事: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 באוגוסט 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
标题栏不再是系统那条灰白色的了 —— 换成应用自绘,配色跟着主题走,并按各平台的窗口习惯分别适配(#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 באוגוסט 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
本版合入社区贡献者 @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 באוגוסט 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
修复
- 修复 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 באוגוסט 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
修复
- 修复外部删除 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 באוגוסט 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
修复
- 修复 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 ביולי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
- 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 ביולי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
新功能
- 内置文件编辑器:文件树里点开文件不再只是预览,而是一个完整的代码编辑器(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 ביולי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
界面动效
- 弹窗、菜单、抽屉统一进出场动画 — 此前所有弹窗都是瞬间出现、关闭直接消失。现在遮罩淡入、面板从上方落下并放大到位;关闭时反向播完再卸载,这段时间面板已退出覆盖物栈,不再响应点击与 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 ביולי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
修复
- 修复分屏终端长时间静置后整屏乱码:多个终端共享同一份 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 ביולי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
本版主线是 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 ביולי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
单修复版:解决状态栏对 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 ביולי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
这一版把注意力从「加功能」转回「用得顺手」:快捷键成体系、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 ביולי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
上一版让手机能看桌面上跑着的 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 ביולי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
本版主角是移动端 + 自托管中转:出门在外用手机看桌面上跑着的 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 ביולי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
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 ביולי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
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 ביולי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
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 ביולי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
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 ביולי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
本版为深度 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 ביולי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
新功能
- 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 ביולי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
新功能
- 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 ביוני 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
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 ביוני 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
Bug 修复
- 修复新增 SSH 连接后项目关联弹框全部复选框被自动勾选
- 「关联 SSH」弹框保存时,若恰好勾选了全部已有连接,范围会存为 undefined(语义为"含将来新增"),导致新增 SSH 后重新打开弹框时所有连接都被自动勾选
- 改为始终存储显式 id 列表,新增连接不会被自动纳入已有项目的关联范围
- 兼容旧配置:undefined 视为当前全量,打开旧配置无修改不触发误报
0.6.2 18 ביוני 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
🐛 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 ביוני 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
🐛 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 ביוני 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
- 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 ביוני 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
🐛 修复
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 ביוני 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
- 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 ביוני 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
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 במאי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
本版主特性:全应用中英双语 (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 במאי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
本版为 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 במאי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
- 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 במאי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
新增
- 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 במאי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
修复
- 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 במאי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
新功能
- 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 במאי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
修复
- 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 במאי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
新功能
- 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 במאי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
新功能
- 项目级环境变量 — 项目右键菜单新增「环境变量…」入口,按项目独立维护一组 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 במאי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
- 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 במאי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
- 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 במאי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
- 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 במאי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
- 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 במאי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
- 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 במאי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
- 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 במאי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
- release: 升级版本号至 v0.4.6 - 子代理完成后不再误触提示音 - README 版本徽章同步更新 - 三个版本文件同步升级:package.json、Cargo.toml、tauri.conf.json
- fix: 子代理完成后不再误触提示音 - 将 SubagentStop 事件从 ai-idle 改为 ai-working,子代理结束后主代理仍在处理结果,不应视为空闲
0.4.5 14 במאי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
- 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 במאי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
- 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 במאי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
- 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 במאי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
- 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 במאי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
- 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 במאי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
- 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 במאי 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
- 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 במאי 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
- 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 באפריל 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
- chore: 升级版本号至 v0.3.7
- docs: 更新项目截图
- fix: 修复空终端误判 AI 工作状态
- fix: 快捷键支持 macOS Cmd 键 + 设置页展示全局搜索快捷键 - 全局搜索、终端复制粘贴、AI 标记跳转均兼容 Cmd 键,macOS 下可正常使用 - 新增 platform.ts 平台检测,所有快捷键提示文本根据系统显示 ⌘ 或 Ctrl - 设置页快捷键列表新增"全局搜索"分组,展示 Ctrl/⌘+Shift+F
0.3.6 29 באפריל 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
- 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 באפריל 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
- 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 באפריל 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
- 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 באפריל 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
- 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 באפריל 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
- 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 באפריל 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
- 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 באפריל 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
- 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 באפריל 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
- 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 באפריל 2026 — 64 ביט EXE (NSIS)64 ביט MSI
הערות גרסה
更新内容
- 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 באפריל 2026 — 64 ביט MSI64 ביט EXE (NSIS)
הערות גרסה
更新内容
- 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 快捷键共用该函数,两种触发路径一并修复

שיתוף