4.6.0
New features added
- Support horizontal activity bars #18832 (@jtpio, @krassowski)
- Expose cell index and cell count in the statusbar #18708 (@krassowski, @jtpio)
- Allow moving sections between panels #18703 (@Darshan808, @Carreau, @brichet, @jtpio, @krassowski)
- Make the breadcrumbs in filebrowser editable + completion #18571 (@Carreau, @krassowski)
- Add "Date Created" column to file browser #18533 (@ktaletsk, @RRosio, @cursoragent, @krassowski)
- Add command and buttons to select previous/next last modified cell #18210 (@Yahiewi, @brichet, @krassowski)
- feat(completer): Add syntax highlighting for ghost text #18073 (@MUFFANUJ, @Darshan808, @jtpio, @krassowski)
Deprecated features
- Replace deprecated
keyCodewithkey#18674 (@IsabelParedes, @krassowski) - Drives: Deprecate the notion of defaultContentProvider #18169 (@martinRenou, @brichet, @jasongrout, @jtpio, @krassowski)
Enhancements made
- Update lumino to
v2026.5.25#18942 (@krassowski, @jtpio) - Improve scroll overlay icon placement #18907 (@krassowski, @jtpio)
- Optimize resizing dock panels (with an opt-out) #18877 (@krassowski, @Darshan808)
- Use resolvePath API for traceback path resolution #18876 (@MUFFANUJ, @krassowski)
- Add loading animation for file browser refresh action #18855 (@Siddhazntx, @krassowski)
- Upgrade Stylelint to v16 #18848 (@MUFFANUJ, @krassowski)
- Add category-level ordering support for launcher sections via
categoryRank#18779 (@tsharma-dev, @MUFFANUJ, @krassowski) - File browser: replace Preferred icon to avoid confusion with Home #18773 (@tsharma-dev, @Carreau, @IsabelParedes, @krassowski)
- Ask if the user wants to sanitize HTML export and send param to jupyter server #18765 (@Yann-P, @krassowski)
- Add a setting to disable the dock panel padding #18760 (@jtpio, @krassowski)
- Remove Simple Mode switch from the status bar #18757 (@jtpio, @aarondr77, @krassowski)
- Add toggle command for output scrolling #18754 (@itsmejay80, @krassowski)
- Refactor shared document dirty state #18739 (@davidbrochart, @SylvainCorlay, @brichet, @jtpio, @krassowski)
- Restrict 1-6 shortcuts for converting cell to headings to Markdown cells #18734 (@krassowski, @jtpio)
- Add "toggle hidden file" to command palette #18732 (@Carreau, @krassowski)
- Add command and Command Palette entry for crumbs path edition #18729 (@Carreau, @Copilot, @krassowski)
- Integrate Plugin Playground into docs #18726 (@MUFFANUJ, @Carreau, @jtpio, @krassowski)
- Allow reset query parameter with values (e.g. ?reset=1) #18702 (@tubaman, @claude, @itsmejay80, @krassowski)
- Improve Keyboard Shortcuts in Settings Editor #18655 (@IsabelParedes, @krassowski)
- Fix accessibility of Keyboard Shortcuts dialog #18650 (@IsabelParedes, @jayaprajapatii, @krassowski)
- Update default font family to honor macOS system-wide ui-monospace #18647 (@flaviomartins, @krassowski)
- Add
deletabletoggle to common tools notebook widget #18645 (@cmarmo, @krassowski) - Improve focus indicators #18619 (@IsabelParedes, @krassowski)
- Expose
IDefaultFileBrowserRendererto customize the default file browser renderer #18600 (@jtpio, @krassowski) - Persist file browser sort state in state DB #18596 (@statxc, @krassowski)
- Add language pack installation support via Settings > Language menu #18595 (@bittoby, @krassowski)
- Improve screen reader behavior in launcher/notebook and add tests #18570 (@autodots-AHassan, @krassowski)
- Fall back to line comments when block comment syntax is unavailable #18563 (@altis0725, @claude, @krassowski)
- Render inline completion for all cursors #18555 (@MUFFANUJ, @krassowski)
- Clear file browser filter when changing directories #18548 (@RRosio, @Copilot, @krassowski)
- Galata: fix fonts and font rendering for consistency #18535 (@krassowski, @brichet, @jtpio)
- ENH: terminal shift enter #18523 (@ianhi, @jtpio, @krassowski)
- Expand the file browser breadcrumbs when there is space available adaptively #18430 (@MUFFANUJ, @krassowski)
- Add automated spell check for documentation #18398 (@MUFFANUJ, @Copilot, @krassowski)
- Add setting to paste code cells without their outputs #18390 (@MUFFANUJ, @aaron-seq, @krassowski, @superlevure)
- Add setting to choose file name sort order in the file browser #18388 (@MUFFANUJ, @krassowski)
- Add root option to limit FileDialog navigation to a subdirectory #18372 (@DeborahOlaboye, @krassowski)
- Enable moving the console prompt if the console is visible #18332 (@brichet, @krassowski)
- Allow preventing console title to update #18331 (@brichet, @krassowski)
- Add Ctrl+B shortcut to toggle bold formatting in markdown cells #18328 (@MUFFANUJ, @aaron-seq, @jasongrout, @krassowski)
- Added
interrupt_modeto the Kernel Spec interface #18307 (@fleming79, @krassowski) - add better colour to improve visibility against the background #18284 (@MUFFANUJ, @Darshan808)
- Add
Ctrl + Ykey binding for redo command on Windows and Linux #18275 (@soniya-malviy, @Darshan808, @krassowski) - Add 'Open in Terminal' from file browser context menu #18274 (@MUFFANUJ, @krassowski, @raffaelemancuso)
- Error background configurable from theme settings #18219 (@brichet, @krassowski)
- Add
Find and replacecommand to the Edit menu #18218 (@Meriem-BenIsmail, @brichet, @krassowski) - Debugger: Move the responsibility to set the current source to the sources model #18213 (@HaudinFlorence, @brichet, @jtpio, @krassowski, @martinRenou)
- Styling of settings array buttons #18211 (@brichet, @krassowski)
- Add commands to split main area widgets #18192 (@Meriem-BenIsmail, @brichet, @jtpio, @krassowski)
- Add a "Stop Debugger" button to the paused overlay #18184 (@arjxn-py, @jtpio, @krassowski, @martinRenou)
- Add confirmation step for cell toolbar "delete" button #18182 (@MUFFANUJ, @Darshan808, @krassowski)
- Detect and log slow plugins #18181 (@Darshan808, @jtpio, @krassowski)
- Add the 'jupyterlab' entry point #18158 (@brichet, @jasongrout, @jtpio)
- Make Kernel Info timeout editable #18137 (@linlol, @Darshan808, @jtpio, @krassowski)
- Add a setting to show file filter bar by default #18104 (@MUFFANUJ, @Darshan808, @krassowski)
- Automatically refresh Kernel Sources after cell execution #18081 (@arjxn-py, @Darshan808, @krassowski, @martinRenou)
- Move Kernel Sources filter bar to toolbar and enable live filtering #18079 (@arjxn-py, @jtpio, @krassowski, @martinRenou)
- Improve the error message provided when jupyterhub is missing #18060 (@frenzymadness, @Darshan808, @hroncok, @krassowski)
- Add copy/paste/cut for text in the notebook context menu #18030 (@Meriem-BenIsmail, @krassowski)
- Debugger: display sources in main area widgets #17986 (@HaudinFlorence, @RRosio, @SylvainCorlay, @brichet, @jtpio, @krassowski, @martinRenou)
- Use no-op manager if terminals are unavailable #17930 (@krassowski, @jasongrout, @jtpio)
Bugs fixed
- Fix flaky filebrowser filter navigation test #19015 (@MUFFANUJ, @krassowski)
- Forbid relative URLs in extensionmanager #19013 (@Yann-P, @krassowski)
- Avoid debugger toolbar button flicker during kernel startup #19006 (@MUFFANUJ, @krassowski)
- Fix XSS in extension manager's
homepage_url#19003 (@Yann-P, @krassowski) - Fix too eager autocompletion heuristics #19000 (@MUFFANUJ, @krassowski)
- Fix toolbar popup row clipping in Safari #18998 (@arun-357, @krassowski)
- Fix
HTMLSelectdropdown icon misalignment in toolbar popup #18996 (@arun-357, @claude, @krassowski) - Fix hidden cells after moving collapsed headings #18992 (@MUFFANUJ, @krassowski)
- Deduplicate concurrent LSP document connects by URI #18980 (@MUFFANUJ, @krassowski)
- Fix scrolling to heading in ToC, workspace opening and flaky UI tests #18961 (@krassowski, @jtpio)
- Fix read-only indicator #18960 (@davidbrochart, @jtpio, @krassowski)
- Forward port CodeMirror DOM compatibility patch #18947 (@krassowski, @Darshan808)
- Prevent dialog from hanging when
getValue()throws #18938 (@AliMahmoudDev, @krassowski) - Add
packagingmin version pin #18910 (@krassowski, @Darshan808) - Theme the CSV viewer scrollbar in dark themes #18892 (@dhgoal, @Darshan808, @krassowski)
- Use
TabBarSvg.titleLabelfallback in Open Tabs panel #18883 (@dhgoal, @krassowski) - Fix execution state and outputs after undo #18873 (@krassowski, @Darshan808)
- Accept
abortedstatus inIReplyAbortContent#18871 (@dhgoal, @krassowski) - Treat TypeDoc validation warnings as errors and and TSDoc linting #18859 (@MUFFANUJ, @krassowski)
- Fix opening notebook without a kernel if the kernel already exists by adding
shouldReusepreference #18856 (@MUFFANUJ, @krassowski) - Use CSS
anchorfor prompt overlay #18840 (@CrafterKolyan, @krassowski) - Fix
PanelWithToolbar: use optional toolbar in constructor options #18824 (@brichet, @krassowski) - Fix Kernel Sources tab reuse and line highlighting behavior #18809 (@MUFFANUJ, @krassowski)
- Fix notebook hang when dropping cells #18808 (@MUFFANUJ, @Meriem-BenIsmail, @krassowski)
- Fix
PageConfig.getUrlto honor explicit workspace option #18791 (@boskodev790, @krassowski) - Fix keyboard navigation for file browser bread crumbs #18767 (@IsabelParedes, @krassowski)
- Fix native context menu blocked even when context menu is suppressed #18753 (@utsav-develops, @krassowski)
- Fix Contextual Help keyboard shortcut reliability and menu Help functionality #18747 (@itsmejay80, @Copilot, @claude, @krassowski)
- Fix focusing input element when opening a dialog from Command Palette #18735 (@Carreau, @krassowski)
- Fix inconsistent width measurement for breadcrumbs #18728 (@Carreau, @krassowski)
- Fix keyboard navigation (tab trap) for terminal #18706 (@IsabelParedes, @krassowski)
- Contents Manager: Allow force renaming #18681 (@martinRenou, @krassowski)
- Fix ability to render cells as read-only via notebook factory override #18680 (@krassowski, @brichet)
- Fix inline completer space reservation settings having no effect #18662 (@moktamd, @krassowski)
- Fix version of
core.package.jsonin@jupyterlab/core-meta#18657 (@Darshan808, @krassowski) - Video and Audio Content Providers: Fix JupyterLite support #18652 (@martinRenou, @jtpio, @krassowski)
- Fix heading undo issue #18646 (@tsharma-dev, @MUFFANUJ, @krassowski)
- Deactivate the delete cell command icon on non deletable cells #18640 (@cmarmo, @krassowski, @nthiery)
- Fix keyboard navigation for console #18638 (@IsabelParedes, @krassowski)
- Fix flaky toolbar item placement in popup #18618 (@filipeoliveira05, @brichet, @krassowski)
- Harmonize translation wrappers in Python files to use
gettextmethods #18597 (@tmetzl, @krassowski) - Remove unimplemented
filebrowser:searchcommand #18593 (@krassowski, @jtpio) - Fix
filebrowser:create-new-filecontext menu selector #18588 (@jtpio, @krassowski) - Fix status bar focus outlines #18585 (@IsabelParedes, @krassowski)
- Prevent split/merge on non-editable cells #18579 (@MUFFANUJ, @krassowski)
- Fix single-character code blocks rendering as empty #18572 (@soniya-malviy, @krassowski)
- Hide
codeinput inCodeConsolewhen configured #18554 (@agriyakhetarpal, @krassowski) - Use a font size and family specified in CSS for
DataGrids #18542 (@krassowski, @Carreau, @brichet) - Fix
font-familyapplication across UI components and remove a single hard-coded usage #18541 (@krassowski, @Carreau, @jtpio) - Fix comms subshell resource management on disposal and when changing settings #18531 (@krassowski, @Carreau, @Copilot, @ianthomas23)
- Fix theme settings broken in non-English locales #18530 (@apoorvdarshan, @krassowski)
- Replace scrollback implementation with scroll anchoring outside of
fullwindowing mode #18522 (@krassowski, @jasongrout) - Fix XSRF cookie selection to use last matching value for duplicate paths #18518 (@reteps, @claude, @krassowski)
- Only turn off overflow anchor when windowing is active #18503 (@jasongrout, @krassowski)
- Upgrade
@codemirror/view, fixing slow selection when line wrapping is enabled #18479 (@krassowski, @jasongrout) - Prevent file browser from stealing focus on refresh #18478 (@MUFFANUJ, @krassowski)
- Avoid using system clipboard in Notebook widget #18474 (@brichet, @krassowski)
- Update CodeMirror versions, fixing a few selection issues #18466 (@krassowski, @jasongrout)
- Fix debugger variable panel to render value 0 properly #18464 (@itsmevichu, @krassowski)
- Bump Lumino packages to the 2026.2.5 release, fixing iframe resizing #18440 (@jasongrout, @krassowski)
- Fix persistent text highlight in inactive cells #18438 (@MUFFANUJ, @krassowski)
- Fix table of contents navigation for Markdown files #18411 (@itsmevichu, @krassowski)
- Consider both the content type and pattern match in
DocumentRegistry.getFileTypeForModel()#18409 (@krassowski, @jasongrout, @martinRenou) - Fix CVE-2025-13465 in
lodashandlodash-es#18400 (@ktaletsk, @jtpio, @krassowski) - Check Python version compatibility in Extension Manager #18393 (@MUFFANUJ, @krassowski)
- false in saveAs to avoid fetching file body #18379 (@DeborahOlaboye, @jasongrout)
- Fix focus of replace buttons in the document search box #18362 (@IsabelParedes, @krassowski)
- Fix deferred cell loading in
deferandcontentVisibilitywindowing mode #18359 (@krassowski, @Darshan808) - Fix error in console when the debugger switch from a module to another #18352 (@brichet, @krassowski)
- Fix "Open With > Editor" for
.pyfiles, update@luminopackages tov2026.1.15#18349 (@krassowski, @jasongrout) - Update CodeMirror to latest versions #18344 (@krassowski, @Darshan808, @jasongrout)
- Describe
kernelPreferenceandkernelcommand args #18337 (@jtpio, @krassowski) - Fix empty math block throws codemirror's error #18308 (@i-aki-y, @Darshan808, @krassowski)
- Fix cell footer width for smaller screens #18276 (@MUFFANUJ, @Darshan808, @krassowski)
- Update to Rspack
1.7.0-beta.1#18267 (@jtpio, @jasongrout, @krassowski) - Make system clipboard opt-in when performing copy/cut/paste of cells #18250 (@Darshan808, @krassowski)
- Make file browser listings respect the UI font size when renaming files #18249 (@agriyakhetarpal, @krassowski)
- Fix WebSocket
_onWSClosehandler: do not ignore close codes #18243 (@Akshitguptaa, @jianyexi, @krassowski) - Fix console commands enabled status if not in main area #18238 (@brichet, @krassowski)
- Fix merge breaking rendering cell order in
defermode #18220 (@krassowski, @brichet) - Fix inverted Unicode surrogate checks #18209 (@JamesWrigley, @krassowski)
- Fix scrolling to anchor from ToC/links in Markdown and HTML with data attributes #18208 (@pranshugupta01, @brichet, @krassowski)
- Fix search icon styling in command palette #18202 (@Meriem-BenIsmail, @jtpio, @krassowski)
- Fix
scrollPastEndfor text editors #18186 (@Meriem-BenIsmail, @krassowski) - Restore focus after closing the command palette #18167 (@Meriem-BenIsmail, @jasongrout, @krassowski)
- Enable undo/redo in JSON settings editor #18165 (@Meriem-BenIsmail, @krassowski)
- Allow adding shortcuts to commands without a default shortcut via UI #18163 (@brichet, @krassowski)
- Fix: Safely handle missing args in fileeditor:change-font-size label provider #18157 (@prajyot-porje, @Darshan808, @krassowski)
- Show rename dialog for new files moved before saving #18145 (@anafontan, @Darshan808, @ZhYGuoL, @jtpio)
- Fix Notebook Debugger: Missing Current-Line Highlight #18140 (@arjxn-py, @RRosio, @martinRenou)
- Debugger: Handle the case for editor being null #18124 (@martinRenou, @krassowski)
ToolbarButtonComponentandCommandToolbarButtonComponent: addAriaMenuButtonPropsto allow ARIA menu-button attributes #18118 (@agriyakhetarpal, @krassowski)- Debugger: Fix restart and debug command. #18115 (@HaudinFlorence, @RRosio, @brichet, @krassowski, @martinRenou)
- Respect the
activateoption when opening document widgets #18114 (@brichet, @krassowski) - Restore auto-resizing of the code console input prompts #17819 (@jtpio, @Darshan808, @agriyakhetarpal, @krassowski)
- Fix inconsistent state updates of toolbar buttons #17230 (@MUFFANUJ, @krassowski)
- Update
aria-pressedstate forToolbarButtonwhen pressed #17222 (@MUFFANUJ, @krassowski)
Maintenance and upkeep improvements
- Fix flaky 'Switch back and forth to reference page' test #19043 (@krassowski, @MUFFANUJ)
- Stabilize subpixel editor line shift on Welcome screenshot #19039 (@krassowski, @MUFFANUJ)
- Update
@jupyter/ydocto final 4.0 #19034 (@krassowski) - Split external link checks and only run if diff includes a URL #19029 (@MUFFANUJ, @krassowski)
- Baseline spelling cleanup for docs and README files #19025 (@MUFFANUJ, @krassowski)
- Make docs dependencies a dependency group #19024 (@MUFFANUJ, @bollwyvl, @krassowski)
- Update @jupyter/ydoc v4.0.0-b1 #19023 (@davidbrochart, @krassowski)
- Drop
setuptoolsdependency #19020 (@krassowski, @Darshan808, @MUFFANUJ, @bollwyvl) - Workaround flaky test for scrolling on page down in windowed notebook #19004 (@krassowski, @MUFFANUJ)
- Some linting improvements from the Scientific Python style guide #18990 (@Darshan808, @krassowski)
- Add tests for the readonly indicator #18982 (@jtpio, @krassowski)
- Update minimum mermaid to 11.15.0 and marked 17.0.6 #18958 (@bollwyvl, @krassowski)
- Ignore conda.io in addition to docs.conda.io #18954 (@krassowski, @Darshan808, @MUFFANUJ)
- Fix completer test failures on CI #18946 (@krassowski, @brichet)
- Update to Playwright 1.60 #18939 (@jtpio, @krassowski)
- Fix path navigator font and breadcrumbs test #18927 (@krassowski, @jtpio)
- Fix flaky example UI snapshot test by disabling cursor blinking #18925 (@tsharma-dev, @krassowski)
- Fix flaky test: wait for kernel startup before pressing Shift+Enter #18924 (@krassowski, @jtpio)
- Wait for cell toolbar before snapshot in markdown tests #18922 (@krassowski, @jasongrout)
- Hash-pin all GitHub Actions #18912 (@krassowski, @jtpio)
- Adopt
eslint-plugin-regexp#18908 (@krassowski, @Darshan808, @bollwyvl) - Harden GitHub actions #18901 (@krassowski, @Yann-P)
- Point to GitHub repo for shellcheck for now #18899 (@krassowski, @Darshan808)
- Add
zizmorGitHub Actions security linter #18898 (@krassowski, @Yann-P) - Harden galata update workflow #18896 (@krassowski, @Yann-P)
- Bump
jupyter-buildertov1.0.0b1#18895 (@Darshan808, @krassowski) - Ignore links to
docs.conda.iosince it returns 503 often #18890 (@krassowski, @afshin) - Fix
build:prod:minimize:*andbuild:statsscripts after rspack 2.0 upgrade #18882 (@krassowski, @Darshan808) - Bump
@jupyter/eslint-plugintov1#18863 (@Darshan808, @krassowski) - Add ShellCheck linting for scripts and docs #18858 (@MUFFANUJ, @krassowski)
- Enable
no-explicit-anywith bootstrap suppressions #18847 (@MUFFANUJ, @krassowski) - Fix labeler spec to
v6.1.0notv6.1#18844 (@krassowski, @jtpio) - Bump required labeler action to
v6.1#18842 (@krassowski, @jtpio) - Remove
@jupyterlab/builderpackage and all references to it #18841 (@Darshan808, @jtpio, @krassowski) - Drop serial mode from galata test suite #18838 (@krassowski, @MUFFANUJ)
- Remove vendored
yarn.js#18823 (@bollwyvl, @Darshan808, @krassowski) - Fix linting issue #18819 (@krassowski, @jtpio)
- Only download the merged blobs on re-runs #18801 (@krassowski, @MUFFANUJ)
- Allow to run a subset of UI test (once or more) from GitHub Actions UI #18800 (@krassowski, @Copilot, @MUFFANUJ)
- Expose link to UI tests report in comment with Binder link #18798 (@krassowski, @MUFFANUJ)
- Update to
jupyter-builder>=0.0.8#18792 (@jtpio, @Darshan808, @krassowski) - Remove unused CodeMirror v5 CSS rule #18785 (@Carreau, @krassowski)
- Remove unused Extension Manager CSS rules, add regression test #18784 (@Carreau, @krassowski)
- Bump
@jupyter/eslint-pluginand fix lint #18781 (@Darshan808, @krassowski) - Tell dependabot to ignore updates to
stagingdirectory as that is updated on release #18776 (@krassowski, @Copilot, @MUFFANUJ) - Remove unused CSS rule forgotten after CodeMirror migration #18763 (@Carreau, @krassowski)
- Remove dead
.jp-VariableRenderer-TrustButtonCSS rule #18762 (@Carreau, @krassowski) - Remove used
.jp-Cell-PlaceholderCSS rules #18761 (@Carreau, @krassowski) - Remove unused progress bar CSS rule in execution indicator #18759 (@Carreau, @krassowski)
- Workaround issue with merging shards on rerun of visual regression tests #18742 (@krassowski, @jtpio)
- Use
@jupyter/builderinstead of@jupyterlab/builder#18723 (@Darshan808, @jtpio, @krassowski) - Pin playwright in merge reports step of visual regression testing #18711 (@krassowski, @jtpio)
- Update to Playwright 1.59 #18710 (@jtpio, @krassowski)
- Debugger: Drop duplicate snapshots from debugger tests. #18690 (@HaudinFlorence, @krassowski)
- Fix debugger documentation snapshots and update docs #18688 (@krassowski, @HaudinFlorence, @bittoby)
- Implement updating JSON snapshots via new snapshots bot #18658 (@krassowski, @jtpio)
- Add tests for single-click navigation in filebrowser #18632 (@RRosio, @krassowski)
- Show
git statuson CI when integrity check fails #18630 (@krassowski, @jasongrout) - Merge documentation job into the sharded galata job #18629 (@krassowski, @jasongrout)
- Upload standalone playwright report for instant preview #18628 (@krassowski, @jasongrout)
- Update to Rspack 1.7.8 #18622 (@jtpio, @krassowski)
- Update CI install to use
uv pipoverpip#18621 (@krassowski, @jtpio) - Update to mermaid 11.13.0 and marked 17.0.4 #18617 (@bollwyvl, @krassowski)
- Include
@jupyter/eslint-plugin#18615 (@Darshan808, @krassowski) - Enforce that certain CSS rules use variables #18614 (@lin9long, @krassowski)
- Remove explicit timeouts in terminal playwright tests #18610 (@amanparganiha, @krassowski)
- Fix Playwright browser cache in linuxtests workflow #18603 (@rodrigosf672, @claude, @krassowski)
- Bump svgo from 3.3.2 to 3.3.3 #18601 (@krassowski)
- Update to Rspack 1.7.7 #18591 (@jtpio, @krassowski)
- Bump minimatch from 3.1.2 to 3.1.5 in /jupyterlab/tests/mock_packages/test-hyphens-underscore #18581 (@krassowski)
- Bump minimatch from 3.1.2 to 3.1.5 in /jupyterlab/tests/mock_packages/test_no_hyphens #18580 (@krassowski)
- Bump actions/cache from 4 to 5 in the actions group #18578 (@krassowski)
- Bump minimatch from 3.0.5 to 3.1.4 #18573 (@krassowski)
- Install playwright browsers without dependencies #18568 (@krassowski, @jasongrout)
- Do not show banner in console when testing with galata (for now) #18564 (@krassowski, @jtpio, @peytondmurray)
- Add workflow for updating visual regression snapshots from artifacts #18559 (@krassowski, @jtpio)
- Make documentation snapshot update job use
update-snapshots-checkout#18550 (@krassowski, @jasongrout) - Update benchmark snapshots even if base snapshots require changes #18549 (@krassowski, @brichet)
- Upgrade verdaccio from
v5.33.0tov6.2.5#18545 (@krassowski, @jasongrout) - Drop
systeminformationdependency in favor of Node.js nativeosmodule #18544 (@krassowski, @brichet) - Add language packs for French and Chinese to binder env #18534 (@krassowski, @jasongrout)
- Add
@jupyterlab/core-metapackage for core metadata #18528 (@Darshan808, @krassowski) - Update to marked 17.0.2 and mermaid 11.12.3 #18526 (@bollwyvl, @krassowski)
- Debugger: delete the thread from the stopped before sending the 'continue' request #18509 (@brichet, @HaudinFlorence, @krassowski)
- Fix flaky completer tokens test #18506 (@krassowski, @jasongrout)
- Fix a few issues in config tests #18496 (@krassowski, @jasongrout)
- Fix more flaky tests #18495 (@krassowski, @jasongrout)
- Fix CodeQL
selfwarnings #18494 (@krassowski, @jasongrout) - Fix continued flakiness in 'Search in multiple selected cells' test #18493 (@jasongrout, @krassowski)
- Fix flaky subshell test #18492 (@krassowski, @jasongrout)
- Fix flaky search test by working around bug #18488 (@jasongrout, @krassowski)
- Fix useless conditionals noted by GitHub CodeQL #18486 (@jasongrout, @krassowski)
- Fix useless assignments to local variables noted by GitHub CodeQL #18485 (@jasongrout, @krassowski)
- Update locking workflow #18477 (@jasongrout, @krassowski)
- Bump webpack from 5.99.6 to 5.105.0 in /jupyterlab/tests/mock_packages/test_no_hyphens #18472 (@krassowski)
- Update to Rspack 2.0 #18467 (@jtpio, @Darshan808, @chenjiahan, @jasongrout, @krassowski)
- Make Python tests run faster on CI #18454 (@krassowski, @jasongrout)
- Fix flaky UI tests #18453 (@krassowski, @Copilot, @jasongrout)
- Fix
pre-commitprettierentry after upgrade to a new version #18452 (@krassowski, @brichet) - Bump webpack from 5.99.6 to 5.105.0 in /jupyterlab/tests/mock_packages/test-hyphens-underscore #18449 (@jasongrout, @krassowski)
- Turn on
verbatimModuleSyntax#18446 (@jasongrout, @krassowski) - Use past tense in README when referencing JupyterLab 3 security fixes #18435 (@krassowski, @jasongrout)
- Migrate ESLint to v9 #18434 (@Darshan808, @bollwyvl, @jtpio, @krassowski)
- Update to Rspack 1.7.5 #18432 (@jtpio, @jasongrout, @krassowski)
- Use sharding for faster visual regression/integration tests #18427 (@krassowski, @bollwyvl, @jasongrout)
- Bump the actions group with 8 updates #18424 (@krassowski)
- Turn on Typescript
noImplicitThisoption and fix errors #18423 (@jasongrout, @aaron-seq, @krassowski) - Turn on Typescript
strictBuiltinIteratorReturnand fix errors #18421 (@jasongrout, @krassowski) - Update prettier, use cache and parallel CLI options #18420 (@bollwyvl, @jasongrout)
- Turn on Typescript
strictBindCallApplyoption #18418 (@jasongrout, @krassowski) - Turn on the Typescript alwaysStrict option #18414 (@jasongrout, @jtpio)
- Bump lodash-es from 4.17.21 to 4.17.23 in /jupyterlab/tests/mock_packages/test-hyphens-underscore #18408 (@jtpio)
- Upgrade to Typescript 5.9 #18402 (@jasongrout, @jtpio)
- Update to Playwright 1.58.0 #18391 (@jtpio, @krassowski)
- Update release instructions #18375 (@jasongrout, @krassowski)
- Bump lodash-es from 4.17.21 to 4.17.23 in /jupyterlab/tests/mock_packages/test_no_hyphens #18371 (@krassowski)
- Bump diff from 5.1.0 to 5.2.2 #18364 (@krassowski)
- Update to Rspack 1.7.3 #18360 (@jtpio, @krassowski)
- Remove generated docs files from the repo #18340 (@jtpio, @krassowski)
- Bump
rufftarget topy310#18339 (@jtpio, @krassowski) - Fix UI tests: config useSystemClipboardForCells=true for notebook toolbar test #18335 (@brichet, @krassowski)
- Use reusable workflow action for checking permissions in the update-snapshots bot #18334 (@martinRenou, @krassowski)
- Bump to Rspack 1.7.2 #18333 (@jtpio, @krassowski)
- Bump node-forge from 1.3.1 to 1.3.3 #18329 (@krassowski)
- Bump vega-selections from 5.6.0 to 5.6.3 #18315 (@krassowski)
- Update to Rspack 1.7.1 #18312 (@jtpio, @krassowski)
- Update to Rspack
1.7.0#18300 (@jtpio, @Darshan808, @krassowski) - Fix the path of the uploaded artifiacts of galata report #18288 (@brichet, @Darshan808, @krassowski)
- Fix command palette accessibility test #18255 (@krassowski, @brichet)
- Make the plugin registry slow activation test more robust #18254 (@krassowski, @Darshan808)
- Update ui test triggers #18248 (@jasongrout, @Zsailer)
- Remove unused snapshot #18224 (@brichet, @jtpio, @krassowski)
- Bump systeminformation from 5.23.14 to 5.27.14 #18223 (@brichet, @krassowski)
- Prevent updating npm
nexttag for some versions of@jupyterlab/rendermime-interfaces#18217 (@jtpio, @krassowski) - Update to python 3.14, remove python 3.9 #18216 (@jasongrout, @brichet, @krassowski)
- Check if the list of commands, tokens and plugins has changed #18198 (@jtpio, @krassowski)
- Bump jws from 3.2.2 to 3.2.3 #18171 (@krassowski)
- Revert "Add the 'jupyterlab' entry point" #18166 (@jtpio, @jasongrout)
- Update to Playwright 1.57.0 #18151 (@jtpio, @krassowski)
- Prevent some supply-chain attack vectors #18142 (@jasongrout, @krassowski, @mfisher87)
- Linter: enforce "import type" when applicable #18129 (@martinRenou, @jasongrout, @jtpio, @krassowski)
- Update to
ruff==0.14.10and other pre-commit updates #17838 (@jtpio) - Add tests for browser window's selection #17718 (@MUFFANUJ, @Darshan808, @krassowski)
- Switch from
webpacktorspackfor bundling #16005 (@jtpio, @FoSuCloud, @chenjiahan, @erkin98, @jasongrout, @krassowski, @xc2)
Documentation improvements
- Update user-facing changelog for 4.6.0 RC #19019 (@krassowski, @Yann-P)
- Clarify TypeScript watch builds in documentation #18979 (@nightcityblade, @Darshan808, @krassowski)
- Fix typo in contributing docs #18971 (@TheChyeahhh, @krassowski)
- Fix typo in LSP documentation #18970 (@TheChyeahhh, @MUFFANUJ, @krassowski)
- Fix duplicated sentence in
showJumpToRecentExecutionButtondescription #18969 (@TheChyeahhh, @krassowski) - Fix typo in a shell test description #18968 (@TheChyeahhh, @krassowski)
- Mention JupyterLab 4.6.0 beta in installation guide and via a banner #18941 (@krassowski, @jtpio)
- User-facing changelog for 4.6 release #18932 (@krassowski, @jtpio)
- Migrate
Move Sectionsdocumentation tointerface_customization.md#18918 (@Darshan808, @krassowski) - Add
jupyter-buildersection in Extension Migration guide #18904 (@Darshan808, @krassowski) - Update documentation snapshot docs and document new CI trigger #18886 (@krassowski, @brichet)
- Add merge driver for png files #18885 (@krassowski, @brichet)
- Improve loading of interactive examples in documentation #18828 (@krassowski, @MUFFANUJ)
- Fix name of option for extension manager implementation in docs #18788 (@krassowski, @jtpio)
- Remove 4.5.0 announcement from docs #18740 (@krassowski, @Carreau)
- Fix notebook factory plugin description #18675 (@krassowski, @brichet)
- Fix a typo in documentation [skip ci] #18625 (@davidbrochart, @krassowski)
- Add default labels and behavior documentations for dialog buttons #18604 (@MUFFANUJ, @krassowski)
- Remove
enableImmutableInstallsfrom docs #18586 (@MUFFANUJ, @krassowski) - Add missing build step in services browser example README #18569 (@u-wlkjyy, @krassowski)
- Revise team section in README with governance updates #18483 (@krassowski, @andrii-i, @jasongrout)
- Fix inconsistent JupyterLab capitalization #18450 (@RamiNoodle733, @krassowski)
- Disclose AI usage in PR template #18413 (@jasongrout, @krassowski, @ktaletsk)
- Fix Contents API fetch documentation of the
contentdefault #18383 (@ceasermikes002, @brichet, @jasongrout, @krassowski) - Add installation instructions for JupyterLab with uv #18363 (@jimangel, @krassowski)
- Add AI rules #18322 (@jtpio, @andrii-i, @jasongrout, @krassowski)
- Clarify notebook and cell metadata API changes in JupyterLab 4 #18304 (@Krish-876, @krassowski)
- Add documentation of autosave option #18283 (@MUFFANUJ, @Darshan808, @jtpio, @krassowski)
- Document workspace selector and TopBar extension point #18272 (@Krish-876, @krassowski)
- Allow to zoom in/out individual widgets with ctrl + mouse wheel #18263 (@Meriem-BenIsmail, @RRosio, @krassowski)
- Document a change in the Code Editor source updates via
sharedModelin JupyterLab 4 #18260 (@Krish-876, @krassowski) - Document proxy environment variables for extension manager #18259 (@Krish-876, @krassowski)
- Fix broken see-also reference for
inspect_requestmessage #18234 (@Krish-876, @krassowski) - Docs: clarify edit mode vs command mode in notebooks #18222 (@harshaagrawal20, @krassowski)
- Update announcement and installation instructions post 4.5.0 final release #18125 (@krassowski, @jtpio, @ktaletsk)
- Clean up old references to restructured text #18123 (@jtpio, @krassowski)
- Add plotting and visualization documentation #18094 (@MMesch, @Darshan808, @krassowski)
- Allow moving widgets to different areas #17880 (@jtpio, @krassowski)
Other merged PRs
- Bump markdown-it from 14.1.0 to 14.2.0 #19041 (@krassowski)
- Bump form-data from 4.0.5 to 4.0.6 #19040 (@krassowski)
- Bump dompurify from 3.4.0 to 3.4.10 #19037 (@krassowski)
- Bump @babel/core from 7.21.0 to 7.29.6 #19036 (@krassowski)
- Bump @tootallnate/once from 2.0.0 to 2.0.1 #18930 (@krassowski)
- Bump ws from 8.18.1 to 8.20.1 in /jupyterlab/tests/mock_packages/test_no_hyphens #18913 (@krassowski)
- Bump brace-expansion from 5.0.3 to 5.0.6 #18900 (@brichet, @krassowski)
- Bump mermaid from 11.13.0 to 11.15.0 #18872 (@bollwyvl, @krassowski)
- Bump @babel/plugin-transform-modules-systemjs from 7.20.11 to 7.29.4 #18861 (@brichet)
- Bump fast-uri from 3.0.6 to 3.1.2 #18860 (@brichet, @krassowski)
- Bump axios from 1.8.2 to 1.16.0 #18843 (@krassowski)
- Bump postcss from 8.4.38 to 8.5.12 in /jupyterlab/tests/mock_packages/test_no_hyphens #18821 (@krassowski)
- Bump postcss from 8.5.6 to 8.5.12 #18805 (@krassowski)
- Bump postcss from 8.4.38 to 8.5.12 in /jupyterlab/tests/mock_packages/test-hyphens-underscore #18793 (@krassowski)
- Bump follow-redirects from 1.15.11 to 1.16.0 #18783 (@krassowski)
- Bump dompurify from 3.3.3 to 3.4.0 #18775 (@krassowski)
- Bump lodash-es from 4.17.23 to 4.18.1 in /jupyterlab/tests/mock_packages/test_no_hyphens #18720 (@brichet)
- Bump lodash-es from 4.17.23 to 4.18.1 #18719 (@brichet, @krassowski)
- Bump lodash-es from 4.17.23 to 4.18.1 in /jupyterlab/tests/mock_packages/test-hyphens-underscore #18718 (@brichet)
- Bump lodash from 4.17.21 to 4.18.1 in /jupyterlab/tests/mock_packages/test-hyphens-underscore #18717 (@brichet)
- Bump lodash from 4.17.21 to 4.18.1 in /jupyterlab/tests/mock_packages/test_no_hyphens #18716 (@brichet)
- Bump path-to-regexp from 0.1.12 to 0.1.13 #18697 (@krassowski)
- Bump brace-expansion from 1.1.12 to 1.1.13 #18692 (@krassowski)
- Bump picomatch from 2.3.1 to 2.3.2 #18678 (@krassowski)
- Bump flatted from 3.4.1 to 3.4.2 #18669 (@krassowski)
- Bump socket.io-parser from 4.2.4 to 4.2.6 #18651 (@krassowski)
- Bump flatted from 3.3.3 to 3.4.1 #18641 (@krassowski)
Contributors to this release
The following people contributed discussions, new ideas, code and documentation contributions, and review.
See our definition of contributors.
(GitHub contributors page for this release)
@aaron-seq (activity) | @aarondr77 (activity) | @afshin (activity) | @agriyakhetarpal (activity) | @Akshitguptaa (activity) | @AliMahmoudDev (activity) | @altis0725 (activity) | @amanparganiha (activity) | @anafontan (activity) | @andrii-i (activity) | @apoorvdarshan (activity) | @arjxn-py (activity) | @arun-357 (activity) | @autodots-AHassan (activity) | @aviu16 (activity) | @bittoby (activity) | @bollwyvl (activity) | @boskodev790 (activity) | @brichet (activity) | @Carreau (activity) | @ceasermikes002 (activity) | @chenjiahan (activity) | @claude (activity) | @cmarmo (activity) | @Copilot (activity) | @CrafterKolyan (activity) | @cursoragent (activity) | @Darshan808 (activity) | @davidbrochart (activity) | @DeborahOlaboye (activity) | @dhgoal (activity) | @doshi-kevin (activity) | @erkin98 (activity) | @fcollonval (activity) | @filipeoliveira05 (activity) | @flaviomartins (activity) | @fleming79 (activity) | @FoSuCloud (activity) | @frenzymadness (activity) | @github29tani (activity) | @GlassOfWhiskey (activity) | @harshaagrawal20 (activity) | @HaudinFlorence (activity) | @hroncok (activity) | @i-aki-y (activity) | @ianhi (activity) | @ianthomas23 (activity) | @IsabelParedes (activity) | @itsmejay80 (activity) | @itsmevichu (activity) | @JamesWrigley (activity) | @jasongrout (activity) | @JasonWeill (activity) | @jayaprajapatii (activity) | @JaYRaNa213 (activity) | @jianyexi (activity) | @jimangel (activity) | @jtpio (activity) | @krassowski (activity) | @Krish-876 (activity) | @ktaletsk (activity) | @lin9long (activity) | @linlol (activity) | @martinRenou (activity) | @Meriem-BenIsmail (activity) | @mfisher87 (activity) | @MMesch (activity) | @moktamd (activity) | @MUFFANUJ (activity) | @nightcityblade (activity) | @nthiery (activity) | @peytondmurray (activity) | @prajyot-porje (activity) | @pranshugupta01 (activity) | @raffaelemancuso (activity) | @RamiNoodle733 (activity) | @reteps (activity) | @rodrigosf672 (activity) | @RRosio (activity) | @schmidi314 (activity) | @Siddhazntx (activity) | @soniya-malviy (activity) | @statxc (activity) | @superlevure (activity) | @SylvainCorlay (activity) | @TheChyeahhh (activity) | @tmetzl (activity) | @tsharma-dev (activity) | @tubaman (activity) | @u-wlkjyy (activity) | @utsav-develops (activity) | @xc2 (activity) | @Yahiewi (activity) | @Yann-P (activity) | @ZhYGuoL (activity) | @Zsailer (activity)