Skip to content

Releases: aymwoo/OpenLearn-Next-V2

v0.2.3 Release

Choose a tag to compare

@aymwoo aymwoo released this 30 Jul 01:00

Release Notes v0.2.3

发布日期: 2026年7月30日

主要更新

1. 课程管理功能增强 (CourseManagement.tsx)

  • 图标工具栏: 课程卡片顶部新增预览/编辑、复制、删除快捷图标按钮。
  • 筛选 Chips 快捷过滤: 支持按选课人数(>0)、内容非空及创建时间(本月)一键过滤课程。
  • 乐观 UI 复制体验: 点击复制立即生成带 Loading 状态的占位卡片,后端复制完成后自动刷新。
  • 级联删除警示确认: 删除课程前展示受影响的白板元素、排课计划、选课记录与作业数量,防止误删。

2. 交互白板扩展注册表 (Whiteboard Registries)

  • FullscreenRendererRegistry: 提供统一的第三方插件全屏渲染注册表,支持动态识别 code、markdown、question、equation 等组件。
  • PropertyEditorRegistry: 提供统一的右侧属性面板自定义属性编辑器注册表,插件可通过 register(type, component) 自定义组件参数配置。

3. 插件宿主架构与文档全量升级

  • 架构版本统一: 平台版本、宿主 API 版本及文档版本统一升级至 0.2.3
  • Sphinx 官方文档完善: 补充 plugin-manifest-spec.md(完整 Manifest 规范)与 existing-plugins-guide.md(7 大内置范例插件拆解指南)。

版本说明

  • 平台 openlearn-next 升至 0.2.3
  • @openlearn/plugin-sdk 保持 ^3.4.3

v0.2.2 - Whiteboard Registries & Course Management

Choose a tag to compare

@aymwoo aymwoo released this 29 Jul 22:40

Features

  • FullscreenRendererRegistry: Extensible fullscreen views via register(type, component). Smart default renderer detects data fields (code/markdown/question/text/url/coursewareUuid/equation). Fullscreen overlay portals to document.body with fixed viewport coverage.
  • PropertyEditorRegistry: Plugin-customizable whiteboard property panels via register(type, component). Data-driven API with updateData(partial).
  • Course Management: Filter chips (enrollment, content, this-month), icon toolbar (View/Copy/Delete), delete with stats confirmation dialog, copy with optimistic UI.
  • Backend: DELETE /api/lessons/:id, GET /api/lessons/:id/stats, POST /api/lessons/:id/clone

Fixes

  • Stale closure in fetchLessons causing navigation to always redirect to first course
  • Drag-and-drop from palette failing when existing components on canvas

Docs

  • docs/reference/plugin-ui-extension-slots.md: Added fullscreen and property editor registry APIs
  • docs/whiteboard/whiteboard-runtime.md: Comprehensive architecture documentation

v0.1.15 - Patch Release

Choose a tag to compare

@aymwoo aymwoo released this 27 Jul 06:48

Features

  • Remote Plugin Update Detection: Replace hardcoded market data with dynamic version checking via git ls-remote (fallback to GitHub/Gitee Releases API) and semver comparison; add updateSource field to plugin manifest (@openlearn/plugin-sdk@3.4.3); add per-plugin "检查更新" button with server-first download and client-side fallback; support pre-release version badges.
  • Dashboard Quick Access: Make the brand logo/name area clickable to return to the dashboard; add an explicit "系统总览" / "Dashboard" nav button in the top header bar with active-state highlighting.
  • Whiteboard Toolbar Docked: Move the interactive whiteboard drawing toolbar from a centered floating overlay into the top white area as a docked, left-aligned bar with a bottom border separator.
  • Admin Panel Monitoring Consolidation: Move "SQLite 数据库健康体检" and "分布式操作系统硬件状况" cards from the "学校教职及系统配置" tab into the "系统监控" tab, consolidating all system health metrics under one monitoring view.
  • Plugin Center ZIP Install Relocated: Move the ZIP drag-and-drop install area from the plugin store grid into the "发现" tab header bar.

Fixes

  • Agent Intro Crash: Fix Cannot read properties of undefined (reading 'agentIntro') crash by adding a safe fallback when the language key is unrecognized.
  • Repository URL: Fix incorrect repository URL in package.json from github.com/openlearn/openlearnv2 to github.com/aymwoo/OpenLearn-Next-V2.

