产品动态

清晰记录每一次交付。

持续了解启动模板、工作台、计费与 AI 工作区的重要变化。

最新版本
v0.3.17
发布节奏
持续迭代
模板覆盖
4 个框架

自部署用户需要注意的不兼容改动

  • Worker 密钥不再写在 wrangler.jsonc 里。 JWT_SECRET(node1)和 ZSHIP_KEY(所有用到它的 Worker)已经从明文 vars 中移除。部署这个版本前,请先用 secret 设置:在 node1 执行 wrangler secret put JWT_SECRET;在 node1、node2、node3、node9、node10、node11、Provider1、Enterprise Billing 上设置同一个高强度的 ZSHIP_KEY。如果之前部署时没有替换过占位值,请现在就更换这两个值,因为默认值是公开的。本地开发时把各服务的 .dev.vars.example 复制为 .dev.vars 即可,dev-console 会自动完成。
  • apps/web 已移除。 Astro 模板统一放在 apps/web-astro,升级前请先把自定义内容迁移过去。
  • 模板的 /changelog 页面改为读取本地 Markdown。 每条更新是一个带 version、title、date frontmatter 的 Markdown 文件,按语言分目录存放:Nuxt 在 content/changelog/,Astro、SvelteKit、TanStack 在 src/content/changelog/(详见各模板 README)。ZSHIP_CORE_SERVICE 绑定是 ZShip 内部服务,模板中已不再包含。
  • 不再预置自定义域名。 node6 和 node10 不再自带 cdn.zship.ai / media.zship.ai 路由,请配置自己的 routes,并在 node10 设置 IMAGE_AGENT_MEDIA_PUBLIC_URL。未设置前,图片 Agent 的媒体请求会返回 IMAGE_MEDIA_NOT_CONFIGURED。

测试账号

  • 管理后台 → 测试账号 可以为某个项目创建测试用户,并按项目的价格配置预置积分、订阅和一次性订单。
  • 每个账号都有可重复使用的登录链接(有效期 1–90 天,默认 7 天),打开即以该账号登录站点。链接只显示一次,可以重新生成或撤销,账号也可以停用。
  • 测试订单的渠道为 test:会出现在订单记录里,但不计入收入、订单数和付费用户统计,也不发送新订单通知、不产生分销佣金。测试订阅的取消、恢复和换套餐都在本地模拟,不调用 Stripe。
  • Nuxt 和 Astro 模板通过 /auth/test-login 支持该链接。

积分

  • 现在优先扣除订阅积分,用完后再扣永久积分。
  • 生成失败退款时,积分按原路退回原来的类型,并保留原到期时间。如果对应的订阅积分已经过期或按周期重置,这部分不再退回。

图片 Agent

  • KIE Nano Banana 2 支持最多 14 张参考图,Agent 可以直接在原图上编辑,而不是用文字重新生成。
  • 上传的参考图和生成结果按用户私有存储,通过专用媒体域名的短期签名链接访问。

决策模型

  • 管理后台 → AI → 决策 可以为内容审核、工单、反馈等场景指定 Cloudflare Clef 模型并单独定价,Provider 图片审核和工单分类可以使用这些模型。

自部署迁移

部署对应 Worker 前先执行:node1 0041_test_accounts.sql;Provider1 0035–0037;node10 0018–0019;node2 0012。

新增 Dodo Payments 与 Waffo Pancake 支付

  • 支付服务在 Stripe、Creem 之外,新增 Dodo Payments 和 Waffo Pancake 两个渠道。两者都直接对接 REST API,没有引入新的 SDK 依赖。
  • 结账、客户门户跳转和 Webhook 覆盖一次性积分包、订阅开通与续费、取消和退款。积分的发放与回收沿用现有渠道的幂等规则。
  • Webhook 必须带签名:Dodo 按 Standard Webhooks 规范校验 HMAC 签名,Waffo 用平台公钥校验 RSA 签名。未签名或签名不对的请求一律拒绝。
  • 官方 Nuxt、Astro、TanStack、SvelteKit 模板会把结账请求发往项目绑定的那个支付渠道。

