Skip to content

v2026.0.6

Choose a tag to compare

@github-actions github-actions released this 27 Sep 00:31
· 115 commits to dev since this release

权益(等级特权)

  • 新增按用户生效的权益:书籍数量上限、单本书协作者人数上限、单文件上传大小、单页网页采集、整站采集及整站采集页数上限;超限时接口返回 403。
  • 系统设置新增「权益」页配置全站基础值;默认与升级前一致(书籍/协作者不限,上传与采集沿用原设置),管理员主动收紧才生效,管理员本人不受限制。
  • 成长等级可配置「等级特权」,用户获得当前等级及以下各启用等级的累计权益;「我的成长」新增「我的权益」卡片展示生效值与来源。
  • 权益由插件登记来源(核心只提供通用机制),为后续会员方案预留独占来源;采集入口按用户权益联动显示。

会员

  • 新增「会员」插件(默认关闭):多个会员方案,每个方案可配置权益与多档时长价格(划线价可选),方案名称/说明支持多语言。
  • 用户同一时间持有一个方案,续期顺延到期时间,有效期内更换方案从当前时间起算;会员有效期内按方案权益生效,优先于成长等级,未配置的项回退基础值。
  • 管理端可开通/续期、调整方案与到期时间、取消会员,查看会员列表与流水,设置价格货币与到期提醒;用户在「我的会员」查看当前会员、方案与记录,并收到开通、到期前与到期通知。

支付

  • 新增「支付」插件(默认关闭):支持线下转账(用户提交付款说明、管理员确认到账)、支付宝(电脑/手机网站支付)、微信支付(APIv3 Native 扫码)与 Stripe Checkout,异步通知均验签并校验金额。
  • 会员方案可在线购买:会员页每档价格显示「购买/续期」,结算页选择支付方式,订单页展示二维码/收银台/转账说明并自动刷新状态;支付成功后自动开通会员并通知。
  • 管理端可查看与筛选订单、确认线下收款、取消订单、重试履约,并配置各支付方式(密钥只写不读、保存前校验格式);用户可在「我的订单」查看购买记录。
  • 支付与会员互不依赖:支付插件售卖通用「商品」,会员插件登记商品并处理履约。
  • 退款:用户在支付后可申请期内(默认 7 天,可配置或关闭)申请退款,管理员审核(可部分退款、选择是否撤销商品)或驳回,也可直接退款;支持支付宝、微信支付、Stripe 原路退款与线下退款,退款单号作为渠道幂等键,并发不超额,结果未知时向渠道查询确认、必要时人工核实,不会重复退款。退款成功后会员按比例扣回天数、付费内容按比例扣回作者收益并可重新锁定。修复全额退款后重复的支付通知可能导致订单被重新履约的问题。

书籍更多信息

  • 书籍设置新增「更多信息」:可添加 GitHub/GitLab/Gitee、官网、原始文档、文档地址、在线演示、联系邮箱、原作者、许可证、版本、ISBN 及自定义属性,支持排序;书籍详情页侧栏展示(链接可点击),随导出/导入与复制保留。

