4.1.0
- Allow web socket messages of any size
- Improve reporting of more types of errors, including cachemachine errors
- Only number code cells in error reporting of notebooks
- Increase user token expiration to one year so that it stops expiring during runs
- Make default spawn timeout more closely match JupyterHub's
- Stop using the FastAPI Docker image as a base and build our own
- Drop support for Python 3.8