配置位置

  1. 管理后台 → 支付渠道:新建 Dodo 渠道(API Key、Webhook 签名密钥、test 或 live 环境),或 Waffo 渠道(Merchant ID 与 API 私钥)。
  2. 管理后台 → 项目 → 编辑项目 → 支付:绑定该渠道。每个项目只使用一个支付渠道。
  3. 管理后台 → 价格配置:填写 Dodo 产品 ID(pdt_…)或 Waffo 产品 ID(PROD_…)。
  4. 在支付平台后台注册 Webhook 地址 https://<node3>/dodo/webhook 或 https://<node3>/waffo/webhook。Waffo 需要为测试和正式环境各注册一次。

说明

  • Dodo 和 Waffo 结账暂不支持 ZShip 优惠券,价格页在这两个渠道下不显示优惠码输入。
  • 站内改套餐和取消订阅仍只支持 Stripe。Dodo 与 Waffo 的订阅由用户在对应平台的门户里管理。
  • 自部署用户需要先执行 node3 的 D1 迁移 0015_dodo_waffo_providers.sql,再部署新代码。

图片 Agent

  • 官方 Nuxt 控制台现在有图片 Agent,用来讨论画面、生成新图,以及编辑已有图片。
  • 已经接受的任务在服务端继续执行。离开页面后可以接回同一次运行,也可以停止。工作区会显示所选图像模型用掉的积分。
  • 参考图可以本地上传、粘贴链接,或从素材库选择。生成结果会保留版本记录。
  • 没有持久化图片交付的服务商,其图像模型现在也能在 Agent 中使用,结果保留服务商返回的图片地址。

从 控制台 → 图片 Agent 进入(/dashboard/image-agent)。

管理后台

  • 在 管理后台 → AI → 图片 Agent 设置 Agent 使用的模型、启用开关,以及单次运行的步数、操作数和积分上限。
  • Agent 产生的服务商任务记录,现在可以直接跳转查看该次对话的扣费。

项目级每日免费积分上限

  • 管理端项目设置现可配置每日免费积分发放上限;设为 0 时保持不限额。
  • 每个 UTC 自然日统一统计游客与注册用户领取的初始积分,避免通过切换账号类型绕过项目预算。
  • 超出上限的请求会在积分发放前被拒绝,并由 D1 原子触发器在并发场景下防止超发。

配置位置

进入 管理后台 -> 项目 -> 编辑项目 -> 积分与限额,即可设置每日游客、注册用户及免费积分总量上限。

ZShip 管理后台中的每日免费积分上限设置

新增 7 个 AI 模型并修正千问品牌标识

  • AI Playground 新增 7 个可用模型配置:WaveSpeed Seedance 2.5、Qwen Image 3.0、MiniMax H3,以及 KIE Seedance 2.5、MiniMax H3、Qwen3 文生图和 Qwen3 图生图。
  • 模型列表由 provider 服务动态下发,启用新模型后无需单独发布前端,刷新页面即可获取;已有缓存最长约 5 分钟更新。
  • 修正千问模型的品牌标识,统一使用官方千问 Logo,不再显示阿里云集团标识。
  • WaveSpeed 模型在发起生成请求前仍需配置 WaveSpeed API key。

更安全的官方模板与更可靠的发布检查

  • 将官方 Nuxt、TanStack Start、SvelteKit 与 Astro 模板同步到当前产品质量基线,同时保留官方仓自身配置。
  • 强化 BFF 与代理契约,覆盖租户隔离请求、鉴权路由和访客访问开关,并为关键流程补充专用 CI 检查。
  • 加固 CDN CORS 处理与博客渲染,确保公开内容在受支持来源和本地化路由下表现一致。
  • 扩展官方模板的 SEO / GEO 输出,覆盖多语言 canonical URL、结构化数据、sitemap 与 llms.txt 检查。
  • 让 SvelteKit 类型检查在干净 CI 环境中可复现,不再依赖本地生成缓存。
  • 本次发布已通过模板 manifest、单元测试、代理契约测试、关键路径检查、i18n / SEO 校验以及四套前端生产构建。

