Skip to content

Releases: learningequality/studio

v2026.05.28

28 May 21:06
30a0bf1

Choose a tag to compare

What's Changed

High level overview

This patch release includes several rich text editor fixes — dropdown behavior, autofocus when opening answer/hint editors, and linebreak rendering in Perseus — along with a security improvement in HTTP error responses and a double-scrollbar fix in Settings. Administrators can now filter users by Kolibri usage signals and export the results as a CSV.

Added

  • Add Kolibri-usage filters and CSV export to admin Users page by @rtibbles in #5922

Changed

  • Update content integration guide link in welcome_new_user_email template by @rtibbles in #5911
  • ci: bump pnpm/action-setup to v6.0.8 (hotfixes backport) by @akolson in #5941

Fixed

  • fix(security): replace str(e) and user-input echoes in HTTP responses with static messages by @rtibblesbot in #5918
  • Close RTE dropdowns on mousedown instead of click by @akolson in #5926
  • Removes double scrollbar in Settings > Storage by @akolson in #5920
  • Autofocus RTE when answer/hint editor opens by @akolson in #5921
  • update how linebreaks are saved so they render properly in perseus by @marcellamaki in #5904

Full Changelog: v2026.05.14...v2026.05.28

v2026.05.14

14 May 21:09
89a2796

Choose a tag to compare

What's Changed

  • Fixes issue with Stripe redirect after payment in production.

Supporting PRs:

Full Changelog: v2026.05.13...v2026.05.14

v2026.05.13

13 May 21:33
d39e5ca

Choose a tag to compare

What's Changed

High level overview

Easy Sharing of Community Channels lets channel editors share their channels with the broader Kolibri community. Editors submit a channel with country, language, and subject metadata, walk through a license audit to confirm their resources are shareable, and get notified when an admin reviewer approves the submission or asks for changes.

The question editor has been overhauled. Editors can now apply bold, italic, underline, and strikethrough; create ordered and unordered lists and headings; embed images, formulas, and links; and paste content from Microsoft Word and other editors with much less cleanup needed afterwards.

Added

New Feature: Easy Sharing of Community Channels

Channel editors can share their channels with the broader Kolibri community via admin review.

  • Submit a channel to the community library via a new Share button. Editors fill in country and description; languages and subjects are auto-populated.
  • License audit scans the channel at submission. Channels containing All Rights Reserved resources are blocked. Channels containing resources under licenses that require special permissions are flagged so admins can review the license description.
  • Admin review — admins filter submissions by community status, review any license descriptions flagged by the audit, add notes, and approve or request changes.
  • Notifications for all editors of a channel when a submission is approved or needs changes.
  • Resubmit prompt when a previously-submitted channel is republished.

A related draft channel publishing workflow sits behind the draft_channels feature flag — editors can publish a draft for testing in Kolibri without changing the live version of the channel.

List of supporting PRs
  • CommunityLibrarySubmission model by @Jakoma02 in #5156
  • Populate Country table by @Jakoma02 in #5168
  • CommunityLibrarySubmission viewset by @Jakoma02 in #5167
  • Save channel included categories and expose channel version history by @Jakoma02 in #5176
  • Add action to resolve Community Library Submissions by @Jakoma02 in #5178
  • Add to community library on submission approve by @Jakoma02 in #5228
  • Update channel logic to support publishing channel draft by @taoerman in #5241
  • Copy Side Panel Modal and add community channels strings file by @AlexVelezLl in #5216
  • Update channel publishing UX to support publishing channel draft versions by @taoerman in #5274
  • Community library submission fields and filters in AdminChannelViewSet by @Jakoma02 in #5292
  • Add bitmask fields for ChannelMetadata categories by @Jakoma02 in #5272
  • Ensure channel version database exists when adding to community library by @Jakoma02 in #5233
  • ESoCC: Update UIUX of admin ChannelTable to support new Community Library info by @Jakoma02 in #5370
  • Submit to Community Library panel by @Jakoma02 in #5405
  • Add a public filter to the kolibri-public's ChannelMetadata viewset by @taoerman in #5486
  • Prevent inconsistent states beteween public channels and community ch… by @taoerman in #5500
  • Info messages about previous submissions in create submission side panel by @taoerman in #5513
  • Add loader if channel is being published and community library side p… by @taoerman in #5523
  • Hide share button in TreeViewBase if user does not have permissions t… by @taoerman in #5550
  • Handle deletion of a Channel with a related Community Library Submission by @taoerman in #5551
  • Create license audit task and special permissions model by @taoerman in #5538
  • Show resubmit channel to community library CTA after channel publish by @taoerman in #5541
  • Community Library Notifications Filtering by @taoerman in #5566
  • Issue 5449 show license audit and special permissions checks by @taoerman in #5563
  • Create ChannelVersion model with token support by @taoerman in #5589
  • Refactor publish side panel by @AlexVelezLl in #5603
  • Use channelVersion objects instead of special permission ids by @taoerman in #5622
  • Temporarily hide draft button. by @rtibbles in #5652
  • [ESoCC] Command to create channel versions by @nucleogenesis in #5660
  • Compute license audit task results during publish workflow by @taoerman in #5665
  • Set distributable Special Permissions Licenses by @taoerman in #5681
  • Add migration command for channel versioned content databases by @ozer550 in #5692
  • Add Notifications page by @AlexVelezLl in #5610
  • Add submission details page by @AlexVelezLl in #5716
  • Show version history in the channel publish side panel by @AllanOXDi in #5721
  • Remove channelVersion object and database with version "next" when stale by @ozer550 in #5728
  • Show draft tokens in Studio by @AlexVelezLl in #5729
  • Add draft_channels feature flag by @AlexVelezLl in #5759
  • Add support for channel version tokens on v1 public channel endpoint by @AlexVelezLl in #5772
  • Community channels page by @AlexVelezLl in #5770
  • Update ChannelVersion size field type to FloatField by @AlexVelezLl in #5799
  • Review submission side panel by @Jakoma02 in #5630
  • Add details to submit panel about acceptance criteria by @marcellamaki in #5820
  • feat: add library field to v1 and v2 public channel APIs, gate v1 ChannelVersion lookup by @rtibblesbot in #5828
  • Update ESoCC strings after UX writing review by @marcellamaki in #5819
  • Add guards for channel version computed values by @AlexVelezLl in #5858
  • Robust solution for filtering unpublishable changes on frontend by @AlexVelezLl in #5844
  • Revert "Temporarily hide draft button." by @rtibbles in #5856
  • Update community library page by @AlexVelezLl in #5809
  • Fix duplicate community library submission by @AlexVelezLl in #5773
  • Fix add to community library change making channel publishable by @AlexVelezLl in #5825
  • Fix lookup not finding draft tokens by @AlexVelezLl in #5857
  • fix: populate draft ChannelVersion metadata during draft publishes by @rtibblesbot in #5841
  • fix: populate channel snapshot fields on draft ChannelVersion during draft publish by @rtibblesbot in #5851
  • fix: write version=0 in ChannelMetadata for draft publishes by @rtibblesbot in #5853
  • Fill the deploy-migrate command with ESoCC migrations by @AlexVelezLl in #5878

