Skip to content

v0.1.18

Latest

Choose a tag to compare

@devilcoolyue devilcoolyue released this 27 Oct 05:59
· 10 commits to main since this release

Agentbox v0.1.18 新增对话刻度(悬停预览、跳到任意回合)、带倒计时的系统通告与可选的受限出网;终端与 Codex 后台用量开始扣额度,管理员可为每个用户设置存储上限;长对话和历史列表借助服务端索引大幅加快。修复登录限速可被伪造 X-Forwarded-For 绕过的问题,Claude 订阅的刷新令牌不再下发到工作空间。数据库从 schema 22 迁移到 23(只加列加表),无需更新 Agent 镜像。

新增功能

  • 对话刻度:对话旁边每条用户消息一个刻度,覆盖整个对话(包括还没加载的历史)。桌面端悬停时附近刻度像 macOS 程序坞一样伸长,提示显示问题和回答的第一句,点击或用键盘跳到该回合;手机上刻度在右边缘,滚动时出现,按住拖动预览,轻点打开目录。跳到很久以前的回合时只加载那一段历史,上下滚动继续加载,接上最新内容后自动合并。用户菜单可选「对话刻度」自动 / 始终显示 / 关闭。
  • 系统通告:「系统设置 → 系统通告」向所有已登录页面显示横幅——普通通知,或带倒计时的发版维护(到点显示「正在发版升级」,新版本启动后显示「服务已升级到 vX」),并列出现在重启会影响谁。服务器上可用 agentbox announce,或 release.py activate --announce-minutes N 先预告、到点再发版,停服务前任何一步失败都会撤下通告。见系统通告。
  • 受限出网(默认关闭):container.egress 设为 restricted 后,工作空间只能连到 agentbox 自己的出口代理网桥、内网隧道、模型网关与用量遥测等服务,不能直接访问外网、宿主机其他服务或其他空间。未绑定代理的账号经服务端直连公网目标,container.unbound_egress: "none" 则直接拒绝;container.egress_exempt_users 可让指定用户不受限制。规则装不上时空间启动失败,不会退回开放出网。见受限出网。
  • 终端用量扣额度:Claude / Codex 终端补记与 Codex 后台请求入账即扣余额,同一请求写长后只补扣增长部分,重新扫描不重复扣。超支拦截模式下余额一用完,服务端停止该用户运行中空间里由终端启动的 claude / codex 进程并在终端写明原因;网页对话照常完成当前回合。升级前的终端用量不追扣。
  • 按用户设置存储上限:启用本地存储容量管理后,管理员可在「用户管理」添加用户时或通过「存储」按钮设置每个用户的数据、缓存上限,超出预算或低于已用量时提示还能分配多少;删除用户时释放上限。运维监控新增「用户存储」表,工作空间表增加磁盘占用列。
  • 历史对话列表显示每个 Claude 对话的 CLI 会话记录大小(与 /resume 列表一致)。
  • 启动时显示吉祥物加载画面,刷新深链接不再先闪一下首页。
  • 发送的图片在气泡顶部排成缩略图条,正文里的 [图片#n] 变成可点开大图的链接,已过期的图片标出并划掉引用。

优化改进

  • 服务端为每个对话文件建立增量索引:历史列表再次打开从约 2.7 秒降到约 1 毫秒;历史首屏分页约 300 条,4 倍降速的手机上从约 15 秒降到约 1.2 秒。
  • 手机端页面不再整体滚动或触发下拉刷新,键盘弹出时顶栏固定在可见区域;各区域在自己内部回弹,内容不满一屏也有跟手的下拉回弹。
  • 网页终端在 Windows / Linux 上 Ctrl+V 粘贴(含图片与 Win+V 剪贴板历史),有选区时 Ctrl+C 复制;Shell 里拖选、双击、三击复制的文字进入本机剪贴板(服务端每次接入终端时设置 tmux set-clipboard external,无需重建镜像,程序自己打印的 OSC 52 仍不转发)。
  • 侧栏 Logo 去掉底色方块并放大;手机上使用记录的时区移到顶栏,卡片标签对齐。

Bug 修复

  • 登录限速只信任回环或内网代理追加的最后一个 X-Forwarded-For 地址;此前客户端每次猜密码换一个伪造地址就能绕过限速。
  • Claude 刷新令牌不再进入工作空间:空间里只有访问令牌,由服务端在到期前约 30 分钟续期并推送,运行中的 Claude Code 下一次请求前即读到;用户无法再在空间里伪造凭证文件替换整个账号的共享登录,MCP 服务器的 OAuth 登录也不再扩散到同账号的其他用户。
  • Codex 0.164 起每回合出现「ignoring unrecognized configuration settings」警告:不再写入已废弃的 disable_response_storage,已有会话在下次同步凭证时清掉。
  • Safari / WebKit 中运维监控、账号池、扩展页等后台刷新不再把页面弹回顶部。
  • 手机上较长的输入框提示(如五小时额度暂停)不再被截掉半行;表单长标签与 iOS 日期 / 时间输入框对齐。
  • 侧栏「新建工作空间」按钮悬停时文字不再消失;历史抽屉关闭后不再留下阴影。

升级与兼容

  • 从 v0.1.17 升级会执行 schema 22 → 23 迁移(终端计费),只加列加表,compatibility_epoch 不变;已有终端与后台用量记为已结清,不追扣。v0.1.17 及更早的二进制不能打开新库:升级前保存并验证备份,回退须恢复升级前兼容备份到新目录,升级后的终端扣款流水不会保留。
  • 开启额度的用户从升级起终端消耗也扣余额,超支拦截时余额用完会停止终端里运行的 Agent;请提前告知用户。
  • 新增配置项 container.egress、container.unbound_egress、container.egress_exempt_users 与 proxy_bridge.dynamic_ports(默认 30000-30999),默认仍为开放出网;旧版会忽略并在再次保存时丢掉。
  • 反向代理须用 $proxy_add_x_forwarded_for 追加来源地址;前面还有 CDN 时先在这层代理还原真实访客 IP,否则同一节点后的访客共用一个限速计数。
  • 系统通告存在数据目录的 announcement.json,不进系统备份。v0.1.17 服务端不认识通告,本次升级用 --announce-minutes 时预告不会显示,从 v0.1.18 起再升级才会显示。
  • 无需更新 Agent 镜像,默认固定镜像仍为 Claude Code 2.1.280、Codex 0.145.0;Go 仍为 1.26.10。
  • 提供两个 Linux 服务端包、五个平台 abox-link、release.json 与 SHA256SUMS;桌面安装包独立发布,本次不发布新桌面包。
  • 请先结束当前网页任务。升级会创建并验证系统备份、重启服务,短暂断开 HTTP/WebSocket;完成后刷新网页。

标准 Linux/systemd 版本目录安装可以使用「关于与更新 → 升级并重启」,或在 Bash 中执行:

set -e
version=v0.1.18
case "$(uname -m)" in
  x86_64) arch=amd64 ;;
  aarch64|arm64) arch=arm64 ;;
  *) echo "不支持的架构"; exit 1 ;;