模板产品化与质量基线

  • 统一 zship.app.json Schema 与校验器(@zship/app-manifest),full-saas 与 static-content 模板在脚手架/发布前共用同一契约。
  • 通过 create-zship / scaffold-core 为一等支持 SvelteKit 与 TanStack Start 脚手架,Dev Console 与技能文档同步新 profile。
  • TanStack 模板按需加载落地页语言包与重型 Dashboard 模块,并用 bundle budget 守住首包体积。
  • i18n / SEO 门禁覆盖必需文案、sitemap / llms.txt 与关键营销路径。
  • CI template:check、脚手架冒烟测试,以及桌面/移动 · 亮/暗 · en/zh-CN 关键路径矩阵锁住质量底线。
  • SvelteKit 与 TanStack 热点模块(AI Studio、Playground、定价、企业账单、OAuth/代理)完成 API/state/view 分层并补齐单测。
  • TanStack / SvelteKit / Nuxt / Astro 预览基线已发布并通过 health check(*.zship.ai)。

更快、更可靠的 AI 创作

  • AI Provider 模型元数据现已进入服务端渲染页面,让公开 AI 工具在 JavaScript 加载前即可向搜索引擎展示真实能力。
  • Provider 模型和 Turnstile 配置读取现使用浏览器 TTL 缓存,并会合并相同的进行中请求,避免重复发送。
  • AI 历史记录读取增加并发限制,生成请求改为串行调度并防止重复提交,异常分页也不会再无限继续。
  • 任务状态轮询现采用渐进退避和随机抖动,页面隐藏时自动暂停,并在连续失败后停止,减少不必要的 Cloudflare 请求和额外用量。

更可靠的通知投递

  • 生产通知现已通过 Cloudflare Queues 投递,失败任务会自动重试,超过重试上限后进入死信队列,便于后续处理。
  • 消费处理支持幂等与故障隔离,既能避免重复投递,也不会让单个失败任务阻塞整批消息。

Admin Queue 运维能力

  • Admin 新增账号级 Queue inventory,可集中查看 Queues、死信队列、Workers、生产者 bindings 与消费者。
  • 运维人员可以查看实时 Queue/DLQ 指标、发送真实测试消息,并检查或管理失败投递。
  • 拓扑视图与搜索支持按 Worker、binding、Queue 或 DLQ 名称快速追踪关联关系。

体验与开发改进

  • Queue 管理功能已适配桌面端和移动端、浅色与深色主题,并提供英文、简体中文和繁体中文。
  • 本地开发启动更加稳定,Node4 通知服务固定使用 8790 端口。

Cloudflare 控制面与 R2 管理

  • Admin 新增账号级资源清单,可集中查看 Workers、Pages、D1、KV、R2 与 Queues,并分别诊断各产品的能力和权限,单项不可用不会遮蔽其他资源。
  • 获得授权的操作员可以查看 R2 账号与 Bucket 配置,修改默认存储类别,管理 r2.dev 和自定义域名访问,以及通过白名单和二次确认维护生命周期与 CORS 策略。

更清晰的运维引导

  • Email Service 新增可直接复制的 AI 配置指南,明确约束账号认证、资源隔离、密钥保护、真实投递验证与回滚流程,同时保持 Resend 为生产首选 Provider。
  • Provider 页面会说明任务编排继续采用 Cron、Queues 与 D1 而非 Cloudflare Workflows 的原因,让运维人员了解当前可靠性与成本取舍。

Admin 体验与会话安全

  • AI 管理文案已补齐各个受支持 Admin 语言的翻译,并移除了已失效的 Queue 可用状态标签。
  • Admin 会话过期或被拒绝时会清除本地登录状态,并直接返回当前语言的登录页,不再进入 403 页面;SSR 导航也不会产生重定向循环。

原生 Workers AI 与更安全的模型上线流程

  • ZShip AI 已通过 Cloudflare 原生 Workers AI Binding 提供推理能力,同时保持现有 OpenAI 兼容的 JSON 与 SSE 流式 API 契约。
  • 管理后台现已提供完整模型操作流,可同步 Workers AI 目录、设置积分价格、执行灰度验证,并独立启用或停用模型。新模型在完成定价和验证前会保持停用。
  • AI Gateway 请求会携带可追踪的请求和应用元数据,但不保留请求与响应正文。积分扣减支持幂等处理,流式取消会被记录,限流或 Provider 错误也能在日志中追踪。
  • 生产模型目录包含 19 个有效条目,其中 15 个常用文本模型已启用并按成本定价;后续目录同步会自动停用 Cloudflare 已下线的模型。

