Skip to content

v2.2.5

Choose a tag to compare

@hjxwz123 hjxwz123 released this 29 Jul 02:34
· 174 commits to main since this release

v2.2.5 - 2026-07-29

本版本从 v2.2.3 继续完善 Aivory 的生产级能力,重点新增完整的多渠道支付与订单体系、永久积分套餐和用户组周期定价,并加入个人技能与提示词库、可配置法律政策、登录历史审计、头像对象存储、助手回复编辑,以及模型额度和会员到期处理修复。关于页面版本已更新至 2.2.5

支付、订阅与定价

  • 新增部署级结算币种,用户组价格拆分为月付和年付金额,并统一使用结算币种最小单位保存、展示和校验。
  • 新增永久积分套餐:管理员可配置名称、说明、积分数量、价格、启用状态和排序,用户可在订阅页直接购买永久有效的积分。
  • 新增完整支付后台,包括支付渠道、支付方式和支付订单三套管理页面;支持启停、排序、测试/正式环境、渠道配置校验和订单状态追踪。
  • 原生支持 Stripe、易支付兼容网关和 Waffo 三类支付渠道,统一处理结账创建、回调验签、订单履约、重复通知、金额校验和失败状态。
  • 支付方式可配置面向用户的名称、图标和排序;支持管理员上传自定义图标,并兼容旧图标与安全回退显示。
  • 支付订单保存商品、结算金额、支付币种、渠道金额、渠道币种、换算率、用户邮箱和支付方式快照,后续配置变化不会破坏历史对账。
  • Waffo 支持独立支付币种和十进制换算率;不支持的商品币种会返回明确错误,不再生成金额不可靠的订单。
  • 易支付兼容渠道支持十进制汇率、回调验签和本地关闭说明;手动关闭订单不再要求停用整个支付渠道。
  • 新增支付恢复能力:Stripe 和 Waffo 可复用仍有效的结账会话,易支付可在同一 Aivory 订单下创建受追踪的新支付尝试,避免重复履约。
  • 用户支付记录新增继续支付和重新发起入口,并覆盖跳转、表单提交、超时、并发点击、旧会话状态变化和重复支付确认。
  • 管理员可在严格确认后永久删除已关闭的支付订单,关联的支付尝试和本地事件会一并清理;不可删除状态会返回明确原因。
  • OAuth 和支付渠道配置页会在保存凭据前预览真实回调地址,降低域名、反向代理和路径配置错误。
  • 订阅页与公开首页共用同一套用户组卡片、月付/年付切换、价格格式、当前套餐、永久拥有和推荐状态。
  • 已永久拥有的用户组不会再次出售;有限期会员仍可正常续费,当前套餐和永久基线套餐会分别正确标记。
  • 用户组新增独立的“允许购买”开关;套餐可以继续公开展示但暂停购买,前端显示“暂时无法购买”,后端同时拒绝新建和继续支付。
  • 旧用户组升级后默认仍允许购买;购买状态会随配置备份和恢复保留。

个人技能与提示词库

  • 新增用户侧“技能与提示词”页面,可创建、编辑、搜索、筛选和删除个人技能及个人提示词。
  • 个人技能支持导入带 Front Matter 的技能文档,并校验名称、用途说明和指令内容。
  • 管理员技能和提示词可作为公共目录发布,用户可以一键添加到自己的库中,同时保留来源关系。
  • 管理后台新增提示词管理页面,并扩展技能的展示说明、图标和目录能力。
  • 输入框支持选择个人技能,服务端只注入当前用户明确选择且仍然有效的技能,并在对话分支和历史处理中保持选择状态。
  • 用户技能、提示词、目录来源和消息选择均纳入 SQLite/PostgreSQL 架构、迁移和备份恢复。
  • 项目、知识库、侧边栏和技能工作流同步调整为统一导航与编辑体验,弹窗、图标选择和长说明显示进一步收紧。

