2026.06.02 发布 v0.3.0
CubeSandbox 0.3.0 引入了 CubeCoW,一个 Copy-on-Write 快照引擎,为 AI Agent 沙箱带来百毫秒级快照、克隆和回滚能力。此版本还新增了 AgentHub 数字助手控制台(Preview)、用于可视化管理的 Web UI,以及 Go SDK。来自 22 位贡献者的 82 次提交,使 v0.3.0 成为开源以来最大的版本。
🎯 重大功能
CubeCoW:快照、克隆与回滚
CubeCoW Copy-on-Write 快照引擎(#360):基于 reflink 的卷快照全生命周期 CoW 快照引擎,为沙箱卷管理提供高效的块级快照操作。可在任何时刻创建轻量级、空间高效的检查点。
Soft-dirty 增量内存快照(#389):通过 soft-dirty 页面跟踪实现按周期增量内存快照,大幅减少重复快照周期的时间和存储开销。首次全量快照后仅捕获脏页。
快照恢复与 vsock 处理(#388):快照恢复时正确重置 VSOCK 连接,确保回滚后连接状态干净。
快照 I/O 优化(#400):从所有快照写入路径中移除不必要的
sync_all()调用,显著降低快照写入延迟而不影响数据完整性。Demo 套件与开发者指南(#374):完整的 demo 套件和分步指南,涵盖快照、回滚和克隆工作流,包含可运行示例。
Host-mount 暂停快照修复:修复了带有暂停 host-mount 文件系统的沙箱的快照恢复问题。
AgentHub 数字助手控制台(Preview)
- AgentHub API & UI(#420):基于 CubeSandbox 构建的完整数字助手控制台。包括:
- AgentHub 持久化层和助手生命周期管理
- OpenClaw 设置集成用于 AI Agent 编排
- 快照时间线,支持可视化检查点创建和回滚
- 克隆沙箱到并行探索环境
- 模板操作用于可复用助手配置
- 模型设置和企业微信通知配置
- 完整 i18n 支持(英文和中文)
Web UI
- 管理仪表盘(#299):浏览器访问的 Web UI,用于管理沙箱、模板和集群节点。包含模板商店,用于浏览和部署预构建的沙箱镜像。常见操作无需 CLI。
🛠️ SDK
Python SDK (v0.2.1)
模板创建 API(#365):通过 Python 编程式创建沙箱模板,实现端到端自动化而无需 shell 命令。
envd 进程 API 迁移(#1676a0fc):命令现在通过 envd 进程 API 运行,提高可靠性和一致性。
进程退出边缘情况处理(#a210dfc2):修复 envd 进程生命周期管理的边缘情况,防止命令挂起。
stderr 覆盖与文件回退加固(#9e2c64ab):改进错误输出捕获并加固文件操作回退路径。
envd 默认值与网络策略对齐(#418):对齐 envd 服务默认值和网络策略配置与服务端默认值。
Go SDK(新增)
- Go SDK 初始发布(#5de861ac,#3b5caf29):完整的 Go SDK,提供沙箱生命周期管理的类型化 API 绑定,使 Go 应用程序能够原生创建、管理和销毁沙箱。
✨ 增强功能
部署
基于 systemd 的一键部署(#331):一键安装程序现在通过 systemd 管理所有服务,提供正确的服务监管、失败自动重启和
systemctl集成。Docker Compose 容器生命周期(#386):容器生命周期管理迁移到 Docker Compose,简化多容器编排并改善重启行为。
提前预下载检查(#288):在线安装程序现在在下载前验证网络连接和磁盘空间,防止安装中途失败。
健康检查与诊断脚本(#305):新增
check.sh和collect-logs.sh脚本用于一键部署健康验证和日志收集。Cgroup v2 CPU 控制器预检(#367):安装程序检测缺失的 cgroup v2 CPU 控制器支持,并在继续前提供可操作的指导。
Network-agent 就绪等待(#304):安装程序现在等待 network-agent 完全就绪后再继续,消除初始设置期间的竞态条件。
Docker bind-mount 目录防护(#417):防止 Docker 在 bind-mount 文件路径自动创建目录,确保正确的挂载行为。
Guest 镜像优化(#347):ext4 镜像创建后现在会收缩,Dockerfile 也已优化,减小镜像大小和拉取时间。
基础设施
集中式 schema 迁移(#385):CubeMaster 现在使用
goose进行数据库 schema 迁移,实现跨升级的版本化自动化 schema 管理。节点资源上报(#382):Cubelet 现在向 CubeMaster 上报已分配的节点资源(CPU、内存、磁盘),实现集群级资源感知。
基于路径的沙箱路由(#334):CubeProxy 支持基于路径的沙箱路由和共享后端解析,提高路由灵活性。
调度器指标(#326,#301):Cubelet 将调度器指标作为 Prometheus gauge 暴露在
/v1/metrics,实现沙箱调度和资源利用率的实时监控。
🐛 Bug 修复
Pause/resume 状态收敛(#404):修复 ttrpc 错误和 shim 事件导致的 pause/resume 状态漂移,确保一致的沙箱生命周期状态。
Shim 就绪握手(#398):通过不重定向 stdout(fd 1)修复 shim 就绪握手,防止静默初始化失败。
网络资源泄漏(#314):解决沙箱创建期间的网络资源泄漏,该泄漏可能随时间耗尽可用网络接口。
Host-mount 清理(#333):沙箱销毁后现在正确清理 host-mount 目录,防止磁盘空间积累。
Cloud Hypervisor 磁盘 API(#337):修复可能导致磁盘操作失败的错误 Cloud Hypervisor 磁盘 API 端点使用。
模板提交幂等性(#336):强制 requestID 唯一性并添加幂等提交重用,消除重试请求导致的重复模板提交。
配置解析(#396):修复
NodeStatusUpdateFrequency使用tomlext.Duration进行正确的 TOML 持续时间解析。输入验证(#344):在命令执行调用点添加输入验证,提前捕获无效参数。
并发 DNS 处理(#363):容忍并发 DNS dummy 链接创建,防止并行沙箱创建期间的竞态条件失败。
PMEM 边界对齐(#351):收缩的 guest 镜像现在对齐到 pmem 边界,修复某些配置上的启动失败。
Quickcheck 就绪(#349):等待 quickcheck 容器就绪后再继续,消除健康检查的误报失败。
服务绑定安全(#269):MySQL/Redis 默认绑定到 localhost,CubeProxy 使用 host 网络以提高网络安全性。
服务启动顺序(#346):
cube-proxy.service现在排在cube-sandbox-dns.service之后,防止启动时 DNS 解析失败。镜像摘要处理(#303):从模板中心的镜像摘要中剥离规范前缀,修复镜像引用不匹配。
Paused 状态上报(#270):修复列表响应中的暂停沙箱状态,确保准确的沙箱状态显示。
构建版本注入(#327):构建版本信息现在通过 ldflags 正确注入 cubelet 和 cubemaster 二进制文件。
🔒 安全
Prometheus 升级(#328):升级 prometheus client 到 0.14.0,移除有漏洞的
protobuf2.28.0 依赖。reqwest 升级(#323):在 CubeAPI 中升级 reqwest 到 0.12,修复
rustls-webpkiCVE。libseccomp 升级(#321):升级 libseccomp 到 0.3.0,修复 GHSA-2r23-gqr7-wr4h。
go-jose 升级(#320):将
go-jose/v4升级到最新安全版本。gRPC 依赖升级(#316):更新 CubeMaster 中的 gRPC 依赖。
📚 文档
Changelog 重构(#412,#416):Changelog 现在组织为按版本文件,带有索引页面便于导航。修复 README 中损坏的 changelog 链接。
性能基准博客(#419):发布详细的性能基准测试文章,包含可复现的 bench 脚本,涵盖启动延迟和资源开销指标。
博客系统(#306,#340):添加博客系统,支持本地搜索和维护者指南。发布社区文章,包括"从 Serverless 到 Agent"和 PVM 部署教程。
品牌标识(#329):向文档站点添加官方 logo 和 favicon。
故障排障指南(#313):新增双语故障排障子页面,涵盖部署和模板创建问题。
文档交叉引用修复(#372):为跨文件文档引用添加缺失的
.md扩展名。示例与教程修复(#406,#407,#377):修复 create-from-image 教程中的 probe 路径,标准化占位符 API key 使用
e2b_前缀,修正克隆状态文档。
⚙️ 工程改进
内核源码迁移(#395):将内核源码从 Gitee 迁移到 CNB,增强解压逻辑。
CI/CD 加固(#330,#335,#338,#393):添加文档构建检查工作流,修复 CR 工作流,为外部 PR 启用自动审查,添加默认 shell 配置和 artifact 检索优化。
废弃 API 移除(#339):移除代码库中废弃的
rand.Seed调用。Rust 依赖刷新(#9f8df42f):在 hypervisor crate 中将
crossbeam-channel从 0.5.13 升级到 0.5.15。
👏 贡献者
22 位贡献者使此版本成为可能:
@fslongjin, @ls, @tinklone, @kami-lu, @chenggui53, @cherrycao, @Hengqi Chen, @NovaHe, @maxlong, @Yi Wang, @liciazhu, @Nemo, @Feng King, @Songqian Li, @Joohwan., @Stary, @xiongxz, @yangjie, @YangYuS8, @wangchenglong-hj, @John Eismeier, @dependabot[bot]