unstale

pypi / panel

panel

What changed in panel 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-30.

18 breaking3 security5 deprecations28 new APIs and options4 performance9 behavior and defaults1 tooling30 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

panel 198 changes

Breaking changes 18

  • Bokeh 3.10 is now the minimum supported version.

    1.10.0release notes

  • The dependency has been dropped as Panel adds native ASGI server implementations.

    1.10.0release notes

  • The dependency has been dropped as Panel adds native ASGI server implementations.

    1.10.0release notes

  • The migration codemod renames size to icon_size and flags calls that size the icon through width or height for review.

    1.10.0release notes

  • The long-deprecated callback handler has been removed.

    1.10.0release notes

  • Panel adds native ASGI server implementations for FastAPI and Django, replacing the bokeh-fastapi and bokeh-django dependencies.

    1.10.0release notes

  • Removes the option because converted Pyodide apps no longer install or patch pyodide-http.

    1.10.0release notes

  • Requires panel-material-ui 0.16.6 or later.

    1.10.0release notes

  • For served apps, a DataFrame widget or hv.Table that first appears after page load requires pn.extension('bokeh-tables').

    1.10.0release notes

  • Raises ValueError when asked to sync a constant parameter such as value_throttled instead of silently ignoring the URL value.

    1.10.0release notes

  • Drops support for Python 3.10 and 3.11 and adds support for Python 3.15.

    1.10.0release notes

  • With the page template, target routes content into Page areas main, sidebar, header and contextbar; an unknown target now raises ValueError.

    1.10.0release notes

  • Provides session information through a built-in endpoint on every server implementation instead of the param REST provider.

    1.10.0release notes

  • No longer loads the bokeh-tables bundle; that bundle is loaded only for DataTable or DataCube rendering, in notebooks, or when explicitly requested.

    1.10.0release notes

  • The migration codemod renames size to icon_size and flags calls that size the icon through width or height for review.

    1.10.0release notes

  • Unsupported Perspective objects now raise a clear type error.

    1.9.4release notes

  • Tabulator value events now report the value from before the edit.

    1.9.4release notes

  • Unauthenticated WebSocket connections now receive a clean 403 response.

    1.9.4release notes

Security 3

  • Environment variable for restricting admin dashboard access to specified users.

    1.10.0release notes

  • Secures only the admin endpoint behind a login page.

    1.10.0release notes

  • Restricts the admin dashboard to specified users of basic authentication or an OAuth provider.

    1.10.0release notes

Deprecations 5

  • Deprecated and scheduled for removal in Panel 2.0; it is not supported on ASGI servers.

    1.10.0release notes

  • The module is deprecated and scheduled for removal in Panel 2.0; use --plugins to add custom endpoints instead.

    1.10.0release notes

  • Deprecated and scheduled for removal in Panel 2.0; use --plugins to add custom endpoints instead.

    1.10.0release notes

  • Deprecated in favor of Tabulator and scheduled for removal in Panel 2.0; Param now maps param.DataFrame parameters to Tabulator.

    1.10.0release notes

  • Kept as a deprecated alias of /session_info.

    1.10.0release notes

New APIs and options 28

  • Adds a configuration helper for setting a value only when it is unset.

    1.10.0release notes

  • Adds a Material implementation that retains the classic API.

    1.10.0release notes

  • Lets designs substitute the components Panel generates in Param, interact and HoloViews widgets.

    1.10.0release notes

  • Lets designs substitute the widgets Panel generates in Param, interact and HoloViews widgets.

    1.10.0release notes

  • Exposes a palette helper through panel.ui.theme.

    1.10.0release notes

  • Adds an endpoint for plain-kernel notebooks to load Panel and component resources without a public CDN, with a visible-warning CDN fallback if unreachable.

    1.10.0release notes

  • Exposes a palette helper through panel.ui.theme.

    1.10.0release notes

  • Adds a Material implementation that retains the classic API.

    1.10.0release notes

  • Environment variable for setting the admin dashboard password.

    1.10.0release notes

  • Previews migration changes without writing them.

    1.10.0release notes

  • Previews migration changes without writing them.

    1.10.0release notes

  • Environment variable for configuring branding of server pages.

    1.10.0release notes

  • Environment variable for configuring the Pyodide CDN used by converted apps.

    1.10.0release notes

  • Sets branding configuration for server pages.

    1.10.0release notes

  • Adds native server choices tornado (the default), fastapi and asgi; routes, route parameters, static directories and OAuth work across servers.

    1.10.0release notes

  • Adds a design-resolution helper.

    1.10.0release notes

  • Adds a lazy namespace combining Material components and classic components without Material equivalents. Using it selects MaterialUIDesign for the current session unless a design was explicitly chosen.

    1.10.0release notes

  • Exposes the generate_palette and linear_gradient palette helpers.

    1.10.0release notes

  • approximate=False hashes all of a large DataFrame or array rather than sampling 100,000 rows.

    1.10.0release notes

  • Adds branding options for server index, login, logout and error pages, using the theme, logo, favicon and title options of pn.ui.Page.

    1.10.0release notes

  • Configures the CDN from which converted apps load Pyodide, supporting air-gapped environments.

    1.10.0release notes

  • Accepts template="page", resolving to pn.ui.Page.

    1.10.0release notes

  • Accepts template="page", resolving to pn.ui.Page.

    1.10.0release notes

  • Always generates Material UI widgets regardless of the active design; pn.pane.HoloViews continues to generate widgets for the active design.

    1.10.0release notes

  • Adds a paneling API that always generates Material UI widgets regardless of the active design.

    1.10.0release notes

  • Always generates Material UI widgets regardless of the active design; pn.Param continues to generate widgets for the active design.

    1.10.0release notes

  • Adds a Material implementation that retains the classic API.

    1.10.0release notes

  • Tabulator columns can now be moved.

    1.9.4release notes

