Releases: YJLZSL/polaris-learn
Releases · YJLZSL/polaris-learn
Release list
v0.4.0
Full Changelog: v0.3.0...v0.4.0
Full Changelog: v0.3.0...v0.4.0
v0.3.0 打磨·测试·发布
v0.3.0 打磨·测试·发布
灵犀学院 v0.3.0 — 灵动丝滑 + 功能验证版本
🎨 四大方向优化
1. 仓库版本序列治理
- 删除 fork 前遗留的 5 个旧 GitHub Release(v1.0.0 / v2.0.0 / v2.1.0 / v3.0.0 / v5.0.0)
- GitHub Releases 现仅保留本项目实际发布的版本(v0.2.0 / v0.3.0)
2. 美术细节继续打磨
- Hero 共享元素动画:首页吉祥物 → 学习路径页 / 对话页视觉延续(
MascotHero包装器 +flightShuttleBuilder,SpringMotion.gentleSpeed曲线) - 按压微交互:
LingxiButton按压 scale 0.96 + 阴影从 subtle 抬升至 elevatedLingxiCard按压 scale 0.99 + 阴影抬升(仅可点击卡片)LingxiChip选中态AnimatedSwitcher+ scale 0.95
- 暗色模式 trueBlack 策略:OLED 屏幕背景
0xFF000000,语义色亮度提升确保 WCAG AA 对比度 - 空状态插画升级:
_TwinklingStar→_ParticleField(7 个粒子,circular / spiral / parabolic 三种轨迹,LingxiGradients.celebration渐变色,两层RepaintBoundary隔离)
3. 动画丝滑深度优化
- SpringMotion fastSpeed 微调:damping 53 → 54,settle time 151ms → 148ms(完全符合 Material Motion 3 规范 ≤150ms)
- 列表滚动性能:
chat_list_page/notes_page/learning_path_page添加cacheExtent: 500+RepaintBoundary隔离复杂列表项 - PageView 滑动手感:
BouncingScrollPhysics三端统一 iOS 风格回弹 +reduceMotion时降级为按钮切换 - GoRouter 页面过渡统一:
slideFadeTransitionBuilder+SpringMotion.entranceCurve,14 个 GoRoute 一致过渡,三端共享同一套时长与曲线常量
4. 测试补全与功能验证
新增 10 个测试文件,149 个测试用例:
| 测试文件 | 用例数 | 覆盖范围 |
|---|---|---|
mascot_controller_test.dart |
16 | 6 种情绪切换 + 彩蛋触发 + mounted 检查 |
mascot_widget_test.dart |
20 | 6 情绪渲染 + 点击交互 + 尺寸 |
streak_service_edge_test.dart |
15 | 跨日边界 + 时区 + 断档重置 |
confusion_detection_service_test.dart |
18 | 困惑检测阈值 + 降级 + 重置 |
spaced_repetition_service_test.dart |
18 | 复习队列 + 间隔重复算法 |
recommendation_service_test.dart |
16 | 推荐引擎 + 完成率 |
course_level_extensions_test.dart |
16 | L0-L4 级别色映射 |
spring_motion_test.dart |
14 | 6 档弹簧参数 + reduceMotion 降级 |
lingxi_button_test.dart |
8 | 按压动画 + 禁用态 |
lingxi_card_test.dart |
8 | 阴影层级 + 按压反馈 |
静态代码审查通过:
- 19 个文件使用
AnimationController,30 个文件含 106 处dispose()调用,无泄漏 - 16 个文件使用
Future.delayed,14 个含mounted检查(2 个无 UI 状态文件豁免) - 7 个文件共 21 处
RepaintBoundary,持续动画全部隔离
📚 文档同步
AGENTS.md新增"版本演进历史"+"60fps 监控方法"章节docs/代码百科.md扩充 motion/ 章节(5 子章节)+ 测试体系(149 用例清单)README.md版本徽章 v0.3.0 + 新增"动画亮点"展示
⚠️ 验证限制说明
本机 Flutter SDK 不可用(路径 C:\Users\23501\AppData\Local\Temp\flutter\bin\flutter.bat 不存在),无法运行 flutter analyze / flutter test / flutter build 最终验证。
推荐 CI 验证方式:
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs
flutter analyze
flutter test --coverage本次 Release 不附带构建产物(仅源代码 Release),待 CI 环境验证通过后可补充构建产物。
🔒 安全红线
SecureStorageService逻辑未修改SecureLogInterceptor脱敏逻辑未修改ProviderConfig.toJson()仍跳过 apiKey 字段DataExportService中的assert(!json.containsKey('apiKey'))断言仍存在database.dart的storeDateTimeAsText: true未被修改.gitignore中敏感文件条目未被移除
📦 升级指南
git clone https://github.com/YJLZSL/polaris-learn.git
cd polaris-learn
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs
flutter runFull Changelog: v0.2.0...v0.3.0
v0.2.0 - 美术与动画全面优化
灵犀学院 v0.2.0 — 美术与动画全面优化
本次版本聚焦视觉品质与动画流畅度两大方向,对主题系统、吉祥物、页面视觉层次、动画曲线进行系统性升级,让"灵动丝滑"成为灵犀学院的核心体验。
🎨 四大优化方向
1. 主题系统加固
- 新增
LingxiGradients.dark实例:6 个语义渐变(mascotHero / streakFire / achievementGold / primarySurface / celebration / success)全部提供深色调适配,暗色模式视觉协调 - 校准
LingxiColors.dark对比度:streakFire与achievementGold调亮以满足 WCAG AA ≥ 4.5:1 标准 - 重构
LingxiElevations:新增 subtle / elevated / highlighted 3 档语义阴影,统一应用到LingxiCard,移除AnimatedPhysicalModel改用BoxDecoration.boxShadow
2. 吉祥物视觉升级
_MascotPainter精细化绘制:身体改用径向渐变(mascotPrimary → 深紫),角部高光反射,眼睛瞳孔高光点- 6 种情绪状态差异化:
idle:眨眼 + 瞳孔高光happy:弧形眼 + 跳跃thinking:问号浮动呼吸sad:泪滴沿脸颊滑落动画celebrate:10 粒子 × 4 段拖尾辐射curious:放大镜光泽弧线
_AuraGlow光环优化:使用LingxiGradients.mascotHero渐变,4 秒呼吸脉动(scale 0.95→1.05),RepaintBoundary隔离避免重绘整个 MascotWidget
3. 页面视觉层次
- 首页:hero 区 24/18/14 字号梯度,吉祥物响应式尺寸(桌面 200px / 移动 160px),快捷入口 48×48 圆角方形 + 语义色背景
- 学习路径:CourseLevel 颜色扩展(L0-L4 各一色),4px 级别色条,渐变进度条,连接线 dashOffset 流光动画
- 对话页:消息气泡差异化圆角(user 右下 4px / assistant 左下 4px),三段式波浪打字指示器,苏格拉底开关
AnimatedSwitcher图标过渡 - 课时页:进度条容器间距 12→16,测验反馈用
LingxiGradients.success与misconceptionRed渐变,选项按钮 scale 0.98 按压反馈
4. 动画流畅度
SpringMotion6 档对齐 Material Motion 3:micro ≤ 100ms / fast ≤ 150ms / default ≤ 200ms / gentle ≤ 250ms / slow ≤ 300ms / bouncy ≤ 350msbouncyCurve修复 t=0 跳变 bug:原分段函数返回 0.5,改用阻尼振荡解析公式,超调 8.94%ChatController动态节流:首 token 立即刷新 / 后续 50ms 节流 / 结束强制刷新,确保流式响应即时可见且无丢失- staggered 入场动画:
LearningPathPage课程卡片 50ms 延迟交错入场 - PageView 切换过渡:
LessonPage知识点切换添加TweenAnimationBuilder淡入 + scale 0.98→1.0 reduceMotion降级:所有动画在MediaQuery.disableAnimations为 true 时正确降级为即时切换
🔧 修复与清理
- 修复
page_transitions.dartL67 语法错误:];→);(原代码会导致编译失败) - 16 处
AnimationController审计:vsync 与 dispose 全部合规 - 文档全部中文化:架构设计.md / 前端重设计指南.md / 吉祥物设计.md / 代码百科.md
ProviderType重构为 enhanced enum:持有defaultBaseUrl与defaultModel属性- 移除未使用依赖:lottie / flutter_svg / flutter_highlight / intl / sqlcipher_flutter_libs / riverpod_annotation 等
mascot_painter.dart合并到mascot_widget.dart:_MascotPainter作为私有内部类- 删除冗余
.gitkeep与冗余文档(HANDOVER.md / ci-badge-urls.md / lingxi-academy-ui-redesign-plan.md)
📚 文档同步
AGENTS.md新增"主题系统约定"子章节docs/代码百科.md更新主题模块与吉祥物模块描述README.md简化与美化,修复 GitHub 链接kAppVersion与pubspec.yaml版本号升级至0.2.0
⚠️ 已知限制
- 本机 Flutter SDK 不可用,无法运行
flutter analyze/flutter test/flutter build验证,建议在完整 Flutter 环境中执行最终回归测试 - 本 Release 不附带构建产物(无 APK / Windows / macOS 二进制),仅源代码 Release
- 吉祥物 Rive 动画资源仍未完成,
_MascotPainter作为 fallback 实现
📦 升级指南
git pull origin main
git checkout v0.2.0
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs
flutter run🙏 致谢
感谢 Material Motion 3 提供的动画规范参考,感谢所有为开源社区做出贡献的开发者们。
Full Changelog: eb63a74...v0.2.0