Hotfixes into unstable - #6184
Merged
rtibbles merged 16 commits intoSep 25, 2026
Merged
Conversation
Some ChannelVersion rows were backfilled with duplicate license IDs by a past one-off migration command, causing repeated license chips/names to show in the community library submission and review UIs. Dedupe defensively in the two viewset read paths that serve this field, rather than backfilling the affected rows. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…table Navigating back to the admin Channels table (e.g. after opening a channel and using the browser back button) reset the status filter even though it was correctly restored from the URL. An immediate watcher unconditionally overwrote it to the first available option on every mount instead of only defaulting when the filter is actually unset. Since the status filter is derived from the current channel type's options, a status no longer valid for a new type already reads back as unset, so a single "is it set" check covers both the type-change reset and back-navigation preservation. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The fixed width clipped longer status labels. Let it size to content. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…laneous-fixes Community Library miscelaneous fixes
…-version-included-licenses-dedup Dedupe ChannelVersion.included_licenses in API responses
…ication-email Add ability to send a notification email on review of community libra…
A version whose Community Library submission is live is now readable by anyone. Every other version stays scoped to the channel's editors, viewers and admins, so private and Kolibri Library channels are unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P3rKRVLMe9qtMVMHG1N8N9
… users Both library tabs now render without an account, and the contribute banner is hidden for visitors who have no channels to submit. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P3rKRVLMe9qtMVMHG1N8N9
Show the Community Library to signed-out visitors
`get_effective_disk_space()` was only read for display, so uploads and publishes were still checked against the admin-granted `disk_space` alone and a subscriber hit a 412 on space they had paid for. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xxy9NqytrugNq59yquMRBA
…torage_quota Count subscription storage towards the upload quota
Let PasswordResetConfirmView.dispatch gate the form so the token is validated from the session, and post the new password to the set-password URL instead of the emailed token. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EZoTHtTrhSDCJsx4PA2AXu
Use Django's built-in password reset confirm flow
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Merge down hotfixes into unstable
Conflicts:
Kept unstable's
StudioNavigation; ported the signed-out tabs from hotfixes intonavigationTabs.References
Conflicting change: #6097
Reviewer guidance
/channels/#/community-library— the nav shows only Kolibri Library and Community Library, and the page stays on Community Library./channels/#/my-channels— the nav shows all seven tabs, including My organizations and Collections.axe (AA): one serious color-contrast violation on the intro link button; none in the nav.
AI usage
Used Claude Code to resolve the conflict and draft the PR description. Verified with the channelList Jest tests, pre-commit, and manual QA in a browser.
🤖 Generated with Claude Code
https://claude.ai/code/session_01E4JCqHREMps4bpLoU73BtS