## RStudio 2026.05.0 "Golden Wattle" Release Notes

### New
- ([#17539](https://github.com/rstudio/rstudio/issues/17539)): The data viewer is now faster and supports pinnable columns, a Summary sidebar with type-aware stats and sparkline histograms, keyboard navigation, and clipboard copy.
- ([#17539](https://github.com/rstudio/rstudio/issues/17539)): Added the `data_viewer_show_summary` user preference, which controls the default visibility of the data viewer's Summary sidebar.
- ([#17539](https://github.com/rstudio/rstudio/issues/17539)): Raised the default value of `data_viewer_max_columns` from 50 to 200.
- ([#17477](https://github.com/rstudio/rstudio/issues/17477)): Posit Assistant: the `ui/openDocument` JSON-RPC method now accepts an optional 1-based `line` parameter, and RStudio advertises the `ui/openDocument/line` capability so the assistant can open documents at a specific line.
- ([#17478](https://github.com/rstudio/rstudio/issues/17478)): Posit Assistant: added the `ui/revealInFilesPane` JSON-RPC method, which navigates the Files pane to a directory (or to a file's parent directory) and brings the pane to the front.
- ([#17479](https://github.com/rstudio/rstudio/issues/17479)): Posit Assistant: added the `ui/previewUrl` JSON-RPC method, which navigates the Viewer pane to an `http(s)` URL (e.g., a local Shiny app); supports an optional `height` parameter that mirrors `rstudioapi::viewer()` (`-1` for maximize, `0` for no change, positive for pixels).
- ([#17514](https://github.com/rstudio/rstudio/issues/17514)): Added the `allow-package-source-recording` session option (default `true`); when set to `false`, RStudio will not annotate DESCRIPTION files of packages installed via `install.packages()` with the remote repository they came from.
- ([#5809](https://github.com/rstudio/rstudio/issues/5809)): Roxygen tag autocompletion (e.g. `@param`, `@return`) now works on `#'` lines inside R code chunks of R Markdown and Quarto documents, matching the behavior in plain `.R` files.

### Fixed
- ([#17621](https://github.com/rstudio/rstudio/issues/17621)): Restored top alignment of argument names in the Help pane when running against R 4.6.0 or newer. R's dynamic help server now emits an `id` attribute on section headers (e.g. `<h3 id='_sec_arguments'>Arguments</h3>`), which broke the literal-string match RStudio used to tag the Arguments header for styling.
- ([#17471](https://github.com/rstudio/rstudio/issues/17471)): Reformat Document with the styler formatter no longer inserts extra blank lines on Windows. The temporary file written by styler uses platform-native line endings (CRLF on Windows), and RStudio now normalizes those to LF when computing the edits to apply, so the diff against the LF-normalized in-memory document doesn't produce spurious `\r` insertions that Ace would convert into blank lines.
- ([#17363](https://github.com/rstudio/rstudio/issues/17363)): Posit Assistant: pressing Escape to dismiss a ghost-text Next Edit Suggestion now also clears the NES gutter icon; previously the gutter icon remained visible after dismissal.
- ([#17589](https://github.com/rstudio/rstudio/issues/17589)): The diagnostics report now includes `positai.log` alongside `rdesktop.log` and the user's `rsession-*.log`.
- ([#17665](https://github.com/rstudio/rstudio/issues/17665)): `.positai` is no longer added to a project's `.gitignore` or `svn:ignore`, and `.positai` and `.claude` are no longer added to a package project's `.Rbuildignore`, unless those directories actually exist in the project; previously they were added whenever the AI assistant was enabled (the default), even in projects that had never used AI features. When these directories are subsequently created mid-session, the corresponding ignore files are updated automatically. (`.claude` is never added to `.gitignore` or `svn:ignore`, since repositories often commit it.)
- ([#17581](https://github.com/rstudio/rstudio/issues/17581)): Diagnostic gutter tooltips no longer show literal `<SPAN>` markup around the message; lint annotations now keep the original text alongside any rendered HTML so the tooltip renders cleanly while the diagnostics popup continues to support ANSI-colored content.
- ([#17556](https://github.com/rstudio/rstudio/issues/17556)): `difftime` objects (e.g. the result of subtracting two `Sys.time()` values) now show their formatted value in the Environment pane instead of an empty cell.
- ([#17568](https://github.com/rstudio/rstudio/issues/17568)): Source-mode spell check now flags misspelled words inside Markdown, R Markdown, and Quarto headings; previously only paragraph text was checked.
- ([#17481](https://github.com/rstudio/rstudio/issues/17481)): Fixed two debugger regressions: top-level breakpoints (e.g. via `debugSource()`) no longer fail to show the debug highlight or call stack, and multi-line input at the `Browse[N]>` prompt no longer clears the captured browser context.
- ([#3780](https://github.com/rstudio/rstudio/issues/3780)): The Files pane delete confirmation now reflects whether the file will be moved to the system Trash/Recycle Bin or permanently deleted, based on the "Delete files to Trash/Recycle Bin" preference.
- ([#3780](https://github.com/rstudio/rstudio/issues/3780)): When sending a file to the system Trash/Recycle Bin fails, the Files pane now reports the error and leaves the file on disk; previously it would silently fall back to permanently deleting the file.
- ([#12235](https://github.com/rstudio/rstudio/issues/12235)): RStudio Desktop's Session > New Session now opens noticeably faster.
- ([#15614](https://github.com/rstudio/rstudio/issues/15614)): The splash screen can again be dismissed with a mouse click or key press.
- ([#15711](https://github.com/rstudio/rstudio/issues/15711)): Source-mode spell check no longer disappears on Quarto and R Markdown documents when the bundled YAML diagnostics worker fails to respond; spell-check lint is now applied independently of YAML lint.
- ([#16067](https://github.com/rstudio/rstudio/issues/16067)): Raise the open file descriptor soft limit at session startup to avoid "Too many open files" errors during project file monitoring on Linux.
- ([#16541](https://github.com/rstudio/rstudio/issues/16541)): Section headers now fold hierarchically based on heading level, matching Positron's default behavior.
- ([#16966](https://github.com/rstudio/rstudio/issues/16966)): Restored the desktop terminal bell on Linux, now that the underlying Electron crash has been fixed.
- ([#17084](https://github.com/rstudio/rstudio/issues/17084)): The Shiny test commands (Record Test, Run Tests, Compare Results) now use the `shinytest2` package; `shinytest` has been deprecated.
- ([#17128](https://github.com/rstudio/rstudio/issues/17128)): The Windows installer's File Version now matches its Product Version; previously the installer concatenated the major and minor version components into a single value that exceeded NSIS's 16-bit-per-component limit and was truncated to an unrelated number.
- ([#17176](https://github.com/rstudio/rstudio/issues/17176)): Fixed a startup hang when opening a Quarto project containing large directories (e.g. `_targets/`).
- ([#17322](https://github.com/rstudio/rstudio/issues/17322)): Posit Assistant: invoking Uninstall Posit Assistant when it is not installed now shows the message "Posit Assistant is not installed." and skips the restart, instead of silently restarting RStudio.
- ([#17417](https://github.com/rstudio/rstudio/issues/17417)): Added missing French translations for newer commands and preferences, removed an orphaned French key, deduplicated stale entries in the French application strings, and normalized line endings in five English string files.
- ([#17440](https://github.com/rstudio/rstudio/issues/17440)): Fixed an issue where triggering tab completion inside `[` on a large Matrix-package sparse matrix could hang RStudio and exhaust system memory.
- ([#17450](https://github.com/rstudio/rstudio/issues/17450)): Fixed a crash on Windows when `Rprofile.site` (or `.Rprofile`) called `download.file()`, `update.packages()`, or other code that emitted console output while RStudio's R runtime dispatch layer was not yet initialized.
- ([#17506](https://github.com/rstudio/rstudio/issues/17506)): Source-marker messages in the Build, Markers, and Compile PDF panes are now rendered as plain text by default; only messages that the server explicitly marks as HTML (e.g. C++ Find Usages highlighting) are rendered via `innerHTML`.
- ([#17508](https://github.com/rstudio/rstudio/issues/17508)): Enabled the MathJax `Safe` extension in the IDE, the HTML preview, the presentation preview, and the rendered R Markdown viewer.
- ([#17510](https://github.com/rstudio/rstudio/issues/17510)): Data Import: column names, character options, locale values, and import URLs are now encoded as R string literals when generating preview and import code.
- ([#17530](https://github.com/rstudio/rstudio/issues/17530)): The spell-check context menu now shows the full set of correction suggestions; previously a stray loop increment caused every other suggestion to be skipped, capping the menu at 3 items instead of 5.
- ([#17534](https://github.com/rstudio/rstudio/issues/17534)): Fix uninformative error in `rstudio::sourceMarkers()` when `marker$type` is not a length-one vector.
- ([#4402](https://github.com/rstudio/rstudio/issues/4402)): Reindenting C/C++ code with a brace-less control-flow statement (e.g. a `for` whose body is a single braced `if`) no longer over-indents the line that follows the body.
- ([rstudio/rstudio-pro#10805](https://github.com/rstudio/rstudio-pro/issues/10805)): Server: Enable TCP keepalive on accepted connections so the operating system reaps half-open sockets from disappeared clients (browser tab hibernation, NAT timeouts) instead of holding them indefinitely.
- ([rstudio/rstudio-pro#10771](https://github.com/rstudio/rstudio-pro/issues/10771)): Reduced filesystem work performed by the `install.packages()` hook; the before/after scan is now scoped to the requested packages and their dependency closure rather than the entire library.
- ([rstudio/rstudio-pro#10771](https://github.com/rstudio/rstudio-pro/issues/10771)): Tightened the heuristic used to detect package-management commands at the console prompt, reducing spurious Packages pane refreshes triggered by identifiers like `updates <-` or `installed.packages()`.
- ([#17446](https://github.com/rstudio/rstudio/issues/17446)): The Packages pane now retrieves vulnerability information from Posit Package Manager via the `POST /filter/packages` endpoint, replacing the legacy `GET /repos/{repo}/vulns` endpoint that was temporarily unavailable in Package Manager `2026.04.0`.
- ([#17613](https://github.com/rstudio/rstudio/issues/17613)): Restored the column count in the data viewer status bar (e.g. "Showing 1 to 18 of 100,000 entries, 500 total columns"), which had been dropped from the info bar in the vanilla-JS rewrite (#17382).
- ([#17612](https://github.com/rstudio/rstudio/issues/17612)): Limit horizontal overscroll in the data viewer so the last column remains visible at maximum scroll, instead of allowing all unpinned columns to be scrolled off-screen.
- ([#15211](https://github.com/rstudio/rstudio/issues/15211)): Restored honoring of the `COPILOT_AUTH_PROVIDER` environment variable, used to point Copilot at a GitHub Enterprise sign-in URL.

### Dependencies
- Ace 1.43.5
- Copilot Language Server 1.480.0
- Electron 41.5.0
- Node.js 22.22.2 (copilot, Posit AI)
- Quarto 1.9.37
- xterm.js 6.0.0
