[DO NOT MERGE]: unstable to hotfixes, Q1 major release#5750
[DO NOT MERGE]: unstable to hotfixes, Q1 major release#5750marcellamaki wants to merge 617 commits intohotfixesfrom
Conversation
#5550) * Hide share button in TreeViewBase if user does not have permissions to see any option * [pre-commit.ci lite] apply automatic fixes * fix linting * fix test file --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
…ion (#5551) * Handle deletion of a Channel with a related Community Library Submission * [pre-commit.ci lite] apply automatic fixes * fix code * [pre-commit.ci lite] apply automatic fixes * fix linting * fix code * fix code --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
…sdk-2.44.0 chore(deps): bump sentry-sdk from 2.42.0 to 2.44.0
Bumps [redis](https://github.com/redis/redis-py) from 6.4.0 to 7.0.1. - [Release notes](https://github.com/redis/redis-py/releases) - [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES) - [Commits](redis/redis-py@v6.4.0...v7.0.1) --- updated-dependencies: - dependency-name: redis dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
….0.1 chore(deps): bump redis from 6.4.0 to 7.0.1
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 28.14.0 to 29.1.0. - [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases) - [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md) - [Commits](jest-community/eslint-plugin-jest@v28.14.0...v29.1.0) --- updated-dependencies: - dependency-name: eslint-plugin-jest dependency-version: 29.1.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 2.44.0 to 2.45.0. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](getsentry/sentry-python@2.44.0...2.45.0) --- updated-dependencies: - dependency-name: sentry-sdk dependency-version: 2.45.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [mathlive](https://github.com/arnog/mathlive) from 0.105.3 to 0.108.2. - [Release notes](https://github.com/arnog/mathlive/releases) - [Changelog](https://github.com/arnog/mathlive/blob/master/CHANGELOG.md) - [Commits](https://github.com/arnog/mathlive/commits) --- updated-dependencies: - dependency-name: mathlive dependency-version: 0.108.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [pip-tools](https://github.com/jazzband/pip-tools) from 7.5.1 to 7.5.2. - [Release notes](https://github.com/jazzband/pip-tools/releases) - [Changelog](https://github.com/jazzband/pip-tools/blob/main/CHANGELOG.md) - [Commits](jazzband/pip-tools@v7.5.1...v7.5.2) --- updated-dependencies: - dependency-name: pip-tools dependency-version: 7.5.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
…5541) * Show resubmit channel to community library CTA after channel publish * [pre-commit.ci lite] apply automatic fixes * fix code * [pre-commit.ci lite] apply automatic fixes * fix code * [pre-commit.ci lite] apply automatic fixes * fix code * fix bug * fix code * fix code --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
…sdk-2.45.0 chore(deps): bump sentry-sdk from 2.44.0 to 2.45.0
…n/eslint-plugin-jest-29.1.0 chore(deps-dev): bump eslint-plugin-jest from 28.14.0 to 29.1.0
…ls-7.5.2 chore(deps-dev): bump pip-tools from 7.5.1 to 7.5.2
* Create license audit task and special permissions model * [pre-commit.ci lite] apply automatic fixes * fix lint * [pre-commit.ci lite] apply automatic fixes * fix code according to comment * [pre-commit.ci lite] apply automatic fixes * fix linting * delete redundent code * [pre-commit.ci lite] apply automatic fixes * fix code * [pre-commit.ci lite] apply automatic fixes * fix code * fix code * [pre-commit.ci lite] apply automatic fixes * fix linting --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Bumps the github group with 1 update: [actions/checkout](https://github.com/actions/checkout). Updates `actions/checkout` from 5 to 6 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.44.0 to 3.47.0. - [Release notes](https://github.com/zloirock/core-js/releases) - [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/zloirock/core-js/commits/v3.47.0/packages/core-js) --- updated-dependencies: - dependency-name: core-js dependency-version: 3.47.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 4.4.0 to 4.5.0. - [Release notes](https://github.com/pre-commit/pre-commit/releases) - [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md) - [Commits](pre-commit/pre-commit@v4.4.0...v4.5.0) --- updated-dependencies: - dependency-name: pre-commit dependency-version: 4.5.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [redis](https://github.com/redis/redis-py) from 7.0.1 to 7.1.0. - [Release notes](https://github.com/redis/redis-py/releases) - [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES) - [Commits](redis/redis-py@v7.0.1...v7.1.0) --- updated-dependencies: - dependency-name: redis dependency-version: 7.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 2.45.0 to 2.46.0. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](getsentry/sentry-python@2.45.0...2.46.0) --- updated-dependencies: - dependency-name: sentry-sdk dependency-version: 2.46.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…ons/github-76468cb07f chore(deps): bump actions/checkout from 5 to 6 in the github group
…n/core-js-3.47.0 chore(deps): bump core-js from 3.44.0 to 3.47.0
…mit-4.5.0 chore(deps-dev): bump pre-commit from 4.4.0 to 4.5.0
….1.0 chore(deps): bump redis from 7.0.1 to 7.1.0
…sdk-2.46.0 chore(deps): bump sentry-sdk from 2.45.0 to 2.46.0
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.4.2 to 9.0.1. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](pytest-dev/pytest@8.4.2...9.0.1) --- updated-dependencies: - dependency-name: pytest dependency-version: 9.0.1 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
* corrected buggy modal from uploader.vue and corrected linting * added reset in handleFiles
Add submission details page
| name: Call shared workflow | ||
| uses: learningequality/.github/.github/workflows/contributor-pr-reply.yml@main | ||
| secrets: | ||
| LE_BOT_APP_ID: ${{ secrets.LE_BOT_APP_ID }} | ||
| LE_BOT_PRIVATE_KEY: ${{ secrets.LE_BOT_PRIVATE_KEY }} | ||
| SLACK_COMMUNITY_NOTIFICATIONS_WEBHOOK_URL: ${{ secrets.SLACK_COMMUNITY_NOTIFICATIONS_WEBHOOK_URL }} |
Check warning
Code scanning / CodeQL
Workflow does not contain permissions Medium
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix
AI 2 days ago
To fix this, explicitly declare permissions for the job (or globally) so the GITHUB_TOKEN is limited to the least privileges needed. Since this workflow only delegates to a reusable workflow and does not itself perform any repository writes, a safe, minimal default is read-only access to repository contents. That both satisfies CodeQL and avoids unintentionally granting write access via inherited defaults.
The best fix, without changing existing functionality, is to add a permissions block under the call-workflow job, e.g.:
jobs:
call-workflow:
permissions:
contents: read
name: Call shared workflow
uses: ...Placing it at the job level ensures the restriction applies specifically to this job, and avoids assumptions about other jobs (there are none currently, but this keeps the change tightly scoped). No imports or additional definitions are needed; this is a pure YAML configuration change within .github/workflows/call-contributor-pr-reply.yml. Insert the new permissions block between call-workflow: and name: with correct indentation.
| @@ -4,6 +4,8 @@ | ||
| types: [opened] | ||
| jobs: | ||
| call-workflow: | ||
| permissions: | ||
| contents: read | ||
| name: Call shared workflow | ||
| uses: learningequality/.github/.github/workflows/contributor-pr-reply.yml@main | ||
| secrets: |
| name: Call shared workflow | ||
| uses: learningequality/.github/.github/workflows/pull-request-target.yml@main | ||
| secrets: | ||
| LE_BOT_APP_ID: ${{ secrets.LE_BOT_APP_ID }} | ||
| LE_BOT_PRIVATE_KEY: ${{ secrets.LE_BOT_PRIVATE_KEY }} |
Check warning
Code scanning / CodeQL
Workflow does not contain permissions Medium
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix
AI 2 days ago
In general, the fix is to explicitly declare a permissions block that limits the GITHUB_TOKEN to the least privileges needed. This can be done at the workflow root (applies to all jobs) or at the job level. Because this workflow only has a single job and we want to minimize changes, we can add a root-level permissions block just under the name: line. For a pull_request_target workflow that primarily reads repository contents and PR metadata while deferring actual actions to a reusable workflow using app credentials, a safe minimal baseline is contents: read. If the reusable workflow requires additional scopes, it will typically define them itself; in this caller it is reasonable to keep the token read-only.
Concretely, in .github/workflows/call-pull-request-target.yml, add:
permissions:
contents: readbetween line 1 (name: Handle pull request events) and line 2 (on:). No imports or additional methods are required since this is a YAML configuration change only and does not affect existing behavior, other than constraining the automatically provided GITHUB_TOKEN to read access to contents.
| @@ -1,4 +1,6 @@ | ||
| name: Handle pull request events | ||
| permissions: | ||
| contents: read | ||
| on: | ||
| pull_request_target: | ||
| types: [review_requested, labeled] |
feat(a11y): localize mathlive screen reader announcements
Fix channels admin filters
[RTE] Focus fixes
Show draft tokens in Studio
Bumps [latex2mathml](https://github.com/roniemartinez/latex2mathml) from 3.78.0 to 3.78.1. - [Release notes](https://github.com/roniemartinez/latex2mathml/releases) - [Commits](roniemartinez/latex2mathml@3.78.0...3.78.1) --- updated-dependencies: - dependency-name: latex2mathml dependency-version: 3.78.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
…erover latex2mathml 3.78.1 correctly produces <munderover> instead of <msubsup> for \sum and \prod in display="block" mode. Update hardcoded expected MathML in test assertions to match the corrected output. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Verify that latex2mathml produces the correct MathML elements: - \sum and \prod in block mode use <munderover> (limits above/below) - \sum in inline mode uses <msubsup> (limits beside) - \int in block mode still uses <msubsup> (unaffected by fix) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat(texteditor): add text alignment toggling buttons
…athml-3.78.1 chore(deps): bump latex2mathml from 3.78.0 to 3.78.1
Summary
…
Vuetify → KDS Migration
View QA guidance
Tracking issue: #5060
This overview sets the scope of regression testing needed before release. The refactoring work replaces Vuetify components with Kolibri Design System (KDS) components across Studio. For each workflow, we're primarily focused on interactions and functionality — making sure nothing broke in the migration. Some minor visual differences are expected and noted below.
For detailed context on any specific change, issue links are included per section. When in doubt about whether something is a regression or an intentional change, check the linked issues.
General notes:
unstable1. Settings (`/settings`)
We're regression testing all 3 tabs. The priority is interactions and functionality.
What changed: Page layout, offline alert bar, and several components across the Account and Storage tabs were migrated from Vuetify to KDS.
Account tab:
Storage tab:
General:
Visual differences: Modals (e.g., "About licenses", "Request more space") will look slightly different from production due to KDS styling. Functionality is the priority.
Related issues: #5061, #5062, #5063, #5064, #5080, #5081, #5082, #5092, #5095, #5123, #5127, #5132
2. Channels (`/channels`)
Several distinct sub-areas were touched here. Test each sub-area as a workflow.
What changed: Channel cards across all channel listing views, channel detail pages, channel collections, the Content Library, error pages, and several modals were all migrated.
2a. Channel listing views (My Channels, Starred, View-only)
Related issues: #5218, #5219, #5227, #5524, #5525
2b. Channel detail page
Visual differences: Modals on the channel detail page (e.g., unsaved changes) will look slightly different.
Related issues: #5217, #5474, #5484, #5485, #5529, #5530
2c. New collection / Unsaved changes
Visual differences: "Unsaved changes" modal will look slightly different from production.
Related issues: #5243, #5244, #5298, #5299
2d. Content Library
Visual differences: "About collections" modal will look slightly different.
Related issues: #5234, #5471, #5502, #5526, #5528
2e. Error pages
Related issues: #5235, #5295, #5296, #5297
3. Channel Editor
The channel editor had the most changes across this migration — many dialogs and action buttons throughout the editing workflow were updated. Test these as you would a normal editing session, but make a point to trigger each dialog.
What changed: Buttons and dialogs throughout the editing workflow — move, upload, questions, import, and several confirmation dialogs.
Organize / Move:
Upload:
Questions:
Content actions:
Related tab:
File preview:
Import from channels:
Navigation / errors:
Visual differences: All dialogs/modals in the channel editor (move, upload, confirm delete, change question type, etc.) will look slightly different from production.
Related issues: #5355, #5375, #5376, #5377, #5378, #5379, #5420, #5421, #5422, #5423, #5442, #5443, #5444, #5470, #5472, #5473
4. Accounts
These are the pre-login and account lifecycle pages. Testing is straightforward — confirm all interactive elements function correctly.
What changed: Buttons and links on the sign-in, account created, and account deleted pages; various informative pages.
Related issues: #5352, #5353, #5534, #5631, #5632, #5633, #5636, #5637
5. Administration (`/administration`)
Admin-only pages. Confirm all management actions and their confirmation dialogs work end-to-end.
What changed: Buttons and confirmation dialogs for user and channel management actions; the send email dialog.
Users:
Channels:
Email:
Visual differences: All confirmation dialogs and the send email dialog will look slightly different from production.
Related issues: #5354, #5410, #5411, #5425, #5441
6. Policy modals
Policy modals
Visual differences: Policy modals will look slightly different from production.
Related issues: #5651
Reviewer guidance
AI usage
Significant Claude help in drafting QA team guidance