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.
Great Tables v1.1.0 is quite a hefty release, and it's centered on richer color scaling, accessibility, and much more reliable LaTeX output. Tables can now have a stub made of several columns, and the new cols_align_decimal() method lines up numbers on their decimal mark.
Great Tables v1.0.0 is here. This milestone release introduces these powerful new formatting methods: fmt_fraction() for mixed fractions, fmt_chem() for chemical formulas, fmt_index() for alphabetical indices, and fmt_url()/fmt_email() for clickable links and buttons.
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.
Great Tables v0.24.0 introduces interactive tables, letting users sort, search, filter, and paginate directly in the browser. A single call to opt_interactive() transforms any GT table into a client-side interactive widget while preserving all existing formatting and styling.
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.
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)
Great Tables v0.23.0 adds new table management and formatting capabilities. This release introduces rm_*() methods for selectively removing table components, a tab_stub_indent() method for controlling row label hierarchy, and the fmt_number_si() formatter for rendering values with SI (metric) prefixes like kilo, mega, and milli.
Great Tables v0.22.0 is a feature-rich release that greatly expands the formatting, text manipulation, and export capabilities of the library. Highlights include new methods for footnotes, duration formatting, parts-per notation, summary rows, and specialized column merges.
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=)).
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.
New features Added session.destroy() and session.on_destroy() for cleaning up reactive objects (effects, calcs, values) when dynamically inserted module UI is removed.
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.
This release adds cols_merge() for combining cell contents across columns, cols_label_with() for function-based relabeling, fmt_engineering() for engineering notation, and opt_css() for injecting custom CSS rules. Deprecations - opt_all_caps() now uses loc.column_labels, loc.stub, and loc.row_groups for the locations= argument.
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...
Posit PBC is an open-source data science software company. It is a public-benefit corporation founded by J. J. Allaire, creator of the programming language ColdFusion.