Skip to content

SafeShiny v0.8.0

Choose a tag to compare

@venelin venelin released this 08 Oct 10:42
· 23 commits to main since this release
cb5c567

New

  • Session-level tracking switch: StartSafeShinyTracking() / StopSafeShinyTracking() / IsSafeShinyTracking(). trackTime now defaults to "auto": tracked while options(SafeShiny.trackTime = TRUE) is set or the session's tracking is on, decided each time the call runs (covers wrappers created by other packages; never affects other sessions).
  • options(SafeShiny.trackTime = FALSE) is a static master kill switch (IsSafeShinyTrackingDisabled()), resolved once when each wrapper is created.
  • Error log: GetSafeShinyErrors() / ResetSafeShinyErrors() record every non-silent error caught by a Safe* wrapper (last 500 per session). Per-session state is freed when the session ends.
  • Monitoring module: SafeShinyTabUI() / SafeShinyTabServer() / SafeShinyTabPanel() - Start/Stop button, interactive flame chart, timing summary/table, error log, downloads; SafeShinyTabRequested() gates it via ?safeshinytab=1.

Performance

  • Recording a timing is O(1) (was quadratic in the number of recorded calls).