esac
upgrade_dir=$(mktemp -d)
cd "$upgrade_dir"
package="agentbox_${version}_linux_${arch}"
base="https://github.com/devilcoolyue/agentbox/releases/download/${version}"
curl -fL --retry 3 -o "$package.tar.gz" "$base/$package.tar.gz"
curl -fL --retry 3 -o SHA256SUMS "$base/SHA256SUMS"
sha256sum --ignore-missing -c SHA256SUMS
tar -xzf "$package.tar.gz"
sudo python3 "$upgrade_dir/$package/deploy/release.py" install --package "$upgrade_dir/$package"
sudo python3 "$upgrade_dir/$package/deploy/release.py" activate --version "$version"

已有实例不要重跑首次安装器。自定义安装路径请参考安装与升级说明。

已知问题

  • 终端用量扣费只停止由终端启动的 claude / codex 进程;终端里的其他长任务不受额度控制。
  • 终端会话的缓存保活依赖 Claude Code 2.1.303 起在转录里记录的系统提示与工具;默认固定镜像 2.1.280 上未单独验证。
  • 36 MB 左右的仓库经较慢的用户隧道克隆时,网桥约 160 秒后仍可能失败,原因仍在排查。

完整变更记录 · 相对 v0.1.17 的源码差异

验证

  • 完整 CI:Go 构建/测试/vet、Linux 属主权限检查、网页类型/产物/契约、Chromium 与 WebKit、聊天故障恢复、漏洞检查及源码审计。
  • 发布候选 全部通过:七个平台归档与 Linux 安装、固定 CLI 镜像行为与合成会话、部署迁移/回退、真实 systemd 上从 schema 9 升级到 23 与备份恢复,以及历史和候选安装包敏感信息扫描。
  • 桌面开发包 在 macOS / Windows 上的单元测试与打包通过(本次不发布桌面包)。
  • 受限出网的透明代理回环放行在双网络命名空间环境复现并验证;凭证推送用真实 Claude Code 2.1.280 与 2.1.310 对模拟 API 验证;按用户存储上限与删除释放由 loop ext4 上的真实项目配额测试覆盖。其余测试使用合成数据,不代表所有模型、真实设备或真实计费端对端验收。