跳转到内容

更新日志

按版本倒序排列。安装包与每个版本的完整说明见 GitHub Releases。

  • macOS 按架构分别构建。 Apple silicon 使用 ServerBox-<版本>-arm64.dmg,Intel 使用 ServerBox-<版本>-amd64.dmg。 App Store 版本仅支持 Apple silicon。所有 macOS 版本的最低要求提高到 macOS 13。
  • 服务器用户与计划任务。 服务器功能按钮新增两个入口。Users 可创建、 修改和删除系统账户,包括 UID、主组与附加组、登录 shell、家目录和密码。 Scheduled tasks 可读写 crontab,保留注释、环境变量和无法识别的行。 两者都通过 sudo 执行,且仅支持 Linux 服务器。
  • 实时活动开关,位于 设置 → 应用 → iOS → Live Activity,默认关闭。 此前每次终端连接都会出现实时活动,且无法关闭。
  • 新增阿塞拜疆语(az)。
  • Agent endpoint 的 API 版本由你填写。 App 不再向不含版本号的地址插入 v1,此前这样会破坏智谱等 provider(/api/paas/v4)。升级时会把这一个 猜测写入已保存的值,原有配置继续可用。
  • 较长的 Agent 对话改为摘要,不再被丢弃。设置 → 应用 → AI 新增 Summarise at 和 Context size,以及由 models.dev 提供的 Model table。
  • 可允许明文 HTTP 的 AI endpoint,位于 设置 → 应用 → AI → Allow plain HTTP,用于局域网内自建的 Ollama 或 vLLM。API key 和终端上下文会以明文发送;localhost 不受影响。
  • 预发布更新开关改名为 Receive pre-release updates;原始 JSON 编辑器不再 出现在 release 构建中。
  • 分享服务器的二维码可被扫描。 此前载荷未压缩,带密钥的服务器会生成 最宽达 177 模块的符号,扫描器无法读取。现在先 deflate 再加密,并使用更低的 纠错级别和明确的尺寸上限。
  • 关闭应用锁需要身份验证。 此前的校验未生效:无论验证是否成功,新值都会 被写入,因此解除锁定不经过任何验证。
  • 降级安装会给出处理方式。 旧版本遇到更新版本写的数据时会在绘制界面前 停止:没有窗口,没有提示,原因只在用户无法读取的日志里。现在会列出两个 版本号,并提供加密备份、未加密导出和删除全部数据三个选项。
  • 无法进行身份验证的设备不会再被锁在 App 外。 将备份恢复到没有生物识别 的硬件上时,锁屏没有可用的解锁方式,而设置里的开关在不可用设备上被隐藏, App 无法使用,能解决问题的控件也不存在。
  • 一轮包含多个 Agent 工具调用不再中断对话。 未回答的调用会导致工具结果 多于 API 允许的数量,整个请求被拒绝。现在每个未执行的调用都会返回明确结果。
  • Agent 的命令预览不再遮挡自身的 Allow/Deny 按钮。
  • 地球仪视图。 服务器列表上方的地球仪按钮将服务器绘制在其地址解析出的 位置上。定位需要约 25 MB 的城市级数据集,该数据集不随 App 附带,也不会自动 下载,确认对话框会先给出当前的实际大小。无法定位的服务器排列在下方,标注为 Private address 或 No location data;手动填写的坐标优先于所有自动来源。 地址不会发送到任何地理定位服务。见地球仪视图。
  • 性能测试。 在服务器上运行 Yet Another Bench Script,并保存结构化、可比较的 结果。完整跑一次需要 10–20 分钟,离开本页或关闭 App 都不会中断。Geekbench 默认关闭,因为它会下载专有二进制文件并将结果发布到公开页面;iperf 默认使用 精简节点,IP 查询默认关闭,原因相同。
  • 桌面端状态图标。 macOS 菜单栏、Windows 托盘和 Linux 面板会为每台服务器 显示一行,包含状态符号、读数和折线图。Linux 只显示单行,不显示图表。
  • 将服务器分享到另一台设备。 服务器记录(含密钥库中保存的私钥)以二维码或 .sbxsrv 文件的形式传递。二维码附带一个单独显示的一次性 6 位数字,10 分钟后 失效;文件使用你设置的 passphrase 加密,不失效。跳板服务器、密钥文件路径和 BMC 凭据不包含在内。
  • 崩溃报告。 崩溃后,设置 → 应用 → 隐私 → 崩溃报告 会出现——只有存在 报告时该入口才显示,入口出现本身即为提示。不会自动上传:对话框提供删除、复制、 以及复制并打开 GitHub issue。上传是单独的诊断信息设置,分三个级别;无论 哪个级别,记录时都会把已知的服务器名称、地址和用户名替换为占位符。
  • 列表栏可折叠,搜索在栏内完成。 搜索不再压在列表上方新开页面,而是取代 切换器在栏中的位置,边输入边过滤。服务器列表可按名称或连接状态排序,默认仍为 设置页中配置的顺序。
  • 虚拟文件系统不再出现在磁盘列表中。 snap 修订、swap 区域、容器层和 fuse-overlayfs 均被排除,且磁盘的 source 与 filesystem type 分别判断—— 名为 tmpfspool 的 ZFS 池属于存储,不会被当作需要隐藏的文件系统。
  • 恢复终端中缺失的虚拟按键选项。
  • 地理位置数据的更新和地球仪刷新在下载失败或中断时有更完善的防护。
  • 远程备份要求设置备份密码。 密码为空时无法上传到 iCloud、WebDAV 或 Gist; 只要开启任一远程同步,该密码也不允许删除。已有的未加密远程备份仍可恢复,并在 下次上传时被加密版本替换。本地文件和剪贴板备份仍可不加密。
  • 服务页取代 Systemd 页,并读取服务器上实际使用的管理器:systemd、procd 或 OpenRC。s6、runit、upstart、launchd 和 sysvinit 会被识别并报告为不支持。 procd 和 OpenRC 的操作始终需要 root;systemd 仅在 system scope 单元上需要。 账户没有用户会话总线时,只列出系统单元,页面会说明这一点。
  • SSH 加密运算改为 Rust 实现。 记录层 cipher 与连接级加密运算(x25519、 Ed25519 与 ECDSA、bcrypt_pbkdf)不再运行在绘制帧的 isolate 上。AOT 实测: 记录层在 32 KiB 包下由 15 MB/s 提升到 486 MB/s,Ed25519 验签由 1.215 ms 降到 0.019 ms,ECDSA P-256 验签由 3.900 ms 降到 0.084 ms。解析后的私钥也会在连接 之间复用。AES-GCM、ChaCha20-Poly1305 和 RSA 仍使用 Dart 实现。
  • Android 上在终端内按系统返回键不再关闭整个终端;前台服务的生命周期已串行化, 空会话列表不会在同一时刻先启动再停止服务,Android 16 可能将其判定为未履行 startForegroundService 约定并结束 App。
  • 启动时不再出现重叠的服务器刷新。启动、生命周期处理和自动刷新定时器此前各自 启动一个池,使并发成倍增加;现在由同一个调度器管理队列。
  • SSH 命令输出不再被误判为不完整;容器页会隐藏部分输出,不再把截断的 stdout 当作操作失败的原因。
  • 设置页和 Logs 页的返回操作逐级退出,不再直接离开整个设置路由。
  • 前台服务不再在每次会话同步时重复请求通知权限。

