Repository navigation
Conversation
- Bind standard plot viewers to their originating R sessions - Add JGD session selection and isolate resize requests by device - Restore httpgd connections and request standard plots from live sessions - Persist JGD frames and selection for reload restoration - Add session isolation and restoration tests
Give each JGD session its own viewer and remove the session dropdown. Keep history, navigation, resize, and text measurement scoped to each session, and restore separate viewers after VS Code reload. Avoid redundant plot requests and toolbar updates, and prevent httpgd restoration from overwriting newer connection credentials.
Reuse the list/data viewer indicator in standard, httpgd, and JGD viewers, showing R <version>: <PID> on hover or keyboard focus. Preserve session identity across reloads, handle late attachments, and update indicators when the owning R process exits.
- Persist restoration state during normal operation - Preserve live R plot state and reconnect JGD devices with stable identities - Limit Show Viewer to the active session and prevent duplicate or empty tabs - Keep closed viewers closed during reattachment across all plot engines - Bump sess to 3.4.0.9001 - Add session isolation and live reconnection regression tests
… session disconnects, without showing shutdown-related error popups.
This reverts commit 053acbd.
- Preserve saved httpgd credentials when loading fails and report the error - Stop selecting an arbitrary restored JGD device - Always send JGD session identity metadata - Remove the unbound standard viewer and unused history/resize code - Bump sess to 3.4.0.9005 Validated all three plot backends across repeated VS Code reloads.
- Refresh open standard plot viewers after sess reconnect without reopening closed panels - Fetch the latest standard plot when showing an existing viewer - Retain httpgd viewport changes during disconnects and ignore stale render dimensions - Preserve httpgd divider height when reopening in a resized editor group - Restore JGD devices using captured dimensions and DPI without hardcoded defaults - Add regression coverage for reconnects, device settings, and both httpgd layouts
- Share plot ownership, viewer reuse, and exit cleanup across engines - Delete in-memory history and saved state on permanent R exit while leaving rendered plots and viewer tabs untouched - Preserve restoration across VS Code reloads and live R reconnects - Combine httpgd devices into one viewer with collision-safe plot IDs and device-specific rendering, export, and deletion - Coalesce httpgd refreshes, discard stale responses, and avoid rerendering inactive devices at new sizes - Discover explicit httpgd devices without taking lifecycle ownership - Prevent commands from ended viewers from targeting another session - Add regression coverage for cleanup, device reuse, and restoration - Remove legacy html/httpgd files replaced by src/plotViewer/webview - Remove unused getNewestViewer method and MaybePromise type - Remove write-only plotWidth and plotHeight viewer fields - Update the shared webview message types comment Validation: 152 VS Code tests and 20 Node tests passed; build, type checking, lint, and formatting passed.
Remove incorrect viewer identification derived from resource URLs. Route toolbar actions to the focused live viewer without falling back to another session when an ended session's tab remains open. Add regression coverage for consecutive httpgd plots and toolbar command routing. Validation: real toolbar clicks and 152 regression tests passed.
…ation - Refresh changed inactive plots while reusing unchanged cached content - Isolate failed plot fetches and avoid redundant retries - Defer httpgd restoration notifications until runtime setup completes - Add regression coverage for stale plots, fetch failures, and cleanup
- Restore interleaved plot history using saved ordering metadata - Switch to the next available server when the selected device closes - Avoid resize errors after the last device closes - Fix divider jumps caused by the session header - Add live R and VS Code regression coverage
- Persist httpgd SVGs, plot order, selection, and hidden plots - Preserve navigation and SVG export after devices close - Refresh annotations on previous and hidden plots - Keep restored thumbnails in session timeline order - Align JGD and httpgd viewer reopening behavior - Consolidate received SVGs into one authoritative collection - Clean up retained content and credentials on confirmed R exit - Add lifecycle regression tests and dedicated cross-platform CI - Require live R test dependencies and enable CI for master Validated with 198 extension tests, 38 Node tests, compilation, lint, formatting, and manual httpgd/JGD lifecycle checks.
- Update JGD fixtures for device tracking and session metadata - Use Windows-compatible interactive R flags in plot tests - Handle connection resets and cleanup in HTTP recovery tests - Install libtiffxx6 on Linux and expose dependency load errors
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1780
Summary
This PR makes standalone R plot viewers session-aware across the JGD, httpgd, and standard backends. Plots remain associated with their originating R process, multiple devices share their session’s history, and retained plots can be reopened after VS Code reloads while R remains running.
New features
What changed
Fixes
Testing