!WARNING
v1.0.5-preview.1为预览版本,建议先在测试环境验证前端构建、渠道配置保存、异步任务轮询和计费日志后再用于生产。

Release Notes
GitHub 地址
https://github.com/MAX-API-Next/MAX-API/releases/tag/v1.0.5-preview.1
Highlights
- 本地前端构建完整性收口 :修复完整仓库检出时根
.gitignore的裸home规则误排除web/default/src/features/home,导致 Tailwind 未生成首页桌面栅格 CSS、go run main.go嵌入后宽屏首页仍显示单列的问题。 - 构建产物增加回归守卫 :前端构建会检查首页 Hero 桌面双列规则是否写入 CSS;缺失时
bun run build与bun run build:check直接失败,避免本地构建与 Docker 构建产物出现静默差异。 - 游乐场模型参数可视化配置:新增温度、Top P、频率惩罚、存在惩罚、最大 Token 和随机种子设置,让开发者可以在发送请求前直接调整生成行为。
- Seedance / DoubaoVideo 任务计费可控化 :完成态差额结算现在支持按 DoubaoVideo 渠道单独开关,兼容 Seedance 类上游按
usage.total_tokens返回实际 token 的任务结果,同时允许运营侧在费率调整或上游结算策略不匹配时关闭差额补退。 - 系统实例清理补齐 :管理员控制台的
系统信息 -> 实例增加删除所有离线实例操作,后端批量接口只清理超过离线判定阈值的实例记录,并返回实际删除数量。
New Features
- 新增 Tailwind CSS 产物验证脚本,聚合检查已生成的 CSS 文件,并验证首页 Hero 的关键响应式栅格规则。
- 游乐场输入区新增参数设置面板:桌面端使用 Popover,移动端使用底部 Sheet;参数开关数量通过工具栏角标显示。
- 参数面板提供滑块和数字输入两类控件,并为每个参数显示当前值、范围和用途说明。
- 管理员控制台的 DoubaoVideo 渠道编辑页新增
Video Task Billing模块,可在高级设置中开启或关闭Completion delta settlement。 - DoubaoVideo 渠道新增
disable_task_delta_settlement设置项。默认保持完成态差额结算开启;仅当管理员显式关闭时,保存为渠道级关闭配置。 - 异步任务提交时会记录差额结算开关快照,轮询完成后的结算按提交时的渠道策略执行,避免任务执行过程中渠道设置变化影响已提交任务。
系统信息 -> 实例新增删除所有离线按钮和确认弹窗;按钮仅在存在离线实例时展示,执行后自动刷新实例列表。- 新增
DELETE /api/system-info/stale-instancesRoot 管理接口,用于一次性删除所有超过心跳离线判定阈值的实例记录。
Improvements
- 根忽略规则收窄为仅匹配仓库根目录的
/home,不再影响前端源码扫描。 - Tailwind 入口显式纳入
features/home,即使上层工作区后续增加宽泛忽略规则,首页 utility 仍会进入构建产物。 - 游乐场参数偏好会自动保存在浏览器本地,下次打开时继续使用上次配置。
- 仅启用的参数会进入请求;显式
0等有效值会保留,随机种子为空时不会发送seed,避免把"未设置"误解为固定种子。 - 参数输入会按控件范围和步进值规范化,降低负数、超范围值或小数精度对请求的影响;中、英、法、日、俄、越六种语言均补齐对应文案。
- 通用
media.task结果解析补充读取usage.completion_tokens和usage.total_tokens,Seedance 兼容接口返回实际 token 后可进入统一任务计费链路。 - DoubaoVideo 差额结算开关在新轮询链路和旧视频任务更新链路中保持一致判定;非 DoubaoVideo 渠道会忽略该设置,避免误伤其他视频渠道。
- DoubaoVideo 渠道编辑时会自动展开高级设置导航并展示视频任务计费入口,减少管理员找不到差额结算开关的情况。
- 前端渠道设置表单在读取、保存和重新编辑时保持开关语义一致:关闭开关才写入
disable_task_delta_settlement: true,重新开启会移除该字段。 - 系统实例删除流程改用 React Query mutation,并在删除成功后通过统一 query key 失效实例列表,避免组件内手动维护删除 loading 状态和成功后直接
refetch()。 - 系统实例批量删除期间会禁用刷新和单实例删除操作,避免管理员重复提交或在列表刷新中产生误操作。
Bug Fixes
- 修复 Windows 本地构建中首页 JSX 已带响应式类名、CSS 却缺少对应规则的问题;Docker 与本地构建现在遵循同一首页扫描契约。
- 修复俄语界面中
+{``{count}} more mapping(s)的映射计数文案不自然问题。 - 修复 DoubaoVideo 渠道缺少前端差额结算配置入口的问题;管理员现在可在
渠道 -> 编辑 -> 高级设置 -> Video Task Billing中直接调整。 - 修复 Seedance 兼容任务结果中的 usage token 未被通用视频任务协议解析的问题,降低完成态无法按真实 token 调整计费的风险。
- 修复完成态差额结算策略没有随任务提交持久化的问题,避免长时间异步任务在轮询完成时读取到与提交时不同的渠道策略。
- 修复渠道模型映射预检会把非字符串目标模型强制转成字符串的问题;前端现在与保存 schema 一致,将数字、对象等非字符串映射目标标记为无效配置。
- 修复通用视频任务 usage token 解析测试中
completion_tokens与total_tokens使用相同值的问题,避免错误的共享字段映射被测试漏过。 - 修正法语、日语和俄语界面中的若干术语翻译,覆盖
Completion delta settlement、新建渠道 API Key 提示、订单完成、兼容 API 支持、embeddings 和 Seed 等文案。 - 统一系统实例清理流程中的中文"离线"和日文「オフライン」术语,避免同一面板内批量删除与单实例删除使用不同表达。
Compatibility Notes
go run main.go仍只嵌入已有的web/default/dist。从源码启动前应先执行cd web/default && bun run build,再重启 Go 进程;Docker 构建已自动执行此前端步骤。- 自定义前端构建若绕过
bun run build/bun run build:check,不会自动执行 CSS 产物守卫;发布流水线应继续使用项目脚本。 - 游乐场参数沿用现有聊天补全请求字段,不新增数据库迁移;不支持某个参数的上游模型仍可能由上游接口返回参数校验错误。
- DoubaoVideo 完成态差额结算默认仍为开启;关闭后任务会按提交时预扣/固定计费结果保留,不再按完成回调的
total_tokens自动补扣或退款。 - 旧任务记录没有提交时开关快照时,会回退读取当前 DoubaoVideo 渠道设置;升级后如需改变历史未完成任务的结算方式,应先评估该回退行为。
disable_task_delta_settlement存储在渠道settingsJSON 中,不需要数据库迁移;该字段只对 DoubaoVideo 渠道生效。- Seedance 费率仍需在
ModelRatio/ 任务计费配置中按实际上游成本单独校准;本版本提供结算开关和 usage 解析,不自动改写生产费率。 - 批量删除离线实例只删除
last_seen_at早于当前时间SystemInstanceStaleAfterSeconds的记录;在线实例和正好处于阈值边界的实例不会被删除。 DELETE /api/system-info/stale-instances复用现有system_instances表,不新增数据库迁移;响应中的deleted_count仅用于管理端提示。
Verification
- 前端构建输出
Tailwind build verification passed,确认新增产物守卫已执行。 - 单独运行
node scripts/verify-tailwind-build.mjs,确认生成的 CSS 包含首页 Hero 桌面双列规则。 - 从本地 Go 服务回读嵌入的 CSS,确认其包含同一桌面栅格规则。
- Playground 定向测试:23 项通过,覆盖参数范围裁剪、
seed空值处理、显式零值发送和禁用参数过滤。 bun run typecheck、bun run lint、定向 Prettier 检查及bun run i18n:sync通过。- DoubaoVideo 计费定向测试通过:
go test ./service ./controller ./relay/channel/task/taskcommon ./relay/channel/task/doubao。 - 系统实例删除定向测试通过:
go test ./model -run "TestDeleteStaleSystemInstance|TestDeleteStaleSystemInstances" -count=1。 - 系统实例面板定向前端验证通过:
bun run typecheck、bunx eslint src/features/system-info/components/system-instances-panel.tsx src/features/system-info/hooks/use-stale-instance-cleanup.ts、对应文件 Prettier 检查。 - 通用视频任务 usage 解析定向测试通过:
go test ./relay/channel/task/taskcommon -run TestParseConfiguredTaskResultReadsUsageTokens -count=1。 - 渠道编辑状态定向测试通过:
bun test src/features/channels/components/drawers/channel-editor-state.test.ts。 - 后端全量验证通过:
go test ./...、go vet ./...、go run ./tools/jsonwrapcheck。 - 前端表单与 i18n 验证通过:
bun run typecheck、相关渠道编辑文件的 ESLint / Prettier 定向检查、bun run i18n:sync。 - 变更空白检查通过:
git diff --check。
Full Changelog: https://github.com/MAX-API-Next/MAX-API/compare/v1.0.4...v1.0.5-preview.1