版本更新历史
v2.6.42026-09-05
- 会员新增每日练习满 10 题 → 当天第 1 次奖励 1 个金碎片(鼓励/保底):每天一次、确定性发放;与「练满随机 21-27 道抽 1-3 金碎片」相互独立可叠加,练不到抽奖门槛也有当日保底
- 会员到 10 题时轻量提示「今日练习满 10 题,奖励 1 个金碎片」:沿用
day_reward 式快照思路,新增 enc10(今日满 10 +1 是否已发放)与客户端 encSeen 去重,只弹一次且不弹转盘(转盘仍仅用于 21-27 练满轮)
- 会员会员表新增
enc_day 列(自动迁移),记录已发「满 10 题 +1」的最后一天,跨日自动重置、同日重复结算不重复发放
v2.6.32026-09-04
- 会员修复黑碎片结算从「UTC 日零点/首次请求」改为「用户所在时区当地 23:30」:晚上练习不再在次早被误扣;页面没开时顺延到下次打开补结算(仍判当天),页面打开着时到 23:30 立刻结算并弹提示
- 会员
/api/membership/me 新增 black_eaten / black_day / black_count / black_eaten_count;客户端 api() 统一附带 X-Tz-Offset 时区头,membership.me/convert/activate 回写用户时区
- 会员会员表新增
tz_min / black_day 列(自动迁移),30 分钟自动结算与排行榜/管理后台仅做奖励补算,不触发黑扣
- 体验会员规则文案与弹窗说明同步为「当地 23:30 结算」
v2.6.22026-09-04
- 体验新增「还差 N 题」进度提醒:进入本轮最后 10 题时,顶部进度条提示「还差 N 道练满本轮,即可获得金色碎片」,并弹一次性提示(每轮阈值只提醒一次)
- 会员
/api/membership/me 新增 today_practice(今日已练题数)、next_gap(距本轮练满还差几题)、next_threshold(本轮练满阈值,确定性 21-27),前端据此在阈值前 10 题做出提醒
v2.6.12026-09-03
- 体验练满一轮获得金碎片时弹出「抽奖转盘」庆祝动画,转盘转动后展示获得数量,用户立即感知奖励到手
- 修复首页 HTML 缓存策略改为
no-cache, must-revalidate,修复手机经免密直达打开时命中旧页面缓存、表现无登录的问题(此前 HTML 被缓存 10 分钟)
- 会员
/api/membership/me 新增 day_reward 当日已发放练满奖励快照,供前端探测整轮完成(服务端幂等,不重复发奖)
- 文档新增
DEVELOPER_GUIDE.md:功能、接口、数据表与关键函数速查,后续开发可直接查表
v2.6.02026-09-02
- 登录新增「免密直达登录链接」:管理员可在后台为每个账号开放免密,开放后生成独立直达链接(
?pass=),用户打开即可免密码自动登录
- 会员开通的账号在会员中心可见并生成/复制自己的免密直达链接;管理员账号默认开放
- 后台管理面板每账号显示免密状态,可一键开放/关闭并复制分发链接;关闭后旧链接即时失效
- 安全直达链接 token 为随机高熵值,仅对本人账号有效;关闭可见性即清空 token,保证旧链接不可再用
v2.5.02026-08-31
- 会员钻石系统全面改版:每日练习每凑满一轮随机 21-27 道触发一次,随机奖励 1-3 金碎片(按用户+日期+轮次确定性种子,同日重复结算只补差额不重复发放)
- 兑换金碎片 ≥21 即进入可兑换状态,新增「兑换黄钻」:消耗 21 碎片升级一级(首次=一级、再兑=二级…),剩余碎片保留
- 掉级断档 ≤3 题生成 3-5 黑色碎片 1:1 吃金碎片;碎片耗尽后黄钻按等级保留天数(grace_days = 等级数:一级 1 天、二级 2 天…)宽限,超过即降一级;新手(白钻)断档每日仅损 1 碎片
- 密钥7/14 天密钥期内每日保底 +1 金碎片且免疫黑色侵袭;密钥不再决定钻石颜色,白钻=未兑黄钻(显示金碎片数)
- 前端会员中心新增可兑换提示与兑换按钮、白钻+金碎片数徽章、规则文案更新;移除「连续练满天数」概念;排行榜初级玩家显示白钻+数字
- 后台新增
POST /api/membership/convert 兑换接口,管理员账号列表去掉 streak 字段
v2.4.02026-08-29
- 主题新增明暗双主题:右上角太阳/月亮按钮切换,
localStorage 记住偏好,默认浅色;页面首屏防闪烁(FOUC)
- 录音重构为四态状态机 idle / recording / recorded / playing;移除原先独立的「录制我的回答」入口按钮,改由下方固定 172×44 的录音按钮统一承担(空闲时显示「点击开始录制」)
- 录音进度逐帧填充(rAF)、满 120s 自动停止、录制 <1s 判定为误触并丢弃、长按 3 秒清除录音并重新录制(红色「蓄力」光圈提示)、页面隐藏自动保存停止、开始/停止震动反馈
- UI参考回答按钮主题化(accent-2 配色,非绿色),仅录完或播放中显示;按钮行在任意状态不位移
- 提示录制完成后的弹窗提示改为可开关设置(更多菜单内):默认关闭,每天仅前 2 个新词提示;开启后每次都提示;重录已完成题不再弹窗
- UI移除右下角浮动版本角标,仅保留页脚不显眼的版本号
- 适配播放按钮在平板等中等宽度屏幕下放大(62px),避免在大屏上显得过小
- 进度修复刷新/换设备后回到第 1 题:复习位置(POS_KEY)纳入账号云端同步,登录后拉取云端自动恢复上次进度
- 体验每天首次进入弹出「欢迎回来」小窗,显示上次复习到第几题,点击可一键继续
- 总览热力图上方新增「上次复习到:第 X 题」注释,点击直接跳转;浅色下热力图空白格调淡,视觉更轻
- UI隐藏答案时的遮罩优化:去掉锁形 emoji,改为柔和浅色渐变(贴合主题)、虚线边框提示,白色更轻不刺眼
v2.3.02026-08-23
- 架构后端从 Python(server.py)整体迁移到 Node.js(server.js),零第三方依赖:node:http + node:sqlite + node:crypto + 自写 SMTP
- 兼容全部接口、数据库结构、密码哈希算法(PBKDF2 120k 迭代)逐一对齐,现有账号与进度数据(brand9.db)无需迁移直接可用
- 启动改为
npm start 或 node server.js(需 Node.js ≥ 22.5)
v2.2.02026-08-23
- 页脚移除 “edge-tts · 4 口音轮换” 字样,改为可点击的版本号,跳转本更新历史页
- UI录制结束后「标记已完成」自动变为实心绿“✅ 今日已完成”,Part 1 也实时刷新,无需手动点击
- 体验刷新或关闭页面后,自动恢复到上次所在的标签页与具体题号(本地续学)
- 后台新增管理员后台 /admin.html:账号增删改、重置密码、备注/邮箱
- 注册注册机 SMTP(QQ 邮箱 + 授权码)改为后台配置并入库,修复注册验证码发不出的问题
- 稳定修复带斜杠题目标签的参考答案播放、移除 audio 的 crossorigin;录音结束自动记录练习进度
v2.1.0基线版本
- Part 1 / Part 2&3 题库浏览与答题
- edge-tts 参考答案音频、用户录音与回放
- 练习日志记录、总览热力图、收藏、答案显隐
- 页面版本徽标(#verBadge)