对话、分享与上传体验

  • 支持直接编辑助手回复;编辑会更新对应消息及活动分支,不需要通过伪造用户消息重新生成。
  • 分享对话弹窗新增复制链接操作,并加强链接生成、反馈状态和移动端布局。
  • 文件选择后立即显示上传项和处理状态,发送、切换页面与恢复草稿时不再出现附件延迟或回弹。
  • 停止生成改为严格绑定当前会话和当前分支;编辑、重试、切换分支或继续追问不会继承其他分支的停止状态。
  • 增加服务端停止生成接口和跨实例通知收敛,避免旧请求继续写入、已停止回复被后续状态覆盖或其他分支被误停。
  • 弹窗、下拉菜单、选择器、消息操作和通知统一圆角与边界样式,减少不同页面之间的视觉跳变。

账户、后台与合规

  • 管理员现在可以修改用户邮箱;服务端执行规范化、格式校验和大小写无关的唯一性检查,并立即刷新认证缓存。
  • 管理员用户列表在返回当前分页前处理该页已过期会员,过期用户会降级到默认用户组,不再因全表扫描拖慢大规模用户列表。
  • 新增管理员只读用户记忆页面,可按用户查看已保存的记忆内容,同时保持权限和备份兼容。
  • 新增成功登录历史,记录密码、OAuth 和两步验证登录的时间、IP、位置、认证方式、浏览器、设备与 User-Agent。
  • 管理后台新增分页登录历史页面;登录历史同时支持 SQLite、PostgreSQL 和备份恢复。
  • 新增数据库驱动的联系邮箱、服务条款 Markdown 和隐私政策 Markdown 配置;留空时继续使用五语言内置法律文本。
  • 默认条款补充预付费周期、无自动续费、退款处理、AI 内容限制、审核、举报、执行和申诉说明。
  • 登录页、关于页和头像帮助菜单统一显示法律入口及管理员配置的联系邮箱。

模型额度与渠道可靠性

  • 当文本或图片模型未为当前用户组配置免费额度时,普通用户改为按次扣积分,不再被错误视为免费无限或直接不可用。
  • 显式配置 limit_value=0 仍表示该用户组免费无限使用,管理员账号继续保持额度豁免。
  • 模型列表会正确返回是否使用积分;图片模型继续按单张价格、积分汇率和实际生成数量结算。
  • OpenAI、Anthropic 和 Google 的普通 HTTP 错误、流式协议错误及上游错误事件都可触发已配置的备用渠道。
  • 备用渠道选择会跨多轮工具调用保持一致,用量记录保存实际服务请求的渠道,避免后台显示与真实调用不符。
  • 增加空凭据、非 2xx、畸形流事件、任务模型、工具多轮和各供应商错误协议的回归测试。

存储、品牌与部署

  • 用户头像改为通过受控对象存储保存和读取,支持配置的本地存储目录及现有对象存储后端,不再依赖临时或公开上传路径。
  • 本地头像对象默认保存在 UPLOAD_DIR/object-storage,可通过 AIVORY_LOCAL_STORAGE_DIR 覆盖,并继续纳入正常文件备份范围。
  • 后台上传、对象清理和用户删除流程同步适配新的头像存储,避免数据库记录与对象残留不一致。
  • README 更新品牌封面、产品截图和架构海报,并补充头像对象存储与数据持久化说明。

测试与升级说明

  • v2.2.3...v2.2.5 共涉及 288 个文件,新增约 3.5 万行实现和回归测试。
  • 发布前前端 40 个测试文件、267 个测试全部通过;TypeScript 类型检查、ESLint 和生产构建通过;后端全量 Go 测试通过。
  • 数据库启动时会自动迁移个人技能/提示词、登录历史、永久积分套餐、支付渠道/方式/订单/尝试、用户组周期价格和购买开关等表与字段。
  • 现有用户组的购买开关默认开启;旧价格数据会按兼容规则迁移,结算币种未配置时使用 USD
  • 支付渠道密钥和配置保存在数据库中,请在升级前完成数据库、上传文件和向量数据备份,并在后台逐项验证回调地址与正式/测试环境。
  • 使用本地头像存储时,请确保 AIVORY_LOCAL_STORAGE_DIR 位于持久化目录内;默认配置已经位于 UPLOAD_DIR 下,无需额外挂载。
  • 关于页面版本已更新至 2.2.5

完整变更: v2.2.3...v2.2.5