Skip to content

Arena v0.2.2 · 项目资料上传兼容性修复

Choose a tag to compare

@Y10ng Y10ng released this 06 Nov 09:14

Arena 0.2.2 · 项目资料上传兼容性修复

本版应用源码固定为 4099f3613d892664d17893e21f791ec136adaf80。相对 v0.2.1,修复前端上传对 crypto.randomUUID 的依赖,整理版本元数据和安装升级文档;不新增后端 API/Schema 或数据库迁移,继续复用 v0.2.1 的两个执行镜像,不构建或上传新镜像。

修复内容

  • 修复 crypto.randomUUID 不可用时,新建项目/计划资料及项目总览增补资料在发送上传请求前报错的问题。
  • 使用 crypto.getRandomValues 生成 16 字节随机身份,保留 prm_+32 位小写十六进制格式;不增加依赖或弱随机数。
  • 每项只生成一次身份,明确拒绝后的补传复用原 ID;未知响应仍需核对,禁止自动重传。
  • 普通选择/拖放、普通 ZIP 原样上传、独立 ZIP 导入,以及错误反馈、busy 释放、500 MB 边界、已有成员、草稿和权限/路径检查保持不变。

完整记录见 CHANGELOG。

部署附件

下载本 Release 的部署附件,不要用 GitHub 自动生成的 Source code ZIP 代替:

  • arena-0.2.2-linux-code-only.zip:19,468,064 bytes。
  • SHA256:4c7111b9ed769947596cda876a65ab9aed28f9f0e7892b8134c6522187ec0bba。
  • 校验附件:arena-0.2.2-linux-code-only.zip.sha256。
  • 包内顶层:arena-0.2.2-linux-code-only/。
  • 包含应用、正式前端、部署脚本与镜像构建输入;不含业务数据、私有配置、已安装依赖、完整前端源码或 Docker 镜像。

镜像:继续复用 v0.2.1

两个镜像的构建源码仍为 a0f22cec57b3f53f5981966db03b1b223a89bd94,与本版应用兼容。仅支持已发布的 linux/amd64,不承诺 arm64,未设置 latest。

镜像 标签 不可变 manifest digest
yong29/arena-worker git-a0f22cec57b3 sha256:b4babe19a719acf73733b3d6e093c490a2a741b95562682fd16b5c227df57d06
yong29/arena-traffic-gateway git-a0f22cec57b3 sha256:a2734dde304c5bdc7a3c22e867e21bbe22a4860fc112c54f0feab128b202da8a

旧机已配置并准备好以上 tag 或对应 digest 时,保留原配置,无需重新 pull 或构建。缺少镜像时,按部署指南先准备。默认 arena-worker:local/arena-traffic-gateway:local 仍会触发现有更新器的缓存构建;本版没有改变更新器,不用 --server-only 绕过镜像准备。

v0.2.1 ZIP 安装的升级

以下只适用于非 Git 的部署包安装。新包必须在旧安装之外解压,不在新目录另行运行 install/start 创建第二个实例。

1. 下载、校验、解压

在旧安装目录之外执行,任一步失败就停止:

RELEASE_URL='https://github.com/Y10ng/Arena/releases/download/v0.2.2'
ASSET='arena-0.2.2-linux-code-only.zip'
DOWNLOAD_DIR="$(mktemp -d "$HOME/arena-download.XXXXXX")" &&
  curl -fL "$RELEASE_URL/$ASSET" -o "$DOWNLOAD_DIR/$ASSET" &&
  curl -fL "$RELEASE_URL/$ASSET.sha256" -o "$DOWNLOAD_DIR/$ASSET.sha256" &&
  (cd "$DOWNLOAD_DIR" && sha256sum -c "$ASSET.sha256") &&
  UNPACK_DIR="$(mktemp -d "$HOME/arena-upgrade.XXXXXX")" &&
  unzip "$DOWNLOAD_DIR/$ASSET" -d "$UNPACK_DIR"

2. 维护与更新

  • 在界面暂停或结束相关任务,并确认真实执行已退出。停止宿主应用不等于 Worker 已退出。
  • 先保留数据库、runtime、完整 keyring/token、资料、Artifact 和外置目录的一致备份。更新器的程序备份不等于整套环境回滚。
  • 相对 v0.2.1 无新增迁移。更早版本的历史会话、session、v82 原资料路径及其他迁移阻断继续有效,不能通过删业务数据或改历史 SQL/checksum 绕过。
  • 若设置了自定义 CAIRN_STATIC_DIR,更新器不会同步其外置内容。停止旧应用后,可把原安装 runtime/arena.env 的该变量改为原安装更新后 cairn/src/cairn/server/static 的绝对路径;不要指向临时新包。必须保留外置目录时,先补齐新静态资源、确认同名 hash 内容一致,最后原子切换 index.html,不删除旧 hash。详见部署包更新。

准备妥当后,在同一终端设置真实旧安装路径并执行;有自定义静态配置需要修改时,在 stop 与 update 之间完成:

OLD_APP='/现有应用根目录'
NEW_APP="$UNPACK_DIR/arena-0.2.2-linux-code-only"
"$OLD_APP/deploy/stop.sh" &&
  "$NEW_APP/deploy/update.sh" --target "$OLD_APP" &&
  "$OLD_APP/deploy/status.sh"

更新器同步应用和依赖、检查镜像、启动 Server/Dispatcher 并检查状态;保留运行数据和原配置,不自动替换历史容器或恢复任务。自定义监听参数需保留原参数,持久配置仍在原安装的 runtime/arena.env。完成后浏览器强制刷新,再自行验收真实上传。失败时按原错误处理,修复后重跑新包完整 update 命令,不直接 start 跳过准备。

Git 源码安装不得用部署 ZIP 覆盖 .git 工作区;新安装及其他升级情形见本版完整指南。v0.2.1 原标签、附件、校验值和镜像不被覆盖。

验证范围

  • 本修复的上传器组件文件定向验证 13 项通过;正式前端类型检查与构建完成,本机实际服务已加载修复静态入口。
  • 本次发布整理通过 uv lock --check --offline;部署 ZIP 从上述固定提交的干净源码生成,打包器的秘密排除和静态引用校验开启,543 个清单文件的大小与 SHA256、无额外文件、版本和部署脚本权限校验通过,verify_deployment.py --manifest-only 通过。
  • 未运行全套测试、lint、E2E 或新的 500 MB 全链路实验;未重新构建或下载 Worker 工具层。
  • 未向正式实例上传测试文件、创建批次/项目、启动研究、调用模型或访问被测目标。替身验证和本机加载不等于用户局域网入口真实上传验收,也不表示其他机器已经完成升级。