Skip to content

Conversation

@lionel-
Copy link
Contributor

@lionel- lionel- commented Dec 5, 2025

Branched from #10933
Progress towards #10121

This PR:

Approach:

  • There is now only one Kernel channel, one Supervisor channel, and one Language Server channel for all sessions, console or notebook.
  • All log messages are prefixed with the session ID (which includes a notebook particle for notebooks).
  • The language server does not need the session prefix because there is only one active at a time, so the session start message, which includes the session ID, is sufficient to disambiguate sessions.

This is going to make logs more busy but will greatly improve disambiguation in debugging session. The "Filter" feature of output channels can also be used to filter messages for a particular session, if needed.

The alternative approach I first considered was to include the session ID in output channel names. The issue is that this leads to an explosion of output channels (3 by session ID) that are never cleaned up.

If we go forward with this, I'll send a companion PR to update https://positron.posit.co/troubleshooting.html#python-and-r-logs.

Here is how this looks:

Screen.Recording.2025-12-05.at.10.22.27.mov
Screen.Recording.2025-12-05.at.10.23.01.mov
Screen.Recording.2025-12-05.at.10.23.41.mov

Release Notes

New Features

  • Log output channels have been consolidated. There is now a single Kernel, Supervisor, and Language Server channel per language.

Bug Fixes

  • N/A

QA Notes

@lionel- lionel- requested a review from jmcphers December 5, 2025 09:39
@github-actions
Copy link

github-actions bot commented Dec 5, 2025

E2E Tests 🚀
This PR will run tests tagged with: @:critical

readme  valid tags

* all LSP sessions. Watch out for session start log messages to find the
* relevant section of the log.
*/
const LSP_OUTPUT_CHANNEL = positron.window.createRawLogOutputChannel('R Language Server');
Copy link
Collaborator

Choose a reason for hiding this comment

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

Nit: this makes the output channel open very early and it'll be around even for Python-only users. Not a big deal.

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.

3 participants