Repository navigation
Releases: xiaoyonghaoe/snake
Release list
Snake 1.1.3
Snake 1.1.3
更新
- 设置新增密码管理:加密保存常用账号与密码,可填入 SSH 会话;条目修改后支持多选关联会话同步,会话独立修改凭据时解除关联。
- 私钥认证的会话编辑页展示实际本机密钥路径,文件失效时提示重新选择。
- 修复 SFTP
⌘F检索、⌘U上传快捷键的工作窗口路由;连接未就绪时显示原因。 - 新建 SSH 会话标签默认使用
⌘T,可在设置中自定义;标签栏尾部双击和空工作区入口继续保留。 - 新建会话标签自动聚焦检索框,切回已有标签不抢占焦点。
- 改进密码查看的窗口就绪等待和取消重试,避免系统身份验证未出现或迟到回调显示凭据。
- 包含 1.1.2 发布后的终端主题扩展:Catppuccin、Gruvbox、Solarized 与
.itermcolors导入;移除远端ls/ll自动颜色配置,保留本地高亮及目录 Hook。
安装与限制
- Apple Silicon(arm64),macOS 15+;打开 DMG,将 Snake.app 拖到 Applications。
- 本包仅使用 ad-hoc 签名,未完成 Developer ID 签名与 Apple 公证,首次启动可能出现系统安全提示。
- 新密码库及会话密码均加密保存;查看明文需要 macOS 身份验证。测试签名升级可能再次要求钥匙串访问批准。
- Swift 自动化:197 项,5 项因外部夹具缺失跳过,1 项既有挂载
invalidMapping失败;其余通过。Rust:22 项通过。不能将全量测试描述为全部通过。 - GUI、Touch ID、真实 Finder 操作、干净 Mac 安装与升级由用户验收;本次未替代这些人工验收。
- 密码型 SSHFS 挂载、Intel / Universal 2、公证以及跨应用重启的工作区恢复仍未交付。
English
Snake 1.1.3 adds an encrypted password library with selective synchronization to linked SSH profiles, displays resolved private-key paths, fixes SFTP keyboard shortcut routing, makes the new-session-tab shortcut configurable (default Command-T), and automatically focuses search in newly opened session tabs. Credential reveal handles window readiness and cancellation more reliably. The release also includes the post-1.1.2 terminal theme additions and .itermcolors import without modifying remote ls/ll color settings.
Apple Silicon / macOS 15+, ad-hoc signed and not notarized. Swift: 197 tests, 5 skipped, 1 pre-existing mount invalidMapping failure. Rust: 22 passed. GUI, system authentication and clean-Mac installation/upgrade acceptance remain manual.
1.1.2
Snake 1.1.2
本次更新(相对 1.1.1)
- 「打开远程文件」的缓存改为可配置:设置「传输 › 打开远程文件」可更换保存目录(默认系统
缓存目录),设置自动清理的保留时长(默认 7 天)与容量上限(默认 500 MB),并可查看当前
占用、随时手动清理。缓存写入改为「临时文件 + 原子替换」,中断或失败不会留下残缺文件;
缓存文件权限0600、Snake 自建目录0700,默认位置不参与系统备份。 - 修复删除 SSH 会话可能连带删除用户文件的问题:此前会递归删除缓存目录下该会话的整个
子目录,用户放在里面的文件会一并消失;现在只清理名字符合 Snake 缓存命名规则的副本,
目录里还有其它内容时则保留目录。删除会话的确认弹窗也补充了该说明。 - 新增「每主机连接数」(2–16,默认 8):同时进行多个传输时,对同一台主机的分片与逐文件
传输连接总数受该值约束,超出的传输排队等待并在记录里显示「等待中」,避免多标签同时传输
把同一服务器打成连接风暴。每个标签的常驻连接、每个上传批次的操作连接不计入该值。 - 修复多个 SFTP 标签时从访达拖拽上传可能落到另一个标签的问题:文件此前会进到那个标签
当时浏览的远程目录、进度与记录也记在那边;现在只有屏幕上正在显示的那个标签接收拖拽。 - 修复上传排队期间记录显示为「传输中」而非「等待中」的问题,与下载侧保持一致。
下载与安装
- 文件:
Snake-1.1.2-macos-arm64.dmg,同时提供.dmg.sha256。 - 系统:macOS 15+,Apple Silicon(M 系列);本次不包含 Intel 版本。
- 打开 DMG,将 Snake 拖到 Applications,复制结束后推出 DMG。
- 更新前退出旧版;已有用户配置不随安装包分发,也不会因复制应用被清空。
发布限制
当前构建为本地 ad-hoc 签名,未完成 Developer ID 签名与 Apple 公证,首次打开可能被系统拦截。
详见 安装说明。页面及真实安装后的连接行为由用户验收。
磁盘映射仍需单独安装 macFUSE / sshfs;本安装包不自动安装系统依赖。
既有挂载 invalidMapping 测试问题仍未修复,不将其列为已通过项目。
1.1.1
Snake 1.1.1
本次更新(相对 1.1.0)
- 新增中英双语界面。简体中文为源语言、默认语言与回退语言;设置「外观 › 语言」可在
跟随系统 / 简体中文 / English 之间切换,切换即时生效并会被记住。 - 界面文案全部改为可本地化资源,系统权限弹窗与 Info.plist 权限说明提供中英两版。
- SSH 连接失败阶段(TCP 解析/连接、SSH 会话初始化/握手、PTY、认证等)改由结构化
stage 码驱动,报错信息随界面语言显示,不再混入中文硬编码。 - 设置页布局重构:四个页面统一滚动与分组样式、内容顶部对齐,说明文字改为区块脚注;
窗口由固定尺寸改为可调整大小(默认 640×560,最小 560×460)。 - 修复英文界面下设置页的横向裁切:快捷键录键框不再被标签列压缩,终端字号等标签不再被窗口边缘切断。
- 终端配色预览在较大字号下换行显示,不再裁切。
- 设置「终端」标签图标由
textformat改为terminal,修复中文系统下显示为「格式」字形的问题。 - 新增
README.en.md与docs/en/英文文档,中英文档互加语言切换链接。
下载与安装
- 文件:
Snake-1.1.1-macos-arm64.dmg,同时提供.dmg.sha256。 - 系统:macOS 15+,Apple Silicon(M 系列);本次不包含 Intel 版本。
- 打开 DMG,将 Snake 拖到 Applications,复制结束后推出 DMG。
- 更新前退出旧版;已有用户配置不随安装包分发,也不会因复制应用被清空。
语言选择保存在本机偏好设置中,升级后保留。
发布限制
当前构建为本地 ad-hoc 签名,未完成 Developer ID 签名与 Apple 公证,首次打开可能被系统拦截。
详见 安装说明。页面及真实安装后的连接行为由用户验收。
磁盘映射仍需单独安装 macFUSE / sshfs;本安装包不自动安装系统依赖。
本次未修复既有挂载 invalidMapping 测试问题,不将其列为已通过项目。
1.1.0
Snake 1.1.0
本次更新(相对 1.0.0)
- 凭据加密存储,验证身份后可查看与编辑已保存密码;优化会话编辑布局和测试连接反馈。
- 终端增加 Tokyo Night 浅深色主题、日志关键词与输出字段高亮,以及当前 Shell 的彩色
ls/ll配置。 - SFTP 支持文件和文件夹并行下载、可选远端 SHA-256 / MD5 校验;校验不可用时提示未校验,不阻止正常传输。
- 优化 SFTP 新建/上传右键菜单,增加文件检索及可自定义的检索、删除、上传快捷键。
- 修复设置窗口打开后主窗口 Command-W 的命令路由,保持关闭当前标签行为。
- 提供可拖入“应用程序”的 DMG,补齐独立安装后的终端资源及依赖许可证。
下载与安装
- 文件:
Snake-1.1.0-macos-arm64.dmg,同时提供.dmg.sha256。 - 系统:macOS 15+,Apple Silicon(M 系列);本次不包含 Intel 版本。
- 打开 DMG,将 Snake 拖到 Applications,复制结束后推出 DMG。
- 更新前退出旧版;已有用户配置不随安装包分发,也不会因复制应用被清空。
发布限制
当前构建为本地 ad-hoc 签名,未完成 Developer ID 签名与 Apple 公证,首次打开可能被系统拦截。
详见 安装说明。页面及真实安装后的连接行为由用户验收。
磁盘映射仍需单独安装 macFUSE / sshfs;本安装包不自动安装系统依赖。
本次未修复既有挂载 invalidMapping 测试问题,不将其列为已通过项目。
1.0.0
- 原生 AppKit/SwiftUI 工作窗口,按已批准的高保真原型实现统一工具栏、纯会话侧栏、连接带和跟随应用外观的浅色/深色终端;磁盘映射统一从右上角入口进入。
- 本地 vendored Bonsplit,支持标签、横纵分屏、窗内拖动,以及 Snake 协调的标签拖出独立窗口、跨窗口投放和边缘分屏。
- 空分栏提供关闭按钮;
Command-W优先关闭当前标签或多余空分栏,仅剩最终空分栏时保持工作窗口。 - 会话分组、会话编辑、开发阶段明文凭据文件、私钥 security-scoped bookmark;凭据访问已封装,后续可替换密码工具适配器。
- 会话双击打开终端、右键打开终端/SFTP/编辑/删除,并可拖动到同级分组。
- 新安装以空工作区启动,不再自动注入示例服务器、示例映射或伪终端输出。
- Rust/libssh2
TerminalHandle提供真实 SSH PTY,SwiftTerm 只负责终端渲染与输入;支持密码/私钥认证、严格主机密钥校验、真实协商算法详情、UTF-8 输入输出、PTY resize、远端退出和 30 秒 Keepalive。瞬时连接错误自动重试一次,并按 TCP、握手、通道、PTY、shell 阶段显示错误。 - Rust/libssh2 SFTP 浏览器,支持严格主机密钥校验、密码/私钥认证、可编辑与复制的路径栏、创建文件/文件夹、重命名、chmod、删除、文件/文件夹上传、远程文件缓存打开,以及 SFTP 分栏/窗口间 1 MiB 内存流式互传。
- Finder 文件/文件夹可拖到 SSH 终端或 SFTP 内容区上传;原生接收层随标签换窗,按实际落点定位分栏,与 Bonsplit 标签拖动隔离。SSH 使用最近报告的 shell 目录,未知时先确认;SFTP 使用当前目录。实现与验收见 Finder 上传说明。
- 当前 SFTP 标签上传时在项目统计左侧按需显示迷你进度,完成两秒后收为记录图标;点击可查看本次标签内的文件、路径、大小、时间、耗时和结果,并执行暂停、继续、取消或失败重试。本地上传记录不写入 SQLite。
- macFUSE/sshfs 依赖检测、映射编辑器、私钥 SSHFS 挂载、Finder 打开、安全卸载与受约束的
SnakeMountHelper。 - Finder 磁盘名称显示“映射名称 · SSH 会话名称”;挂载状态以系统实际挂载表为准。彻底退出应用前会等待正在进行的挂载操作并安全卸载已配置的受管挂载;卸载失败则取消退出并提示占用原因。仅关闭窗口不会卸载。
- Rust
snake_core已包含 SQLite v1 schema、会话/映射/传输记录 CRUD、异常任务中断恢复、UniFFI Swift 绑定和双端往返测试。 - 调试 App 内嵌 Rust 动态库与 Mount Helper,使用
@rpath并进行本地 ad-hoc 签名,可脱离工作区动态库路径启动。