Provider 任务状态已开放给客户端

  • Provider1 的任务列表与状态响应现在会返回 provider_status,客户端可以区分上游 Provider 进度与 ZShip 任务状态。
  • 该字段同时出现在列表项与任务详情中,已完成任务命中缓存时也不会丢失。
  • 已使用线上现有终态任务验证部署后的 Provider1 API;列表、实时状态与缓存状态响应均正确返回上游 SUCCESS 状态。

发布说明

原生 Workers AI 数据库迁移、zship-node10-ai Worker 与管理后台应用均已在生产环境上线。部署后已完成真实非流式与 SSE 流式推理、模型目录、服务绑定和管理后台健康检查验证。

管理后台与平台可靠性更新

  • 管理后台采用分层标签页和融入式导航;点击父菜单会打开紧凑的图标加名称矩阵,并支持移动端布局、浅色模式和深色模式。
  • Provider 生成工作流在创建、轮询、Webhook、积分扣减和结果转存全链路保留稳定的幂等上下文,避免重复任务和重复扣费。
  • Resend 投递会在可用密钥之间按每日配额均衡流量,管理后台同时提供密钥状态、路由偏好、用量和投递日志。
  • Provider 配置支持批量更新与更明确的缓存失效;订阅积分任务采用有界查询和处理预算,让定时执行更加稳定可控。

创作画布体验优化

  • 创作卡片在桌面端 hover 时显示「打开 / 作为参考 / 删除」操作条(触屏设备始终显示)。
  • 去掉媒体类型角标,画廊视觉更干净。
  • 删除改为应用内二次确认弹窗(缩略图 + 标题),不再使用浏览器原生 confirm。
  • 线上走软删除;mock 模式确认后本地移除,并防止重复提交。
  • 删除相关文案补齐中/英/繁中/日/韩。

快速生成支持并发生成

  • 预览默认聚焦最近一次生成任务,也可从任务列表切换查看更早的任务。
  • 进行中的任务各自独立轮询,后续点击生成不会中断前面任务的进度更新。
  • 单次多图结果仍在同一结果卡中展示:桌面端网格、移动端单列。
  • Mock 图片模型支持一次生成 1–4 张(默认 4 张),积分按张数计费。
  • 优化快速生成结果区:去掉「创作画布」标题、结果标签保持右对齐;桌面端默认隐藏卡片操作、hover/聚焦时显示,触屏与移动端始终显示。
  • 补齐 AI 素材库空状态的中/英/繁中/日/韩文案。

设备级身份与会话安全

  • 新增按设备划分的访问与刷新会话族,支持凭证轮换、重放隔离和选择性撤销。
  • 为用户和管理员增加活跃会话查看与控制,并为 Admin、游客会话补充服务端版本校验。
  • 将邮箱验证与注册密码设置拆分,防止未验证账号被接管,并把 GitHub OAuth state 改为服务端管理的一次性凭证。

完善 AI 创作工作台

  • 完成桌面端与移动端响应式全画布 Playground,支持 Provider 定义的 UI 元数据和示例。
  • 将生成历史合并到素材库,优化明暗主题下的空状态、不可用状态、生成进度和结果展示。
  • 改进 Admin 用户会话管理、弹窗层级、响应式布局和多语言文案,并补充 D1 迁移及 Auth/Provider 回归测试。

AI 创作工作区体验升级

  • 明确快速生成与创作工作室的定位,并统一模型选择和生成交互。
  • 重做快速生成的提示词输入区、素材上传、创意画布、时长滑杆和积分操作,界面更紧凑有序。
  • 优化创作工作室的移动端历史密度,以及桌面端、移动端、明暗主题下的响应式体验。
  • 补全图片、视频和音频的本地 Mock 生成流程,覆盖提交、轮询、结果展示和素材复用。

