Skip to content

Releases: YJLZSL/polaris-learn

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 24 Jul 04:42

Full Changelog: v0.3.0...v0.4.0

Full Changelog: v0.3.0...v0.4.0

v0.3.0 打磨·测试·发布

Choose a tag to compare

@YJLZSL YJLZSL released this 23 Jul 14:18

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 包装器 + flightShuttleBuilderSpringMotion.gentleSpeed 曲线)
  • 按压微交互
    • LingxiButton 按压 scale 0.96 + 阴影从 subtle 抬升至 elevated
    • LingxiCard 按压 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.dartstoreDateTimeAsText: 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 run

Full Changelog: v0.2.0...v0.3.0

v0.2.0 - 美术与动画全面优化

Choose a tag to compare

@YJLZSL YJLZSL released this 20 Jul 16:21

灵犀学院 v0.2.0 — 美术与动画全面优化

本次版本聚焦视觉品质动画流畅度两大方向,对主题系统、吉祥物、页面视觉层次、动画曲线进行系统性升级,让"灵动丝滑"成为灵犀学院的核心体验。

🎨 四大优化方向

1. 主题系统加固

  • 新增 LingxiGradients.dark 实例:6 个语义渐变(mascotHero / streakFire / achievementGold / primarySurface / celebration / success)全部提供深色调适配,暗色模式视觉协调
  • 校准 LingxiColors.dark 对比度streakFireachievementGold 调亮以满足 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.successmisconceptionRed 渐变,选项按钮 scale 0.98 按压反馈

4. 动画流畅度

  • SpringMotion 6 档对齐 Material Motion 3:micro ≤ 100ms / fast ≤ 150ms / default ≤ 200ms / gentle ≤ 250ms / slow ≤ 300ms / bouncy ≤ 350ms
  • bouncyCurve 修复 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.dart L67 语法错误];);(原代码会导致编译失败)
  • 16 处 AnimationController 审计:vsync 与 dispose 全部合规
  • 文档全部中文化:架构设计.md / 前端重设计指南.md / 吉祥物设计.md / 代码百科.md
  • ProviderType 重构为 enhanced enum:持有 defaultBaseUrldefaultModel 属性
  • 移除未使用依赖: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 链接
  • kAppVersionpubspec.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