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. ReturnsResult<(), CommonError>indicating send success only.
§VS Code reference
vs/workbench/services/extensions/common/extensionHostProtocol.tsvs/base/parts/ipc/common/ipc.net.tsvs/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