Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 44 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,50 @@

## Unreleased

- Added the extension API's `session.prepareAttachment()` for extensions that own an R process and need vscode-R's managed `sess` setup. R errors and interrupts during manual attachment are now reported as messages while leaving the R prompt usable.
- Added connection change events and live connection references for sess attachments, with activation controls for consumer-owned terminals.
- Added `session.registerTerminalIntegration()` so external terminals can recover sess connections without falling back to a native attach command.
- The httpgd plot backend now requires the `httpgd` R package version 2.0.1 or later. Older versions are treated as unavailable when choosing the plot backend. (#1855)
### Compatibility and upgrade notes

- Lowered the minimum supported VS Code version from 1.110 to **1.98.2**. (#1832, #1855)
- The httpgd backend now requires **httpgd 2.0.1 or later**. (#1855)
- `sess` now requires IPC protocol 2 and an exact bundled source revision; restart R if a different `sess` is already loaded. (@Fred-Wu, #1819, #1840, #1856)
- When using isolated R libraries (e.g. with renv), install any missing R package dependencies of `sess` in each environment's library. (#1856)
- Removed `sess::register_hooks()` and the `use_httpgd`/`use_jgd` arguments; use `sess::connect(plot_backend = ...)` instead. (#1847)
- Plot backend settings are no longer synchronized between machines by Settings Sync. (#1817)

### New features

- Added paged list and vector viewers with nested expansion, parent/child navigation, and reset controls. (@Fred-Wu, #1835)
- Data and list viewers stay bound to their source session and show its R version and process ID. (@Fred-Wu)
- HTML Viewer now reuses a tab per session, with output history, navigation, removal, and restoration after closing the tab or reloading VS Code. (#1852)
- Added `r.plot.backend: "native"` to preserve R's configured graphics device while retaining other session integrations. (#1817)
- `sess` setup now uses the target R process and asks before installing into a managed library, leaving user and project libraries unchanged. (#1856)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] Include the isolated-library workaround in the upgrade notes

The managed-library change has a documented limitation that release readers need to know: if sess was prepared using dependencies from ordinary libraries, those dependencies are not copied into the managed library. Reusing that copy in an isolated renv project that cannot see them can fail to load sess, leaving R running without the session watcher. Restarting or retrying attachment alone does not resolve the missing dependencies. Please add a short compatibility note to install the missing dependencies with renv::install() before restarting R or retrying manual attachment, or link to the README workaround.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about 0de2be8?

- Added `options(sess.quiet = TRUE)` to suppress successful connection messages. (#1795)
- **Experimental:** Persistent R Interactive sessions with retained history, rich outputs, and automatic input formatting; requires arf on Linux/macOS, with Windows and console input/debugger prompts currently unsupported. (#1805, #1830, #1835, #1867)

### Extension API

- Added `getRExecutablePath(resource?)` to resolve the configured R executable. (#1813)
- Added `session.prepareAttachment()` to prepare managed `sess` in an extension-owned R process, including through a local proxy endpoint. (#1868)
- Extended `session.activate(sessionId, { terminal })` to route Workspace actions to extension-owned terminals; bindings must be renewed after reconnecting. (#1837)
- Added `onDidChangeSessionConnection`, `getSessionReference()`, attachment/connection IDs, and selection controls (`autoActivate`, `select`). (#1870)
- Added `session.registerTerminalIntegration()` to delegate manual attachment recovery to external terminals without bypassing their transport. (#1871)

### Bug fixes

- Prevented unintended R code evaluation when hover or completion has no valid expression range. (#1803)
- Initial code submission now waits for the terminal's own session attachment and package preparation. (#1821, #1856)
- Applied configured R library paths before looking for `renv` in language server and help processes. (#1797)
- Prevented overlapping standard plot renders and stale results after session switches or viewer changes. (#1844)
- Fixed stale viewer disposal/responses, custom list extraction, and duplicate evaluation of active bindings. (@Fred-Wu)
- Fixed HTML Viewer search, fragment links, authored HTML preservation, and navigation blocked by missing load confirmation. (#1852)
- Fixed Interactive dependency loading in isolated libraries and preserved cells and drafts across reloads. (#1843, #1861)
- Removed duplicate startup prompts and unwanted `TRUE`/`FALSE` output. (#1795, #1864)
- Manual attachment now handles R errors and interrupts while keeping the R prompt usable. (#1868)

### Internals and development builds

- Added daily pre-releases to the VS Code Marketplace and Open VSX after successful verification. (#1833, #1834)
- Reduced VSIX assets and runtime dependencies, including replacing `httpgd-js` with built-in transports. (#1849, #1855)
- Updated build tooling, shared release verification, and dependencies, including security fixes. (#1792, #1814, #1818, #1823)

## 3.0.1 - 2026-09-28

Expand Down
Loading