更新日志
版本发布逐版本列出变更说明,站点公告按置顶与时间倒序排列,共 93 条记录;升级前请先阅读对应版本的变更说明与升级步骤。
-
v0.3.84
`activity_subscriptions` 补列 + `countWords()` 补全 + 微信收款回执监听
随交付包发布对应缺陷:BUG-2026-0015、BUG-2026-0016(详见 docs/网站BUG修复.md)。
查看完整变更
对应缺陷:BUG-2026-0015、BUG-2026-0016(详见
docs/网站BUG修复.md)。类别 变更 升级动作 数据表变更 activity_subscriptions表新增 3 列:notify_count TINYINT UNSIGNED NOT NULL DEFAULT 0、last_notify_at TIMESTAMP NULL DEFAULT NULL、last_content VARCHAR(255) DEFAULT NULL。原因:includes/fn-activity.php::notifyActivityToSubscribers()及getPendingActivityNotifications()依赖这三列,而此前database.sql建表语句缺失,导致发布小说/章节时抛Unknown column 'notify_count'致命错误(HTTP 500「页面遇到系统异常」,且内容已入库)旧站点必须补列:后台首页执行「数据库结构同步」( includes/DbUpdater.php按database.sql差量补列,幂等、仅加列不动数据),或经后台「在线更新」由迁移脚本处理。全新安装无需操作(DDL 已并入database.sql)代码修复 includes/fn-novel.php新增countWords($text)(去空白后mb_strlenUTF-8,非法 UTF-8 降级计数)。此前author/chapter-edit.php、admin/chapter-edit.php调用该未定义函数,保存章节即 500覆盖升级即可,无数据变更 新增端点 payment-receipt.php:接收安卓设备上报的微信收款回执/心跳(POST,HMAC-SHA256 签名或令牌鉴权、无登录态),供payment-code.php轮询展示(GET?order_id=N,需登录、仅本人订单)。回执只入库供展示与人工核对,不自动入账——token_orders.status与账户余额均不由该端点改动,到账仍由管理员审核覆盖升级即可(端点文件随包更新) 新增数据表 wxpay_receipts(回执流水):receipt_key(唯一幂等键)/device_name/amount/received_at/source/raw_text/match_state/order_id/user_id/remote_ip/created_at,索引uk_receipt_key、idx_order、idx_amount_state、idx_created。已并入database.sql,端点首次调用也会自动建表(settings.wxpay_receipt_schema_ready标记)旧站点执行一次「数据库结构同步」( DbUpdater按database.sql补建);全新安装无需操作新增设置键 settings新增wxpay_receipt_enabled(1=启用上报,缺省关闭)、wxpay_receipt_token(设备密钥,未配置时上报一律拒绝)、wxpay_receipt_ip_allow(可选 IP 白名单)、wxpay_receipt_last_seen/wxpay_receipt_last_device(设备在线标记,程序自写)、wxpay_receipt_schema_ready(建表完成标记,程序自写)启用前须写入 wxpay_receipt_enabled与wxpay_receipt_token(详见端点文件末尾注释);不配置时端点返回 503,不影响其它功能展示接入 payment-code.php新增「微信收款到账监听(本单)」区块 + 5 秒轮询脚本(只读、仅本人订单;无待支付订单/越权订单/已拒绝订单均不渲染)。回执按「金额完全相等 + 订单仍待审核」匹配,同额多单判ambiguous不猜测覆盖升级即可,无数据变更 依赖 / 扩展 无新增 PHP 扩展、无 nginx/ini 变更 无 自检 补列后再次执行 DbUpdater::run(),与database.sql比对结果has_diff=false(无待执行变更)。注:activity_subscriptions未列入「系统 → 部署检测」的核心数据表清单(该清单仅检测整表缺失,不检测列缺失),故此类缺列问题需靠结构同步/在线更新兜底升级后执行一次「数据库结构同步」并观察日志无异常即可 -
v0.3.83
图标管理:「聊天呼出图标」「Agent 助手图标」支持自定义大小与背景色
随交付包发布查看完整变更
类别 变更 升级动作 后台图标管理 admin/icon-manager.php在原有「替换图标」基础上,为 Agent+ 助手图标(icon_agent) 与 聊天呼出图标(icon_tab_chat) 增加「图标大小(px)」与「背景色」两项设置,并新增「效果预览」圆片(实时跟随输入刷新)与「透明背景」勾选项(勾选后禁用颜色输入、预览改显棋盘格底纹);新增$iconStyleKeys元数据表(size_key/bg_key/默认值/取值范围/缩放比例/默认渐变)与saveIconSetting()写入助手无(保存后即时生效) 校验口径 大小=圆形按钮直径 px,整数 12~96,留空=沿用样式表默认;背景色= #RGB/#RRGGBB纯色,或「透明背景」(存魔数transparent,大小写不敏感),留空=沿用默认渐变。参数非法时提示错误并整表不落库(不会只保存一半);文本类图标随按钮等比缩放无 新增设置键 icon_agent_size、icon_agent_bg、icon_tab_chat_size、icon_tab_chat_bg(settings表,首次保存时懒创建,空值亦写入以便前端统一读取)无(无需迁移脚本,无需手工建键) 前端生效 includes/footer.php/admin/footer.php向window.AGENT_CONFIG追加agentIconSize/agentIconBg/tabChatIconSize/tabChatIconBg;assets/js/agent.js按直径设置左下角悬浮球.agent-trigger的宽高、图标尺寸、字号与背景色(同时改写--agent-glow-rgb使呼吸光环同色),背景色为transparent时加.no-bg(assets/css/agent.css)关掉底色、投影与呼吸光环;assets/js/tab-card.js按直径设置右下角聊天呼出按钮.tab-trigger-btn的宽高/字号/背景色与同色投影(透明时不写投影);messages.php对页面自带的.tab-trigger-chat按钮直接输出内联尺寸与背景色(透明时额外输出box-shadow:none)。空值时的视觉与升级前完全一致无 影响范围 仅左下角 Agent 悬浮球与右下角「聊天」呼出按钮。后台首页 Agent 卡片图标、聊天窗口头像、站内信/好友呼出按钮均不随「大小/背景色」改变(仍仅支持替换图标本身) 无 依赖 无新增扩展、无 nginx/ini 变更、无表结构变更( database.sql表清单不变)无 -
v0.3.82
后台 Token 数据面板 + 过期扣减 / 充值返还引擎
随交付包发布查看完整变更
类别 变更 升级动作 新增页面 后台「用户运营 → Token 数据面板」 admin/token-dashboard.php:总充值额度 / 有效额度 / 已使用额度三张核心卡 + 账目对账(总充值 − 已使用 − 累计已过期 + 已返还 − 有效余额 = 0)+ 各大板块销售额度与占比 + 未充值时长分档(3 / 6 / 12 个月,累计口径)账户余留额度 + 过期限额 / 已返还 / 待返还三张卡 + 「过期结算」区块(规则表单、只读预览、显式执行、执行结果明细)+ 过期/返还流水(最新 30 条)+ 有余额账户明细;支持「统计基准日」参数已有站点先执行下方迁移脚本(缺 token_expirations时页面显式提示并给出迁移指引,不白屏)过期扣减引擎 includes/token-functions.php新增getTokenExpireMonths()/isTokenExpireEnabled()/tokenNormalizeAsOfDate()/tokenExpireThresholdTs()/findExpirableAccounts()/settleTokenExpiry()/getTokenExpirySummary()/getTokenExpiryRecords()。口径:计时起点=该用户最近一次 status=1 充值订单时间,从未充值取users.created_at;休眠满settings.token_expire_months(默认 12)个月即视为过期,扣减该账户全部余留余额,逐户写一条token_expirations(status=0 待返还)。逐户独立事务FOR UPDATE锁行,锁内复核余额与计时起点,并发充值通过者自动跳过;基准日为未来值或非法值时钳制为今天无(阈值/开关可在面板调节) 返还引擎 returnExpiredTokens($userId):该用户新的充值订单审核通过时,admin/token-orders.php在同一事务内自动全额返还其全部「已过期未返还」记录(status 置 1、returned_at、returned_amount),订单置通过 + 余额到账 + 返还同生共死;返还失败整体回滚,不会留下"订单已通过但返还丢失"。充值后计时起点自然重置无 结算入口 ① 后台面板「过期结算」:默认只预览(dry-run),必须带 confirm才真实扣减;② 命令行php cron-token-expiry.php(仅 CLI,支持--dry-run与--asof=YYYY-MM-DD)。浏览统计永不扣减余额。settings.token_expire_enabled=0时只停用扣减,返还始终执行建议在宝塔「计划任务 → Shell 脚本」新增每天一次: cd /www/wwwroot/<站点目录> && php cron-token-expiry.php新增数据表 token_expirations(本版新增后共 49 张核心表;v0.3.84 新增wxpay_receipts后为 50 张。此处按"核心表总数"计数,非database.sql中的语句序号):user_id / amount / balance_before / balance_after / idle_days / reference_at / expired_at / status / returned_at / returned_amount / note,索引idx_user_status(user_id,status)、idx_expired(expired_at);settings新增token_expire_enabled='1'、token_expire_months='12'已有站点执行 install/token-expirations-migration.sql(幂等,CREATE TABLE IF NOT EXISTS+ON DUPLICATE KEY UPDATE);或在后台首页执行「数据库结构检查/同步」(DbUpdater按database.sql补建缺表)。全新安装无需操作计数口径 总充值= token_orders中 status=1(审核通过)的token_amount合计(待审核/已拒绝不计入,页面单独提示);有效额度=SUM(users.token_balance);已使用额度=SUM(token_consumptions.token_amount);板块销售=token_consumptions按target_type分组汇总(与前台内容蒙版「总销售」徽标同口径);过期/返还额度读token_expirations无 休眠分档 计时起点=该用户最近一次审核通过的充值时间(从未充值者取注册时间),按 ≥3 / ≥6 / ≥12 个月累计分档(≥12 同时计入 ≥6、≥3),仅统计账户余额 > 0 的用户;分档阈值与过期引擎均用 -N months运算,保证面板与引擎判定完全一致无 自检 / 文档 includes/SystemRequirements.php核心数据表清单加入token_expirations(「系统 → 部署检测」可发现漏建表);docs/安装配置说明.md数据表健康段同步登记无 依赖 无新增 PHP 扩展、无 nginx/ini 变更(仅 PHP 8.2 既有环境) 无 -
v0.3.81
安装向导重装容错:非数据库配置保留 / GO_API_KEY 继承 + 安装完整性校验
随交付包发布查看完整变更
类别 变更 升级动作 安装向导 install/index.php、install/auto-install.php生成config/generated.php时只重写DB_*,其余既有配置项(GO_API_KEY、GO_SERVICE_URL等)按原值保留;GO_API_KEY缺失或与 Go 侧不一致时,按「环境变量 → systemd 单元(含.d/*.conf)→ 运行中的x-dream-go进程」顺序探测实际生效值并以 Go 侧为准写入(Go 是校验方:密钥不匹配返回 401、密钥非默认且无签名返回 403;PHP 是发起方,只有匹配 Go 才可用)无(重装/升级自动生效);已启用 HMAC 校验的站点重装后请在「系统 → 部署检测」确认「PHP↔Go 共享密钥」项为通过 探测告警 多个来源的密钥值互相矛盾时只输出提示、不猜测不写入(保持既有值并提示人工统一后重启服务);Web 安装进程受 open_basedir限制读不到/etc/systemd、/proc时,向导对回环/api/stats发起一次不带签名的只读探测:返回 403「缺少 CSRF 签名」即在生成配置前显著告警,并提示改用命令行安装(站点根目录php install/auto-install.php,可正常继承密钥)或事后在config/generated.php手工写入同名常量。全程不输出密钥明文无 安装完整性 CLI 脚本的 SQL 切分由 explode(';')改为引号/转义感知切分(与向导executeSqlFile()结果一致):修复含 HTML 实体分号的语句被切碎、导致verifications建表与部分种子数据静默丢失而脚本仍以退出码 0 宣告"安装完成";安装后按database.sql的CREATE TABLE清单校验建表完整性,缺表时列出缺失表名(最多 10 张)并exit(1)曾用旧脚本安装过的站点:后台首页执行「数据库结构检查/同步」核对缺表 向导锁定 已安装站点(存在 config/generated.php或install.lock)对向导的一切 POST 动作返回 403,不再仅靠页面$step=0(历史实现只影响显示,POST 动作仍可覆写配置并创建管理员);锁文件兼容install/install.lock与站点根install.lock两种历史位置无 依赖 / 数据表 无新增扩展、依赖或表结构变更( database.sql表清单与上一版一致,共 48 张;GO_API_KEY维持可选,未配置=回环信任模式)无 文档 docs/安装配置说明.md第五节补充「安装/重装容错」与「密钥取不到时的显式告警」;docs/打包说明.md第一节新增安装向导一致性条目(重装只重写DB_*、不得整文件覆盖导致两侧密钥不一致),打包校验脚本纳入go-service/go.sum与*.go凭据扫描无 -
v0.3.80
部署检测新增 Agent+ 智能体服务环境与依赖
随交付包发布查看完整变更
类别 变更 升级动作 检测项 后台「系统 → 部署检测」新增第三组「🤖 Agent+ 智能体服务环境与依赖」共 9 项:Go 服务可用性(回环 /health)、部署产物/opt/xdream-go/x-dream-go、systemd 单元与开机自启、产物与源码一致性、PHP↔Go 共享密钥 GO_API_KEY、allow_url_fopen、Go 侧配置复用可读性、知识库数据表、知识库中文全文索引(ngram)无(纯检测:不改数据结构、不写文件、不动服务) 检测实现 includes/SystemRequirements.php新增agent分组;辅助方法:回环 fsockopen 探测、open_basedir 感知的站点外文件检测(受限时改由子进程test/stat或回环探测兜底,避免误报不通过)无 依赖变化 无新增必备依赖;Go 常驻服务维持「可选增强」定位,未部署时 PHP 微内核自动接管(检测页显示"警告/信息") 访问一次部署检测页确认状态 文档 docs/安装配置说明.md新增第五节「Agent+ 智能体服务环境与依赖」,第四节检测页说明改为三组;docs/打包说明.md新增第一节第 7 项与第七节「Agent+ 组件交付与客户部署(部署即用)」,打包后校验脚本纳入go-service/关键文件与"编译产物不得入包"检查;go-service/README.md补充 systemd 常驻部署与单元模板无 -
v0.3.78
百科 + 时政头条 + 问答三大内容模块 + 全站 emoji 禁用 + 首页多元素排版
随交付包发布查看完整变更
类别 变更 升级动作 新增模块 百科(对标百度百科:词条/分类/编辑历史/审核,encyclopedia*.php + admin/encyclopedia.php);时政头条(新闻文章/栏目/头条焦点,news*.php + admin/news.php);问答(对标百度知道:提问/回答/采纳,qa*.php + admin/qa.php) 无(安装向导自动建表;旧站点升级需执行下方建表 SQL) 数据表变更 新增 7 张表:encyclopedia、encyclopedia_categories、encyclopedia_history、news、news_categories、qa_questions、qa_answers(DDL 已并入 database.sql,含演示种子数据) 旧站点需手动:从 database.sql 摘取上述 7 表的 CREATE TABLE 执行(或经后台在线更新后由迁移脚本处理) 依赖变化 PHP 扩展 dom升级为必备(三模块正文 HTML 白名单净化与百科目录生成依赖 DOMDocument),SystemRequirements 检测项与安装配置说明已同步宝塔 PHP 设置确认已安装 dom(PHP 8.x 默认多已内置),缺失则安装后重载 PHP 新增静态资源 assets/fonts/emoji-blank.woff2(全站 emoji 禁用空白字体,5 个既有 CSS + 3 个新 CSS 文件头部统一挂载禁用规则);assets/css/encyclopedia.css、news.css、qa.css 无(随包更新,assetVersion 自动破缓存) 首页栏目机制 新增 4 种栏目类型:news(时政头条焦点区)、hotsearch(全站热搜榜)、encyclopedia(百科扑克牌卡片)、qa(热门问答左右双块);database.sql 默认栏目与导航种子更新为当前线上布局(时政置顶,最新更新/分类浏览默认不启用,导航无 emoji 图标) 全新安装自动生效;旧站点在后台「首页栏目/导航管理」自行配置 行为变化 导航图标三层强制(后台校验 isValidIconUrl + 前台过滤 navIconUrl,emoji/文字图标不再渲染);短视频栏目仅显示含视频媒体的动态、动态广场仅显示图文动态(同源 moments 表按媒体类型分流);动态广场价格徽章按动态自定义 token_price 动态取值 无 新增文档 docs/页面模块创建规范.md(强制规范)、docs/百科模块说明.md、docs/时政头条模块说明.md、docs/问答模块说明.md 无 -
v0.3.77
在线更新机制修复 + 分类管理页签 + 样式修复
随交付包发布查看完整变更
类别 变更 升级动作 新增文件 packages/index.html、packages/.htaccess(占位,保证全新部署存在"本地更新文件夹") 无(升级包自带;旧站点若缺 packages/ 目录需手动创建并 chown www) 行为变化 在线更新兼容 QDCMS-v*.zip 与 x-dream-cms-v*.zip 两种包名(此前只认后者,QDCMS 包永远检测不到);packages/ 缺失时后台明确提示"本地更新文件夹缺失"并给出创建命令 无 nginx 配置模板 nginx.conf.example 新增 /packages/ deny(更新包禁止公网下载) 建议手动:已有站点在 vhost 加同规则并 reload;不加不影响功能 后台修复 分类管理新增类型页签(小说/短剧/短视频/全部,默认小说)与类型徽章列;短剧/短视频发布自动创建的分类不再混入小说视图;Agent 三处分类搜索补 content_type='novel' 过滤 无 前台修复 短剧更新页背景色与短剧各页统一(补 .drama-update-page 样式,随主题变量联动) 无(静态资源随包更新,assetVersion 自动破缓存) 依赖变化 无新增系统依赖、无数据表变更 升级后访问一次部署检测页确认状态 -
v0.3.76
广告模块 + 播放器修复
随交付包发布查看完整变更
类别 变更 升级动作 数据表结构 新增 ads 表(播放器横幅广告:文字+小图,含状态/排序/链接) 需执行 install/ads-migration.sql(幂等);后台系统更新自动同步 database.sql 亦可 新增页面 后台「内容管理 → 广告管理」(admin/ads.php,仅管理员) 无 新增端点 ajax-ads.php(登录 + CSRF,随机返回启用广告) 无 新增文件 assets/js/ad-banner.js(透明横幅轮播组件,短视频/短剧播放器共用) 无(静态资源随包更新,assetVersion 自动破缓存) 行为变化 短视频/短剧播放器播放至 3 秒时,随机广告从右向左流动轮播(底部透明横幅条);无启用广告则不显示 无 上传目录 uploads/ads/(广告小图,自动等比缩放至 640x96 内,500KB 限制) 首次上传自动创建;部署检测已纳入子目录清单 播放器修复 扣款后默认静音修复(付费播放恢复有声,浏览器策略拦截时降级静音播放并同步图标);Agent 悬浮球不再遮挡静音键(播放页默认位上移);悬浮球支持拖拽+吸边+位置记忆 无 后台修复 admin/header.php 启用 ob_start 输出缓冲:修复后台所有表单(广告/分类/评论等 16 页)提交后 redirect 失效导致的空白页 无 nginx 配置模板 nginx.conf.example 新增大文件上传容忍配置(client_max_body_size 600m / client_body_timeout 300s / fastcgi_read_timeout 300s 等) 需手动:已有站点在 vhost server 块加同组指令并 reload nginx(详见安装配置说明第五节);不配置则弱网大文件上传可能被默认 60s 超时断开(408/400) 依赖变化 无新增系统依赖(广告图缩放用 GD,缺失时原图直存) 升级后访问一次部署检测页确认状态 -
v0.3.75
部署检测体系 + 视频压缩 + 播放手势修复
随交付包发布查看完整变更
类别 变更 升级动作 新增页面 后台「系统 → 部署检测」(admin/system-requirements.php) 无 新增文件 includes/SystemRequirements.php(检测注册表) 无 新增文档 docs/安装配置说明.md、docs/版本升级说明.md 无 新增功能 视频上传后台压缩转码(compressVideoAsync,覆盖短视频/短剧上传与替换):ffmpeg 后台异步执行 H.264/CRF28/最高 720p/AAC 96k/faststart,产物比原片小才原子替换,不阻塞上传请求 无(ffmpeg/exec 不可用时自动跳过,上传不受影响) settings 键 新增 video_compress(1 开 / 0 关,无界面,存 settings 表) 无需初始化,缺省开启 播放器修复 修复沉浸式播放页轻点被误判为滑动切换:touchstart 重置陈旧 currentY,并以 justSwiped 抑制滑动后的合成 click(assets/js/video.js) 无(静态资源随包更新,assetVersion 自动破缓存) 依赖变化 无新增强制依赖;ffmpeg 用途扩展为「缩略图/时长探测 + 压缩转码」(仍为可选) 升级后访问一次部署检测页确认状态 -
v0.3.74
视频加载加速器
随交付包发布查看完整变更
类别 变更 升级动作 nginx 配置 新增 /accel-media/internal location(X-Accel-Redirect 直发)需手动:将 nginx.conf.example 末段 location 加入站点配置/伪静态并 reload nginx;不配置则自动回退 PHP 出流(可播放、并发差) settings 键 新增 media_accelerator(auto/on/off) 无需初始化,缺省 auto 播放器 付费后 preload=auto 积极缓冲 无(静态资源随包更新,assetVersion 自动破缓存)
第 9 / 10 页 · 每页 10 条 · 共 93 条
升级前请确认
备份
备份站点目录与数据库,尤其是
uploads/与config/。阅读说明
在
docs/版本升级说明.md中找到对应版本,确认是否需要执行数据库迁移。执行升级
解压覆盖站点目录 → 执行 migration → 后台「系统 → 在线更新」复核版本状态。
复核功能
检查前台首页、播放、支付与后台工作面板等关键入口是否正常。
相关入口
- 文档中心查看随包技术文档(含版本升级说明、打包说明、安装配置说明)
- 插件市场查看插件版本与兼容性
- 授权续验升级后重新查询授权状态,确认未因换机失效
- 遇到问题在线留言,附上版本号与报错信息