此版本包含 v1.0.1466 以来的全部改动,其中含两个预发布版本 v1.0.1480 和 v1.0.1491。

  • BMC(Redfish)。 2016 年前后的企业级管理硬件通常支持 Redfish。服务器详情页 现在可显示其电源状态和传感器——进风口与 CPU 温度、风扇转速、机箱功耗——并执行 电源操作:开机、关机、强制断电、重启、电源循环,每项操作前都有确认对话框并标明 reset 类型。没有忽略证书选项:首次使用时信任,并显示指纹供你核对。账户是共享 记录,在 设置 → BMC 账户 中管理,每个账户会显示引用它的服务器数量。标记为 Beta。
  • iOS 上同时使用多个 Linux 系统。 设置 → 终端 → Linux (Beta) 可并列安装 多个发行版,每行显示各自的标识和版本;点击选择新建终端在其中打开。发行版和 版本来自签名的 manifest,使用编译进 App 的密钥验证。
  • 在 App 内生成 SSH 密钥对。 设置 → 私钥 的新增按钮现在提供 Generate key pair 和 Import:Ed25519(默认)、ECDSA P-256、RSA 2048 和 RSA 4096。生成 完成后页面显示公钥和复制按钮,以及需要追加到 authorized_keys 的那一行。私钥 现在按导入时的原样保存,因此导入的加密私钥保持加密,passphrase 在首次使用时 询问,不再在导入时被去除。
  • SCP 文件传输,用于 SSH 服务端没有 SFTP 子系统的旧设备或嵌入式主机。在服务器 编辑页选择:File 一行提供 SFTP/SCP 选择。它需要服务器上有 scp 命令 以及常用的文件工具。SFTP 会话建立失败时,文件浏览器会提示这一选项。
  • 悬浮终端。 终端操作栏的画中画按钮将其移入浮在所有标签页上方的窗口:桌面端 可拖动和调整大小,手机端是一个可展开为 sheet 的胶囊。它是同一个会话,因此标签页 绘制占位视图而非第二个视图,标签中也会标明该终端处于悬浮状态。
  • 跨服务器的 Agent 工作区,即 Agent 标签页,其工具可读取 App 自身状态: 服务器列表、连接状态、连接与断开,以及将临时连接保存为新的服务器。临时主机的 密码在 App 内询问而非在对话中,并明确说明何时会保存该主机和密码。
  • 发行版标识。 App 会识别对端的发行版,并可在服务器名称旁绘制小标识。默认 关闭,位于 设置 → 服务器 → 发行版标识。未配置 Mark URL 时使用四种内置 标识(Debian、Gentoo、Alpine、NixOS),其余使用通用图标。开启时会先显示条款 对话框,因为标识只表示本机从远端读取到的内容。
  • 密钥与密码组合认证,以及对支持该方式的服务器使用 keyboard-interactive 认证。
  • 存储从 Hive 迁移到一个加密的 SQLite 数据库。 迁移在启动时静默执行,采用复制 而非删除,旧数据在迁移后仍保留在磁盘上。转换失败的记录会被跳过,App 继续运行, 该 store 为空。
  • 小组件改从 agent 的认证 API 读取数据。 手动填写的 /status 地址无法访问需 认证的 endpoint,而所需的登录正是这些地址原本要避免的,因此这些地址不再可用且无法 转换——一次性对话框会说明这一点,在 App 中配置一次服务器即可供所有手表和小组件 使用。必须配置 agent。手表服务器由白名单改为黑名单:所有配置了 agent 的服务器默认 同步,可在 设置 → 应用 → iOS → Watch 应用 中排除。iOS 小组件现在需要 iOS 17, 手表 App 和 complication 需要 watchOS 10。
  • Android 通过前台服务在后台保持 SSH 连接,不再在切换到其他 App 后数秒内断开 所有连接。通知权限关闭时,后台运行 下会出现一行说明需要常驻通知,点击可打开 系统设置。
  • Android Auto Backup 不再适用:数据库使用与设备绑定的密钥加密,跨设备恢复无法 携带该密钥。跨设备恢复使用 App 自身的加密导出。
  • 支持没有家目录的服务器。
  • tmux 的 UTF-8 渲染正确,其界面已本地化。
  • Windows 输入法候选窗口的文字可以传入终端。
  • 使用 systemctl 列出单元,systemctl list-units 单独会漏掉的单元也能显示。
  • 拆分 Android 构建不再破坏可复现构建;Impeller 兼容性探测在启动前完成,而非之后。
  • 更新检查改读 GitHub Releases,不再读取厂商 manifest,iOS 使用 App Store 查询。 对话框现在会显示已安装版本与提供版本之间每个版本的说明,而不只是最新一个。仅发布到 CDN 的版本不再被检测到。
  • Docker host 字段在 Podman 服务器上显示为 Edit CONTAINER_HOST,在 Docker 服务器 上显示为 Edit DOCKER_HOST,并使用各自独立的存储键,同一台服务器的 Docker host 与 Podman host 不再互相覆盖。
  • 备份可以恢复了。 序列化此前对无法编码的对象回退到 toString(),因此服务器、 snippet、私钥、端口转发和 Wake-on-LAN 配置被写成 Instance of 'Spi' 形式的字符串 ——备份看似完成,但无法恢复为对应记录。现在每个模型都有明确的序列化分支,不支持 的类型会直接报错而非静默降级。1.0.1448–1.0.1450 版本创建的备份受此影响,无法完整 恢复。
  • 名称或镜像中含空格的容器不再导致整个列表的列错位。
  • 此版本的韩语翻译已完整。
  • 终端支持 tmux。 连接时自动 attach、会话与窗口选择器、默认会话名,均在 设置 → 终端 → tmux auto-attach 下,默认关闭。终端的虚拟按键栏新增 tmux 键, 服务器未安装 tmux 时会给出提示。
  • 自动重连。 连接中断后会重连,显示可取消的进度对话框,并重新 attach tmux。 未使用 tmux 的 shell 也会重连,重连后是一个新的 shell,其状态会丢失。
  • 桌面端可选择内置终端或系统 SSH。 开关位于 设置 → 终端 → 通用:内置终端 使用 App 自带的终端,系统 SSH 在外部终端模拟器中启动系统 ssh 命令。macOS 上 外部终端固定为 Terminal.app,不再可配置;该行现在仅 Linux 可用。
  • SFTP 下载显示传输速率(已传输 / 大小 – 百分比 – 速度),速度提升:分块大小由 16 KB 提高到 32 KB,最大在途请求数由 1 提高到 64。
  • sudo 密码自动填充可识别更多形式的提示符,包括全角冒号;没有活动的提示符时会 明确提示,而不是无任何反应。
  • 终端不再注入用户未配置的 locale,只传递服务器自身的环境变量。
  • 进程磁盘 I/O 速率显示在进程页,为可排序的 R/s 和 W/s 两列。需要窗口宽度 至少 1100 px、服务器报告相应计数,且需要两次采样,因此打开页面后的第一次读数为空。
  • SFTP 下载不再卡住;页面 dispose 时会关闭持久化的 SFTP channel。
  • 虚拟键盘可识别更多形式的 sudo 密码提示符。
  • 拉取镜像:容器页的镜像行菜单提供 Pull 和 Delete。dangling 镜像没有 repository 或 tag,不会拉取任何内容并会给出提示。
  • 两台跳板服务器,按顺序尝试。 服务器编辑页的 SSH 高级设置最多可配置两台跳板 服务器,按尝试顺序编号,第一个成功转发的胜出。超时、连接被拒绝和转发失败会尝试 下一台;认证和权限错误则直接终止,不再尝试。会形成循环的选择不会出现在选项中, 且跳板服务器与 ProxyCommand 不能同时设置。
  • 点击文件直接打开编辑器,长按保留操作菜单。超过 1 MB 的文件编辑器不予打开。
  • AI 的 API endpoint 可以填写完整的 .../chat/completions URL,也可以填写服务 base URL;v1 和路径会按需补全。
  • 终端的 Theme 设置新增 Auto,跟随 App 自身的主题,而非系统主题。
  • 桌面端系统 SSH 路径写入的临时私钥文件现在在 Windows 上也会收紧权限,使用 icacls;该步骤失败时会报错并中止启动,不再使用权限过宽的私钥继续。
  • 状态命令超时不再使共享 shell 在本次连接的剩余时间内卡住,会回退到一次性 channel。