Removed
- #4039 Remove unnecessary Python version checks (pre 3.9).
Changed
- #4073 Move
plotly-cloudback to the optionaldash[cloud]extra (it was a default dependency in 4.5.0rc0/rc1), since it is not available on conda-forge.
Fixed
- #4075
fastapibackend: runbefore_requesthooks on every route of the Dash app (assets, hook routes,api_endpoint, pages, when mounted) and send a non-None hook result as the response, as on Flask.fastapiandquartalso run them on the WebSocket handshake. - #4075 Background callbacks without
cache_byno longer share a result between requests with equal inputs (unread Diskcache results now expire after a day, or afterexpirewhen set, even withcache_by), and callbacks with the same source no longer share a cache key.build_cache_keytakes a newcallback_keyargument. - #4075
dcc.Location(refresh=True).href,html.Area.hrefandhtml.Base.hrefnow blockjavascript:URLs likehtml.A. - #4075 Pages
path_templatematching no longer errors or backtracks badly on paths with a newline. - #4075 Add
configure_mcp_server(cache_by=..., cache_maxsize=...)so apps whose layout or callbacks depend on the user can keep the MCP server's cached tool descriptions and initial values per user (128 users by default,Nonefor no limit). - #4052 Fix callbacks of removed components still firing after a callback returns
Noneforchildren: the renderer now clears their paths. Fixes #4033.