一体化 AI 创作工作台

  • 重构图像与视频创作工作区,桌面端和移动端统一采用精简画布与底部输入区布局。
  • 增加清晰的模型分类、图像/视频模型筛选、紧凑的模型与参数面板、统一尺寸的控件,以及与生成按钮融合的积分提示。
  • 支持本地上传、从资产库选择、在提示词中输入 @ 引用素材,并通过 ?enableMock=1 完整测试模型选择、提交、轮询、结果展示和后续操作。
  • 优化创作预览、生成进度、结果操作、响应式间距、明暗主题和中英文文案。

账号与会话安全

  • 增加服务端会话撤销,退出登录、修改密码、封禁账号和删除账号后可让已有令牌失效。
  • 邮箱验证与密码找回改用一次性凭证哈希,强化重发和消费流程,防止重复使用。
  • 改进游客转正式账号、OAuth 登录交换、Cookie 处理和邮箱验证约束,统一 Nuxt 前端与认证服务行为。

重点更新

  • 为 AI Provider 生成链路新增可配置内容审查,通过 provider-neutral Adapter Registry 接入 Creem 与 WaveSpeed。
  • 管理后台支持开启/关闭内容审查、选择审核提供商、按 app 配置,并可针对不同生成 provider/model 设置要审核的提示词字段。
  • 支持审核测试、可选积分分摊、fail-open/fail-closed、flag 拦截策略、任务级审核成本记录,以及不保存原始提示词的审核审计。
  • 修复 Provider 后台路由权限表,超级管理员和具备相应权限的运营账号可正常访问内容审查配置接口。

对用户的影响

  • 站长可以在图片、视频、音频等生成请求发往上游前先审核提示词。
  • 内容审查策略与成本分摊可在后台统一管理,无需把系统绑定到单一审核 API。
  • 关闭内容审查时,既有生成 provider 行为保持不变。

开发者说明

  • 部署新版 zship-provider1 Worker 前需先应用 Provider1 D1 migrations 0015、0016。
  • Wrangler 部署配置属于各环境,不参与本地开发仓到 Official 仓的自动同步。

重点更新

  • Provider1 失败任务退款改为任务级幂等:status 轮询、webhook 失败处理、生成失败回滚统一使用同一退款键(provider1:failure-refund:<task_id>),并发 status + webhook 不会重复退积分。
  • Node1 /internal/credits/add 将 source_id 升级为真正的 幂等键(D1 migration 0027):同键同金额重放返回成功;同键不同金额返回 409。
  • 当重复失败退款被幂等拦截时,Provider1 会打 warning,并通过已配置的通知渠道(Bark / 飞书 / 钉钉等)通知站长。
  • Node1 新增 游客积分风控(migration 0026),可在管理端更安全地限制游客 demo 积分滥用。

对用户的影响

  • 失败的 AI 任务按任务只退一次积分,即使 status 与 webhook 并发也不会多退,账目更准确。
  • 站长会在重复退款被拦截时收到告警,而不是静默多退积分。
  • 不必完全关闭游客登录,也能约束游客 demo 积分滥用。

开发者说明

  • 上线顺序:先应用 Node1 migrations 0026 + 0027,再部署 zship-node1-auth,最后部署 zship-provider1。
  • 本版本合并上线 ZA-650(退款幂等 + 站长告警)与 ZA-649(游客风控),涉及 Node1 / Provider1。

重点更新

  • AI Playground 新增 资产库(Asset Library):可浏览历史生成结果、复用作品,并在创作流程内收藏/删除资产。
  • zship-provider1-service 后端支持:任务库 flag migration、收藏/删除 task actions,以及 list/status 中的库状态字段。
  • 重构资产库 筛选栏 UI:模态、状态、收藏等筛选在桌面与移动端更清晰,并补齐完整 i18n。

对用户的影响

  • 创作者可在一处管理成功生成结果:收藏常用作品、删除不需要的资产。
  • 资产库筛选在手机与桌面都更高效,多语言文案一致。
  • 站长可在既有 Provider 网关上获得资产库管理能力,与图片/视频/音频生成共用同一套链路。

查看实现文档

需要配置细节?文档包含配置、服务与部署说明。

文档