跳到主要内容
奇点CMS v0.4.66 · 官方网站 登录 / 注册 在线激活

更新日志

版本发布逐版本列出变更说明,站点公告按置顶与时间倒序排列,共 93 条记录;升级前请先阅读对应版本的变更说明与升级步骤。

版本发布 93 条 站点公告 0 条
  • 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_strlen UTF-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 条

升级前请确认

  1. 备份

    备份站点目录与数据库,尤其是 uploads/ 与 config/。

  2. 阅读说明

    在 docs/版本升级说明.md 中找到对应版本,确认是否需要执行数据库迁移。

  3. 执行升级

    解压覆盖站点目录 → 执行 migration → 后台「系统 → 在线更新」复核版本状态。

  4. 复核功能

    检查前台首页、播放、支付与后台工作面板等关键入口是否正常。

相关入口

站点公告 官网试运行中,如需购买或试用请通过「联系我们」留言。