Skip to content

Add VSCode Connection Bridge - #156

Open
ChekTek wants to merge 18 commits into
mainfrom
debug-adapter
Open

Add VSCode Connection Bridge#156
ChekTek wants to merge 18 commits into
mainfrom
debug-adapter

Conversation

@ChekTek

@ChekTek ChekTek commented Jun 4, 2026

Copy link
Copy Markdown
Member
  • add named pipe connection bridge to vscode extension
  • add support for vscode extension action tree view

@ChekTek
ChekTek requested a review from Copilot June 4, 2026 19:55
@changeset-bot

changeset-bot Bot commented Jun 4, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: b74e1e3

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@elgato/streamdeck Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR adds a debug-only “VS Code Connection Bridge” to the plugin, exposing a JSON-RPC API over a deterministic named pipe (Windows) / Unix domain socket (macOS/Linux) so a VS Code extension can discover the running plugin and render an action tree view without a port handshake.

Changes:

  • Start a bridge adapter during streamDeck.connect() (debug mode only) to serve plugin snapshots and accept settings updates via JSON-RPC.
  • Add a deterministic pipe-path derivation plus a socket server transport (named pipe / UDS) for local VS Code connectivity.
  • Add Vitest coverage for the adapter and socket transport, plus mocks and a minor .gitignore update.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
packages/plugin/src/plugin/index.ts Starts the bridge after the core Stream Deck connection is established.
packages/plugin/src/plugin/bridge/socket.ts Implements the named pipe/UDS transport and client message framing.
packages/plugin/src/plugin/bridge/pipe-path.ts Derives a deterministic rendezvous path from the plugin UUID.
packages/plugin/src/plugin/bridge/adapter.ts Implements the JSON-RPC adapter that builds/publishes the plugin snapshot and applies settings.
packages/plugin/src/plugin/bridge/tests/socket.test.ts Verifies snapshot serving, notifications, and socket-file cleanup behavior.
packages/plugin/src/plugin/bridge/tests/adapter.test.ts Verifies snapshot construction, notifications, and debug-gated startup behavior.
packages/plugin/src/plugin/bridge/mocks/adapter.ts Provides a test mock for the bridge adapter module.
packages/plugin/src/plugin/tests/index.test.ts Ensures streamDeck.connect() invokes bridge.start().
.gitignore Ignores .DS_Store.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/plugin/src/plugin/bridge/socket.ts Outdated
Comment thread packages/plugin/src/plugin/bridge/adapter.ts
Comment thread packages/plugin/src/plugin/bridge/__tests__/adapter.test.ts Outdated
Comment thread packages/plugin/src/plugin/bridge/socket.ts

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated 3 comments.

Comment thread packages/plugin/src/plugin/bridge/adapter.ts Outdated
Comment thread packages/plugin/src/plugin/bridge/adapter.ts
Comment thread packages/plugin/src/plugin/bridge/socket.ts
@ChekTek
ChekTek marked this pull request as ready for review June 9, 2026 19:47
@ChekTek
ChekTek requested a review from GeekyEggo June 9, 2026 19:47
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.

2 participants