build_app() now copies the developer’s currently
running R installation as the app runtime by default
(runtime_dir = NULL). Previously it downloaded a fixed R
4.4.2 portable build which caused crashes in distributed apps when
packages had been compiled for a newer R version (e.g. 4.5.x via
renv). The version mismatch between the downloaded runtime
and the bundled packages produced a cryptic shared-library ABI error on
launch.
Added rdesk_detect_r_home() (internal) which
resolves the developer’s R installation path via R.home()
with a clear error if it is not found.
Added rdesk_copy_r_runtime() (internal) which
selectively copies bin/, library/,
etc/, modules/, and include/ from
the source R installation into the bundle staging directory.
The legacy download behaviour is preserved for CI environments or
air-gapped scenarios via runtime_dir = "download". A
warning is printed advising users to prefer the default to avoid version
mismatch.
\dontrun{} with
if(interactive()){} or \donttest{} as
appropriate. Functions that open native windows are now wrapped in
if(interactive()){}.R CMD check.tempdir().
No default paths write to the user’s home filespace.on.exit() added immediately after every
setwd() and options() call inside
build_app().installed.packages() calls with
requireNamespace() or system.file().Authors@R with cph roles: Serge Zaitsev
(webview.h), Niels Lohmann (nlohmann/json), Microsoft Corporation
(WebView2 SDK). Created inst/COPYRIGHTS.app$set_size(), app$set_position(),
app$minimize(), app$maximize(),
app$restore(), app$fullscreen(), and
app$always_on_top().app$dialog_folder(), app$message_box()
(OK/Yes/No/Cancel with icons), and app$dialog_color().app$set_tray_menu() for native right-click
interaction.app$register_hotkey() for system-wide keyboard
shortcuts.app$clipboard_read()
and app$clipboard_write().app$on_close() to intercept or cancel window exit
attempts.%LOCALAPPDATA%/RDesk.app$check_update()
to detect and link to remote application updates.renv.lock for
reproducible distribution.build_app(dry_run = TRUE) for rapid
environment validation.App.R so packaged apps no longer try to write to a null
window process handle.window.R.build_app() package bundling, temp cleanup,
empty-directory copies, and added explicit portable-R strategies via
portable_r_method and runtime_dir.