更新日志

ShipAny 模板更新动态

v1.0.4

Webhook 可靠性、后台工作流、桌面端登录交接

paymentauthadmindx

  • 后台工作流升级 —— 支付订单详情/编辑弹窗、用户与角色权限页面重做、API Key 管理增强、工单处理优化
  • 在线客服组件 —— Crisp 和 Tawk.to,在后台设置中开关
  • Cloudflare Email 邮件服务商 —— 与 Resend 并存,认证邮件改走统一的服务商接口
  • 登录后回到原页面 —— 登录页、Google One Tap、客服组件和支付结账都会带上来源页面,完成后原路返回
  • 桌面端登录交接 —— 新增 /auth-callback 页面,把会话 token 交给 myapp://… 这类应用协议地址,仅限新设置项 desktop_auth_schemes 白名单内的协议(默认为空即关闭)
  • 注册赠送生效 —— "注册赠送积分"开关和默认角色现在会真正发放给新用户
  • /ads.txt 路由与 AdSense 支持
  • AUTH_TRUSTED_ORIGINS 支持域名后缀通配(.e2b.app),适配沙箱预览域名

  • Cloudflare Workers 上的 Stripe Webhook:验签改为 constructEventAsync() —— 同步调用会抛出 "SubtleCryptoProvider cannot be used in a synchronous context",导致所有事件处理失败
  • Webhook 失败返回 500,让支付服务商重试。此前返回 HTTP 200,Stripe 会判定投递成功,续费、周期积分和订阅状态同步被静默丢弃。本身不处理的事件仍返回 2xx 确认
  • 订阅续费:续费发票正确路由到续费处理逻辑(此前走首购分支),并按服务商 + 发票 ID 幂等去重
  • 后台设置:保存后立即生效(配置缓存刷新);公开配置接口不再返回密钥
  • 下拉选择器:收起状态显示选项文案,不再显示原始值
  • Docker 构建:读取 .env.production 并在 builder 阶段设置 NODE_ENV,确保 VITE_* 变量被正确注入
  • 开发服务器:放行 e2b 沙箱预览域名

  • design-theme 技能 v2 —— 根据项目简介生成独特的视觉风格,内置 9 种风格方向库和"反套路"检查清单,新站点不再是千篇一律的模板样子
  • 沙箱预览桥接 —— 向 ShipAny Code 父窗口上报路由变化和页面内链接
  • AGENTS.md:管理后台交接说明、schema 变更后必须执行 pnpm db:push、沙箱内可用 Playwright/Chromium
v1.0.3

llms.txt、错误页面、Creem 映射、邮箱验证修复、Prettier

seouxpaymentauthdx

  • /llms.txt/llms-full.txt 路由 —— 面向 AI 的站点地图,根据页面和博客文章自动生成
  • 根路由新增样式化 错误边界 —— "出错了"标题、重试按钮、开发模式错误详情(替换 TanStack Router 默认样式)
  • Creem 产品 ID 映射 —— 后台配置内部产品 ID 到 Creem prod_xxx 的映射,结账时自动转换

  • 邮箱验证:公开配置接口支持 Cloudflare Email 判断 email_verification_enabledpassword_reset_enabled
  • 登录:直接检测 EMAIL_NOT_VERIFIED 错误码,始终跳转到验证页面
  • 验证页面「继续」:未验证时显示 toast 提示,不再跳转到登录页

  • Prettier + husky + lint-staged —— 提交时自动格式化
  • 新增脚本:pnpm formatpnpm format:check
  • 已执行全量代码格式化
v1.0.2

OpenAI 与 Anthropic 配置、自定义配置、登录回跳

adminaiauth

  • 后台 AI 设置新增 OpenAIAnthropic 两类配置(自定义 Base URL + API Key),各自带一键 测试(发起真实的对话补全连通性校验);移除 Gemini 配置
  • 配置 测试 现在使用表单中当前填写的值(即使尚未保存),并回退到已保存配置(打码的密钥保持不变)
  • 新增 自定义 配置 tab —— 以 key/value 形式管理任意配置,支持增删行
  • 认证:受保护页面未登录时携带 callbackUrl 跳转登录,登录后自动回到原页面;在登录 / 注册切换时也会保留

  • Turso:修复 drizzle.config.ts(turso dialect 映射 + DATABASE_AUTH_TOKEN),使 db:push / db:generate 能正确认证远程 libsql 数据库
v1.0.1

支持一键部署到 Cloudflare Workers

cloudflaredeploy

  • 支持一键部署到 Cloudflare Workers(D1 或 Postgres + Hyperdrive)
  • 新增 deploy-cloudflare 技能,自动处理 D1、密钥、schema 推送与重新部署
  • 修复若干 SSR 与 hydration 边界问题
v1.0.0

ShipAny TanStack 首个版本发布

releasetanstack-start

ShipAny 家族最新成员,把整套 agent-native 业务引擎搬到了 TanStack Start 上。

  • 基于 TanStack Start(Vite 8 + Nitro + React 19、TypeScript strict)的全新模板
  • 文件路由,无 RSC、无 "use client",所有组件都是普通 React
  • TanStack Query / Form / Table 全家桶,搭配类型化的 api-client
  • Paraglide JS 国际化,编译期生成、可 tree-shaking 的消息函数
  • better-auth + Drizzle ORM,共享 ShipAny 模块化业务逻辑(认证、积分、支付订阅、API key、RBAC)