Bump the khanacademy group across 1 directory with 27 updates - #15245
dependabot[bot] wants to merge 1 commit into
Conversation
🟡 Waiting for changesLast updated: 2026-09-08 17:04 UTC |
Build Artifacts
Smoke test screenshot |
rtibblesbot
left a comment
There was a problem hiding this comment.
PR #15245 — grouped bump of 27 @khanacademy/* packages in kolibri/plugins/perseus_viewer/package.json, a production dependency bundled into the plugin.
Semver: major. Five multi-major jumps: perseus 78.2.0→85.0.0, perseus-core 28→37, math-input 26→27, wonder-blocks-tokens 16→17, wonder-blocks-typography 4→5. CI: passing (17 runs).
Breaking changes vs. Kolibri's call sites — all clear. I read the full upstream changelogs across the range and checked each documented removal:
| Upstream break | Kolibri usage |
|---|---|
perseus 85: Renderer#serialize() removed |
not called |
perseus 84: Changeable.propTypes removed |
not imported |
perseus 83: InfoTip/TextListEditor → perseus-editor |
not imported |
perseus-core 34: RubricMap removed |
not imported |
math-input 27: KeypadAPI.getDOMNode now nullable |
Kolibri's own keypadAPI (useKeypad.js) already returns _domNode || null; MobileKeypad unused (customKeypad: true) |
| wb-typography 5: legacy components removed | peer dep only, not imported |
wb-tokens 17: legacy font.size.* scales removed |
only styles.css is imported; no --wb-* in Kolibri source |
The eight perseus-core schema majors (input-number removal, required Image/Plotter/Matrix options, rightAlign→textAlign, static removal) are each gated on "use the parsers to migrate" — PerseusRendererIndex.vue:778 calls parseAndMigratePerseusItem on every item.
Peer deps: perseus 84.2.0 moved jquery from peer to direct dep, so the plugin's jquery: ^2.1.1 declaration is now redundant and droppable in a follow-up. Security fixes: none in the range.
Lockfile: @dnd-kit/* 0.5.0 (6 packages) is newly pulled in by perseus 85 — new bundle weight. Browserslist/caniuse/electron-to-chromium churn rode along from pnpm install re-resolution, not from this group.
Offline-asset seams verified intact. rewritePerseusUrls.js / rewritePerseusProtractor.js are exact-string replacements against upstream build output and fail silently (leaving CDN URLs in an offline product). Against 85.0.0: dist/index.css still carries the MathJax cdn.kastatic.org font URL, dist/es/index.js still carries the protractor literal, all four buildConfig.js export paths are unmoved, no *.kastatic.org reference was added or removed between 78.2.0 and 85.0.0, and all 72 var(--wb-*) tokens perseus 85 references are defined in wonder-blocks-tokens@17.3.0.
Behavioral changes CI cannot see — needs a QA pass
The three Jest specs exercise parse/score/URL-rewriting against the real packages but render nothing, so these ship unverified:
- perseus-core 30 / perseus 79:
input-numberwidgets now render as NumericInput — common in existing KA channels. - perseus-core 33: Molecule widget removed, now renders as DeprecatedStandin placeholder.
- perseus-core 30.1:
grapher-to-interactive-graphflag removed — graphers now render as Interactive Graphs unconditionally (single non-quadratic function type). - perseus-core 33:
showPointLabelsnow honored unconditionally. - perseus 84.2/85: Plotter restyled to WB semantic colors; image-widget modal background and label-image answer-bubble contrast changed; Sortable remeasures rows after web fonts load.
Suggested QA: one exercise each of input-number, grapher, plotter, image/label-image, sorter/matcher, and a math-input item (keypad open/dismiss), on a normal and an RTL locale — the rem→px and keypad bridges are the Kolibri-specific seams.
Follow-up worth an issue
PerseusRendererIndex.vue:630 documents that deriveUserInputFromSerializedState "must be kept indefinitely because existing saved answer states in the wild use this format." Upstream marks it @deprecated (dist/user-input-manager.d.ts:30), and this is the release that deleted its sibling Renderer#serialize(). It still works here (stateSerialization.spec.js proves it), but an indefinite back-compat requirement resting on an upstream deprecated export will eventually break on a routine Dependabot bump, and the failure mode is silent data loss — learners' saved answers stop restoring, not a build error. Worth vendoring the conversion into perseus_viewer/ while the upstream implementation is still there to copy.
@rtibblesbot's comments are generated by an LLM, and should be evaluated accordingly
How was this generated?
Ran a dependency-update review pipeline over the version bump:
- Classified the bump by semver (patch / minor / major) and dependency type (production vs. development)
- Extracted the changelog and release notes across the version range
- Assessed compatibility with this project's usage and whether any code changes are required
- Treated CI as the primary safety net
- Scaled the review depth to the update's risk
- Chose the verdict from semver risk, changelog findings, and CI status
Bumps the khanacademy group with 27 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@khanacademy/kas](https://github.com/Khan/perseus/tree/HEAD/packages/kas) | `2.2.3` | `2.2.6` | | [@khanacademy/keypad-context](https://github.com/Khan/perseus/tree/HEAD/packages/keypad-context) | `3.2.65` | `3.2.88` | | [@khanacademy/math-input](https://github.com/Khan/perseus/tree/HEAD/packages/math-input) | `26.4.37` | `27.0.10` | | [@khanacademy/mathjax-renderer](https://github.com/Khan/mathjax-renderer) | `3.0.2` | `3.2.0` | | [@khanacademy/perseus](https://github.com/Khan/perseus/tree/HEAD/packages/perseus) | `78.2.0` | `85.2.0` | | [@khanacademy/perseus-core](https://github.com/Khan/perseus/tree/HEAD/packages/perseus-core) | `28.2.0` | `38.1.0` | | [@khanacademy/perseus-score](https://github.com/Khan/perseus/tree/HEAD/packages/perseus-score) | `8.11.7` | `8.12.20` | | [@khanacademy/wonder-blocks-banner](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-banner) | `5.1.5` | `5.1.11` | | [@khanacademy/wonder-blocks-button](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-button) | `11.7.2` | `11.7.7` | | [@khanacademy/wonder-blocks-clickable](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-clickable) | `8.2.4` | `8.2.9` | | [@khanacademy/wonder-blocks-data](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-data) | `15.0.2` | `15.0.3` | | [@khanacademy/wonder-blocks-dropdown](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-dropdown) | `10.11.1` | `10.12.0` | | [@khanacademy/wonder-blocks-form](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-form) | `7.6.5` | `7.6.10` | | [@khanacademy/wonder-blocks-icon](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-icon) | `5.3.18` | `5.3.23` | | [@khanacademy/wonder-blocks-icon-button](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-icon-button) | `11.3.5` | `11.4.5` | | [@khanacademy/wonder-blocks-labeled-field](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-labeled-field) | `4.1.4` | `4.1.9` | | [@khanacademy/wonder-blocks-layout](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-layout) | `3.1.55` | `3.1.60` | | [@khanacademy/wonder-blocks-link](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-link) | `10.3.4` | `10.3.9` | | [@khanacademy/wonder-blocks-modal](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-modal) | `8.7.5` | `8.7.11` | | [@khanacademy/wonder-blocks-pill](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-pill) | `3.1.68` | `3.1.73` | | [@khanacademy/wonder-blocks-popover](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-popover) | `6.3.5` | `6.3.12` | | [@khanacademy/wonder-blocks-progress-spinner](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-progress-spinner) | `3.1.55` | `3.1.60` | | [@khanacademy/wonder-blocks-switch](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-switch) | `3.4.4` | `3.4.9` | | [@khanacademy/wonder-blocks-tabs](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-tabs) | `0.5.19` | `0.5.27` | | [@khanacademy/wonder-blocks-tokens](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-tokens) | `16.8.0` | `17.3.0` | | [@khanacademy/wonder-blocks-tooltip](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-tooltip) | `4.1.80` | `4.2.1` | | [@khanacademy/wonder-blocks-typography](https://github.com/Khan/wonder-blocks/tree/HEAD/packages/wonder-blocks-typography) | `4.3.8` | `5.0.3` | Updates `@khanacademy/kas` from 2.2.3 to 2.2.6 - [Release notes](https://github.com/Khan/perseus/releases) - [Changelog](https://github.com/Khan/perseus/blob/main/packages/kas/CHANGELOG.md) - [Commits](https://github.com/Khan/perseus/commits/@khanacademy/kas@2.2.6/packages/kas) Updates `@khanacademy/keypad-context` from 3.2.65 to 3.2.88 - [Release notes](https://github.com/Khan/perseus/releases) - [Changelog](https://github.com/Khan/perseus/blob/main/packages/keypad-context/CHANGELOG.md) - [Commits](https://github.com/Khan/perseus/commits/@khanacademy/keypad-context@3.2.88/packages/keypad-context) Updates `@khanacademy/math-input` from 26.4.37 to 27.0.10 - [Release notes](https://github.com/Khan/perseus/releases) - [Changelog](https://github.com/Khan/perseus/blob/main/packages/math-input/CHANGELOG.md) - [Commits](https://github.com/Khan/perseus/commits/@khanacademy/math-input@27.0.10/packages/math-input) Updates `@khanacademy/mathjax-renderer` from 3.0.2 to 3.2.0 - [Commits](https://github.com/Khan/mathjax-renderer/commits) Updates `@khanacademy/perseus` from 78.2.0 to 85.2.0 - [Release notes](https://github.com/Khan/perseus/releases) - [Changelog](https://github.com/Khan/perseus/blob/main/packages/perseus/CHANGELOG.md) - [Commits](https://github.com/Khan/perseus/commits/@khanacademy/perseus@85.2.0/packages/perseus) Updates `@khanacademy/perseus-core` from 28.2.0 to 38.1.0 - [Release notes](https://github.com/Khan/perseus/releases) - [Changelog](https://github.com/Khan/perseus/blob/main/packages/perseus-core/CHANGELOG.md) - [Commits](https://github.com/Khan/perseus/commits/@khanacademy/perseus-core@38.1.0/packages/perseus-core) Updates `@khanacademy/perseus-score` from 8.11.7 to 8.12.20 - [Release notes](https://github.com/Khan/perseus/releases) - [Changelog](https://github.com/Khan/perseus/blob/main/packages/perseus-score/CHANGELOG.md) - [Commits](https://github.com/Khan/perseus/commits/@khanacademy/perseus-score@8.12.20/packages/perseus-score) Updates `@khanacademy/wonder-blocks-banner` from 5.1.5 to 5.1.11 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-banner/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-banner@5.1.11/packages/wonder-blocks-banner) Updates `@khanacademy/wonder-blocks-button` from 11.7.2 to 11.7.7 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-button/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-button@11.7.7/packages/wonder-blocks-button) Updates `@khanacademy/wonder-blocks-clickable` from 8.2.4 to 8.2.9 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-clickable/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-clickable@8.2.9/packages/wonder-blocks-clickable) Updates `@khanacademy/wonder-blocks-data` from 15.0.2 to 15.0.3 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-data/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-data@15.0.3/packages/wonder-blocks-data) Updates `@khanacademy/wonder-blocks-dropdown` from 10.11.1 to 10.12.0 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-dropdown/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-dropdown@10.12.0/packages/wonder-blocks-dropdown) Updates `@khanacademy/wonder-blocks-form` from 7.6.5 to 7.6.10 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-form/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-form@7.6.10/packages/wonder-blocks-form) Updates `@khanacademy/wonder-blocks-icon` from 5.3.18 to 5.3.23 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-icon/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-icon@5.3.23/packages/wonder-blocks-icon) Updates `@khanacademy/wonder-blocks-icon-button` from 11.3.5 to 11.4.5 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-icon-button/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-icon-button@11.4.5/packages/wonder-blocks-icon-button) Updates `@khanacademy/wonder-blocks-labeled-field` from 4.1.4 to 4.1.9 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-labeled-field/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-labeled-field@4.1.9/packages/wonder-blocks-labeled-field) Updates `@khanacademy/wonder-blocks-layout` from 3.1.55 to 3.1.60 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-layout/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-layout@3.1.60/packages/wonder-blocks-layout) Updates `@khanacademy/wonder-blocks-link` from 10.3.4 to 10.3.9 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-link/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-link@10.3.9/packages/wonder-blocks-link) Updates `@khanacademy/wonder-blocks-modal` from 8.7.5 to 8.7.11 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-modal/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-modal@8.7.11/packages/wonder-blocks-modal) Updates `@khanacademy/wonder-blocks-pill` from 3.1.68 to 3.1.73 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-pill/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-pill@3.1.73/packages/wonder-blocks-pill) Updates `@khanacademy/wonder-blocks-popover` from 6.3.5 to 6.3.12 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-popover/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-popover@6.3.12/packages/wonder-blocks-popover) Updates `@khanacademy/wonder-blocks-progress-spinner` from 3.1.55 to 3.1.60 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-progress-spinner/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-progress-spinner@3.1.60/packages/wonder-blocks-progress-spinner) Updates `@khanacademy/wonder-blocks-switch` from 3.4.4 to 3.4.9 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-switch/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-switch@3.4.9/packages/wonder-blocks-switch) Updates `@khanacademy/wonder-blocks-tabs` from 0.5.19 to 0.5.27 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-tabs/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-tabs@0.5.27/packages/wonder-blocks-tabs) Updates `@khanacademy/wonder-blocks-tokens` from 16.8.0 to 17.3.0 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-tokens/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-tokens@17.3.0/packages/wonder-blocks-tokens) Updates `@khanacademy/wonder-blocks-tooltip` from 4.1.80 to 4.2.1 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-tooltip/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-tooltip@4.2.1/packages/wonder-blocks-tooltip) Updates `@khanacademy/wonder-blocks-typography` from 4.3.8 to 5.0.3 - [Release notes](https://github.com/Khan/wonder-blocks/releases) - [Changelog](https://github.com/Khan/wonder-blocks/blob/main/packages/wonder-blocks-typography/CHANGELOG.md) - [Commits](https://github.com/Khan/wonder-blocks/commits/@khanacademy/wonder-blocks-typography@5.0.3/packages/wonder-blocks-typography) --- updated-dependencies: - dependency-name: "@khanacademy/kas" dependency-version: 2.2.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: khanacademy - dependency-name: "@khanacademy/keypad-context" dependency-version: 3.2.85 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: khanacademy - dependency-name: "@khanacademy/math-input" dependency-version: 27.0.5 dependency-type: direct:production update-type: version-update:semver-major dependency-group: khanacademy - dependency-name: "@khanacademy/mathjax-renderer" dependency-version: 3.1.4 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: khanacademy - dependency-name: "@khanacademy/perseus" dependency-version: 85.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: khanacademy - dependency-name: "@khanacademy/perseus-core" dependency-version: 37.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: khanacademy - dependency-name: "@khanacademy/perseus-score" dependency-version: 8.12.17 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-banner" dependency-version: 5.1.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-button" dependency-version: 11.7.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-clickable" dependency-version: 8.2.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-data" dependency-version: 15.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-dropdown" dependency-version: 10.11.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-form" dependency-version: 7.6.10 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-icon" dependency-version: 5.3.23 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-icon-button" dependency-version: 11.4.5 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-labeled-field" dependency-version: 4.1.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-layout" dependency-version: 3.1.60 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-link" dependency-version: 10.3.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-modal" dependency-version: 8.7.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-pill" dependency-version: 3.1.73 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-popover" dependency-version: 6.3.12 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-progress-spinner" dependency-version: 3.1.60 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-switch" dependency-version: 3.4.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-tabs" dependency-version: 0.5.26 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-tokens" dependency-version: 17.3.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-tooltip" dependency-version: 4.2.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: khanacademy - dependency-name: "@khanacademy/wonder-blocks-typography" dependency-version: 5.0.3 dependency-type: direct:production update-type: version-update:semver-major dependency-group: khanacademy ... Signed-off-by: dependabot[bot] <support@github.com>
827d26d to
e577922
Compare
rtibblesbot
left a comment
There was a problem hiding this comment.
PR #15245 — @khanacademy/* bump in kolibri/plugins/perseus_viewer/package.json (production deps, bundled into the plugin). Delta re-review: the branch was rebased and versions moved again since the last round.
0 of 3 prior findings resolved; 3 still open (see below) — none blocking, none actionable by Dependabot.
| Package | Reviewed at | Now | Semver |
|---|---|---|---|
@khanacademy/perseus-core |
^37.0.0 | ^38.1.0 | major |
@khanacademy/perseus |
85.0.0 | 85.2.0 | minor |
@khanacademy/mathjax-renderer |
^3.1.4 | ^3.2.0 | minor |
@khanacademy/math-input |
27.0.5 | 27.0.10 | patch |
@khanacademy/keypad-context |
3.2.85 | 3.2.88 | patch |
@khanacademy/perseus-score |
^8.12.17 | ^8.12.20 | patch |
@khanacademy/wonder-blocks-dropdown |
^10.11.8 | ^10.12.0 | minor |
@khanacademy/wonder-blocks-tabs |
^0.5.26 | ^0.5.27 | patch |
Breaking changes: perseus-core 38.0.0's two majors are both TypeScript-type removals (Perseus*Rubric/Perseus*ValidationData, *DefaultWidgetOptions). Kolibri ships plain JS/Vue and imports only parseAndMigratePerseusItem/isFailure and scorePerseusItem/emptyWidgetsFunctional (PerseusRendererIndex.vue:54-55) — all four still exported at 38.1.0 / 8.12.20. 38.0.1 and 38.1.0 touch editor code only. No code change required.
Peer/behavioral: perseus 85.1.0 warns clients "should not use mathjax-renderer 3.2.0 without enabling wb-themed-math". Verified inert here: both wb-themed-math rules in perseus@85.2.0/dist/index.css are nested under [data-wb-theme$=-dark], and data-wb-theme is set nowhere in the tree. 3.2.0's actual change is TeX colour macros moving to var(--wb-semanticColor-…, ##hex) with the old hex as fallback; all ten token defaults in wonder-blocks-tokens/styles.css (already imported at PerseusRendererIndex.vue:36) are byte-identical to the previous constants. Rendered math colour is unchanged either way. No security fixes in range.
Offline-asset seams re-checked against 85.2.0 — rewritePerseusUrls.js's kastatic.org literal still matches (one occurrence in dist/index.css), the quoted protractor URL still appears once in each of dist/index.js and dist/es/index.js, and mathjax-renderer@3.2.0 still pins mathjax-full@3.2.2, so buildConfig.js's font path into the virtual store resolves. Lockfile adds only @dnd-kit/* + @preact/signals-core from perseus 85's drag-and-drop work.
CI: three red checks on e577922 (Build PEX file, two Test WHL file) all fail on actions/download-artifact@v8 returning 403 Forbidden from the artifact service — GitHub infrastructure, not the bump. The checks that would catch a bad dependency are green: Frontend tests, All file linting, Browser smoke test, and every build job. Many Python/Android checks were still queued at review time — re-check before merging.
[suggestion] kolibri/plugins/perseus_viewer/package.json — mathjax-renderer 3.2.0 declares node >=24.18 <25
It is the only package in the lockfile diff carrying an engines field; develop resolves 3.0.2, which has none. Root package.json declares "engines": {"node": "^20.19.0"} with "engineStrict": true, and workflows resolve Node via node-version-file: package.json.
No impact today — engineStrict in package.json is a dead npm-3-era field pnpm does not read, .npmrc sets no engine-strict, and install plus the webpack build both succeeded on Node 20. Worth knowing because the repo's stated intent is strict engines: if engine-strict=true ever lands in .npmrc, pnpm install starts failing on a bundled production dependency.
The declaration looks like Khan's build environment leaking into the published manifest: the 3.2.0 browser bundle uses no syntax 3.0.2 didn't, and math-input@27.0.9 widened its peer range with "We support 3.1.4 as well as 3.2.0". Accept knowingly or raise upstream — not a reason to hold the bump.
[suggestion] QA still needed — rendering changes CI cannot see
Range now 85.0.0 → 85.2.0: adds the Expression/Keypad token restyle from math-input 27.0.7 (the keypad bridge is a Kolibri-specific seam) and the Plotter point halo from perseus 85.1.0.
Prior-finding status
UNADDRESSED — kolibri/plugins/perseus_viewer/package.json — Behavioral rendering changes CI cannot see; QA pass needed
UNADDRESSED — kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue:630 — deriveUserInputFromSerializedState rests on an upstream-deprecated export (still exported and still @deprecated in perseus@85.2.0); worth vendoring
UNADDRESSED — kolibri/plugins/perseus_viewer/package.json — jquery: ^2.1.1 declaration redundant since perseus 84.2.0 made jquery a direct dep; still a direct dep of 85.2.0
@rtibblesbot's comments are generated by an LLM, and should be evaluated accordingly
How was this generated?
Ran a dependency-update review pipeline over the version bump:
- Classified the bump by semver (patch / minor / major) and dependency type (production vs. development)
- Extracted the changelog and release notes across the version range
- Assessed compatibility with this project's usage and whether any code changes are required
- Treated CI as the primary safety net
- Scaled the review depth to the update's risk
- Chose the verdict from semver risk, changelog findings, and CI status
Bumps the khanacademy group with 27 updates in the / directory:
2.2.32.2.63.2.653.2.8826.4.3727.0.103.0.23.2.078.2.085.2.028.2.038.1.08.11.78.12.205.1.55.1.1111.7.211.7.78.2.48.2.915.0.215.0.310.11.110.12.07.6.57.6.105.3.185.3.2311.3.511.4.54.1.44.1.93.1.553.1.6010.3.410.3.98.7.58.7.113.1.683.1.736.3.56.3.123.1.553.1.603.4.43.4.90.5.190.5.2716.8.017.3.04.1.804.2.14.3.85.0.3Updates
@khanacademy/kasfrom 2.2.3 to 2.2.6Release notes
Sourced from @khanacademy/kas's releases.
Changelog
Sourced from @khanacademy/kas's changelog.
Commits
b076bf5Version Packages (#4033)c38df95Remove unused eslint exceptions (#4024)356e667RELEASING: Releasing 9 package(s)233204bClean up some uses ofbind,_.bind, and$.bind(#4011)273c61aReplace low-risk uses of _.map (#4007)ddfd715Remove some more underscore uses (#4002)ed25029Remove some uses of underscore (#3991)858f976Version Packages (#3969)b9f7019Remove needless underscore imports (#3975)Updates
@khanacademy/keypad-contextfrom 3.2.65 to 3.2.88Release notes
Sourced from @khanacademy/keypad-context's releases.
Changelog
Sourced from @khanacademy/keypad-context's changelog.
... (truncated)
Commits
b0623c3Version Packages (#4155)5f9995fVersion Packages (#4139)da1e402Version Packages (#4115)870f5b5Version Packages (#4105)8868378Version Packages (#4092)dc0f315Version Packages (#4070)e5bedc7RELEASING: Releasing 8 package(s)3b76435RELEASING: Releasing 8 package(s)b076bf5Version Packages (#4033)356e667RELEASING: Releasing 9 package(s)Updates
@khanacademy/math-inputfrom 26.4.37 to 27.0.10Release notes
Sourced from @khanacademy/math-input's releases.
... (truncated)
Changelog
Sourced from @khanacademy/math-input's changelog.
... (truncated)
Commits
b0623c3Version Packages (#4155)40fe0a9Version Packages (#4144)09e969bWiden the peer dep version range for@khanacademy/mathjax-renderer. (#4143)abdd98eVersion Packages (#4141)4670fbeUpdate catalog hashes (#4140)5f9995fVersion Packages (#4139)92dbc50[Color][Expression] Align Expression and Keypad with figma design and updated...da1e402Version Packages (#4115)6f5fe5b[Color] Fix colors in keypad for dark mode - adjust button focus ring and cor...870f5b5Version Packages (#4105)Updates
@khanacademy/mathjax-rendererfrom 3.0.2 to 3.2.0Commits
Updates
@khanacademy/perseusfrom 78.2.0 to 85.2.0Release notes
Sourced from @khanacademy/perseus's releases.
... (truncated)
Changelog
Sourced from @khanacademy/perseus's changelog.
... (truncated)
Commits
b0623c3Version Packages (#4155)68e3230feat(LEMS-4489): Adds extras editor to graded group (#4094)f72a2d9RemovewidgetNamefrom editors (#4145)40fe0a9Version Packages (#4144)abdd98eVersion Packages (#4141)5f9995fVersion Packages (#4139)92dbc50[Color][Expression] Align Expression and Keypad with figma design and updated...da1e402Version Packages (#4115)89dc8c5Add a .wb-themed-math CSS class so clients can opt-in to new math colors (#4131)38e8109[Color][Graded Group] Make correct/incorrect bar color match the marker color...Updates
@khanacademy/perseus-corefrom 28.2.0 to 38.1.0Release notes
Sourced from @khanacademy/perseus-core's releases.
... (truncated)
Changelog
Sourced from @khanacademy/perseus-core's changelog.
... (truncated)
Commits
b0623c3Version Packages (#4155)68e3230feat(LEMS-4489): Adds extras editor to graded group (#4094)5f9995fVersion Packages (#4139)6136694Modernize SorterEditor (#4136)da1e402Version Packages (#4115)88eeb3aMark Sorter'spaddingas deprecated (#4134)d06c9ecRemovePerseus*RubricandPerseus*ValidationDatatypes (#4118)20d11beReplace default widget options with regular widget options (#4114)870f5b5Version Packages (#4105)77f6c96[GradedGroup:Perseus] Remove some unused schema for GradedGroup (#4032)Updates
@khanacademy/perseus-scorefrom 8.11.7 to 8.12.20Release notes
Sourced from @khanacademy/perseus-score's releases.
... (truncated)
Changelog
Sourced from @khanacademy/perseus-score's changelog.