Skip to content

fix(sess): separate runtime and transport lifecycles - #1739

Draft
eitsupi wants to merge 6 commits into
masterfrom
refactor/sess-runtime-lifecycle
Draft

eitsupi wants to merge 6 commits into
masterfrom
refactor/sess-runtime-lifecycle

Conversation

@eitsupi

@eitsupi eitsupi commented Sep 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • separate the R runtime lifecycle from the IPC transport lifecycle
  • restore runtime-installed options, bindings, S3 methods, plot hooks/devices, callbacks, and rstudioapi overrides on disconnect
  • clean up after unexpected IPC loss and support reconnection without accumulating hooks
  • continue polling after transient empty reads, disconnecting only when EOF is confirmed
  • add lifecycle and transport coverage, and run the bundled sess tinytest suite in CI
  • regenerate package documentation with roxygen2; NAMESPACE remains unchanged because the exported API did not change

Fixes #1726.

Verification

  • CI runs tinytest::test_package("sess") on the Linux, macOS, and Windows matrix before the VS Code integration tests
  • locally parsed all sess R sources and tinytest files; targeted Data Viewer checks and transport/runtime smoke checks passed
  • CI will verify lintr and the full cross-platform integration suite

A plot held only by a jgd device may not survive a disconnect or reload; this limitation is documented in sess/README.md.

@eitsupi eitsupi changed the title refactor(sess): separate runtime and transport lifecycles fix(sess): separate runtime and transport lifecycles Sep 20, 2026
@eitsupi
eitsupi requested a review from Fred-Wu September 20, 2026 10:06
@eitsupi eitsupi added this to the 3.0.0 milestone Sep 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

sess targets a dead connection after reload if session watcher turns from on to off

1 participant