Skip to content

feat(collab): live collaboration — relay client, IPC bridge, self-hosting settings#90

Merged
andrewchumchal merged 1 commit into
devfrom
feat/live-collab
May 25, 2026
Merged

feat(collab): live collaboration — relay client, IPC bridge, self-hosting settings#90
andrewchumchal merged 1 commit into
devfrom
feat/live-collab

Conversation

@andrewchumchal

Copy link
Copy Markdown
Contributor

Summary

Wires the desktop shell (Electron main process) to the live collaboration relay server introduced in OpenConduit/relay-server.

Changes

packages/desktop/src/main/collaboration/ (new)

  • client.ts — WebSocket relay client: create, join, leave, send, lock request/release, streaming event forwarding. All URLs resolved dynamically from settings at call time (falls back to https://share.openconduit.ai).
  • types.ts — Shared types for the collaboration IPC channel.

packages/desktop/src/main/ipc.ts

  • Added collab:* IPC handlers: create, join, leave, send, lockRequest, lockRelease, onEvent, onInvite.
  • SHARE_BASE is now dynamic — reads selfHosting.shareServerUrl from electron-store on each call so self-hosters don't need to restart.

packages/desktop/src/main/store/settings.ts

  • Added selfHosting block to AppSettings: shareServerUrl (optional string).

packages/desktop/src/preload.ts + src/renderer/env.d.ts

  • Exposed window.api.collab with full TypeScript types for all collab IPC channels.

packages/desktop/src/main.ts

  • Registers the openconduit://join?roomId=… deep-link protocol handler; forwards invite events to the renderer via collab:invite.

Depends on

@andrewchumchal andrewchumchal merged commit 5a10ad4 into dev May 25, 2026
3 checks passed
@andrewchumchal andrewchumchal deleted the feat/live-collab branch May 25, 2026 03:14
@andrewchumchal andrewchumchal linked an issue May 25, 2026 that may be closed by this pull request
7 tasks
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.

feat: shared conversation workspaces (real-time multiplayer)

1 participant