Jupyterlab

Latest version: v4.3.6

Safety actively analyzes 723217 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 25

4.4

JupyterLab 4.4 includes a number of new features (described below), bug fixes, and enhancements.
This release is compatible with extensions supporting JupyterLab 4.0.
Extension authors are encouraged to consult the [Extension Migration Guide](https://jupyterlab.readthedocs.io/en/latest/extension/extension_migration.html#jupyterlab-4-3-to-4-4) which lists deprecations and changes to the public API.

Code console improvements

The code console prompt can now be positioned on the top, left, or right side of the console,
in addition to the default bottom placement. The placement is persisted in the Prompt Cell
Position setting.

The console toolbar now includes buttons to:
- Execute code
- Restart the kernel
- Clear the cells
- Switch the kernel

<img alt="The option to change console prompt position is available under the three dots button in the console toolbar, which is the last toolbar button" src="https://raw.githubusercontent.com/jupyterlab/jupyterlab/main/docs/source/getting_started/changelog_assets/4.4-console.png" class="jp-screenshot">

Additional settings for console behavior have been added:
- Clear Code Content on Execute (enabled by default) – When disabled, the code submitted for execution remains in the code editor, allowing for further edits.
- Hide Code Input – When enabled, only the execution output is shown in the console.
- Clear Cells on Execute – When enabled, only the last cell is displayed.

Toggling all the three new settings transforms the console into an interactive editor
resembling an ephemeral notebook with a single cell.

<img alt="Toggling all the three new settings transforms the console into a single cell" src="https://raw.githubusercontent.com/jupyterlab/jupyterlab/main/docs/source/getting_started/changelog_assets/4.4-console-singlecell.png" class="jp-screenshot">

Settings import and export

Settings can now be exported to `overrides.json` from the Settings Editor,
which can be used to pre-configure defaults in deployments or to restore settings.

<img alt="The Import and Export buttons in the Settings Editor are the first two items in the toolbar panel" src="https://raw.githubusercontent.com/jupyterlab/jupyterlab/main/docs/source/getting_started/changelog_assets/4.4-settings-import-export.png" class="jp-screenshot">

Workspace indicator

An opt-in workspace indicator is displayed on the top bar (next to the menu bar). It can be enabled
in the Settings → View → Appearance → Show Workspace Indicator.

<img alt="The workspace indicator in the open state" src="https://raw.githubusercontent.com/jupyterlab/jupyterlab/main/docs/source/getting_started/changelog_assets/4.4-workspace-indicator.png" class="jp-screenshot">

Support for collaboration without `RTC:` drive

Real time collaboration in previous versions of JupyterLab
(which can be enabled by installing jupyter-collaboration package)
was implemented by swapping the default JupyterLab file system
drive to a collaborative drive with the `RTC:` prefix.
This approach was incompatible with multiple extensions.
JupyterLab 4.4 introduces the Content Providers API, which allows the next version of `jupyter-collaboration` to work without changing the drive prefix.
This improves compatibility with extensions that do not support arbitrary drives.

Kernel subshells support

Kernel subshells, introduced in [JEP 91](https://jupyter.org/enhancement-proposals/91-kernel-subshells/kernel-subshells.html),
enable concurrent code execution in kernels that support them.
When performing long-running computations (such as training a model), subshells enable users to:
- Use `ipywidgets` with updates displayed immediately
- Monitor kernel resource usage (e.g. memory usage)
- Invoke arbitrary commands (e.g., refine code for a subsequent cell) while maintaining live access to previously defined variables

Subshells are supported by `ipykernel` 7 (currently in alpha).

To create a subshell, open context menu (right-click)
over a notebook using a kernel supporting subshells
and select "New Subshell Console for Notebook".
A new console panel will open allowing access to variables from the main session.

<img alt="The subshell console" src="https://raw.githubusercontent.com/jupyterlab/jupyterlab/main/docs/source/getting_started/changelog_assets/4.4-subshells.png" class="jp-screenshot">

JupyterLab can automatically create subshells for comm messages if kernels support this feature.
This enables concurrent execution of `ipywidgets` callbacks without requiring a user action.
This behavior can be changed from the settings, with options to:
- disable that feature to not use subshells for comms
- (default) automatically create one subshell per comm-target (e.g. one subshell for all `ipywidgets`)
- automatically create one subshell per comm (this can lead to issues if creating many comms)

Context menu opt-out

The context menu, available under right mouse click in browsers, can now be disabled globally
by toggling the `Enable Context Menu` option available in the Command Palette,
or via the JSON Settings Editor in the Application Context Menu.

Slimmer status bar

The terminals counter no longer appears in the status bar if no terminals are open.
The kernels counter can be disabled by toggling the "Show the status bar item" setting
in "Running Terminals and Kernels" (code name `showStatusBarItem`).

4.4.0rc0

([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v4.4.0b2...4c6159f834ad1507384653a4aeba2ab67a11f255))

Enhancements made

- Create "Kernels" section, split statusbar settings [17415](https://github.com/jupyterlab/jupyterlab/pull/17415) ([krassowski](https://github.com/krassowski))
- Improve UX for "Rename on First Save" Dialog [17217](https://github.com/jupyterlab/jupyterlab/pull/17217) ([MUFFANUJ](https://github.com/MUFFANUJ))

Bugs fixed

- Fix for filebrowser tooltip rendering the kernel info repeatedly [17421](https://github.com/jupyterlab/jupyterlab/pull/17421) ([itsmevichu](https://github.com/itsmevichu))

Maintenance and upkeep improvements

- Update to mermaid 11.6.0, marked 15.0.7 [17396](https://github.com/jupyterlab/jupyterlab/pull/17396) ([bollwyvl](https://github.com/bollwyvl))

Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2025-03-19&to=2025-03-25&type=c))

[bollwyvl](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Abollwyvl+updated%3A2025-03-19..2025-03-25&type=Issues) | [brichet](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Abrichet+updated%3A2025-03-19..2025-03-25&type=Issues) | [itsmevichu](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aitsmevichu+updated%3A2025-03-19..2025-03-25&type=Issues) | [jupyterlab-probot](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajupyterlab-probot+updated%3A2025-03-19..2025-03-25&type=Issues) | [krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2025-03-19..2025-03-25&type=Issues) | [MUFFANUJ](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AMUFFANUJ+updated%3A2025-03-19..2025-03-25&type=Issues)

<!-- <END NEW CHANGELOG ENTRY> -->

4.4.0b2

([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v4.4.0b1...5408b22af13e3b695cfd3ae75733de0b6d0c9ac6))

Enhancements made

- Add `IKernelSpecAPICLient` and `ITerminalAPIClient`, fix definitions of interfaces [17395](https://github.com/jupyterlab/jupyterlab/pull/17395) ([jtpio](https://github.com/jtpio))
- If subshells are supported by the kernel, send comm messages to subshells [17363](https://github.com/jupyterlab/jupyterlab/pull/17363) ([martinRenou](https://github.com/martinRenou))

Bugs fixed

- More specific selector for "Copy Output to Clipboard" [17413](https://github.com/jupyterlab/jupyterlab/pull/17413) ([jtpio](https://github.com/jtpio))
- Fix rendering URLs as linked in errors [17371](https://github.com/jupyterlab/jupyterlab/pull/17371) ([afshin](https://github.com/afshin))

Maintenance and upkeep improvements

- Fix types in translation package, remove usages of `any` [17414](https://github.com/jupyterlab/jupyterlab/pull/17414) ([krassowski](https://github.com/krassowski))
- Remove workflow using `tj-actions/changed-files` [17398](https://github.com/jupyterlab/jupyterlab/pull/17398) ([jtpio](https://github.com/jtpio))
- Fix definition of the `ILicensesClient` interface [17397](https://github.com/jupyterlab/jupyterlab/pull/17397) ([jtpio](https://github.com/jtpio))

Documentation improvements

- If subshells are supported by the kernel, send comm messages to subshells [17363](https://github.com/jupyterlab/jupyterlab/pull/17363) ([martinRenou](https://github.com/martinRenou))

Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2025-03-13&to=2025-03-19&type=c))

[afshin](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aafshin+updated%3A2025-03-13..2025-03-19&type=Issues) | [fleming79](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Afleming79+updated%3A2025-03-13..2025-03-19&type=Issues) | [ianthomas23](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aianthomas23+updated%3A2025-03-13..2025-03-19&type=Issues) | [jtpio](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajtpio+updated%3A2025-03-13..2025-03-19&type=Issues) | [jupyterlab-probot](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajupyterlab-probot+updated%3A2025-03-13..2025-03-19&type=Issues) | [krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2025-03-13..2025-03-19&type=Issues) | [lumberbot-app](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Alumberbot-app+updated%3A2025-03-13..2025-03-19&type=Issues) | [martinRenou](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AmartinRenou+updated%3A2025-03-13..2025-03-19&type=Issues) | [trungleduc](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Atrungleduc+updated%3A2025-03-13..2025-03-19&type=Issues)

4.4.0b1

([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v4.4.0b0...b64a95bc3533a503f26096e0e30bd6592ba8d4c1))

Enhancements made

- Add a setting to disable the context menu [17352](https://github.com/jupyterlab/jupyterlab/pull/17352) ([afshin](https://github.com/afshin))
- Add `IKernelAPIClient` and `ISessionAPIClient` as options for `Kernel.IManager` and `Session.IManager` [17348](https://github.com/jupyterlab/jupyterlab/pull/17348) ([jtpio](https://github.com/jtpio))
- Fix checkbox alignment in dialog using `display: flex` [17343](https://github.com/jupyterlab/jupyterlab/pull/17343) ([SatyajitRedekar](https://github.com/SatyajitRedekar))

Bugs fixed

- Fix cell output stream if previous chunk did not end in new line [17369](https://github.com/jupyterlab/jupyterlab/pull/17369) ([davidbrochart](https://github.com/davidbrochart))
- Use "Move to Trash" over "Delete" when contents manager's `delete_to_trash` is `True` [17359](https://github.com/jupyterlab/jupyterlab/pull/17359) ([jesuino](https://github.com/jesuino))
- Add widget ID arg to semantic command invocations [17350](https://github.com/jupyterlab/jupyterlab/pull/17350) ([afshin](https://github.com/afshin))
- Fix HTML lang attribute [17337](https://github.com/jupyterlab/jupyterlab/pull/17337) ([fcollonval](https://github.com/fcollonval))
- Fix typo in LSP console message on kernel change [17323](https://github.com/jupyterlab/jupyterlab/pull/17323) ([iisakkirotko](https://github.com/iisakkirotko))
- Fix handling of a `null` banner in the code console [17322](https://github.com/jupyterlab/jupyterlab/pull/17322) ([jtpio](https://github.com/jtpio))
- Updated enabling logic for run-all-below button on Notebook Panel [17298](https://github.com/jupyterlab/jupyterlab/pull/17298) ([rsaditya01](https://github.com/rsaditya01))
- Fix order of extensions in PyPI Extension Manager [17266](https://github.com/jupyterlab/jupyterlab/pull/17266) ([Princekumarofficial](https://github.com/Princekumarofficial))
- Fix for issue preventing cell metadata removal [17194](https://github.com/jupyterlab/jupyterlab/pull/17194) ([itsmevichu](https://github.com/itsmevichu))
- Fix for unable to lock any extension [16213](https://github.com/jupyterlab/jupyterlab/pull/16213) ([itsmevichu](https://github.com/itsmevichu))

Maintenance and upkeep improvements

- Bump nanoid from 3.3.7 to 3.3.9 in /jupyterlab/tests/mock_packages/test_no_hyphens [17387](https://github.com/jupyterlab/jupyterlab/pull/17387) ([dependabot](https://github.com/dependabot))
- Bump babel/helpers from 7.21.0 to 7.26.10 [17385](https://github.com/jupyterlab/jupyterlab/pull/17385) ([dependabot](https://github.com/dependabot))
- Bump axios from 1.7.4 to 1.8.2 [17380](https://github.com/jupyterlab/jupyterlab/pull/17380) ([dependabot](https://github.com/dependabot))
- Update the copyright year to 2025 [17379](https://github.com/jupyterlab/jupyterlab/pull/17379) ([jtpio](https://github.com/jtpio))
- Update to Playwright 1.51.0 [17372](https://github.com/jupyterlab/jupyterlab/pull/17372) ([jtpio](https://github.com/jtpio))
- Require `JupyterLab.IInfo` for the plugin manager plugin [17367](https://github.com/jupyterlab/jupyterlab/pull/17367) ([jtpio](https://github.com/jtpio))
- Move the licenses plugin to `apputils-extension` [17361](https://github.com/jupyterlab/jupyterlab/pull/17361) ([jtpio](https://github.com/jtpio))
- Bump the actions group with 2 updates [17353](https://github.com/jupyterlab/jupyterlab/pull/17353) ([dependabot](https://github.com/dependabot))
- Expose `ConfigSectionManager` via a plugin [17345](https://github.com/jupyterlab/jupyterlab/pull/17345) ([jtpio](https://github.com/jtpio))
- Enforce plugin name convention and rename noncompliant plugins [17338](https://github.com/jupyterlab/jupyterlab/pull/17338) ([jtpio](https://github.com/jtpio))
- Use `ITranslationConnector` to fetch the translations [17329](https://github.com/jupyterlab/jupyterlab/pull/17329) ([jtpio](https://github.com/jtpio))
- Normalize translator plugin ids [17328](https://github.com/jupyterlab/jupyterlab/pull/17328) ([jtpio](https://github.com/jtpio))
- Provide `ISettingsConnector` via a separate plugin [17327](https://github.com/jupyterlab/jupyterlab/pull/17327) ([jtpio](https://github.com/jtpio))
- Provide `ITranslatorConnector` via a separate plugin [17325](https://github.com/jupyterlab/jupyterlab/pull/17325) ([jtpio](https://github.com/jtpio))
- Bump `semver` and `tough-cookie` to non-vulnerable versions [17319](https://github.com/jupyterlab/jupyterlab/pull/17319) ([dlqqq](https://github.com/dlqqq))

Documentation improvements

- Update changelog links, add new code console screenshot [17392](https://github.com/jupyterlab/jupyterlab/pull/17392) ([jtpio](https://github.com/jtpio))
- User-facing changelog for 4.4 [17368](https://github.com/jupyterlab/jupyterlab/pull/17368) ([krassowski](https://github.com/krassowski))
- Sort the list of plugins and tokens in the documentation [17364](https://github.com/jupyterlab/jupyterlab/pull/17364) ([jtpio](https://github.com/jtpio))
- Move the licenses plugin to `apputils-extension` [17361](https://github.com/jupyterlab/jupyterlab/pull/17361) ([jtpio](https://github.com/jtpio))
- Expose `ConfigSectionManager` via a plugin [17345](https://github.com/jupyterlab/jupyterlab/pull/17345) ([jtpio](https://github.com/jtpio))
- Enforce plugin name convention and rename noncompliant plugins [17338](https://github.com/jupyterlab/jupyterlab/pull/17338) ([jtpio](https://github.com/jtpio))
- Clarify documentation on bot privileges for updating snapshots [17336](https://github.com/jupyterlab/jupyterlab/pull/17336) ([Princekumarofficial](https://github.com/Princekumarofficial))
- Fix heading levels in extension migration guide [17332](https://github.com/jupyterlab/jupyterlab/pull/17332) ([krassowski](https://github.com/krassowski))
- Normalize translator plugin ids [17328](https://github.com/jupyterlab/jupyterlab/pull/17328) ([jtpio](https://github.com/jtpio))

Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2025-02-19&to=2025-03-13&type=c))

[afshin](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aafshin+updated%3A2025-02-19..2025-03-13&type=Issues) | [andrii-i](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aandrii-i+updated%3A2025-02-19..2025-03-13&type=Issues) | [bollwyvl](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Abollwyvl+updated%3A2025-02-19..2025-03-13&type=Issues) | [Darshan808](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ADarshan808+updated%3A2025-02-19..2025-03-13&type=Issues) | [davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Adavidbrochart+updated%3A2025-02-19..2025-03-13&type=Issues) | [dependabot](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Adependabot+updated%3A2025-02-19..2025-03-13&type=Issues) | [dlqqq](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Adlqqq+updated%3A2025-02-19..2025-03-13&type=Issues) | [fcollonval](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Afcollonval+updated%3A2025-02-19..2025-03-13&type=Issues) | [github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Agithub-actions+updated%3A2025-02-19..2025-03-13&type=Issues) | [ianthomas23](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aianthomas23+updated%3A2025-02-19..2025-03-13&type=Issues) | [iisakkirotko](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aiisakkirotko+updated%3A2025-02-19..2025-03-13&type=Issues) | [itsmevichu](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aitsmevichu+updated%3A2025-02-19..2025-03-13&type=Issues) | [jesuino](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajesuino+updated%3A2025-02-19..2025-03-13&type=Issues) | [jtpio](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajtpio+updated%3A2025-02-19..2025-03-13&type=Issues) | [jupyterlab-probot](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajupyterlab-probot+updated%3A2025-02-19..2025-03-13&type=Issues) | [krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2025-02-19..2025-03-13&type=Issues) | [lumberbot-app](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Alumberbot-app+updated%3A2025-02-19..2025-03-13&type=Issues) | [martinRenou](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AmartinRenou+updated%3A2025-02-19..2025-03-13&type=Issues) | [pre-commit-ci](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Apre-commit-ci+updated%3A2025-02-19..2025-03-13&type=Issues) | [Princekumarofficial](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3APrincekumarofficial+updated%3A2025-02-19..2025-03-13&type=Issues) | [RRosio](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ARRosio+updated%3A2025-02-19..2025-03-13&type=Issues) | [rsaditya01](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Arsaditya01+updated%3A2025-02-19..2025-03-13&type=Issues) | [SatyajitRedekar](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ASatyajitRedekar+updated%3A2025-02-19..2025-03-13&type=Issues) | [trungleduc](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Atrungleduc+updated%3A2025-02-19..2025-03-13&type=Issues)

4.4.0b0

([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v4.4.0a3...183042e34850d8c89f485eb2bcdfd4118b3883f5))

Enhancements made

- Speed up output rendering: add a limit on max length of protocol to linkify [17264](https://github.com/jupyterlab/jupyterlab/pull/17264) ([krassowski](https://github.com/krassowski))
- Remove spurious regex to slightly improve performance of streaming large outputs [17262](https://github.com/jupyterlab/jupyterlab/pull/17262) ([krassowski](https://github.com/krassowski))
- Add (opt-in) workspace selector, show workspace name in the title [17256](https://github.com/jupyterlab/jupyterlab/pull/17256) ([Darshan808](https://github.com/Darshan808))
- Add commands to change the console prompt position to the palette [17253](https://github.com/jupyterlab/jupyterlab/pull/17253) ([jtpio](https://github.com/jtpio))
- Add more descriptive labels for fetching Jupyter news options [16848](https://github.com/jupyterlab/jupyterlab/pull/16848) ([Adam-D-Lewis](https://github.com/Adam-D-Lewis))
- Allow customizing the `ServiceManager` with plugins [16794](https://github.com/jupyterlab/jupyterlab/pull/16794) ([jtpio](https://github.com/jtpio))

Bugs fixed

- Disable new `ctrl` + `m` toggle focus binding, enable configuring it via Keyboard Shortcuts [17291](https://github.com/jupyterlab/jupyterlab/pull/17291) ([krassowski](https://github.com/krassowski))
- Allow `<GroupItem>` to filter out `null` children and accept any `ReactNode` [17244](https://github.com/jupyterlab/jupyterlab/pull/17244) ([MUFFANUJ](https://github.com/MUFFANUJ))
- Cache item state to improve filebrowser's performance [17239](https://github.com/jupyterlab/jupyterlab/pull/17239) ([Rishab87](https://github.com/Rishab87))
- Fix windowing crash due to out-of-bounds access [17238](https://github.com/jupyterlab/jupyterlab/pull/17238) ([krassowski](https://github.com/krassowski))
- Fix vertical scrollbar issue caused by `\tag{}` directive in LaTeX [17223](https://github.com/jupyterlab/jupyterlab/pull/17223) ([MUFFANUJ](https://github.com/MUFFANUJ))
- Add missing aria labels in application shell [17192](https://github.com/jupyterlab/jupyterlab/pull/17192) ([Rishab87](https://github.com/Rishab87))
- Fix misaligned SVG icon in "Add Tag" button [17187](https://github.com/jupyterlab/jupyterlab/pull/17187) ([MUFFANUJ](https://github.com/MUFFANUJ))
- Ensure search highlight is applied to Python builtin keywords [17160](https://github.com/jupyterlab/jupyterlab/pull/17160) ([hxrshxz](https://github.com/hxrshxz))
- Fix scrolling and selection restoration on undo/redo [17158](https://github.com/jupyterlab/jupyterlab/pull/17158) ([krassowski](https://github.com/krassowski))
- Fixing dialog closing unexpectedly when typing in the textarea [17142](https://github.com/jupyterlab/jupyterlab/pull/17142) ([Rishab87](https://github.com/Rishab87))

Maintenance and upkeep improvements

- Bump dompurify from 3.2.3 to 3.2.4 [17305](https://github.com/jupyterlab/jupyterlab/pull/17305) ([dependabot](https://github.com/dependabot))
- Bump vega from 5.24.0 to 5.26.0 [17295](https://github.com/jupyterlab/jupyterlab/pull/17295) ([dependabot](https://github.com/dependabot))
- Clean up references to `jupyter-packaging` [17294](https://github.com/jupyterlab/jupyterlab/pull/17294) ([jtpio](https://github.com/jtpio))
- Fix missing checks for author comment association for docs [17289](https://github.com/jupyterlab/jupyterlab/pull/17289) ([krassowski](https://github.com/krassowski))
- Fix CI failures caused by changes in `jupyterlab-demo` [17283](https://github.com/jupyterlab/jupyterlab/pull/17283) ([krassowski](https://github.com/krassowski))
- Update to Lumino `2025.2.1`, fix the console prompt menu alignment [17274](https://github.com/jupyterlab/jupyterlab/pull/17274) ([jtpio](https://github.com/jtpio))
- Update to TypeScript 5.5 [17271](https://github.com/jupyterlab/jupyterlab/pull/17271) ([jtpio](https://github.com/jtpio))
- Use the same `isPalette` arg as for other commands [17258](https://github.com/jupyterlab/jupyterlab/pull/17258) ([jtpio](https://github.com/jtpio))
- Update to TypeScript 5.4 [17255](https://github.com/jupyterlab/jupyterlab/pull/17255) ([jtpio](https://github.com/jtpio))
- Update to Playwright 1.50 [17254](https://github.com/jupyterlab/jupyterlab/pull/17254) ([jtpio](https://github.com/jtpio))
- Bump tj-actions/changed-files from 45.0.5 to 45.0.6 in the actions group [17249](https://github.com/jupyterlab/jupyterlab/pull/17249) ([dependabot](https://github.com/dependabot))
- Bump the pip group with 2 updates [17248](https://github.com/jupyterlab/jupyterlab/pull/17248) ([dependabot](https://github.com/dependabot))
- Improving reliability of the the galata tests [17221](https://github.com/jupyterlab/jupyterlab/pull/17221) ([Darshan808](https://github.com/Darshan808))
- Updated mock packages to use hatch-jupyter-builder [17219](https://github.com/jupyterlab/jupyterlab/pull/17219) ([Rishab87](https://github.com/Rishab87))
- Update to TypeScript 5.2 [17207](https://github.com/jupyterlab/jupyterlab/pull/17207) ([jtpio](https://github.com/jtpio))

Documentation improvements

- Add FAQ item about repeated key press events on OS X [17279](https://github.com/jupyterlab/jupyterlab/pull/17279) ([jtpio](https://github.com/jtpio))
- Add item about nightly releases to the FAQ [17278](https://github.com/jupyterlab/jupyterlab/pull/17278) ([jtpio](https://github.com/jtpio))
- Update to TypeScript 5.5 [17271](https://github.com/jupyterlab/jupyterlab/pull/17271) ([jtpio](https://github.com/jtpio))
- Update to TypeScript 5.4 [17255](https://github.com/jupyterlab/jupyterlab/pull/17255) ([jtpio](https://github.com/jtpio))
- Allow `<GroupItem>` to filter out `null` children and accept any `ReactNode` [17244](https://github.com/jupyterlab/jupyterlab/pull/17244) ([MUFFANUJ](https://github.com/MUFFANUJ))
- Update to TypeScript 5.2 [17207](https://github.com/jupyterlab/jupyterlab/pull/17207) ([jtpio](https://github.com/jtpio))
- Use more formal wording in docs: `repo` → `repository` [17152](https://github.com/jupyterlab/jupyterlab/pull/17152) ([pdarshane](https://github.com/pdarshane))
- Allow customizing the `ServiceManager` with plugins [16794](https://github.com/jupyterlab/jupyterlab/pull/16794) ([jtpio](https://github.com/jtpio))

Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2025-01-28&to=2025-02-19&type=c))

[Adam-D-Lewis](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AAdam-D-Lewis+updated%3A2025-01-28..2025-02-19&type=Issues) | [afshin](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aafshin+updated%3A2025-01-28..2025-02-19&type=Issues) | [andrii-i](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aandrii-i+updated%3A2025-01-28..2025-02-19&type=Issues) | [brichet](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Abrichet+updated%3A2025-01-28..2025-02-19&type=Issues) | [Carreau](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ACarreau+updated%3A2025-01-28..2025-02-19&type=Issues) | [Darshan808](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ADarshan808+updated%3A2025-01-28..2025-02-19&type=Issues) | [dependabot](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Adependabot+updated%3A2025-01-28..2025-02-19&type=Issues) | [dlqqq](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Adlqqq+updated%3A2025-01-28..2025-02-19&type=Issues) | [echarles](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aecharles+updated%3A2025-01-28..2025-02-19&type=Issues) | [fcollonval](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Afcollonval+updated%3A2025-01-28..2025-02-19&type=Issues) | [github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Agithub-actions+updated%3A2025-01-28..2025-02-19&type=Issues) | [hxrshxz](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ahxrshxz+updated%3A2025-01-28..2025-02-19&type=Issues) | [JasonWeill](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AJasonWeill+updated%3A2025-01-28..2025-02-19&type=Issues) | [jtpio](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajtpio+updated%3A2025-01-28..2025-02-19&type=Issues) | [jupyterlab-probot](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajupyterlab-probot+updated%3A2025-01-28..2025-02-19&type=Issues) | [krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2025-01-28..2025-02-19&type=Issues) | [lumberbot-app](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Alumberbot-app+updated%3A2025-01-28..2025-02-19&type=Issues) | [MUFFANUJ](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AMUFFANUJ+updated%3A2025-01-28..2025-02-19&type=Issues) | [pdarshane](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Apdarshane+updated%3A2025-01-28..2025-02-19&type=Issues) | [pre-commit-ci](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Apre-commit-ci+updated%3A2025-01-28..2025-02-19&type=Issues) | [Rishab87](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ARishab87+updated%3A2025-01-28..2025-02-19&type=Issues) | [rpwagner](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Arpwagner+updated%3A2025-01-28..2025-02-19&type=Issues) | [RRosio](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ARRosio+updated%3A2025-01-28..2025-02-19&type=Issues) | [Zsailer](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AZsailer+updated%3A2025-01-28..2025-02-19&type=Issues)

4.4.0a3

([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v4.4.0a2...163e788d84d3dea52585e8c6f8b4d2e7bc66ffc2))

Enhancements made

- Replace R logo with official logo [17216](https://github.com/jupyterlab/jupyterlab/pull/17216) ([ajbozarth](https://github.com/ajbozarth))
- Bump `codemirror/lang-python` to provide match-case indentation [17189](https://github.com/jupyterlab/jupyterlab/pull/17189) ([deephbz](https://github.com/deephbz))
- Remove `--subshell-console` flag [17180](https://github.com/jupyterlab/jupyterlab/pull/17180) ([ianthomas23](https://github.com/ianthomas23))
- Fix read-only cells becoming editable on settings change [17167](https://github.com/jupyterlab/jupyterlab/pull/17167) ([Darshan808](https://github.com/Darshan808))
- Hide the terminals part of the running sessions status bar item by default [16846](https://github.com/jupyterlab/jupyterlab/pull/16846) ([jtpio](https://github.com/jtpio))
- Allow changing the position of the code console prompt cell, add settings and toolbar items [13837](https://github.com/jupyterlab/jupyterlab/pull/13837) ([jtpio](https://github.com/jtpio))

Bugs fixed

- Fix display of tooltip/title for terminal and kernel sessions statusbar item [17220](https://github.com/jupyterlab/jupyterlab/pull/17220) ([MUFFANUJ](https://github.com/MUFFANUJ))
- Fix disabling Fuzzy Filtering in the File Browser [17214](https://github.com/jupyterlab/jupyterlab/pull/17214) ([Darshan808](https://github.com/Darshan808))
- Fix for inconsistent tab closure in "Close All Tabs" operation [17203](https://github.com/jupyterlab/jupyterlab/pull/17203) ([itsmevichu](https://github.com/itsmevichu))
- Fix "running" prompt state with server-side execution [17195](https://github.com/jupyterlab/jupyterlab/pull/17195) ([krassowski](https://github.com/krassowski))
- Increase color contrast of operators in code editor [17173](https://github.com/jupyterlab/jupyterlab/pull/17173) ([hxrshxz](https://github.com/hxrshxz))
- Fix emission of `lastCell` from notebook run actions [17156](https://github.com/jupyterlab/jupyterlab/pull/17156) ([pawel99k](https://github.com/pawel99k))
- Improve contrast for 'Add' button in Keyboard Shortcuts UI in both dark and light theme [17153](https://github.com/jupyterlab/jupyterlab/pull/17153) ([hxrshxz](https://github.com/hxrshxz))
- Fixed Missing Comma in devcontainer.json to enable functional configuration [17150](https://github.com/jupyterlab/jupyterlab/pull/17150) ([hxrshxz](https://github.com/hxrshxz))
- Fix setter for `contentProviderId` [17141](https://github.com/jupyterlab/jupyterlab/pull/17141) ([jtpio](https://github.com/jtpio))
- Ensure context menu closes when clicking outside it in the minimap [17128](https://github.com/jupyterlab/jupyterlab/pull/17128) ([peytondmurray](https://github.com/peytondmurray))

Maintenance and upkeep improvements

- Bump katex from 0.16.11 to 0.16.21 [17185](https://github.com/jupyterlab/jupyterlab/pull/17185) ([dependabot](https://github.com/dependabot))
- Remove `skipLibCheck` from the test `tsconfig` [17143](https://github.com/jupyterlab/jupyterlab/pull/17143) ([jtpio](https://github.com/jtpio))
- Update to Playwright 1.49 [17085](https://github.com/jupyterlab/jupyterlab/pull/17085) ([jtpio](https://github.com/jtpio))

Documentation improvements

- Update link to the Zoom channel [17209](https://github.com/jupyterlab/jupyterlab/pull/17209) ([jtpio](https://github.com/jtpio))
- Document named attributes sanitization [17178](https://github.com/jupyterlab/jupyterlab/pull/17178) ([hxrshxz](https://github.com/hxrshxz))

Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2025-01-06&to=2025-01-28&type=c))

[ajbozarth](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aajbozarth+updated%3A2025-01-06..2025-01-28&type=Issues) | [brichet](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Abrichet+updated%3A2025-01-06..2025-01-28&type=Issues) | [Darshan808](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ADarshan808+updated%3A2025-01-06..2025-01-28&type=Issues) | [deephbz](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Adeephbz+updated%3A2025-01-06..2025-01-28&type=Issues) | [dependabot](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Adependabot+updated%3A2025-01-06..2025-01-28&type=Issues) | [github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Agithub-actions+updated%3A2025-01-06..2025-01-28&type=Issues) | [hxrshxz](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ahxrshxz+updated%3A2025-01-06..2025-01-28&type=Issues) | [ianthomas23](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aianthomas23+updated%3A2025-01-06..2025-01-28&type=Issues) | [itsmevichu](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aitsmevichu+updated%3A2025-01-06..2025-01-28&type=Issues) | [JasonWeill](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AJasonWeill+updated%3A2025-01-06..2025-01-28&type=Issues) | [jtpio](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajtpio+updated%3A2025-01-06..2025-01-28&type=Issues) | [jupyterlab-probot](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajupyterlab-probot+updated%3A2025-01-06..2025-01-28&type=Issues) | [krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2025-01-06..2025-01-28&type=Issues) | [lumberbot-app](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Alumberbot-app+updated%3A2025-01-06..2025-01-28&type=Issues) | [MUFFANUJ](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AMUFFANUJ+updated%3A2025-01-06..2025-01-28&type=Issues) | [pawel99k](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Apawel99k+updated%3A2025-01-06..2025-01-28&type=Issues) | [peytondmurray](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Apeytondmurray+updated%3A2025-01-06..2025-01-28&type=Issues) | [pre-commit-ci](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Apre-commit-ci+updated%3A2025-01-06..2025-01-28&type=Issues) | [SylvainCorlay](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ASylvainCorlay+updated%3A2025-01-06..2025-01-28&type=Issues)

Page 1 of 25

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.