Releases: skymaze/Fireworks
Release list
Fireworks v0.7.0
Fireworks v0.7.0
镜像与节点管理大幅补强:节点支持多选/全选与批量操作,镜像管理暴露真实版本(registry digest)并能在同一 tag 指向新构建时自动识别重拉;任务/模型/镜像列表的变更操作补齐行级 loading 与防重入,双击不再造成重复误操作。
变更
- 节点批量化(新增):节点列表支持多选/全选(表头三态勾选),可对选中节点批量「重装/升级 Agent」或「批量初始优化」——并行执行、逐节点返回结果互不影响;批量优化自动跳过已优化节点,结果以弹窗逐项展示成功/失败/跳过原因。
- 镜像真实版本(新增):镜像传输任务与控制平面归档均显示
registry digest(真实构建标识,区别于内部归档指纹),hover 可看完整值;每个本地归档新增「检查更新」,一键比对 registry 当前 digest 并提示「已是最新 / 有新构建 / 本地未记录」。 - 同 tag 新构建自动更新:同一 tag 在 registry 上被重新构建(tag 漂移)后,重新拉取/分发会自动识别并强制重拉(不再需要手动「重新拉取」),各节点随之加载新版本;
image_transfers新增registry_digest列记录真实版本,旧归档首次分发自动校准重拉一次。 - 列表操作防误触(修复):任务/模型/镜像列表的删除、暂停/继续、取消、重试等操作补齐行级 loading 与防重入守卫(同一行同时只允许一个变更操作);修复任务列表删除失败无提示、以及删除请求可被连点重复发起的问题。任务详情操作按钮补防重入兜底。
升级
- 控制面升级到
0.7.0:含一条幂等数据迁移(启动时自动为image_transfers增加registry_digest列),节点 Agent 无需重部署。 - 升级后首次分发旧归档镜像时,因无法确认其内容是否为当前 tag 版本,会自动重新拉取一次并补齐版本记录(仅一次)。
完整变更见 CHANGELOG。
Fireworks v0.6.1
Fireworks v0.6.1
健康检查改为 Portainer 式只读语义:健康判定回归 Docker 自身 healthcheck,模型加载较久的任务不再被控制面固定超时误判为 error,容器 transient unhealthy 也不再被打成红错;恢复由 Docker 自身 healthcheck 完成。
变更
- 移除固定超时判死:发布/启动/重启后的健康检查不再用 900s 定时「判超时」——模型加载期间 Docker 仍在
starting宽限期,控制面只按需补读健康快照(默认 60s 采样窗),此后由 30s 监控循环持续刷新;长加载任务不再被误判为「健康检查超时」error。 unhealthy不再置任务 error:容器unhealthy只以健康徽标展示(异常),任务保持 running;任务生命周期只由容器状态决定(全部容器 exited -> stopped)。- 配置项
TASK_HEALTH_TIMEOUT更名为TASK_HEALTH_STEADY_WINDOW(仅作首次读数采样窗,不再是终态判据)。
升级
- 控制面升级到
0.6.1;无数据库迁移,节点 Agent 无需重部署。 - 若模型冷启动时长超过配方声明的
start_period,建议同步调大该配方的start_period;否则 Docker 在宽限期后仍会把容器健康判为「异常」徽标(任务状态不受影响,随服务就绪自动转回健康)。
完整变更见 CHANGELOG。
Fireworks v0.6.0
Fireworks v0.6.0
配方商店交互升级:分支切换上移到工具栏下拉框,并修复同步状态串源、厂商筛选无法改回「全部厂商」两个问题。
变更
- 工具栏分支快捷切换:源选择器旁新增分支下拉框,选中即切换分支并重新同步目录;分支列表按源在会话内缓存。「源设置」弹窗精简为只读的 URL / 分支信息与删除源。
- 修复同步状态串源:同步 loading 绑定到正在同步的源本身,切换配方源时不会把转圈状态带到下一个源。
- 修复厂商筛选:选中厂商后再也打不开下拉框、无法改回「全部厂商」的问题(reka-ui Combobox 空字符串 value 渲染崩溃),现已修复。
升级
- 控制面与前端升级到
0.6.0;无数据库迁移,节点 Agent 无需重部署。 - 分支切换沿用原有语义:切换后重新同步目录,已安装的本地配方不受影响。
完整变更见 CHANGELOG。
Fireworks v0.5.3
Fireworks v0.5.3
任务名即 docker compose 项目名;本次把任务名校验对齐节点 Docker Compose v5 的硬性限制,并让发布失败时能看到真实原因。
变更
- 创建任务时任务名只允许小写字母、数字及
-/_(^[a-z0-9][a-z0-9_-]*$):不能含点.、大写或空格,非法名在发布前即返回明确的400 task_name_invalid - Agent
_validate_project同步收紧并返回带说明的 400(直接调用 Agent API 时同样是纵深防御) - 发布失败时
task.error透出 agent 返回的真实原因(如docker compose up 失败: invalid project name ...),不再只显示502 Bad Gateway - 前端发布表单增加任务名提示与输入 pattern;更新
task_name_*/task_name_invalidi18n 文案
背景
v0.5.2 发布带点任务名(如 glm5.3-flash-nv,来自模型版本 5.3)时,节点 Docker Compose v5 拒绝该项目名,compose up 在任何拉镜像/启动之前失败 → 502,且用户看不到真实原因。
升级
- 控制面升级到
0.5.3;无数据库迁移。 - 节点 Agent 建议重部署(
/api/nodes/{id}/deploy-agent)以获得一致的预校验(控制面已拦截时 Agent 侧为纵深防御)。 - 旧任务不受影响;以旧任务名重新发布(重建任务)时请遵守新命名规则。
完整变更见 CHANGELOG。
Fireworks v0.5.2
Fireworks v0.5.2
健康检查语义收敛:健康只以 head 为准、属任务层面;节点仅保留容器状态。
变更
- 健康判定仅取 head 容器(worker 无健康端点,不参与;worker 退出仍由「容器全部 exited → stopped」兜底)
- 新增任务层面
tasks.health列(幂等迁移),监控/健康检查按 head 聚合写入:健康 / 异常 / 检查中 / 未配置 - 任务详情「健康状态」展示在信息卡;容器表恢复仅状态列
- 移除节点级
task_nodes.container_health列(启动时幂等迁移自动清理)
升级
- 控制面升级到
0.5.2;启动自动迁移(加tasks.health、删task_nodes.container_health,幂等且保留数据) - 节点 Agent 建议随升(旧 Agent 健康显示「未配置」,仍兼容)
- 无需手工迁移;升级前建议备份
fireworks-db卷
完整变更见 CHANGELOG。
Fireworks v0.5.1
Fireworks v0.5.1
前端补丁:修复任务详情「健康」列 i18n key 显示原文、停止任务确认框不再显示「删除模型」选项。
变更
- 健康列 5 个 i18n key 移入
tasks对象(此前误插clusters,导致显示tasks.col_health等原文) - 停止任务不再提供「同时删除节点模型」选项(仅删除任务可勾选)
升级
- 控制面与前端升级到
0.5.1;纯前端修复,无后端/数据变更,无需迁移;节点 Agent 无需重部署 - 升级前建议备份
fireworks-db卷
完整变更见 CHANGELOG。
Fireworks v0.5.0
Fireworks v0.5.0
任务健康检查改为以 docker compose 声明 healthcheck 为准,不再写死 VLLM_PORT + /v1/models(配方换框架/端口不再误判)。
变更
- 配方在 compose 声明
healthcheck:即生效:容器healthy→ 任务运行中;unhealthy→ 任务错误;健康类错误可随容器转healthy自动恢复 - 未声明 healthcheck 时健康状态显示「未配置」,不做任何判定
- 任务详情容器表新增「健康」列(健康/异常/检查中/未配置)
- Agent
compose_ps暴露容器 Health;移除 vLLM 探测兜底代码
升级
- 控制面升级到
0.5.0;启动时自动迁移task_nodes.container_health列(幂等) - 节点 Agent 建议随升(旧 Agent 健康显示「未配置」,仍兼容)
- 无任务语义破坏性变化,无需手工迁移;升级前建议备份
fireworks-db卷
完整变更见 CHANGELOG。
Fireworks v0.4.0
Fireworks v0.4.0
任务生命周期优化:意外退出 / 手动停止的任务可直接「启动」,运行中任务可直接「重启」——均复用已有容器、不重建,无需删除后重新发布。
变更
- 停止不再删除容器:由
compose down改为compose stop(保留容器,GPU 释放),停止后一键「启动」复用 - 启动(stopped/error):
compose start复用容器;容器已被清理时自动回退compose up重建 - 重启(running):
compose restart进程级重启 - 启动/重启后自动补发 vLLM 健康检查;详情页/列表页新增「启动/重启」按钮(中英文)
Agent 变更
Agent 新增 POST /api/compose/action(stop | start | restart)端点。
升级
- 控制平面与节点 Agent 均需升级到
0.4.0,升级控制平面后请重新部署各节点 Agent(旧 Agent 无/api/compose/action)。0.4.0大版本号即「需重部署 Agent」标识(同 v0.2.0 机制)。 - 无数据格式与任务语义破坏性变化,无需迁移;升级前建议备份
fireworks-db卷。
提示
「停止」后容器保留(exited,占少量磁盘);彻底释放磁盘请用「删除」。
完整变更见 CHANGELOG。
Fireworks v0.3.3
Fireworks v0.3.3
Fireworks v0.3.3 是 patch 版本:代码审查驱动的控制面安全加固与健壮性修复。不改变 API 响应结构、任务语义或数据格式;SQLite 无 schema 变化,升级无需迁移;节点 Agent 无功能改动,无需重部署。
本版之前存在的隐患主要在几个无人值守路径上:镜像拉取鉴权失败可无限重试并卡死任务、下载线程被遗弃后任务永久 downloading、并发任务操作竞态可制造「无容器的 running」、推理统计在异常采样点下出现百万级虚假峰值,以及若干输入校验缺口(模型 revision、节点 SSH 用户名/IP、head 共享路径)。
修复亮点
- 镜像拉取 401 死循环:registry 持续鉴权失败时最多重试 5 次后明确失败,不再无限循环卡死
pulling并阻塞该镜像后续传输。 - 下载重启看门狗:下载设置变更后旧线程未及时退出时,不再遗留「
downloading且无活动线程」的卡死任务——旧线程退出后自动按新设置断点续传重启。 - 任务状态机加固:同一任务的暂停/继续/停止/删除串行化并校验合法转移;对已停止任务「继续」返回 409,杜绝「无容器的 running」;部署期间用户停止/暂停不再被覆盖;容器操作全部失败时任务置
error而非虚报成功。 - 推理统计防御:跳过时间戳相同/倒流的无效累计快照,并对极小间隔钳制速率分母,消除百万级虚假
tok/s峰值。 - 分片残留修复:中断下载的分片(
*.part.N)不再被计入缓存大小或当作完整模型文件发送到节点。 - SSH 总超时:远端命令进程存活但静默时按设置的超时终止并报错,不再无限占用线程。
- 删除与孤儿线程:删除进行中的下载/传输记录前先取消后台调度;删除仍被任务占用的模型缓存返回 409(
MODEL_BUSY)。 - 输入校验:模型
revision拒绝路径越级;节点 SSH 用户名/IP 拒绝 shell 元字符(卸载脚本另有纵深防御);head 返回的高速共享路径/令牌拒绝 userinfo 注入。 - 任务日志
tail钳制在 1–5000 行。
升级
- 控制平面升级到
0.3.3;节点 Agent 仅版本号同步、无功能改动,无需重部署。 - 无数据格式与任务语义变化,无需额外迁移。
- 需注意的新行为(均为防御性拒绝,正常流程不变):对已
stopped任务执行「继续」返回 409;删除downloading/sending/syncing的任务记录会先自动取消后台调度;删除仍被进行中任务占用的模型缓存返回 409(请先取消任务)。 - 升级前建议备份
fireworks-db卷。
部署
# 公网源(GitHub GHCR)
FW_IMAGE_TAG=0.3.3 docker compose -f docker-compose.prod.yml up -d --pull always
# 国内源(阿里云 ACR)
FW_IMAGE_TAG=0.3.3 docker compose -f docker-compose.prod.cn.yml up -d --pull always仅本机或可信内网的纯 HTTP 部署加 COOKIE_SECURE=0。镜像标签 v0.3.3 由发布 CI 构建并推送 GHCR 与阿里云 ACR。
完整变更见 CHANGELOG。
Fireworks v0.3.2
Fireworks v0.3.2
Fireworks v0.3.2 是 patch 版本:修复发布任务页「模型缓存状态」卡片不显示。平台控制平面的模型保障在后端 v0.3.1 已改为按 picker=="model" 动态识别模型变量,但前端发布页仍按 DSPARK_MODEL 键名硬编码解析模型仓库,导致模型变量使用其它键名的配方(DeepSeek b12x SPARK_MODEL、GLM GLM52_MODEL_PATH、Qwen SGLANG_MODEL)在发布页看不到节点模型缓存状态,也无法使用页内「发送模型」与发布前模型就绪校验/解锁。
修复亮点
- 发布页模型识别与后端对齐:按配方
picker=="model"的变量动态解析模型仓库,任意键名均能显示「模型缓存状态」卡片,并恢复「模型未就绪时页面内发起传输 → 就绪后解锁发布」的完整链路。 - 镜像侧(
picker=="image")本就为动态取键,行为不受影响;前端 typecheck 通过、unit tests 4/4 通过。
升级
- 控制平面升级到
0.3.2;节点 Agent 仅版本号同步、无功能改动,无需重部署。 - 无数据格式与任务语义变化,无需额外迁移。
- 升级前建议备份
fireworks-db卷。
部署
# 公网源(GitHub GHCR)
FW_IMAGE_TAG=0.3.2 docker compose -f docker-compose.prod.yml up -d --pull always
# 国内源(阿里云 ACR)
FW_IMAGE_TAG=0.3.2 docker compose -f docker-compose.prod.cn.yml up -d --pull always仅本机或可信内网的纯 HTTP 部署加 COOKIE_SECURE=0。镜像标签 v0.3.2 由发布 CI 构建并推送 GHCR 与阿里云 ACR。
完整变更见 CHANGELOG。