Changelog
Source:NEWS.md
shidashi 0.2.0
New Features
- Added
stream_vizhtmlwidgetswidget for real-time multi-channel signal viewing; binary stream files are produced bystream_to_js()and fetched by the browser viafetchStreamData(); rendering engine switched fromD3toThree.js(WebGL) for improved performance on high-density multi-channel data - Added streaming helpers:
stream_init()sets up per-session stream directories with automatic cleanup;stream_path()returns the token-qualified file path;stream_file_id()builds the{token}_{ns(id)}identifier used by both R andJS - Added
stream_to_js()for writing binary envelope files (supportsraw,json,int32,float32,float64body types) andread_stream_vis()for reading them back in R - Added
streamVizOutput()/renderStreamViz()/updateStreamViz()Shiny bindings for thestream_vizwidget -
register_output()is now a server-side function: it assigns the render function, registers theMCPoutput spec, and injects download/pop-out widget icons viaJSoverlay (no UI-side wrapper needed) - Added output widget overlay system: registered outputs gain hover-visible download and pop-out icons injected entirely by
JS; download modal supportsimage,htmlwidget,threeBrain,data, andstream_viztypes - Added
server_standalone_viewer()— a hidden module that re-renders a parent session’s output in a standalone browser tab (pop-out window), forwarding inputs back to the original module session - Added
fire_event()andget_event()for a reactive session event bus; events can be scoped locally (per-session) or globally (cross-tab broadcast viashared_id);get_theme()is a convenience wrapper that returns the current dashboard theme - Added
register_session()/unregister_session()for comprehensive session life-cycle management with automatic cleanup, reactive event bus setup, and cross-tab synchronization support; replaces the deprecatedregister_session_id() - Added
get_handler()/set_handler()for managing named session-scopedObserverobjects with a shared registry; handlers are automatically destroyed on session end - Added
enable_input_broadcast()/disable_input_broadcast()andenable_input_sync()/disable_input_sync()for opt-in cross-tab input state synchronization; broadcast publishes the current session’s inputs for peer tabs, sync restores inputs from a peer session - Added
switch_module()to programmatically navigate to another module from server-side code; supports cross-iframeforwarding viaJSpostMessage - Added
card_badge()UI component for dynamic badge widgets in card headers;set_card_badge()updates badge text and styling from the server without re-rendering;card_recalculate_badge()creates a clickable “recalculate needed” badge withenable_recalculate_badge()/disable_recalculate_badge()toggles - Added
html_asis()for escaping HTML special characters to display strings literally;combine_html_class()merges and remove duplicated class strings;remove_html_class()removes specified classes from a class string -
shared_idis now unified and shared across UI and server viainit_app(); resolved from URL query string, R option, environment variable, or auto-generated - Internal session registries (
tools,output_renderers,handlers) now usefastmapforO(1)lookup and efficient memory management - Added
_captureSVG()helper inJSto convertSVG(raster) elements (e.g.D3output) toPNGdata URLs for the query-UI tool - Added
shidashi.set_shiny_inputJSmessage handler for programmatic cross-session input forwarding - Added
shidashi.switch_moduleJSmessage handler for programmatic module navigation fromJS - Added
shidashi.register_output_widgetsJSmessage handler that injects the download/pop-out overlay icons on registered outputs - Added demo template modules:
output_widgets,stream_viz, andsession_events; added hiddenstandalone_viewermodule - Added
htmlwidgetstoImports
Bug Fixes
- Fixed download file extension not used correctly in
register_output() - Fixed position issue for output widget overlay container
- Fixed multi-result
MCPtool request not handled correctly in chat-bot - Sanitized
MCPtool-call results for dashboard display
shidashi 0.1.7 & 0.1.8
New Features
- Added built-in AI chat-bot panel powered by
ellmerandshinychat; supports multiple providers, in-memory conversation history, mode-based tool permissions, token/cost display, and early-stop controls - Added
init_chat()to create anellmerChatobject from R options (shidashi.chat_provider,shidashi.chat_model,shidashi.chat_system_prompt,shidashi.chat_base_url) - Added
MCP(Model Context Protocol) proxy server (inst/mcp-proxy/) so externalLLMclients can interact with a running Shiny application viaMCP - Added
mcp_wrapper()to register anMCPendpoint for a Shiny module - Added
register_input()/register_output()helpers to expose Shiny inputs and outputs asMCPtool parameters with descriptions - Added skills system:
skill_wrapper()parses and runs reusable agent skill scripts; skill working directory is resolved relative to the skill folder - Tools and skills are now category- and permission-aware; module IDs are excluded from tool names for consistency
- Added
module_drawer(),drawer_open(),drawer_close(), anddrawer_toggle()for controlling a slide-in drawer panel -
module_info()now returns richer per-module metadata; addedcurrent_module()andactive_module()helpers for querying the active Shiny module - Modules support an optional
agents.yamlfor declaring agent configurations (tools, skills, auto-approve rules) -
MCPhost can be a remote server; fuzzy module reference is supported when resolving module IDs - Added demo template modules:
aiagent,filestructure, andmcpsetup - Added
ellmercontent helpers: S7 genericellmer_as_json()forContentText,ContentImageInline,ContentImageRemote, andContentToolResult; andcontent_to_mcp()for converting chat content toMCPresponses - Chat-bot UI displays token usage and API cost next to each turn
shidashi 0.1.5
CRAN release: 2023-04-04
- Fixed
accordionandcard_tabsetnot working properly wheninputIdstarts with digits - Updated templates and used
npmto compile - Session information now stores at
userDatainstead of riskycache - Ensured at least template root directory is available
shidashi 0.1.4
CRAN release: 2022-10-15
- Fixed a bug that makes application fail to launch on
Windows - Added support to evaluated expressions before launching the application, allowing actions such as setting global options and loading data
shidashi 0.1.2
CRAN release: 2022-06-21
- Fixed group name not handled correctly as factors
- Module
URLrespects domain now and is generated with relative path - Works on
rstudio-servernow - More stable behavior to
flex_container - Allow output (mainly plot and text outputs) to be reset
- Fixed
iframeheight not set correctly - Enhanced 500 page to print out
traceback, helping debug the errors - Added
flex_breakto allow wrapping elements in flex container - Added
remove_classto removeHTMLclass from a string - Allow to set
data-titleto cards