# JupyterLab changelog > The next-generation notebook interface. - Vendor: Project Jupyter - Category: Developer Tools - Official site: https://jupyter.org - Tracked by: What's New (https://whatsnew.fyi/product/jupyterlab) - Harvested from: GitHub (jupyterlab/jupyterlab) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### v4.7.0a1 - Date: 2026-07-21 - Version: v4.7.0a1 - Original notes: https://github.com/jupyterlab/jupyterlab/releases/tag/v4.7.0a1 - Permalink: https://whatsnew.fyi/product/jupyterlab/releases/v4.7.0a1 - Labels: Pre-release - **security** — Fixed security vulnerabilities GHSA-gx64-gj6p-pc4c, GHSA-89vp-jrxv-24w8, GHSA-h5v5-8746-g7mm, GHSA-pppj-hq3g-57pj, and GHSA-whvh-wf3x-g77j - **added** — Add support for renaming code consoles - **changed** — Use home icon for home preferred directory - **changed** — Update to xterm.js 6.0 - **changed** — Use the widest row as the column count in the CSV viewer - **changed** — Use @plutojl/lang-julia for CodeMirror 6 Julia support - **changed** — Switch default hidden mode to content visibility - **changed** — Update shortcut to activate and focus file browser - **changed** — Improve notebook export menu guidance - **fixed** — Fix notebook initialization stealing focus - **fixed** — Fix stale document load after rename during initialization - **fixed** — Clear stale Table of Contents error markers - **fixed** — Fix bottom activity bar restoring as collapsed - **fixed** — Fix spurious 3s kernel restart delay - **fixed** — Handle invalid file browser drag target - **fixed** — Update shortcuts settings UI on external preference saves - **fixed** — Fix resolving platform-specific shortcuts in keyboard shortcuts - **fixed** — Add CSP sandbox startup test and fix startup in environments without window.localStorage - **fixed** — Stabilize flaky Firefox notebook Galata tests ##### 4.7.0a1 ([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v4.7.0a0...9365f020baec5221deaf11535ed554c06637c999)) ###### Security patches - GHSA-gx64-gj6p-pc4c - GHSA-89vp-jrxv-24w8 - GHSA-h5v5-8746-g7mm - GHSA-pppj-hq3g-57pj - GHSA-whvh-wf3x-g77j ###### Enhancements made - Add support for renaming code consoles [#19156](https://github.com/jupyterlab/jupyterlab/pull/19156) ([@jtpio](https://github.com/jtpio), [@krassowski](https://github.com/krassowski)) - Use home icon for home preferred directory [#19137](https://github.com/jupyterlab/jupyterlab/pull/19137) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Update to xterm.js 6.0 [#19134](https://github.com/jupyterlab/jupyterlab/pull/19134) ([@jtpio](https://github.com/jtpio), [@krassowski](https://github.com/krassowski)) - Add manual Galata flakiness report workflow [#19130](https://github.com/jupyterlab/jupyterlab/pull/19130) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Use the widest row as the column count in the CSV viewer [#19058](https://github.com/jupyterlab/jupyterlab/pull/19058) ([@GagandeepSingh20](https://github.com/GagandeepSingh20), [@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Use `@plutojl/lang-julia` for CodeMirror 6 Julia support [#19049](https://github.com/jupyterlab/jupyterlab/pull/19049) ([@fonsp](https://github.com/fonsp), [@krassowski](https://github.com/krassowski)) - Switch default hidden mode to content visibility [#18879](https://github.com/jupyterlab/jupyterlab/pull/18879) ([@krassowski](https://github.com/krassowski), [@Darshan808](https://github.com/Darshan808), [@jtpio](https://github.com/jtpio)) - Update shortcut to activate and focus file browser [#18672](https://github.com/jupyterlab/jupyterlab/pull/18672) ([@IsabelParedes](https://github.com/IsabelParedes), [@krassowski](https://github.com/krassowski)) - Improve notebook export menu guidance [#18656](https://github.com/jupyterlab/jupyterlab/pull/18656) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@jtpio](https://github.com/jtpio), [@krassowski](https://github.com/krassowski)) ###### Bugs fixed - Security patches [#19184](https://github.com/jupyterlab/jupyterlab/pull/19184) ([@krassowski](https://github.com/krassowski), [@MUFFANUJ](https://github.com/MUFFANUJ)) - Stabilize Open in Terminal Galata test on Firefox [#19152](https://github.com/jupyterlab/jupyterlab/pull/19152) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Fix notebook initialization stealing focus [#19149](https://github.com/jupyterlab/jupyterlab/pull/19149) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Fix stale document load after rename during initialization [#19144](https://github.com/jupyterlab/jupyterlab/pull/19144) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Clear stale Table of Contents error markers [#19143](https://github.com/jupyterlab/jupyterlab/pull/19143) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Fix bottom activity bar restoring as collapsed [#19136](https://github.com/jupyterlab/jupyterlab/pull/19136) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Fix spurious 3s kernel restart delay [#19126](https://github.com/jupyterlab/jupyterlab/pull/19126) ([@afshin](https://github.com/afshin), [@krassowski](https://github.com/krassowski)) - Handle invalid file browser drag target [#19122](https://github.com/jupyterlab/jupyterlab/pull/19122) ([@GagandeepSingh20](https://github.com/GagandeepSingh20), [@krassowski](https://github.com/krassowski)) - Update shortcuts settings UI on external preference saves [#19121](https://github.com/jupyterlab/jupyterlab/pull/19121) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@kra _[Truncated at 4000 characters — full notes: https://github.com/jupyterlab/jupyterlab/releases/tag/v4.7.0a1]_ ### v4.5.10 - Date: 2026-07-21 - Version: v4.5.10 - Original notes: https://github.com/jupyterlab/jupyterlab/releases/tag/v4.5.10 - Permalink: https://whatsnew.fyi/product/jupyterlab/releases/v4.5.10 - **security** — Fixed security vulnerability GHSA-gx64-gj6p-pc4c - **security** — Fixed security vulnerability GHSA-89vp-jrxv-24w8 - **security** — Fixed security vulnerability GHSA-h5v5-8746-g7mm - **security** — Fixed security vulnerability GHSA-pppj-hq3g-57pj - **security** — Fixed security vulnerability GHSA-whvh-wf3x-g77j ##### 4.5.10 ([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v4.5.9...be9303f5bcd5308eaeae953c5a3c903046682c2c)) ###### Security patches - GHSA-gx64-gj6p-pc4c - GHSA-89vp-jrxv-24w8 - GHSA-h5v5-8746-g7mm - GHSA-pppj-hq3g-57pj - GHSA-whvh-wf3x-g77j ###### Bugs fixed - Backport of security patches to `4.5.x` branch [#19186](https://github.com/jupyterlab/jupyterlab/pull/19186) ([@krassowski](https://github.com/krassowski), [@MUFFANUJ](https://github.com/MUFFANUJ)) ###### Maintenance and upkeep improvements - Reconfigure 4.5.x branch (4.6.x is new stable) [#19060](https://github.com/jupyterlab/jupyterlab/pull/19060) ([@krassowski](https://github.com/krassowski)) - Split external link checks and only run if diff includes a URL [#19029](https://github.com/jupyterlab/jupyterlab/pull/19029) ([@MUFFANUJ](https://github.com/MUFFANUJ)) ###### Contributors to this release The following people contributed discussions, new ideas, code and documentation contributions, and review. See [our definition of contributors](https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports). ([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2026-06-17&to=2026-07-21&type=c)) @krassowski ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2026-06-17..2026-07-21&type=Issues)) | @MUFFANUJ ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AMUFFANUJ+updated%3A2026-06-17..2026-07-21&type=Issues)) ### v4.6.2 - Date: 2026-07-21 - Version: v4.6.2 - Original notes: https://github.com/jupyterlab/jupyterlab/releases/tag/v4.6.2 - Permalink: https://whatsnew.fyi/product/jupyterlab/releases/v4.6.2 - **security** — Fix image viewer XSS vulnerability when opening malicious image in new browser tab - **security** — Fix PyPI extension blocklist package-name canonicalization bypass - **security** — Fix PluginManager lock-rule enforcement bypass - **security** — Fix cross-site scripting (XSS) vulnerability via crafted settings file (overrides.json) - **security** — Fix allowlist/blocklist check in PyPIExtensionManager.install() not enforced for direct callers - **fixed** — Fix resolving platform-specific shortcuts in keyboard shortcuts - **fixed** — Clear stale Table of Contents error markers - **fixed** — Fix stale document load after rename during initialization - **fixed** — Fix notebook initialization stealing focus - **fixed** — Fix spurious 3s kernel restart delay - **fixed** — Fix bottom activity bar restoring as collapsed - **fixed** — Handle invalid file browser drag target ##### 4.6.2 ([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v4.6.1...f1beab4a2027af4719d6edc07d52d6cf5a39a432)) ###### Security patches - GHSA-gx64-gj6p-pc4c: Image viewer allows XSS when opening malicious image in new browser tab - GHSA-89vp-jrxv-24w8: PyPI extension blocklist package-name canonicalization bypass - GHSA-h5v5-8746-g7mm: PluginManager lock-rule enforcement bypass - GHSA-pppj-hq3g-57pj: Cross-site scripting (XSS) via crafted settings file (`overrides.json`) - GHSA-whvh-wf3x-g77j: Allowlist/blocklist check in `PyPIExtensionManager.install()` not enforced for direct callers (missing `await`) ###### Bugs fixed - Backport of security patches to `4.6.x` branch [#19185](https://github.com/jupyterlab/jupyterlab/pull/19185) ([@krassowski](https://github.com/krassowski), [@MUFFANUJ](https://github.com/MUFFANUJ)) - Fix resolving platform-specific shortcuts in keyboard shortcuts [#19112](https://github.com/jupyterlab/jupyterlab/pull/19112) ([@krassowski](https://github.com/krassowski)) - Clear stale Table of Contents error markers [#19143](https://github.com/jupyterlab/jupyterlab/pull/19143) ([@MUFFANUJ](https://github.com/MUFFANUJ)) - Fix stale document load after rename during initialization [#19144](https://github.com/jupyterlab/jupyterlab/pull/19144) ([@MUFFANUJ](https://github.com/MUFFANUJ)) - Fix notebook initialization stealing focus [#19149](https://github.com/jupyterlab/jupyterlab/pull/19149) ([@MUFFANUJ](https://github.com/MUFFANUJ)) - Fix spurious 3s kernel restart delay [#19126](https://github.com/jupyterlab/jupyterlab/pull/19126) ([@afshin](https://github.com/afshin)) - Stabilize Open in Terminal Galata test on Firefox [#19152](https://github.com/jupyterlab/jupyterlab/pull/19152) ([@MUFFANUJ](https://github.com/MUFFANUJ)) - Fix bottom activity bar restoring as collapsed [#19136](https://github.com/jupyterlab/jupyterlab/pull/19136) ([@MUFFANUJ](https://github.com/MUFFANUJ)) - Handle invalid file browser drag target [#19122](https://github.com/jupyterlab/jupyterlab/pull/19122) ([@GagandeepSingh20](https://github.com/GagandeepSingh20)) - Stabilize flaky Firefox notebook Galata tests [#19008](https://github.com/jupyterlab/jupyterlab/pull/19008) ([@MUFFANUJ](https://github.com/MUFFANUJ)) ###### Maintenance and upkeep improvements - Update Jupyter Releaser GitHub Actions [#19145](https://github.com/jupyterlab/jupyterlab/pull/19145) ([@jtpio](https://github.com/jtpio)) ###### Documentation improvements - Fix a typo in release notes [#19116](https://github.com/jupyterlab/jupyterlab/pull/19116) ([@krassowski](https://github.com/krassowski)) - Update migration guide - 4.6 was released [#19108](https://github.com/jupyterlab/jupyterlab/pull/19108) ([@krassowski](https://github.com/krassowski)) ###### Other merged PRs - Bump brace-expansion from 1.1.11 to 1.1.16 in /jupyterlab/tests/mock_packages/test_no_hyphens [#19179](https://github.com/jupyterlab/jupyterlab/pull/19179) ([@dependabot[bot]](https://github.com/apps/dependabot)) - Bump axios from 1.16.0 to 1.18.1 [#19178](https://github.com/jupyterlab/jupyterlab/pull/19178) ([@dependabot[bot]](https://github.com/apps/dependabot)) ###### Contributors to this release The following people contributed discussions, new ideas, code and documentation contributions, and review. See [our definition of contributors](https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports). ([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2026-06-29&to=2026-07-21&type=c)) @afshin ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aafshin+updated%3A2026-06-29..2026-07-21&type=Issues)) | @GagandeepSingh20 ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AGagandeepSingh20+updated%3A2026-06-29..2026-07-21&type=Issues)) | @jtpio ([activity](https://gith _[Truncated at 4000 characters — full notes: https://github.com/jupyterlab/jupyterlab/releases/tag/v4.6.2]_ ### v4.6.1 - Date: 2026-06-29 - Version: v4.6.1 - Original notes: https://github.com/jupyterlab/jupyterlab/releases/tag/v4.6.1 - Permalink: https://whatsnew.fyi/product/jupyterlab/releases/v4.6.1 - **added** — Include videos for PR-modified tests in UI reports - **added** — Add an optional widget ID to 'application:split-tab' command - **fixed** — Fix moving cells to preserve output and execution state - **fixed** — Fix Ctrl + Shift + Z shortcut for redo - **fixed** — Fix Font Awesome icon rendering on buttons - **fixed** — Fix multiple dropdown settings not rendering in the Setting Editor - **fixed** — Use anchor positioning for search box placement - **fixed** — Fix scrollToCell for cells not yet rendered in defer / contentVisibility modes - **fixed** — Queue settings saves to avoid toggle race ##### 4.6.1 ([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v4.6.0...4390320f122a610487c6352cd4cc68536b7edbe9)) ###### Enhancements made - Include videos for PR-modified tests in UI reports [#18865](https://github.com/jupyterlab/jupyterlab/pull/18865) ([@MUFFANUJ](https://github.com/MUFFANUJ)) - Add an optional widget ID to 'application:split-tab' command [#19077](https://github.com/jupyterlab/jupyterlab/pull/19077) ([@brichet](https://github.com/brichet)) ###### Bugs fixed - Fix moving cells: preserve output and execution state [#18874](https://github.com/jupyterlab/jupyterlab/pull/18874) ([@krassowski](https://github.com/krassowski)) - Fix Ctrl + Shift + Z shortcut for redo [#19088](https://github.com/jupyterlab/jupyterlab/pull/19088) ([@krassowski](https://github.com/krassowski)) - Fix Font Awesome icon rendering on buttons [#19091](https://github.com/jupyterlab/jupyterlab/pull/19091) ([@krassowski](https://github.com/krassowski)) - Wait for launcher icons before screenshots [#19076](https://github.com/jupyterlab/jupyterlab/pull/19076) ([@MUFFANUJ](https://github.com/MUFFANUJ)) - Fix multiple dropdown settings not rendering in the Setting Editor [#19092](https://github.com/jupyterlab/jupyterlab/pull/19092) ([@krassowski](https://github.com/krassowski)) - Use anchor positioning for search box placement [#19055](https://github.com/jupyterlab/jupyterlab/pull/19055) ([@krassowski](https://github.com/krassowski)) - Fix `scrollToCell` for cells not yet rendered in `defer` / `contentVisibility` modes [#18987](https://github.com/jupyterlab/jupyterlab/pull/18987) ([@Darshan808](https://github.com/Darshan808)) - Queue settings saves to avoid toggle race [#18864](https://github.com/jupyterlab/jupyterlab/pull/18864) ([@MUFFANUJ](https://github.com/MUFFANUJ)) ###### Maintenance and upkeep improvements - Do not disable immutable installs [#18940](https://github.com/jupyterlab/jupyterlab/pull/18940) ([@krassowski](https://github.com/krassowski)) - Add bot support for updating example snapshots [#19007](https://github.com/jupyterlab/jupyterlab/pull/19007) ([@MUFFANUJ](https://github.com/MUFFANUJ)) - Split PR title spell check into `pull_request` workflow [#19059](https://github.com/jupyterlab/jupyterlab/pull/19059) ([@MUFFANUJ](https://github.com/MUFFANUJ)) - Reconfigure 4.6.x branch [#19061](https://github.com/jupyterlab/jupyterlab/pull/19061) ([@krassowski](https://github.com/krassowski)) ###### Documentation improvements - Document Mermaid support in Markdown cells [#18325](https://github.com/jupyterlab/jupyterlab/pull/18325) ([@Krish-876](https://github.com/Krish-876)) ###### Other merged PRs - Bump dompurify from 3.4.10 to 3.4.11 [#19056](https://github.com/jupyterlab/jupyterlab/pull/19056) ([@dependabot[bot]](https://github.com/apps/dependabot)) ###### Contributors to this release The following people contributed discussions, new ideas, code and documentation contributions, and review. See [our definition of contributors](https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports). ([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2026-06-18&to=2026-06-29&type=c)) @brichet ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Abrichet+updated%3A2026-06-18..2026-06-29&type=Issues)) | @Darshan808 ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ADarshan808+updated%3A2026-06-18..2026-06-29&type=Issues)) | @DTiming24 ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ADTiming24+updated%3A2026-06-18..2026-06-29&type=Issues)) | @krassowski ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2026-06-18..2026-06-29&type=Issues)) | @Krish-876 ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AKrish-876+updated%3A2026-06-18..2026-06- _[Truncated at 4000 characters — full notes: https://github.com/jupyterlab/jupyterlab/releases/tag/v4.6.1]_ ### v4.7.0a0 - Date: 2026-06-29 - Version: v4.7.0a0 - Original notes: https://github.com/jupyterlab/jupyterlab/releases/tag/v4.7.0a0 - Permalink: https://whatsnew.fyi/product/jupyterlab/releases/v4.7.0a0 - Labels: Pre-release - **added** — Add an optional widget ID to 'application:split-tab' command - **added** — Expose generic LSP request API - **added** — Add runtime LSP provider registration - **added** — Add option to display pager output in a bottom panel - **changed** — Improve placeholder in the rendered markdown cell - **fixed** — Fix multiple dropdown settings not rendering in the Setting Editor - **fixed** — Fix Font Awesome icon rendering on buttons - **fixed** — Fix Ctrl + Shift + Z shortcut for redo - **fixed** — Use anchor positioning for search box placement - **fixed** — Fix keyboard navigation of plugin list in Settings Editor - **fixed** — Respect maxNumberOutputs when stdin is requested - **fixed** — Fix scrollToCell for cells not yet rendered in defer / contentVisibility modes - **fixed** — Fix moving cells: preserve output and execution state - **fixed** — Queue settings saves to avoid toggle race - **fixed** — Refactor selection logic for collapsed headings ##### 4.7.0a0 ([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v4.6.0...e0c663857f7bd9b7e41a457feff0510acff4c337)) ###### Enhancements made - Add an optional widget ID to 'application:split-tab' command [#19077](https://github.com/jupyterlab/jupyterlab/pull/19077) ([@brichet](https://github.com/brichet), [@jtpio](https://github.com/jtpio), [@krassowski](https://github.com/krassowski)) - Expose generic LSP request API [#19067](https://github.com/jupyterlab/jupyterlab/pull/19067) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Add runtime LSP provider registration [#18985](https://github.com/jupyterlab/jupyterlab/pull/18985) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Add local zizmor pre-commit hook and pin CI/local versions [#18974](https://github.com/jupyterlab/jupyterlab/pull/18974) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@Yann-P](https://github.com/Yann-P), [@krassowski](https://github.com/krassowski)) - Remove `no-explicit-any` suppressions [#18869](https://github.com/jupyterlab/jupyterlab/pull/18869) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Include videos for PR-modified tests in UI reports [#18865](https://github.com/jupyterlab/jupyterlab/pull/18865) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@DTiming24](https://github.com/DTiming24), [@krassowski](https://github.com/krassowski)) - Improve placeholder in the rendered markdown cell [#18282](https://github.com/jupyterlab/jupyterlab/pull/18282) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@Yann-P](https://github.com/Yann-P), [@jasongrout](https://github.com/jasongrout), [@krassowski](https://github.com/krassowski)) - Add option to display pager output in a bottom panel [#18179](https://github.com/jupyterlab/jupyterlab/pull/18179) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@brichet](https://github.com/brichet), [@goelakash](https://github.com/goelakash), [@jtpio](https://github.com/jtpio), [@krassowski](https://github.com/krassowski)) ###### Bugs fixed - Fix multiple dropdown settings not rendering in the Setting Editor [#19092](https://github.com/jupyterlab/jupyterlab/pull/19092) ([@krassowski](https://github.com/krassowski), [@Darshan808](https://github.com/Darshan808)) - Fix Font Awesome icon rendering on buttons [#19091](https://github.com/jupyterlab/jupyterlab/pull/19091) ([@krassowski](https://github.com/krassowski), [@MUFFANUJ](https://github.com/MUFFANUJ)) - Fix Ctrl + Shift + Z shortcut for redo [#19088](https://github.com/jupyterlab/jupyterlab/pull/19088) ([@krassowski](https://github.com/krassowski), [@MUFFANUJ](https://github.com/MUFFANUJ)) - Wait for launcher icons before screenshots [#19076](https://github.com/jupyterlab/jupyterlab/pull/19076) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Use anchor positioning for search box placement [#19055](https://github.com/jupyterlab/jupyterlab/pull/19055) ([@krassowski](https://github.com/krassowski), [@MUFFANUJ](https://github.com/MUFFANUJ), [@jtpio](https://github.com/jtpio)) - Fixes keyboard navigation of plugin list in Settings Editor [#19028](https://github.com/jupyterlab/jupyterlab/pull/19028) ([@IsabelParedes](https://github.com/IsabelParedes), [@krassowski](https://github.com/krassowski)) - Respect `maxNumberOutputs` when stdin is requested [#19009](https://github.com/jupyterlab/jupyterlab/pull/19009) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Fix `scrollToCell` for cells not yet rendered in `defer` / `contentVisibility` modes [#18987](https://github.com/jupyterlab/jupyterlab/pull/18987) ([@Darshan808](https://github.com/Darshan808), [@Copilot](https://github.com/Copilot), [@krassowski](https://github.com/krassowski)) - Fix moving cells: preserve output and execution state [#18874](https://github.com/jupyterlab/jupyterlab/pull/1887 _[Truncated at 4000 characters — full notes: https://github.com/jupyterlab/jupyterlab/releases/tag/v4.7.0a0]_ ### v4.6.0 - Date: 2026-06-18 - Version: v4.6.0 - Original notes: https://github.com/jupyterlab/jupyterlab/releases/tag/v4.6.0 - Permalink: https://whatsnew.fyi/product/jupyterlab/releases/v4.6.0 - **added** — Support horizontal activity bars - **added** — Expose cell index and cell count in the statusbar - **added** — Allow moving sections between panels - **added** — Make the breadcrumbs in filebrowser editable with completion - **added** — Add Date Created column to file browser - **added** — Add command and buttons to select previous/next last modified cell - **added** — Add syntax highlighting for ghost text in completer - **deprecated** — Replace deprecated keyCode with key - **deprecated** — Deprecate the notion of defaultContentProvider in Drives - **changed** — Update lumino to v2026.5.25 - **changed** — Improve scroll overlay icon placement - **changed** — Optimize resizing dock panels with an opt-out - **changed** — Use resolvePath API for traceback path resolution - **added** — Add loading animation for file browser refresh action - **changed** — Upgrade Stylelint to v16 - **added** — Add category-level ordering support for launcher sections via categoryRank - **changed** — Replace Preferred icon in file browser to avoid confusion with Home - **changed** — Ask if user wants to sanitize HTML export and send param to jupyter server - **added** — Add a setting to disable the dock panel padding - **removed** — Remove Simple Mode switch from the status bar ##### 4.6.0 - [Full Release Notes](https://jupyterlab.readthedocs.io/en/latest/getting_started/changelog.html#v4-6) - [Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v4.5.0...abacfb97ae0c679b00674faec5643f38c91119f9) ###### New features added - Support horizontal activity bars [#18832](https://github.com/jupyterlab/jupyterlab/pull/18832) ([@jtpio](https://github.com/jtpio), [@krassowski](https://github.com/krassowski)) - Expose cell index and cell count in the statusbar [#18708](https://github.com/jupyterlab/jupyterlab/pull/18708) ([@krassowski](https://github.com/krassowski), [@jtpio](https://github.com/jtpio)) - Allow moving sections between panels [#18703](https://github.com/jupyterlab/jupyterlab/pull/18703) ([@Darshan808](https://github.com/Darshan808), [@Carreau](https://github.com/Carreau), [@brichet](https://github.com/brichet), [@jtpio](https://github.com/jtpio), [@krassowski](https://github.com/krassowski)) - Make the breadcrumbs in filebrowser editable + completion [#18571](https://github.com/jupyterlab/jupyterlab/pull/18571) ([@Carreau](https://github.com/Carreau), [@krassowski](https://github.com/krassowski)) - Add "Date Created" column to file browser [#18533](https://github.com/jupyterlab/jupyterlab/pull/18533) ([@ktaletsk](https://github.com/ktaletsk), [@RRosio](https://github.com/RRosio), [@cursoragent](https://github.com/cursoragent), [@krassowski](https://github.com/krassowski)) - Add command and buttons to select previous/next last modified cell [#18210](https://github.com/jupyterlab/jupyterlab/pull/18210) ([@Yahiewi](https://github.com/Yahiewi), [@brichet](https://github.com/brichet), [@krassowski](https://github.com/krassowski)) - feat(completer): Add syntax highlighting for ghost text [#18073](https://github.com/jupyterlab/jupyterlab/pull/18073) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@Darshan808](https://github.com/Darshan808), [@jtpio](https://github.com/jtpio), [@krassowski](https://github.com/krassowski)) ###### Deprecated features - Replace deprecated `keyCode` with `key` [#18674](https://github.com/jupyterlab/jupyterlab/pull/18674) ([@IsabelParedes](https://github.com/IsabelParedes), [@krassowski](https://github.com/krassowski)) - Drives: Deprecate the notion of defaultContentProvider [#18169](https://github.com/jupyterlab/jupyterlab/pull/18169) ([@martinRenou](https://github.com/martinRenou), [@brichet](https://github.com/brichet), [@jasongrout](https://github.com/jasongrout), [@jtpio](https://github.com/jtpio), [@krassowski](https://github.com/krassowski)) ###### Enhancements made - Update lumino to `v2026.5.25` [#18942](https://github.com/jupyterlab/jupyterlab/pull/18942) ([@krassowski](https://github.com/krassowski), [@jtpio](https://github.com/jtpio)) - Improve scroll overlay icon placement [#18907](https://github.com/jupyterlab/jupyterlab/pull/18907) ([@krassowski](https://github.com/krassowski), [@jtpio](https://github.com/jtpio)) - Optimize resizing dock panels (with an opt-out) [#18877](https://github.com/jupyterlab/jupyterlab/pull/18877) ([@krassowski](https://github.com/krassowski), [@Darshan808](https://github.com/Darshan808)) - Use resolvePath API for traceback path resolution [#18876](https://github.com/jupyterlab/jupyterlab/pull/18876) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Add loading animation for file browser refresh action [#18855](https://github.com/jupyterlab/jupyterlab/pull/18855) ([@Siddhazntx](https://github.com/Siddhazntx), [@krassowski](https://github.com/krassowski)) - Upgrade Stylelint to v16 [#18848](https://github.com/jupyterlab/jupyterlab/pull/18848) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Add category-level ordering support for launcher sections via `categoryRank` [#18779](https://github.com/jupyterlab/jupyterlab/pull/18779) ([@tsharma-dev](https://github.com/tsharma-dev), [@MUFFANUJ](https://github.com/MUFFANU _[Truncated at 4000 characters — full notes: https://github.com/jupyterlab/jupyterlab/releases/tag/v4.6.0]_ ### v4.5.9 - Date: 2026-06-17 - Version: v4.5.9 - Original notes: https://github.com/jupyterlab/jupyterlab/releases/tag/v4.5.9 - Permalink: https://whatsnew.fyi/product/jupyterlab/releases/v4.5.9 - **fixed** — Fix jupyter labextension build crash on webpack ≥ 5.107 - **fixed** — Fix hidden cells after moving collapsed headings - **security** — Forbid relative URLs in extensionmanager - **security** — Fix XSS in extension manager's homepage_url - **fixed** — Fix toolbar popup row clipping in Safari ##### 4.5.9 ([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v4.5.8...26936727d7f197bab4f314ca50690cd162d50312)) ###### Bugs fixed - Fix `jupyter labextension build` crash on `webpack ≥ 5.107` [#19021](https://github.com/jupyterlab/jupyterlab/pull/19021) ([@Darshan808](https://github.com/Darshan808), [@krassowski](https://github.com/krassowski)) - Backport PR #18992: Fix hidden cells after moving collapsed headings [#19016](https://github.com/jupyterlab/jupyterlab/pull/19016) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Forbid relative URLs in extensionmanager [#19013](https://github.com/jupyterlab/jupyterlab/pull/19013) ([@Yann-P](https://github.com/Yann-P)) - Fix XSS in extension manager's `homepage_url` [#19003](https://github.com/jupyterlab/jupyterlab/pull/19003) ([@Yann-P](https://github.com/Yann-P)) - Fix toolbar popup row clipping in Safari [#18998](https://github.com/jupyterlab/jupyterlab/pull/18998) ([@arun-357](https://github.com/arun-357)) ###### Contributors to this release The following people contributed discussions, new ideas, code and documentation contributions, and review. See [our definition of contributors](https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports). ([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2026-06-04&to=2026-06-17&type=c)) @arun-357 ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aarun-357+updated%3A2026-06-04..2026-06-17&type=Issues)) | @Darshan808 ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ADarshan808+updated%3A2026-06-04..2026-06-17&type=Issues)) | @krassowski ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2026-06-04..2026-06-17&type=Issues)) | @MUFFANUJ ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AMUFFANUJ+updated%3A2026-06-04..2026-06-17&type=Issues)) | @Yann-P ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AYann-P+updated%3A2026-06-04..2026-06-17&type=Issues)) ### v4.6.0rc1 - Date: 2026-06-17 - Version: v4.6.0rc1 - Original notes: https://github.com/jupyterlab/jupyterlab/releases/tag/v4.6.0rc1 - Permalink: https://whatsnew.fyi/product/jupyterlab/releases/v4.6.0rc1 - Labels: Pre-release - **fixed** — Fix flaky filebrowser filter navigation test - **security** — Forbid relative URLs in extensionmanager - **fixed** — Avoid debugger toolbar button flicker during kernel startup - **removed** — Drop setuptools dependency - **changed** — Update @jupyter/ydoc to final 4.0 ##### 4.6.0rc1 ([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v4.6.0rc0...ec0b487fa4f836a2ed68811243c27224807ffecd)) ###### Bugs fixed - Fix flaky filebrowser filter navigation test [#19015](https://github.com/jupyterlab/jupyterlab/pull/19015) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Forbid relative URLs in extensionmanager [#19013](https://github.com/jupyterlab/jupyterlab/pull/19013) ([@Yann-P](https://github.com/Yann-P), [@krassowski](https://github.com/krassowski)) - Avoid debugger toolbar button flicker during kernel startup [#19006](https://github.com/jupyterlab/jupyterlab/pull/19006) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) ###### Maintenance and upkeep improvements - Stabilize subpixel editor line shift on Welcome screenshot [#19039](https://github.com/jupyterlab/jupyterlab/pull/19039) ([@krassowski](https://github.com/krassowski), [@MUFFANUJ](https://github.com/MUFFANUJ)) - Update `@jupyter/ydoc` to final 4.0 [#19034](https://github.com/jupyterlab/jupyterlab/pull/19034) ([@krassowski](https://github.com/krassowski)) - Split external link checks and only run if diff includes a URL [#19029](https://github.com/jupyterlab/jupyterlab/pull/19029) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Baseline spelling cleanup for docs and README files [#19025](https://github.com/jupyterlab/jupyterlab/pull/19025) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Make docs dependencies a dependency group [#19024](https://github.com/jupyterlab/jupyterlab/pull/19024) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@bollwyvl](https://github.com/bollwyvl), [@krassowski](https://github.com/krassowski)) - Update @jupyter/ydoc v4.0.0-b1 [#19023](https://github.com/jupyterlab/jupyterlab/pull/19023) ([@davidbrochart](https://github.com/davidbrochart), [@krassowski](https://github.com/krassowski)) - Drop `setuptools` dependency [#19020](https://github.com/jupyterlab/jupyterlab/pull/19020) ([@krassowski](https://github.com/krassowski), [@Darshan808](https://github.com/Darshan808), [@MUFFANUJ](https://github.com/MUFFANUJ), [@bollwyvl](https://github.com/bollwyvl)) ###### Documentation improvements - Update user-facing changelog for 4.6.0 RC [#19019](https://github.com/jupyterlab/jupyterlab/pull/19019) ([@krassowski](https://github.com/krassowski), [@Yann-P](https://github.com/Yann-P)) ###### Other merged PRs - Bump markdown-it from 14.1.0 to 14.2.0 [#19041](https://github.com/jupyterlab/jupyterlab/pull/19041) ([@krassowski](https://github.com/krassowski)) - Bump form-data from 4.0.5 to 4.0.6 [#19040](https://github.com/jupyterlab/jupyterlab/pull/19040) ([@krassowski](https://github.com/krassowski)) - Bump dompurify from 3.4.0 to 3.4.10 [#19037](https://github.com/jupyterlab/jupyterlab/pull/19037) ([@krassowski](https://github.com/krassowski)) - Bump @babel/core from 7.21.0 to 7.29.6 [#19036](https://github.com/jupyterlab/jupyterlab/pull/19036) ([@krassowski](https://github.com/krassowski)) ###### Contributors to this release The following people contributed discussions, new ideas, code and documentation contributions, and review. See [our definition of contributors](https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports). ([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2026-06-10&to=2026-06-17&type=c)) @bollwyvl ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Abollwyvl+updated%3A2026-06-10..2026-06-17&type=Issues)) | @Darshan808 ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ADarshan808+updated%3A2026-06-10..2026-06-17&type=Issues)) | @davidbrochart ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Adavidbrochart+updated%3A2026 _[Truncated at 4000 characters — full notes: https://github.com/jupyterlab/jupyterlab/releases/tag/v4.6.0rc1]_ ### v4.6.0rc0 - Date: 2026-06-10 - Version: v4.6.0rc0 - Original notes: https://github.com/jupyterlab/jupyterlab/releases/tag/v4.6.0rc0 - Permalink: https://whatsnew.fyi/product/jupyterlab/releases/v4.6.0rc0 - Labels: Pre-release - **changed** — Use resolvePath API for traceback path resolution - **added** — Add automated spell check for documentation - **security** — Fix XSS in extension manager's homepage_url - **fixed** — Fix too eager autocompletion heuristics - **fixed** — Fix toolbar popup row clipping in Safari - **fixed** — Fix HTMLSelect dropdown icon misalignment in toolbar popup - **fixed** — Fix hidden cells after moving collapsed headings - **fixed** — Deduplicate concurrent LSP document connects by URI - **fixed** — Fix scrolling to heading in ToC, workspace opening and flaky UI tests - **fixed** — Fix read-only indicator ##### 4.6.0rc0 ([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v4.6.0b1...4fd02163056f39ab5600b76df294452d0b289afa)) ###### Enhancements made - Use resolvePath API for traceback path resolution [#18876](https://github.com/jupyterlab/jupyterlab/pull/18876) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Add automated spell check for documentation [#18398](https://github.com/jupyterlab/jupyterlab/pull/18398) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@Copilot](https://github.com/Copilot), [@krassowski](https://github.com/krassowski)) ###### Bugs fixed - Fix XSS in extension manager's `homepage_url` [#19003](https://github.com/jupyterlab/jupyterlab/pull/19003) ([@Yann-P](https://github.com/Yann-P), [@krassowski](https://github.com/krassowski)) - Fix too eager autocompletion heuristics [#19000](https://github.com/jupyterlab/jupyterlab/pull/19000) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Fix toolbar popup row clipping in Safari [#18998](https://github.com/jupyterlab/jupyterlab/pull/18998) ([@arun-357](https://github.com/arun-357), [@krassowski](https://github.com/krassowski)) - Fix `HTMLSelect` dropdown icon misalignment in toolbar popup [#18996](https://github.com/jupyterlab/jupyterlab/pull/18996) ([@arun-357](https://github.com/arun-357), [@claude](https://github.com/claude), [@krassowski](https://github.com/krassowski)) - Fix hidden cells after moving collapsed headings [#18992](https://github.com/jupyterlab/jupyterlab/pull/18992) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Deduplicate concurrent LSP document connects by URI [#18980](https://github.com/jupyterlab/jupyterlab/pull/18980) ([@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Fix scrolling to heading in ToC, workspace opening and flaky UI tests [#18961](https://github.com/jupyterlab/jupyterlab/pull/18961) ([@krassowski](https://github.com/krassowski), [@jtpio](https://github.com/jtpio)) - Fix read-only indicator [#18960](https://github.com/jupyterlab/jupyterlab/pull/18960) ([@davidbrochart](https://github.com/davidbrochart), [@jtpio](https://github.com/jtpio), [@krassowski](https://github.com/krassowski)) ###### Maintenance and upkeep improvements - Workaround flaky test for scrolling on page down in windowed notebook [#19004](https://github.com/jupyterlab/jupyterlab/pull/19004) ([@krassowski](https://github.com/krassowski), [@MUFFANUJ](https://github.com/MUFFANUJ)) - Some linting improvements from the Scientific Python style guide [#18990](https://github.com/jupyterlab/jupyterlab/pull/18990) ([@Darshan808](https://github.com/Darshan808), [@krassowski](https://github.com/krassowski)) - Add tests for the readonly indicator [#18982](https://github.com/jupyterlab/jupyterlab/pull/18982) ([@jtpio](https://github.com/jtpio), [@krassowski](https://github.com/krassowski)) ###### Documentation improvements - Clarify TypeScript watch builds in documentation [#18979](https://github.com/jupyterlab/jupyterlab/pull/18979) ([@nightcityblade](https://github.com/nightcityblade), [@Darshan808](https://github.com/Darshan808), [@krassowski](https://github.com/krassowski)) - Fix typo in contributing docs [#18971](https://github.com/jupyterlab/jupyterlab/pull/18971) ([@TheChyeahhh](https://github.com/TheChyeahhh), [@krassowski](https://github.com/krassowski)) - Fix typo in LSP documentation [#18970](https://github.com/jupyterlab/jupyterlab/pull/18970) ([@TheChyeahhh](https://github.com/TheChyeahhh), [@MUFFANUJ](https://github.com/MUFFANUJ), [@krassowski](https://github.com/krassowski)) - Fix duplicated sentence in `showJumpToRecentExecutionButton` description [#18969](https://github.com/jupyterlab/jupyterlab/pull/18969) ([@TheChyeahhh](https://github.com/TheChyeahhh), [@krassowski](https://github.com/krassowski)) - Fix typo in a shell test description [#18968](https://github.com/jupyte _[Truncated at 4000 characters — full notes: https://github.com/jupyterlab/jupyterlab/releases/tag/v4.6.0rc0]_ ### v4.5.8 - Date: 2026-06-04 - Version: v4.5.8 - Original notes: https://github.com/jupyterlab/jupyterlab/releases/tag/v4.5.8 - Permalink: https://whatsnew.fyi/product/jupyterlab/releases/v4.5.8 - **fixed** — Prevent dialog from hanging when getValue() throws - **fixed** — Add packaging min version pin - **fixed** — Use CSS anchor for prompt overlay ##### 4.5.8 ([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v4.5.7...8d30d481fbab784096e04d85dfa3b0c36e77be2c)) ###### Bugs fixed - Prevent dialog from hanging when `getValue()` throws [#18938](https://github.com/jupyterlab/jupyterlab/pull/18938) ([@AliMahmoudDev](https://github.com/AliMahmoudDev)) - Add `packaging` min version pin [#18910](https://github.com/jupyterlab/jupyterlab/pull/18910) ([@krassowski](https://github.com/krassowski)) - Use CSS `anchor` for prompt overlay [#18840](https://github.com/jupyterlab/jupyterlab/pull/18840) ([@CrafterKolyan](https://github.com/CrafterKolyan)) ###### Maintenance and upkeep improvements - Fix completer test failures on CI [#18946](https://github.com/jupyterlab/jupyterlab/pull/18946) ([@krassowski](https://github.com/krassowski)) - Bump license webpack plugin [#18929](https://github.com/jupyterlab/jupyterlab/pull/18929) ([@Darshan808](https://github.com/Darshan808), [@krassowski](https://github.com/krassowski)) ###### Contributors to this release The following people contributed discussions, new ideas, code and documentation contributions, and review. See [our definition of contributors](https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports). ([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2026-04-29&to=2026-06-04&type=c)) @AliMahmoudDev ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AAliMahmoudDev+updated%3A2026-04-29..2026-06-04&type=Issues)) | @CrafterKolyan ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ACrafterKolyan+updated%3A2026-04-29..2026-06-04&type=Issues)) | @Darshan808 ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ADarshan808+updated%3A2026-04-29..2026-06-04&type=Issues)) | @krassowski ([activity](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2026-04-29..2026-06-04&type=Issues))