New question editor

The question editor has been overhauled.

  • Inline formatting: bold, italic, underline, and strikethrough.
  • Content structure: ordered and unordered lists, and headings.
  • Embeds: images, formulas, and links.
  • Paste from Microsoft Word and other external editors with significantly less cleanup.
  • Touchscreen-friendly toolbar on touch devices.
  • Improved accessibility: math formulas now announce themselves correctly in screen readers, including non-English locales.
List of supporting PRs
  • feat(texteditor): Markdown dual conversion for backward compatibility by @habibayman in #5189
  • feat(texteditor): Mobile view and responsiveness enhancements by @habibayman in #5220
  • feat(texteditor): completely replace old with new TipTap editor 🎉 by @habibayman in #5246
  • refactor(texteditor...
Read more

v2026.03.25

25 Mar 20:20
d7067ef

Choose a tag to compare

What's Changed

Full Changelog: v2026.03.16...v2026.03.25

v2026.03.16

16 Mar 23:21
0d3365b

Choose a tag to compare

What's Changed

  • Downgrade non-urgent _sort_by_order logging error to warning by @LianaHarris360 in #5712
  • Fix exercise extra_fields migration for non-m_of_n mastery models by @rtibbles in #5714
  • Update snackbar to use multiline overflow option by @marcellamaki in #5730
  • Add link to new DCMA form by @marcellamaki in #5738
  • Add additional completion to exercises that have already had their completion criteria fixed but their complete value is still wrong by @rtibbles in #5731

Full Changelog: v2026.02.18...v2026.03.16

v2026.02.18

18 Feb 21:23
e315609

Choose a tag to compare

What's Changed

This release makes our new AI-powered recommendations in search (previously in beta) available for all Studio users.

Pull Requests:

  • Remove ai_feature feature flag and ungate search recommendations by @rtibblesbot in #5695
  • Add management command for auditing missing sources by @bjester in #5711

Full Changelog: v2026.01.21...v2026.02.18

v2026.01.21

22 Jan 00:11
b888505

Choose a tag to compare

What's Changed

Full Changelog: v2025.12.02...v2026.01.21

v2025.12.02

02 Dec 22:26
e5d1416

Choose a tag to compare

What's Changed

  • Pin pip due to pip-tools incompatibility. by @rtibbles in #5518
  • Add focus trapping to resource preview side panel by @AllanOXDi in #5505
  • Adds defensive check when generating language text in the language dropdown by @akolson in #5465
  • Fix responsive issues when Importing from other channels within search recommendations by @AllanOXDi in #5542
  • Fixes folders or resources with missing title remain 'incomplete' after editing just the title by @AllanOXDi in #5539
  • Make 'updateDescendants' true by default by @marcellamaki in #5075

Full Changelog: v2025.10.29...v2025.12.02

v2025.10.29

29 Oct 23:35
69a1ff4

Choose a tag to compare

What's Changed

  • Adds defensive check when reading file_format on file object by @akolson in #5440
  • Adds defensive check when validating node title by @akolson in #5464
  • Fix focus ring on some buttons + confirmation dialogs not appearing for channel sharing operations by @MisRob in #5483
  • [Remove Vuetify from Studio] Buttons/links in Import from channels by @Abhishek-Punhani in #5467
  • Restore EPUB renderer height by @bjester in #5491
  • Renames dupilicate recommendations endpoint names by @akolson in #5506
  • Add file duration setting as migration task by @rtibbles in #5508

Full Changelog: v2025.10.06...v2025.10.29

v2025.10.06

06 Oct 23:44
aeb632b

Choose a tag to compare

What's Changed

  • Fix validation to allow upload of HTML5 files by @rtibbles in #5418
  • When creating exercises, default randomize to true as data. by @rtibbles in #5427

Full Changelog: v2025.9.29...v2025.10.06