server. Existing server extensions will be shimmed, but it is advised to
update extensions to use
[jupyter_server](https://github.com/jupyter/jupyter_server).
- Update server(s), nbclassic, pytest fixtures
([9478](https://github.com/jupyterlab/jupyterlab/pull/9478),
[9473](https://github.com/jupyterlab/jupyterlab/issues/9473))
- Add jupyter_core as a dependency
([9251](https://github.com/jupyterlab/jupyterlab/pull/9251))
- Put exposeappinbrowser and quitbutton values back in page config
([9262](https://github.com/jupyterlab/jupyterlab/pull/9262))
- Update favicon handling
([9145](https://github.com/jupyterlab/jupyterlab/pull/9145),
[9138](https://github.com/jupyterlab/jupyterlab/issues/9138))
- Enable JupyterLab to run as an old notebook server extension
([8956](https://github.com/jupyterlab/jupyterlab/pull/8956),
[8943](https://github.com/jupyterlab/jupyterlab/issues/8943))
- Fixed `static_url_prefix`, added classic notebook flags and aliases,
and bumped `jupyterlab_server` dependency
([8910](https://github.com/jupyterlab/jupyterlab/pull/8910))
- Use favicons provided by `jupyter_server`
([8898](https://github.com/jupyterlab/jupyterlab/pull/8898),
[8794](https://github.com/jupyterlab/jupyterlab/issues/8794))
- Load `app_version` next to running on jupyter_server
([8889](https://github.com/jupyterlab/jupyterlab/pull/8889),
[8812](https://github.com/jupyterlab/jupyterlab/issues/8812))
- Reinstate the labhubapp
([8806](https://github.com/jupyterlab/jupyterlab/pull/8806),
[8704](https://github.com/jupyterlab/jupyterlab/issues/8704))
- Jupyterlab as server extension
([7416](https://github.com/jupyterlab/jupyterlab/pull/7416))
Internationalization
The JupyterLab UI now supports translation.
- Cleanup tsconfig for the translation extension
([9357](https://github.com/jupyterlab/jupyterlab/pull/9357))
- Add options to add prefix to strings
([8946](https://github.com/jupyterlab/jupyterlab/pull/8946))
- Add a standalone translation manager to be used outside of plugins
([8945](https://github.com/jupyterlab/jupyterlab/pull/8945))
- Add missing string fixes
([8888](https://github.com/jupyterlab/jupyterlab/pull/8888))
- Add crowdin badge
([8823](https://github.com/jupyterlab/jupyterlab/pull/8823))
- Change `optionsmap` to a an array of tuples to be able to localize
the options
([8820](https://github.com/jupyterlab/jupyterlab/pull/8820))
- Localize strings in jlab
([8800](https://github.com/jupyterlab/jupyterlab/pull/8800))
- Add translation package
([8681](https://github.com/jupyterlab/jupyterlab/pull/8681))
Visual Debugger
- Debugger-sidebar
([9452](https://github.com/jupyterlab/jupyterlab/pull/9452))
- Handle multiple scopes in the debugger variables viewer
([9346](https://github.com/jupyterlab/jupyterlab/pull/9346))
- Remove the ptvsd dependency from the debugger user docs
([9344](https://github.com/jupyterlab/jupyterlab/pull/9344))
- Throws an error if the kernel cannot start the debugger
([9426](https://github.com/jupyterlab/jupyterlab/pull/9426))
- Replace switch in debugger
([9432](https://github.com/jupyterlab/jupyterlab/pull/9432),
[9354](https://github.com/jupyterlab/jupyterlab/issues/9354))
- Sets terminatedebuggee to false
([9362](https://github.com/jupyterlab/jupyterlab/pull/9362))
- Add missing return signatures in debugger sidebar
([9088](https://github.com/jupyterlab/jupyterlab/pull/9088))
- Fix invisible breakpoint in debugger
([8908](https://github.com/jupyterlab/jupyterlab/pull/8908))
- Port `jupyterlab/debugger` PR 527 to JupyterLab
([8878](https://github.com/jupyterlab/jupyterlab/pull/8878))
- Add jupyterlab debugger to core
([8747](https://github.com/jupyterlab/jupyterlab/pull/8747),
[75](https://github.com/jupyterlab/team-compass/issues/75))
Table of Contents
- Update toc ui
([9275](https://github.com/jupyterlab/jupyterlab/pull/9275))
- Add tests for the toc
([8757](https://github.com/jupyterlab/jupyterlab/pull/8757),
[8558](https://github.com/jupyterlab/jupyterlab/issues/8558))
- Change toc to use labicon
([8692](https://github.com/jupyterlab/jupyterlab/pull/8692),
[8557](https://github.com/jupyterlab/jupyterlab/issues/8557))
- Switch from using settings registry to a signal for notebook
collapsing behavior in toc
([8601](https://github.com/jupyterlab/jupyterlab/pull/8601))
- Remove `husky` dependencies from `toc` and `toc-extension`
([8571](https://github.com/jupyterlab/jupyterlab/pull/8571))
- Merge toc extension into core
([8538](https://github.com/jupyterlab/jupyterlab/pull/8538))
Other
- Resolve 'restarting' state on reconnect
([9484](https://github.com/jupyterlab/jupyterlab/pull/9484),
[9008](https://github.com/jupyterlab/jupyterlab/issues/9008))
- Upgrade typedoc
([9483](https://github.com/jupyterlab/jupyterlab/pull/9483))
- Update to typescript 4.1.3
([9476](https://github.com/jupyterlab/jupyterlab/pull/9476))
- Disable shut down all button if there is no running kernel or
terminal
([9468](https://github.com/jupyterlab/jupyterlab/pull/9468),
[48](https://github.com/jtpio/jupyterlab-classic/issues/48))
- Make some dependencies optional for the code console plugin
([9467](https://github.com/jupyterlab/jupyterlab/pull/9467))
- Require tornado>=6.1.0
([9453](https://github.com/jupyterlab/jupyterlab/pull/9453))
- Pin to tornado>=6.1 on binder
([9449](https://github.com/jupyterlab/jupyterlab/pull/9449))
- Fix some of the ui-components dependency warnings
([9448](https://github.com/jupyterlab/jupyterlab/pull/9448))
- Fix browser test
([9447](https://github.com/jupyterlab/jupyterlab/pull/9447))
- Support for lowercase search queries in the file browser
([9446](https://github.com/jupyterlab/jupyterlab/pull/9446))
- Set the tabs menu title by default
([9445](https://github.com/jupyterlab/jupyterlab/pull/9445))
- Add tests for interop between source and prebuilt extensions
([9443](https://github.com/jupyterlab/jupyterlab/pull/9443),
[9333](https://github.com/jupyterlab/jupyterlab/issues/9333))
- Make itreepathupdater optional in file browser plugin
([9442](https://github.com/jupyterlab/jupyterlab/pull/9442))
- Make ilabshell optional in the filebrowser factory plugin
([9439](https://github.com/jupyterlab/jupyterlab/pull/9439))
- Reduce yarn timeout
([9419](https://github.com/jupyterlab/jupyterlab/pull/9419))
- Remove unused requires for the tree-resolver plugin
([9412](https://github.com/jupyterlab/jupyterlab/pull/9412))
- Update types/react to ^17.0.0
([9409](https://github.com/jupyterlab/jupyterlab/pull/9409))
- Make css dependency graph of js modules
([9407](https://github.com/jupyterlab/jupyterlab/pull/9407))
- Cleanup unused python imports in examples/
([9404](https://github.com/jupyterlab/jupyterlab/pull/9404))
- Clear the model and the signals upon continue response
([9402](https://github.com/jupyterlab/jupyterlab/pull/9402))
- Fix scroll positions when clearing outputs
([9400](https://github.com/jupyterlab/jupyterlab/pull/9400),
[9331](https://github.com/jupyterlab/jupyterlab/issues/9331))
- Remove initial extra \_onmimetypechanged call
([9394](https://github.com/jupyterlab/jupyterlab/pull/9394))
- Bump the eslint dev dependencies
([9391](https://github.com/jupyterlab/jupyterlab/pull/9391))
- Reconnect to kernel on manual restart
([9388](https://github.com/jupyterlab/jupyterlab/pull/9388))
- Remove the memory usage status bar item
([9386](https://github.com/jupyterlab/jupyterlab/pull/9386),
[9363](https://github.com/jupyterlab/jupyterlab/issues/9363))
- Change user references from single-document mode to simple interface
(mode)
([9380](https://github.com/jupyterlab/jupyterlab/pull/9380),
[9378](https://github.com/jupyterlab/jupyterlab/issues/9378))
- Reconnect to kernel on restart action
([9371](https://github.com/jupyterlab/jupyterlab/pull/9371))
- Add a polyfill for path in the base webpack config
([9368](https://github.com/jupyterlab/jupyterlab/pull/9368),
[9345](https://github.com/jupyterlab/jupyterlab/issues/9345))
- Add reconnect to kernel main menu item, and notebook implementation.
([9356](https://github.com/jupyterlab/jupyterlab/pull/9356),
[9353](https://github.com/jupyterlab/jupyterlab/issues/9353))
- Update blueprint dependencies
([9350](https://github.com/jupyterlab/jupyterlab/pull/9350))
- Target sys-prefix by default but allow you to specify user
([9347](https://github.com/jupyterlab/jupyterlab/pull/9347))
- Eliminate eager sharing
([9348](https://github.com/jupyterlab/jupyterlab/pull/9348),
[9343](https://github.com/jupyterlab/jupyterlab/issues/9343))
- Revert opening in new tab in single-document mode
([9334](https://github.com/jupyterlab/jupyterlab/pull/9334),
[9323](https://github.com/jupyterlab/jupyterlab/issues/9323))
- Eager share only core packages and their dependencies
([9332](https://github.com/jupyterlab/jupyterlab/pull/9332),
[9329](https://github.com/jupyterlab/jupyterlab/issues/9329))
- Changed the expression to "server unavailable or unreachable"
instead of "server not running"
([9325](https://github.com/jupyterlab/jupyterlab/pull/9325))
- Increase the pause between publishing and using npm packages to 5
minutes
([9319](https://github.com/jupyterlab/jupyterlab/pull/9319))
- Lint extension manager
([9318](https://github.com/jupyterlab/jupyterlab/pull/9318))
- Refactor build conventions
([9312](https://github.com/jupyterlab/jupyterlab/pull/9312),
[9304](https://github.com/jupyterlab/jupyterlab/issues/9304))
- Make ilabshell optional for the launcher extension
([9305](https://github.com/jupyterlab/jupyterlab/pull/9305))
- Update binder to use conda, which allows us to install our own
nodejs.
([9298](https://github.com/jupyterlab/jupyterlab/pull/9298))
- Move the single document switch to the status bar
([9296](https://github.com/jupyterlab/jupyterlab/pull/9296))
- Added utf-8 encoding parameter to create process
([9294](https://github.com/jupyterlab/jupyterlab/pull/9294),
[8600](https://github.com/%5B/issues/8600))
- Fix linting errors in github prs
([9293](https://github.com/jupyterlab/jupyterlab/pull/9293))
- Enable mimedocument to use an optional specific renderer
([9291](https://github.com/jupyterlab/jupyterlab/pull/9291))
- Pause after publishing packages to allow npm time to update their
listing
([9288](https://github.com/jupyterlab/jupyterlab/pull/9288))
- Sidebar width
([9287](https://github.com/jupyterlab/jupyterlab/pull/9287),
[8938](https://github.com/jupyterlab/jupyterlab/issues/8938))
- Mybinder.org link for people who want to test their own branches in
the developer guidelines
([9284](https://github.com/jupyterlab/jupyterlab/pull/9284),
[9255](https://github.com/jupyterlab/jupyterlab/issues/9255))
- Remove ensure-max-old-space script
([9282](https://github.com/jupyterlab/jupyterlab/pull/9282))
- Fix usage tests refusing to uninstall federated extensions
([9281](https://github.com/jupyterlab/jupyterlab/pull/9281),
[9280](https://github.com/jupyterlab/jupyterlab/issues/9280))
- Add a new menu shell area
([9274](https://github.com/jupyterlab/jupyterlab/pull/9274))
- Fix 9255
([9273](https://github.com/jupyterlab/jupyterlab/pull/9273),
[9255](https://github.com/jupyterlab/jupyterlab/issues/9255))
- Fix theme path in jupyterlab builder
([9272](https://github.com/jupyterlab/jupyterlab/pull/9272))
- Move document mode switch to separate plugin
([9270](https://github.com/jupyterlab/jupyterlab/pull/9270))
- Fix styling of single-document mode switch in menu bar
([9267](https://github.com/jupyterlab/jupyterlab/pull/9267))
- Make pdf viewer extension recognize pdf files
([9266](https://github.com/jupyterlab/jupyterlab/pull/9266))
- Fix relative path handling in markdown images
([9264](https://github.com/jupyterlab/jupyterlab/pull/9264),
[9253](https://github.com/jupyterlab/jupyterlab/issues/9253),
[9243](https://github.com/jupyterlab/jupyterlab/issues/9243))
- Add jupyterhub to page config
([9256](https://github.com/jupyterlab/jupyterlab/pull/9256),
[9248](https://github.com/jupyterlab/jupyterlab/issues/9248))
- Update to webpack-cli 4.1.0
([9254](https://github.com/jupyterlab/jupyterlab/pull/9254))
- Upgrade to react 17
([9227](https://github.com/jupyterlab/jupyterlab/pull/9227))
- Extension documentation
([9221](https://github.com/jupyterlab/jupyterlab/pull/9221))
- Lint fixes
([9218](https://github.com/jupyterlab/jupyterlab/pull/9218))
- Update change log
([9217](https://github.com/jupyterlab/jupyterlab/pull/9217))
- Update committer list
([9215](https://github.com/jupyterlab/jupyterlab/pull/9215))
- Upgrade to TypeScript 4
([8883](https://github.com/jupyterlab/jupyterlab/pull/8883))
- File browser filter
([8615](https://github.com/jupyterlab/jupyterlab/pull/8615))
- Update yarn.lock.
([9095](https://github.com/jupyterlab/jupyterlab/pull/9095))
- Handle notebook kernel in busy state on page reload
([9077](https://github.com/jupyterlab/jupyterlab/pull/9077))
- Use span element to maintain ellipsis
([9075](https://github.com/jupyterlab/jupyterlab/pull/9075),
[9074](https://github.com/jupyterlab/jupyterlab/issues/9074))
- Add codemirror singleton plugin
([9067](https://github.com/jupyterlab/jupyterlab/pull/9067))
- Support token authentication for terminal websocket communication
([9080](https://github.com/jupyterlab/jupyterlab/pull/9080))
- Do not special-case logic for mainareawidget.
([9094](https://github.com/jupyterlab/jupyterlab/pull/9094))
- Set an icon for the inspector main area widget
([9093](https://github.com/jupyterlab/jupyterlab/pull/9093))
- Fix the open tabs handling of mainareawidget icons
([9092](https://github.com/jupyterlab/jupyterlab/pull/9092),
[126](https://github.com/jupyterlab/extension-examples/issues/126))
- Sort completion filtering results
([9098](https://github.com/jupyterlab/jupyterlab/pull/9098),
[9048](https://github.com/jupyterlab/jupyterlab/issues/9048),
[9048](https://github.com/jupyterlab/jupyterlab/issues/9048))
- Add hover scrolling to menu, like toolbar.
([9097](https://github.com/jupyterlab/jupyterlab/pull/9097))
- Add codemirror simple mode addon
([9123](https://github.com/jupyterlab/jupyterlab/pull/9123))
- Create codeql-analysis.yml
([9119](https://github.com/jupyterlab/jupyterlab/pull/9119))
- Create ensurevimkeymap function
([9161](https://github.com/jupyterlab/jupyterlab/pull/9161))
- Increase size of docstring pop up tooltip
([9134](https://github.com/jupyterlab/jupyterlab/pull/9134),
[9085](https://github.com/jupyterlab/jupyterlab/issues/9085))
- Add a 2.x -> 3.x migration guide
([9162](https://github.com/jupyterlab/jupyterlab/pull/9162),
[9118](https://github.com/jupyterlab/jupyterlab/issues/9118))
- Add an offline circle icon for disconnected or unknown kernel state
([9172](https://github.com/jupyterlab/jupyterlab/pull/9172))
- Include js api in sphinx docs
([9179](https://github.com/jupyterlab/jupyterlab/pull/9179))
- Update rtd build
([9182](https://github.com/jupyterlab/jupyterlab/pull/9182))
- Allow to substitute the default completer renderer
([8930](https://github.com/jupyterlab/jupyterlab/pull/8930),
[8926](https://github.com/jupyterlab/jupyterlab/issues/8926))
- Update dependencies for beta
([8921](https://github.com/jupyterlab/jupyterlab/pull/8921))
- Test cleanup
([8894](https://github.com/jupyterlab/jupyterlab/pull/8894))
- Resize isolated iframes on content height change
([8909](https://github.com/jupyterlab/jupyterlab/pull/8909),
[5696](https://github.com/jupyterlab/jupyterlab/issues/5696))
- Update minimum python version to python 3.6.
([8903](https://github.com/jupyterlab/jupyterlab/pull/8903))
- Update yarn.lock
([8862](https://github.com/jupyterlab/jupyterlab/pull/8862))
- Makes some properties and methods of class dsvmodel accessible
outside the class.
([8849](https://github.com/jupyterlab/jupyterlab/pull/8849),
[8848](https://github.com/jupyterlab/jupyterlab/issues/8848))
- Do not use token parameters in websocket urls
([8835](https://github.com/jupyterlab/jupyterlab/pull/8835),
[8813](https://github.com/jupyterlab/jupyterlab/issues/8813))
- Use blocked/allowed extension naming in jupyterlab
([8799](https://github.com/jupyterlab/jupyterlab/pull/8799),
[8533](https://github.com/jupyterlab/jupyterlab/issues/8533))
- Create icon for pdfs in the filebrowser
([8791](https://github.com/jupyterlab/jupyterlab/pull/8791))
- Correctly set base_url on workspace apps
([8788](https://github.com/jupyterlab/jupyterlab/pull/8788))
- Pass in isessioncontextdialogs to notebookwidgetfactory
([8778](https://github.com/jupyterlab/jupyterlab/pull/8778))
- Update encoding version in vega sample.
([8766](https://github.com/jupyterlab/jupyterlab/pull/8766))
- Upgrade codemirror
([8739](https://github.com/jupyterlab/jupyterlab/pull/8739))
- Rename the logconsole:nboutput plugin id
([8729](https://github.com/jupyterlab/jupyterlab/pull/8729))
- Rename the celltags plugin id to jupyterlab/celltags
([8728](https://github.com/jupyterlab/jupyterlab/pull/8728))
- Uncaught typeerror when switching kernels
([8727](https://github.com/jupyterlab/jupyterlab/pull/8727))
- Change inspector detail_level to 1
([8725](https://github.com/jupyterlab/jupyterlab/pull/8725))
- Change main menu ranks to allow for application menu to l of file
([8719](https://github.com/jupyterlab/jupyterlab/pull/8719))
- Handle errors in async browser_check
([8717](https://github.com/jupyterlab/jupyterlab/pull/8717),
[8709](https://github.com/jupyterlab/jupyterlab/issues/8709))
- Add mehmet and andrew to contributors, fix last name order
([8712](https://github.com/jupyterlab/jupyterlab/pull/8712))
- Updated puppeteer version to v4.0.0
([8707](https://github.com/jupyterlab/jupyterlab/pull/8707))
- Update the singleton packages to include at least every package with
a 'tokens.ts' file
([8703](https://github.com/jupyterlab/jupyterlab/pull/8703))
- Update link to jupyter contributing guide
([8697](https://github.com/jupyterlab/jupyterlab/pull/8697),
[8682](https://github.com/jupyterlab/jupyterlab/issues/8682))
- Added ability to delete a document from titlebar context menu
([8670](https://github.com/jupyterlab/jupyterlab/pull/8670))
- Move codemirror html tree and related css to shadow dom
([8584](https://github.com/jupyterlab/jupyterlab/pull/8584))
- Support macoptionismeta option in terminal
([8573](https://github.com/jupyterlab/jupyterlab/pull/8573),
[4236](https://github.com/jupyterlab/jupyterlab/issues/4236))
- Align output baseline with prompt
([8561](https://github.com/jupyterlab/jupyterlab/pull/8561),
[8560](https://github.com/jupyterlab/jupyterlab/issues/8560))
- Use the same font-family for cell prompt and code
([8553](https://github.com/jupyterlab/jupyterlab/pull/8553),
[8552](https://github.com/jupyterlab/jupyterlab/issues/8552))
- Prompt to save files before rebuild
([8526](https://github.com/jupyterlab/jupyterlab/pull/8526),
[7372](https://github.com/jupyterlab/jupyterlab/issues/7372))
- Change json5 payload to json payload
([8225](https://github.com/jupyterlab/jupyterlab/pull/8225))
- Move notebook logging plugin to notebook-extension package
([7830](https://github.com/jupyterlab/jupyterlab/pull/7830))
- First pass at adding scroll to cell method
([6818](https://github.com/jupyterlab/jupyterlab/pull/6818))
- Add a debugger section to the user docs and contributing guide
([8977](https://github.com/jupyterlab/jupyterlab/pull/8977))
Single Document Mode and Mobile Enhancements
- Make the single document title widget work for widgets that are not
main area widgets
([9078](https://github.com/jupyterlab/jupyterlab/pull/9078))
- Add border at top of single-document open menus
([9096](https://github.com/jupyterlab/jupyterlab/pull/9096),
[9065](https://github.com/jupyterlab/jupyterlab/issues/9065))
- Implement a simple checkbox for single-document mode in the menu
bar. ([9100](https://github.com/jupyterlab/jupyterlab/pull/9100),
[8292](https://github.com/jupyterlab/jupyterlab/issues/8292))
- Followup 9100: made sdm switch pretty, accessible
([9104](https://github.com/jupyterlab/jupyterlab/pull/9104))
- Improved url scheme, state, interactions for single document mode
([8715](https://github.com/jupyterlab/jupyterlab/pull/8715))
- Add workspace mime handler and loading/saving workspaces manually
([8691](https://github.com/jupyterlab/jupyterlab/pull/8691))
- Modify ansi color fix
([8555](https://github.com/jupyterlab/jupyterlab/pull/8555),
[8554](https://github.com/jupyterlab/jupyterlab/issues/8554))
- Improve single document mode to address classic notebook usage cases
([8531](https://github.com/jupyterlab/jupyterlab/pull/8531))
- Incrementally improve jupyterlab mobile ux
([8456](https://github.com/jupyterlab/jupyterlab/pull/8456))
Benchmarks (now a separate repository)
- Move benchmarks to separate repo
([8795](https://github.com/jupyterlab/jupyterlab/pull/8795))
- Fix off by one error in benchmark samples
([8785](https://github.com/jupyterlab/jupyterlab/pull/8785))
- Benchmark params configurable and increase timeout
([8786](https://github.com/jupyterlab/jupyterlab/pull/8786))
- Benchmarks: new erroroutputs + larger timeout + notebook defs in
subfolder
([8783](https://github.com/jupyterlab/jupyterlab/pull/8783))
- Add ability to compare benchmarks
([8737](https://github.com/jupyterlab/jupyterlab/pull/8737))
- Benchmark notebook loads
([8020](https://github.com/jupyterlab/jupyterlab/pull/8020))
Bugfixes
- Fix lerna warning
([9061](https://github.com/jupyterlab/jupyterlab/pull/9061))
- Fix doc build
([9063](https://github.com/jupyterlab/jupyterlab/pull/9063),
[9060](https://github.com/jupyterlab/jupyterlab/issues/9060))
- Make text settings menu work
([9066](https://github.com/jupyterlab/jupyterlab/pull/9066),
[9042](https://github.com/jupyterlab/jupyterlab/issues/9042))
- Fix lint check for the codemirror-extension package
([9087](https://github.com/jupyterlab/jupyterlab/pull/9087))
- Fix the examples ci
([9150](https://github.com/jupyterlab/jupyterlab/pull/9150))
- Test: cleanup eslint jest rules and files
([9125](https://github.com/jupyterlab/jupyterlab/pull/9125))
- Switch to a different murmurhash2 implementation to handle unicode
characters
([9158](https://github.com/jupyterlab/jupyterlab/pull/9158))
- Add more xxx to the mktemp command in release_test.sh
([9131](https://github.com/jupyterlab/jupyterlab/pull/9131))
- Add setup.py and pyproject.toml to manifest.in
([9129](https://github.com/jupyterlab/jupyterlab/pull/9129))
- Urlext.join can't handle colon in relative paths
([9169](https://github.com/jupyterlab/jupyterlab/pull/9169),
[9159](https://github.com/jupyterlab/jupyterlab/issues/9159))
- Remove absolute document search pane width
([9180](https://github.com/jupyterlab/jupyterlab/pull/9180),
[9178](https://github.com/jupyterlab/jupyterlab/issues/9178))
- Update session and kernel manager data only if there was a real
change.
([9189](https://github.com/jupyterlab/jupyterlab/pull/9189),
[9133](https://github.com/jupyterlab/jupyterlab/issues/9133))
- Update metadata recorded to align better with jupyter protocol
([9206](https://github.com/jupyterlab/jupyterlab/pull/9206))
- Fix focus issues with command palette
([9210](https://github.com/jupyterlab/jupyterlab/pull/9210),
[9121](https://github.com/jupyterlab/jupyterlab/issues/9121))
- Update mimetype for dragging files
([8965](https://github.com/jupyterlab/jupyterlab/pull/8965),
[8934](https://github.com/jupyterlab/jupyterlab/issues/8934))
- Fix comment explaining the extension entry point.
([8964](https://github.com/jupyterlab/jupyterlab/pull/8964))
- Security docs: link to jupyter-server instead of jupyter-noteboook
([8954](https://github.com/jupyterlab/jupyterlab/pull/8954))
- Fix titles in the extension development docs
([8948](https://github.com/jupyterlab/jupyterlab/pull/8948))
- Fix link syntax in the apod tutorial
([8942](https://github.com/jupyterlab/jupyterlab/pull/8942))
- Fix codemirror text color issue with dark jupyter theme.
([8919](https://github.com/jupyterlab/jupyterlab/pull/8919),
[8792](https://github.com/jupyterlab/jupyterlab/issues/8792))
- Remove the extension path, not the entire extension directory, when
uninstalling an extension
([8904](https://github.com/jupyterlab/jupyterlab/pull/8904))
- Header `'content-type'` should not be overwritten
([8891](https://github.com/jupyterlab/jupyterlab/pull/8891),
[8890](https://github.com/jupyterlab/jupyterlab/issues/8890))
- Make sure adding or removing a cell tag actually replaces the tag
list, so a changed signal is emitted for the cell metadata
([8751](https://github.com/jupyterlab/jupyterlab/pull/8751),
[8534](https://github.com/jupyterlab/jupyterlab/issues/8534))
- Fix up ensure package and repo
([8749](https://github.com/jupyterlab/jupyterlab/pull/8749),
[8748](https://github.com/jupyterlab/jupyterlab/issues/8748))
- Add comma in `extension_points.rst` to fix syntax error of code
([8745](https://github.com/jupyterlab/jupyterlab/pull/8745))
- Fix: Contributing Guide Link is Out of Sync
([8665](https://github.com/jupyterlab/jupyterlab/pull/8665))
- Fix api docs links
([8624](https://github.com/jupyterlab/jupyterlab/pull/8624),
[8616](https://github.com/jupyterlab/jupyterlab/issues/8616))
- Fix handling of disposed widgets after closing a panel in tutorial
([8623](https://github.com/jupyterlab/jupyterlab/pull/8623))
- Fix small typos in docs for developing extensions
([8622](https://github.com/jupyterlab/jupyterlab/pull/8622))
- Reload the application on manual state reset
([8621](https://github.com/jupyterlab/jupyterlab/pull/8621))
- Remove superfluous page reload on workspace reset
([8619](https://github.com/jupyterlab/jupyterlab/pull/8619))
- Remove superfluous console log from the application shell
([8618](https://github.com/jupyterlab/jupyterlab/pull/8618))
- Fix minor typos in extension tutorial
([8613](https://github.com/jupyterlab/jupyterlab/pull/8613))
- Fix minor typos in docs for extensions.
([8551](https://github.com/jupyterlab/jupyterlab/pull/8551))
- Fix small typo in install docs
([8550](https://github.com/jupyterlab/jupyterlab/pull/8550))
- Fix more linting errors
([8454](https://github.com/jupyterlab/jupyterlab/pull/8454))
- Reconnect a websocket when a kernel is restarted.
([8432](https://github.com/jupyterlab/jupyterlab/pull/8432))
[v2.2.x](https://github.com/jupyterlab/jupyterlab/milestone/53)