refactor: 更新URL哈希处理逻辑 feat: 添加聊天消息存储支持 docs: 更新API控制器基类文档 chore: 删除无用脚本文件 fix: 修复分类模型返回类型问题 feat: 添加回执登录功能 build: 更新依赖项配置 style: 统一HTML模板中的哈希ID引用格式 ci: 添加部署和检查脚本
7.2 KiB
Changelog
所有重要变更均记录于此文件。格式基于 Keep a Changelog。
[1.40.0] - 2026-04-30
🔐 v8.0.0 用户安全接口升级 — 回执验证替代邮箱验证码
重大变更:
-
🔑 回执(Receipt)验证机制 — 客户端自行验证邮箱后生成HMAC-SHA256回执,服务端验签放权
- 新增
ReceiptHelper工具类:生成 receipt+sig,支持6种action类型 - 密钥:
Xy7kP9mL2qR4wS8v,有效期300秒,nonce防重放
- 新增
-
📧 新增回执登录(receiptLogin) — 账号+回执+签名,无需密码
- 支持用户名/邮箱/手机号 + 回执登录
- 本地SMTP发送验证码 → 验证通过 → 生成回执 → 登录
-
📝 注册流程变更 — 移除emailCode参数,改用receipt+sig
- 客户端本地验证邮箱(通过SMTP发送验证码)
- 验证通过后自动生成回执提交注册
-
🔐 密码管理变更 — 修改密码/重置密码改用回执验证
- changepwd: 非测试用户需receipt+sig (payload=userId)
- resetpwd: 必须receipt+sig (payload=邮箱或手机号)
-
📧📱 邮箱/手机变更变更 — 改用回执验证替代captcha
- changeemail: receipt+sig (payload=新邮箱)
- changemobile: receipt+sig (payload=新手机号)
-
🎯 LoginPage三种登录方式 — 密码登录/验证码登录/Token登录
- CupertinoSlidingSegmentedControl切换登录模式
- 验证码登录: 本地SMTP发送验证码 + 回执登录
- Token登录: 直接使用Token令牌
-
📨 EmailService — 本地SMTP发送验证码邮件
- 使用mailer库 (free.mboxhosting.com:465 SSL)
- Apple风格HTML邮件模板
- 5分钟有效期验证码
API测试验证: 10/11 通过 (1个失败为业务逻辑正常行为)
修改文件:
lib/core/utils/receipt_helper.dart— 🆕 HMAC-SHA256回执生成工具lib/features/auth/services/email_service.dart— 🆕 本地SMTP验证码服务lib/features/auth/services/user_security_service.dart— 回执验证+receiptLoginlib/features/auth/services/auth_service.dart— 同步参数变更lib/features/auth/providers/auth_provider.dart— 移除emailCode,改用receiptlib/features/auth/presentation/login_page.dart— 三种登录方式+注册验证码pubspec.yaml— 新增 mailer: ^7.1.0Script/receipt_api_test.dart— 🆕 v8.0.0回执API测试脚本
[1.39.0] - 2026-04-30
🎴 卡片震动/Slidable冲突修复/分类切换优化
变更:
-
📳 卡片切出震动反馈
- 卡片左右滑出时触发HapticFeedback.mediumImpact()
-
🔒 Slidable与分类切换冲突修复
- AppSlidable改为StatefulWidget,内部持有SlidableController
- 新增onOpened/onClosed回调,追踪Slidable打开/关闭状态
- HomePage通过_slidableOpenCount计数器追踪打开的Slidable数量
- Slidable打开时禁止Listener触发分类切换,避免操作按钮未完全呼出就切换分类
- 操作按钮完全呼出后(Slidable关闭),才允许右滑切换分类
-
🤝 卡片与Slidable滑动冲突解决
- 卡片区域(offset<250)水平滑动不触发分类切换
- Slidable打开时水平滑动不触发分类切换
- 垂直滚动时不会误触分类切换
修改文件:
lib/features/home/presentation/home_daily_card.dart— 卡片切出震动反馈lib/features/home/presentation/home_page.dart— _slidableOpenCount追踪、分类切换守卫lib/shared/widgets/app_slidable.dart— StatelessWidget→StatefulWidget、SlidableController、onOpened/onClosed回调
🚀 API功能全面接入(阶段三~六)
阶段三: 成就激励体系 (4/4 完成)
- 🏆 成就中心页 — 头衔进度+已达成/进行中列表+领取奖励
- 📝 学习打卡 — 6种打卡类型(诗词/成语/故事/名言/游戏/国学)+打卡记录
- 🎖️ 头衔系统 — 多级头衔展示+当前头衔高亮
- 🎁 奖励领取 — 成就达成后领取积分+弹窗提示
阶段四: 内容创作社区 (3/3 完成)
- 📝 文章广场 — 分类筛选+文章卡片+搜索
- ✏️ 文章编辑 — 标题+内容+摘要+分类+标签
- 📄 我的文章 — 管理已发布文章+删除+编辑
阶段五: 工具增强 (3/3 完成)
- 🔍 内容查重 — 精确/模糊/相似度/综合4种模式+5种数据源+风险报告
- 💰 金币记录 — 时间线展示积分变动+来源emoji
- 👤 公开用户主页 — 头像+昵称+头衔+积分+文章+收藏统计
ourceType
[1.31.0] - 2026-04-29
🚀 API功能全面接入(阶段一+阶段二)
阶段一: 基础补齐 (7/7 完成)
- 📚 个人学习中心页 — 仪表盘+每日推荐+热力图+统计
- 📅 签到增强 — 月历视图+补签功能
- 📖 国学经典专区 — 11种古籍分类+搜索
- 🏥 健康生活专区 — 6大健康分类+搜索
- 🎯 推荐偏好设置 — 7种内容类型偏好开关
- 💬 Feed互动增强 — 评论输入+评分+阅读时长
- 📊 数据可视化 — fl_chart折线图+饼图
阶段二: 游戏互动中心 (5/5 完成)
- 🎮 游戏中心主页 — 6大游戏入口
- 📝 诗词填空 — 选项填空+验证+计分
- 🔗 成语接龙 — 接龙链+输入验证+提示
- ❓ 谜语/脑筋急转弯/歇后语 — 揭晓答案+切换
- 🌸 飞花令 — 诗词含字接龙
新增文件:
lib/features/user_center/presentation/learning_center_page.dartlib/features/classics/— 国学经典模块(Service+Provider+Page)lib/features/health/— 健康生活模块(Service+Provider+Page)lib/features/game/— 游戏中心模块(Models+Service+4个Page)
修改文件:
lib/features/user_center/services/user_center_service.dart— 新增5个每日推荐APIlib/features/user_center/providers/dashboard_provider.dart— 扩展dailyRecommend状态lib/features/signin/presentation/signin_page.dart— 添加月历视图+补签lib/features/search/presentation/user_preference_page.dart— 添加内容偏好开关lib/features/home/presentation/home_sentence_card.dart— 添加评论输入lib/features/statistics/presentation/statistics_page.dart— 添加fl_chart图表lib/features/inspiration/services/tool_api_service.dart— 新增7个统计APIlib/features/inspiration/models/tool_item.dart— 添加国学/健康/游戏入口lib/core/router/app_router.dart— 新增4个路由(learning/classics/health/game)lib/features/profile/presentation/profile_page.dart— 添加学习中心入口pubspec.yaml— 添加fl_chart依赖
已归档版本
1.30.0(中国传统色页面增强重构) / 1.23.0(Phase A偷工减料修复+Phase B缺失功能补全) / 1.22.0(句子广场交互增强:间距优化/循环滚动/边缘光晕) / 1.21.0(Bug修复:数据管理卡死/Tab抖动/密码页/详情Sheet/字体管理) / 1.20.0 / 1.19.0 / 1.18.0 / 1.17.0 / 1.16.0 / 1.15.0 / 1.14.0 / 1.13.0 / 1.10.0 / 1.7.16 / 1.7.15 / 1.7.14 / 1.7.13 / 1.7.12 / 1.7.11 / 1.7.10 / 1.7.9 / 1.7.8 / 1.7.7 / 1.7.6 / 1.7.5 / 1.7.4 / 1.7.3 / 1.7.2 / 1.7.1 / 1.7.0 / 1.6.4 / 1.6.3 / 1.6.2 / 1.6.1 / 1.6.0 / 1.5.2 / 1.5.1 / 1.5.0 / 1.4.1 / 1.4.0 / 1.3.0 / 1.2.0 / 0.28.x / 0.27.0 / 0.26.0 — 详见 git history