Skip to main content

Module IPCProvider

Module IPCProvider 

Source
Expand description

IPCProvider: routes IPC messages between the frontend and backend.

§IPCProvider (Environment)

Implements IPCProvider for MountainEnvironment. Serves as the IPC bridge between Mountain and extension sidecar processes (Cocoon), delegating all transport to the Vine gRPC client with JSON-RPC 2.0 over the wire.

§Communication patterns

  • Request/response (SendRequestToSideCar) - synchronous RPC with caller-specified timeout; used for config resolution, URI lookup, and content retrieval.
  • Notification (SendNotificationToSideCar) - fire-and-forget; used for document changes, diagnostics, and UI events. Returns Result<(), CommonError> indicating send success only.

§VS Code reference

  • vs/workbench/services/extensions/common/extensionHostProtocol.ts
  • vs/base/parts/ipc/common/ipc.net.ts
  • vs/workbench/services/extensions/common/rpcProtocol.ts

§Planned Work

  • Message queuing for offline scenarios
  • Bidirectional request handling (sidecar → main)
  • Streaming support
  • Request cancellation
  • Priority queue and batch operations
  • Request deduplication
  • Connection health checking
  • Unix domain socket support
  • Latency/success-rate telemetry