Skip to content

v0.1.12 - Interactive Whiteboard Multi-Page System & Student Points Ledger

Choose a tag to compare

@aymwoo aymwoo released this 26 Jul 00:50

Release Notes v0.1.12

发布日期: 2026年7月26日

主要更新

1. 互动白板多页系统重构与体验优化 (Whiteboard Pagination System)

  • 解耦设计意图与强隔离: 厘清白板 P1, P2, P3 分页与课程环节 (Lesson Segments) 的映射关系。白板 P1, P2, P3 作为独立多页画布(多场景/多环节板书隔离),重写 currentPagepageId 的渲染过滤逻辑,彻底解决在环节激活状态下组件和笔画跨页覆盖与污染的问题。
  • 全套页面管理 (CRUD): 支持双击页码按钮或下拉菜单重命名页面、一键复制当前页及其画布组件(带坐标偏移)、安全删除页面(带二次确认警示及保底逻辑)与拖拽/左右移动重排序。
  • 页面大纲与缩略图抽屉 (Page Outline & Thumbnail Drawer): 在底部导航栏增加大纲控制按钮,可一键唤起全套白板页面的高颜值网格缩略卡片,直观展示各页组件与笔画数量并支持快速跳转。
  • 结构化持久化与 Socket.IO 多端同步: 白板页面配置持久化保存至 page_meta 配置元素中,结合 Socket.IO whiteboard-update 实时推送 page-changepage-meta-update 事件,确保全班师生切页与大纲更新秒级同步。
  • 顶部工具栏 UI 精效化: 将顶部工具栏中的“AI 助教”按钮重构为与其他工具完全一致的精简图标按钮(<Wand2 size={16} />),提升工具栏空间利用率与视觉一致性。

2. 学生积分与学期末总积分架构重构 (Student Points Ledger & Semester Grading)

  • 统一积分流水日志 (Points Audit Ledger): 新增 student_point_logs 数据库日志表,记录每笔积分变动的学生、插件来源、维度、变动分值、原因及时间戳,并通过 EventBus (points.awarded) 和 Socket.IO 实时推送到前端成长轨迹。
  • 动态积分维度注册表 (Points Dimension Registry): 引入 IPointsDimensionRegistryToken,支持内置维度(考勤出勤分、学习进度分、平时作业分、期末/大考得分)及第三方插件动态注册新积分维度(如 AI 练习分、互动抢答分、互评贡献分)。
  • 学期末总积分动态加权计算与归档: 重构 /api/classes/:classId/semester-summary 引擎,支持动态加载已注册维度的班级权重进行标准化求和,并将 dimension_scores 结构化快照存档至 student_semester_reports
  • Plugin SDK 接入支持: 在 @openlearn/plugin-sdk 导出 IPointsDimensionRegistryTokenIPointsLedgerServiceToken,使插件开发者可无缝注册积分维度与记录积分变动。

3. 测试与验证 (Tests & Verification)

  • 新增互动白板多页隔离与页面 CRUD 单元测试 src/features/whiteboard/__tests__/whiteboard-pagination.test.ts (6/6 tests passed)。
  • 新增积分流水与维度注册表单元测试 packages/core/di/__tests__/points-ledger.test.ts (6/6 tests passed)。

版本说明

  • 平台 openlearn-next 由 0.1.11 升至 0.1.12(patch)。
  • @openlearn/plugin-sdk 保持 workspace:* 自动关联。