py-shiny shiny 1.6.3
New features session.destroy() now accepts an optional module id. The parent that inserted a module's UI under an id can tear down that module's scope with session.destroy(id), without the module having to hand back a cleanup handle. Added the brite theme preset, available wherever Shiny theme presets are accepted (e.g. ui.Theme() and ui.page_(theme=)).
Also shipped Jun 1, 2026Posit in June 2026 →
Fivetran CLI enters beta, Connect Card gains all_fields parameter
The beta Fivetran CLI manages accounts, connections, schema settings and users and helps develop custom connectors from the terminal. Connect Card's all_fields option shows setup fields hidden by default.
Unlocking a New Way to Build Enterprise Data Apps with Microsoft Fabric
Replit and Microsoft have collaborated to allow developers to build AI-powered applications in Replit and deploy them directly into Microsoft Fabric with enterprise governance.
May Release Spotlight
OpenRouter has released new speech and transcription APIs, Model Fusion, private models, and enterprise workspace controls, alongside 20 new model launches.
Protect apps in the new app builder
Live on cloud • Enterprise Public beta Apps created with the new app builder can now be protected and checked into your chosen Source Control Manager (SCM). Source Control lets organizations manage changes using remote SCM providers GitHub, GitLab, AWS CodeCommit, Bitbucket, and Azure Repos.
Customize RPID values for Passkeys GA
Boost Passkey adoption by enabling shared enrollment across subdomains. You can now customize the RP ID to allow a single Passkey to authenticate users across multiple applications under the same root domain. Now GA!
Fivetran Connector SDK 2.9 logs peak memory and adds Copilot plugins
Version 2.9.2 makes fivetran debug log peak memory usage and adds validation in fivetran init, and 2.9.1 lets fivetran init use Copilot plugins for AI-assisted connector development.
More from py-shinyEvery py-shiny release →
shiny 1.6.2
Bug fixes Adapted py-shiny to the htmltools 0.7.0 sibling-classes refactor. No runtime behavior change. Bumped lodash/lodash-es to 4.18.1 in the js-react template lockfile for CVE-2025-13465. Fixed render.DataGrid() column headers and hovered rows not adapting to dark mode when ui.input_dark_mode() is enabled.
shiny 1.6.1
New features Added session.destroy() and session.on_destroy() for cleaning up reactive objects (effects, calcs, values) when dynamically inserted module UI is removed.
shiny 1.6.4
Bug fixes Fixed a path-traversal vulnerability in bookmark restore (CWE-22). Introduced in 1.4.0. Reported by @0xRenSec. When bookmarked state cannot be restored, the notification shown in the client is now a generic message. The reason is logged server-side as a warning on the shiny.bookmark._restore_state logger, so app authors can still see it. (1d8ecb46)
shiny 1.7.0
New features Added test mode, enabled via the SHINY_TESTMODE=1 environment variable or the App(test_mode=) argument (which defaults to that env var). The pytest app-launch fixtures (local_app, create_app_fixture) now run apps in test mode.
shiny 1.6.0
OpenTelemetry Added the SHINY_OTEL_COLLECT environment variable to set the default collection level globally. Available levels: "none" - Disables all Shiny-specific telemetry collection. Use this for sensitive operations where you don't want Shiny to emit any spans or logs.
shiny 1.8.0
Deprecations ui.output_text_verbatim() is deprecated and now emits a ShinyDeprecationWarning. Please use ui.output_code() / @render.code to create an output container for code (monospaced text), or ui.output_text() / @render.text to create an output container for plain text.
shiny 1.9.0
Breaking changes OpenTelemetry reactive_update spans now follow each session's cycle: one span per session, from when the session turns busy until all of its effects (including async ones) have finished, carrying the session's session.id. The session's calc, effect, and output spans are its children.
shiny 1.5.1
New features - Added toast notification system with ui.toast(), ui.toast_header(), ui.show_toast(), and ui.hide_toast(). Toast notifications are temporary, non-intrusive messages that support multiple semantic types (success, warning, error, etc.), flexible positioning (9 positions: top/middle/bottom × left/center/right), auto-hide with configurable...