Markdown 导入(Issue #87)

  • 支持上传多个 Markdown 文件或 Markdown 目录 ZIP 新建书籍(「导入书籍」新增 Markdown),也可在写作台「从 Markdown 导入」为本书章节:目录成为章节层级,README/index 作为目录正文,按名称自然排序;相对路径图片自动上传到当前存储并改写,包内互相引用的 .md 链接改写为阅读页链接。
  • 原「书籍压缩包」导入在 ZIP 不含 book.md 时自动按普通 Markdown 目录导入。

图片存储(Issue #87)

  • 存储新增「S3 兼容对象存储」驱动(AWS S3、阿里云 OSS、腾讯云 COS、MinIO、Cloudflare R2 等,Signature V4),可配置对外访问地址(CDN)、对象键前缀与路径风格;Secret Key 只写不回显。
  • 书籍设置「清理」新增「外链图片本地化」:后台下载章节中的外部图片存入当前存储并改写链接(含 SSRF 防护与大小限制),改动章节生成版本记录。

发布审核(Issue #87)

  • 新增「发布审核」插件(默认关闭):管理员维护敏感词词典(批量添加、分类、启停、试审),章节发布与书籍公开前自动审查(忽略大小写/全半角,可识别插入空格或符号的写法)。
  • 未命中直接发布并记入「自动通过」供抽查复审;命中则拦截(章节保持草稿、书籍保持私有),标出命中的字段、行列号与上下文并通知作者与管理员;复审通过自动发布,驳回把命中位置与意见通知作者,作者可在「我的审核」查看。
  • 写作台与书籍设置在发布被拦截时提示「已提交审核」。

付费内容

  • 新增「付费内容」插件(默认关闭):作者在书籍设置「付费设置」中为整本/章节定价,可设免费试读章节、试读比例与逐章免费/单独价格;未解锁章节只显示试读内容与付费墙,阅读目录显示锁标记,书籍详情页展示价格与「购买全书」。
  • 内容门禁覆盖阅读、整本导出与搜索摘要;购买经支付插件完成,已购内容在「我的购买」查看。
  • 作者收益:平台按比例抽成,作者在「我的收益」查看流水并申请提现,管理员线下打款后确认或驳回(退回余额)。
  • 与会员/等级结合:新增「内容访问等级」「付费内容折扣」「全部付费内容免费」三项权益,可在会员方案或成长等级中授予(书籍可设「访问等级 ≥ N 免费读」)。

AI 服务

  • 系统设置新增「AI 服务」:配置站点使用的大模型,支持 OpenAI 兼容接口(OpenAI、DeepSeek、通义千问、Kimi、Ollama 等,支持工具调用)与 Anthropic 接口,另可配置 OpenAI 兼容的向量嵌入模型;密钥只写不读,可一键测试连通性。
  • 未单独配置时沿用「翻译服务」中的 OpenAI / Claude 配置;插件经核心的通用 AI 接口调用,不直接接触密钥。
  • 每次模型调用都记录用量(调用用户、功能、模型、输入/输出 tokens、耗时,服务未返回用量时按文本估算),可配置单价估算费用;管理后台新增「AI 用量」:按日趋势、按功能/模型分布、用量最高的用户与调用明细。
  • 新增权益「每月 AI 用量」(tokens,默认不限),可在成长等级与会员方案中设置额度,超出后当月暂停 AI 功能。
  • 写作台与多语言内容的「翻译」同样记录每次调用(OpenAI/Claude 记 tokens,Google 翻译按字符计价,可关联到章节);新增权益「每月翻译字数」(默认不限)。「我的权益」显示按月计量项的本月已用量。所有模型调用都必须经过统一的计量入口,有测试防止新功能绕过。
  • 新增「我的 AI 用量」页:用户可查看本月 tokens/翻译字数与额度、每日用量、按功能分布,以及按调用链分组的全部调用记录(每次操作展开可看到其中每一次模型调用的模型、tokens、耗时与结果);管理端调用明细可按调用链筛选。
  • AI 用量预警(只报警、不限流):可设置全站当日估算费用、单个用户当日 tokens、单条调用链 tokens 三类阈值,超过时通知所有管理员并在「AI 用量」页列出,可一键查看对应用户或调用链的调用明细;同一对象只提醒一次。
  • AI 用量数据保留与导出:「AI 服务」可设置调用记录保留天数(默认永久,最少 90 天),超期的调用记录与预警由每日维护任务分批清理;管理端「AI 用量」按当前筛选导出 CSV(含用户、估算费用与报错),用户在「我的 AI 用量」可导出自己的调用记录(不含费用)。
  • AI 调用不再设置整体超时(翻译、连通性测试同样取消 60 秒限制),只保留建连超时。

书籍问答

  • 问答管理新增「调用链详情保留天数」(默认永久,最少 7 天):超期只清除逐步的调用链详情,问题、回答与用量合计保留。
  • 新增「书籍问答」插件(默认关闭):阅读页右侧「问答」抽屉,读者就本书内容向 AI 提问,回答只依据本书并标注出处,点击角标定位到对应章节小节;在正文中选中文字可直接「问 AI」。
  • 检索采用关键词(BM25,支持中文)与向量的混合检索(配置嵌入模型后启用,后台自动向量化,内容更新后自动重建索引);「深度模式」由 AI 多步检索、查看目录并阅读多个小节后作答。
  • 社区问答:书籍详情页新增「问答」Tab,读者可公开提问(可附 AI 回答作参考),作者与其他读者回答,提问者或作者采纳后标记已解决,提问、回答与采纳均有站内通知。
  • 额度均为权益、可纳入会员体系:「每日 AI 提问次数」「每日深度模式提问次数」(可设为 0 作为会员专享),并受「每月 AI 用量」约束;付费内容门禁同样生效,未解锁章节不参与回答。
  • 每条回答显示模型消耗(tokens);新增「我的问答」页:今日额度与本月 AI 用量、跨书的 AI 问答记录(可展开出处、删除)与社区提问。
  • 回答正文逐字流式输出:模型以流式接口调用,生成的文字经 SSE 实时推给读者(中途打开的页面也能接上已生成的部分),深度模式中间轮的临时文字在调用工具时清除;OpenAI 兼容接口与 Anthropic 均支持,用量从流末尾准确记录。
  • 社区问答纳入内容治理:提问与回答发布前经发布审核(敏感词命中时待审核,通过后公开并补发通知),可被举报并下架;审核插件新增「审查用户发布的其他内容」开关。插件可经新的中性扩展点登记自己的用户内容类型,审核与举报不需要认识具体插件。
  • 回答改为后台生成:不设整体超时、深度模式不限轮数(直到模型不再调用工具,相同的工具调用不重复执行),可随时停止;每条回答可查看完整调用链(上下文、查询向量化、检索命中、每次模型调用的模型/tokens/耗时/请求的工具、每次工具执行及返回的小节),生成过程中经 SSE 实时推送每一步(不轮询)。

语义搜索与相关推荐

  • 书籍问答设置新增「全站语义搜索与相关推荐」(默认关闭,需配置嵌入模型):为公开书籍建立向量索引,章节发布或修改后自动更新,可一键补齐。
  • 站内搜索在关键词结果之后增加「语义相关」:按意思匹配的章节小节,点击直接定位到对应小节;单独加载,不拖慢关键词结果。
  • 书籍详情页「你可能也喜欢」优先推荐内容相近的书(不含同一作品的其他语言/版本),没有时仍按标签推荐;阅读页正文后新增「相关阅读」,推荐内容相近的章节。
  • 语义检索经核心的中性扩展点接入,核心与其他插件不依赖问答插件;未解锁的付费内容不参与搜索。

章节导读

  • 新增「章节导读」插件(默认关闭):AI 为章节生成阅读前导读与本章要点,显示在阅读页正文上方(可折叠);为书籍生成全书概览,显示在书籍详情页。
  • 书籍设置新增「章节导读」:查看每章状态(未生成、已生成、内容已修改、已编辑、失败),一键生成未生成与已修改的章节,或单章重新生成;导读与概览都可编辑,编辑过的不会被自动覆盖;状态实时更新。
  • 可开启「发布与修改后自动生成」:章节发布后立即生成,已发布章节修改后约 1.5 分钟更新,连续保存只生成一次;内容不变时复用,不重复调用模型。
  • 未解锁的付费章节不向读者显示导读;费用可由作者或站点承担(管理员设置);每月生成次数为权益,可由会员/等级提升。

整本 AI 翻译

  • 书籍设置新增「AI 翻译」:选择目标语言,AI 先翻译目录并按原书结构建好全部章节,再逐章翻译正文,生成与原书同一翻译分组的新译本(读者可在阅读页切换语言);译稿均为草稿,在写作台审阅后发布,每章保存翻译版本可回退。
  • 支持术语表(按目标语言保存,统一专有名词译法)和整本书的翻译要求;代码块原样保留、不计字数。
  • 进度实时显示(当前章节译文逐字出现),可暂停、继续,某章失败不影响其他章节,失败章节可重试;完成后站内通知。
  • 原书修改或新增章节后,可一键「同步更新」,只翻译有变化的章节。
  • 字数计入「每月翻译字数」(配置 AI 服务后即生效);「整本 AI 翻译」本身也是权益,可设为会员专享;每次调用都记入 AI 用量。

AI 写作助手

  • 新增「AI 写作助手」插件(默认关闭):写作台工具栏或斜杠命令 / 打开右侧助手,对选中的文字续写、润色、改写、扩写、精简,为章节生成大纲或摘要,也可填写自定义要求;可附加要求(如「语气正式一些」)。
  • 结果在后台以流式接口生成并经 SSE 逐字显示(不轮询、不设超时,可随时停止);完成后对比原文,一键替换原文、插入到下方或插入到光标处,生成期间正文被修改时按原文重新定位。
  • 「记录」页查看本书的全部结果,可再次插入、复制或删除;每条结果显示模型消耗。
  • 每月使用次数为权益(默认 100 次,可在成长等级与会员方案中提升或设为 0 作为会员专享),同时受「每月 AI 用量」约束;每次调用都记入 AI 用量,可在「我的 AI 用量」查看。

修复与优化

  • 创建时直接发布的章节此前不会通知关注者、也不给作者加成长经验,现在与先建草稿再发布一致。
  • 「我的 AI 用量」与管理端「AI 用量」的每日用量柱状图不显示:柱子宽度为 0,已修复;用户页补充起止日期。
  • 事件流(站内通知、问答进度、插件安装日志)改用 60 秒有效的短时凭证鉴权,登录令牌不再出现在 URL 中(避免进入代理与访问日志);凭证不能当作 API 令牌,前端在连接被拒时自动换新凭证重连。
  • 审计日志的操作、资源类型、变更字段与系统对象,异步任务的类型全部支持多语言;筛选项改为服务端下发的实际取值,并有测试保证新增词汇必有中英文文案。
  • 修复 MySQL 严格模式下成就评估(last_evaluated_at)与登录锁定(locked_until)写入零时间报错;后者导致 MySQL 下登录锁定此前实际不生效。
  • 「我的书籍」中已完成/已归档的书籍不再显示「继续写作」,改为「查看书籍」。

完整提交记录(36 条)
  • feat(search): add semantic search and related books and chapters (0c4991b)
  • fix(seo): remove the duplicate /sitemap.xml page (fad8942)
  • feat(chapter-guide): add AI chapter guides and book overviews (b02bf3a)
  • fix(documents): fire the chapter-published hook on create-and-publish (3655980)
  • feat(book-translations): translate whole books with AI (b2865e2)
  • refactor(books): extract the book shell creation from book copy (05b4830)
  • feat(ai-writer): add an AI writing assistant plugin for the editor (d2845b8)
  • fix(ai): show the bars in the daily usage charts (8162b3c)
  • refactor(qa): move the SSE event hub into a shared package (ac8281e)
  • feat(ai): usage data retention and CSV export (7548789)
  • feat(ai): usage alerts for daily cost, per-user tokens and call chains (4c24ad8)
  • fix(security): authenticate event streams with short-lived tickets (3d5934d)
  • feat(qa): stream answer text token by token over SSE (bc35119)
  • feat(qa): moderate and allow reporting community questions and answers (bde4f7f)
  • feat(payment): refund requests, partial refunds and product revocation (9941335)
  • feat(qa): stream answer progress over SSE instead of polling (73aeb2e)
  • feat(qa): answer in the background with a live call trace and no caps (014480c)
  • feat(ai): per-user AI usage page with call chains, no overall timeouts (29b026d)
  • feat(ai): meter translation calls and guard against unmetered model use (cb73660)
  • feat(qa): track per-answer usage, meter deep mode and add My Q&A page (645aff5)
  • feat(ai): record model usage and cost with a monthly token entitlement (1ae9af5)
  • feat(qa): book Q&A plugin with cited AI answers and community Q&A (b0ad689)
  • feat(ai): site-wide AI service for chat and embeddings (409981f)
  • feat(paid-content): author-priced paid books and chapters with payouts (27af9d2)
  • feat(moderation): sensitive-word publish review plugin (#87) (8d2b0fc)
  • feat(storage): S3-compatible storage driver and external image localization (#87) (41e1200)
  • feat(import): import Markdown files and Markdown folder ZIPs (#87) (98b46ce)
  • feat(books): add a More info settings tab shown on the book page (5c2200e)
  • refactor(commerce): decouple membership and payment frontends via a neutral commerce contract (15f2bbe)
  • feat(payment): isolated payment plugin with offline, Alipay, WeChat Pay and Stripe (e83ea51)
  • feat(membership): isolated membership plugin with plans, grants and expiry reminders (e0804c7)
  • feat(entitlements): per-user entitlements with growth level privileges (8bdc0e6)
  • fix(admin): localize audit log and background task vocabulary (7da7279)
  • fix(books): finished books show "View book" instead of "Continue writing" (a3e8c6e)
  • fix: never write zero datetimes (MySQL strict mode rejects '0000-00-00') (91039f2)
  • chore: start version 2026.0.6 (59d4a82)

完整更新日志见 CHANGELOG.md。