openlearn-next v0.1.13

Choose a tag to compare

@aymwoo aymwoo released this 26 Jul 09:03

openlearn-next v0.1.13

Patch release — in-place plugin update + resilient Worker activation.

Features

  • In-place plugin update: `plugin.update_zip` command + `updatePluginFromZip` API preserve plugin UUID, config and data on upgrade (`42f8759`)
  • Server update endpoints: `POST /api/plugins/:id/update-zip-raw`, `x-install-mode: update` on install, `GET /api/plugins/by-manifest/:manifestId` (`c10b123`)
  • Install wizard update mode: version compare, downgrade/in-use guards, locked target plugin (`53a8658`)

Fixes

  • Resilient Worker activation timeout: 60s default with sliding `activate-progress` heartbeat; configurable via `OPENLEARN_WORKER_ACTIVATE_TIMEOUT_MS` / `OPENLEARN_WORKER_ACTIVATE_TIMEOUT_PROGRESS_SLIDE_MS` (`c6a9730`)
  • Plugin SDK sync: type-only facade re-exports + synced `.d.ts` token exports (`9d0d793`); published as `@openlearn/plugin-sdk@3.4.2`

Docs

  • Plugin-dev reference: DI token dictionary, capability/permission matrix, UI extension slot props, database API, host shared-deps, in-place update & distribution flow

Misc

  • PluginCenter refresh after ZIP install; DB UUID return + executionMode honor on raw install; spotlight state-event forwarding; agent artifact .gitignore

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:* 自动关联。

OpenLearn V2 v0.1.11

Choose a tag to compare

@aymwoo aymwoo released this 25 Jul 03:32

[0.1.11] - 2026-07-25

Features

  • Plugin system (P7-A2): complete the unified plugin runtime refactor — wire real
    capabilities into PluginCapabilityGateway, integrate plugin lifecycle via unified
    facades, surface unified plugin facades (IPluginLifecycleManager,
    IPluginDistributionManager, IUnifiedExtensionRegistry, …) into
    PlatformServiceRegistry, and expose them through @openlearn/plugin-sdk. (#e435bba, #475e9e1, #163b1fe, #6b8153e, #1b13eba)
  • User menu & profile: collapse the top-right username / secure-logout area into a
    circular avatar button with a dropdown (Profile / Logout); profile modal supports
    editing the display name; password-change flow added (teacher + student). (#f818550, #86e7e25, #4fd9e91)
  • Class list summary: class management list now shows per-class summary chips —
    student count, course count (schedules), assignment count — without expanding the row. (#4451d5b)
  • Dashboard Activity Center: live in-progress status, pause/resume and
    enter-classroom controls, light theme. (#bfecccc, #e1d9ecb)
  • Class roster: add list view mode and grid layout. (#05ea25e)
  • Navigation: optimize platform navigation with grouped categories, badge support,
    and a registry adapter. (#2242613)
  • Routing: reflect the active page in the browser address bar via hash routing. (#506f617)
  • Docs: official documentation architecture upgrade to a 25-folder taxonomy; refactor
    the plugin-development AI Skill guide to the latest V2 architecture. (#7e62138, #cd31c3a)

Fixes

  • Dashboard Activity Center: resolve perpetual loading of the widget. (#cca16b9)
  • plugin-sdk build: externalize npm dependencies in the SDK bundle so it no longer
    throws Dynamic require of "path" at runtime. (#b50392e)

Chores / Docs

  • Purge non-system plugin artifacts and clean up the plugin build manifest
    (remove quiz-pro and other purged plugin entries). (#1b71c21, #690c704, #1ff7f59)
  • Bump @openlearn/plugin-sdk references to 3.4.1 and document the P7-A2 unified
    plugin services; publish @openlearn/plugin-sdk@3.4.0. (#5070506, #7d04c73)
  • Add platform foundation audit report, navigation (PF-02) audit report, and a
    documentation quality review report. (#2e9b494, #c4ee1c8, #c272d6f)
  • Purge obsolete historical sprint reports / RFC drafts and synchronize docs with the
    implementation. (#1b5662c, #543bd17)
  • Add Plugin System Refactor Proposal (P7-A2). (#c53bd3d)