Performance 4

  • Streaming sends HTML splices rather than re-sending the tail, making rendering cost per token roughly constant.

    1.10.0release notes

  • Rendering no longer has layout work that scales quadratically with the number of components.

    1.10.0release notes

  • Streaming updates are coalesced, re-rendering only the trailing Markdown block for roughly constant rendering cost per token.

    1.10.0release notes

  • Rendering eliminates quadratic layout work and React subtree remounts on re-render.

    1.10.0release notes

Behavior and default changes 9

  • Component resources load on demand at first render, including components created in callbacks after page load; pn.extension declarations are now preloading and bundling hints.

    1.10.0release notes

  • Accepts string values such as 'material-ui'.

    1.10.0release notes

  • The pane can render DataFrame-like objects supported by Narwhals, including polars, pyarrow, modin and cuDF.

    1.10.0release notes

  • Selected per session when an app uses panel.ui, preserving the design of classic apps in the same process; implicit design and theme resolve at render time.

    1.10.0release notes

  • Tabulator now uses its native input editor for this editor.

    1.10.0release notes

  • Tabulator now uses its native input editor for this editor.

    1.10.0release notes

  • The Bokeh document page now sends Cache-Control: no-store.

    1.9.4release notes

  • Additional oauth_extra_params are forwarded to the OAuth authorization endpoint.

    1.9.4release notes

  • Versioned stylesheets are inlined on the notebook update path.

    1.9.4release notes

Tooling 1

  • Adds a codemod to rewrite classic imports and compatible API patterns to pn.ui, reporting unsafe rewrites. The panel[migrate] extra installs it.

    1.10.0release notes

Fixes and other changes 30

  • Prevents busy-state echoes and cross-thread leaks, and makes cleanup robust to state resets, missing event loops and failed submits.

    1.10.0release notes

  • Only loads resources from the endpoint when Panel's server extension launched the kernel, avoiding 404s in other notebook frontends.

    1.10.0release notes

  • Yields to the event loop when it overruns its period and preserves count and timeout budgets across a period change.

    1.10.0release notes

  • Fixes hashing collisions for reordered rows, dtype differences, same-named closures and differently typed scalars; value-type arguments are hashed by value.

    1.10.0release notes

  • Detects raw image formats from file signatures, preventing JPEG, GIF and WebP bytes from being encoded as PNG with incorrect dimensions.

    1.10.0release notes

  • Works the same across the native server implementations.

    1.10.0release notes

  • Adds support for Python 3.15.

    1.10.0release notes

  • Edit events include edited and old values, fixing stale on_edit callback values and remote-pagination edits that could corrupt a sibling row.

    1.10.0release notes

  • ESM component child views are no longer created concurrently.

    1.9.4release notes

  • ESM component robustness is improved.

    1.9.4release notes

  • The Fast theme Progress indicator height is fixed.

    1.9.4release notes

  • The slider title font color is visible in Fast theme light mode.

    1.9.4release notes

  • Feed no longer renders all objects at once.

    1.9.4release notes

  • Held events are drained once the connection is established.

    1.9.4release notes

  • The loading spinner is aligned with panel-material-ui.

    1.9.4release notes

  • Repeated Location sync mappings are handled correctly.

    1.9.4release notes

  • Markup panes are revealed when their stylesheets fail to load or are replaced.

    1.9.4release notes

  • The previous button now sets the correct stage in the graph.

    1.9.4release notes

  • The ready parameter and next button stay in sync after using the previous button.

    1.9.4release notes

  • Explicitly set sizing options are now respected.

    1.9.4release notes

  • Tabulator page size handling is fixed.

    1.9.4release notes

  • row_content works in panel-material-ui dynamic Tabs.

    1.9.4release notes

  • The starts and ends header filters now work correctly.

    1.9.4release notes

  • Fixes a regression when cleaning up documents in dev mode.

    1.9.3release notes

  • ESM components check only rendered children for readiness.

    1.9.3release notes

  • The hold context manager works in threaded mode.

    1.9.3release notes

  • The OAuth expiry value is cast to a number.

    1.9.3release notes

  • The pyodide pyrender function no longer uses globals() as context, avoiding potential disruption during execution.

    1.9.3release notes

  • Property changes no longer boomerang on ReactiveESM components.

    1.9.3release notes

  • Dangling write tasks are cleaned up when a session is destroyed.

    1.9.3release notes