feat: move session sharing and collab rooms into a plugin (B12)

This commit is contained in:
LukeGus committed 2026-09-23 23:42:46 -05:00
1 parent 791d8656a1
commit a276f6898c
207 files changed
+35771 -11072

No files matched your search

+31
View File
@@ -0,0 +1,31 @@
# Session Sharing
Share a live terminal or remote desktop session by link or with another user,
and present sessions to a group in collaboration rooms.
Bundled with Termix and enabled by default. It imports only
`@termix/plugin-sdk`.
## What it does
- **Shares**: a link for anonymous guests, or a grant for one user, read-only
or read-write, with an expiry. The share button sits in the terminal and
remote desktop toolbars.
- **Rooms**: members watch one stage, the live session the presenter shows.
The presenter or host can hand input control to a member, and a room can
have an anonymous guest link.
- **`sessions.sharing`**: member joins and room events for the terminal
socket. Guest joins go through `sessions.sharing.guests` on `ctx.registry`,
because a guest has no user for a service's permission check.
It reaches live sessions only through the `sessions.live` service, keyed by
session type: ssh-terminal provides `ssh`, remote desktop provides `rdp`,
`vnc` and `telnet`.
## Layout
manifest.json id, capabilities and what this plugin contributes
src/backend/ activate(ctx), routes, the room hub, the services
src/frontend/ share dialog, guest views, rooms panel and tab
migrations/ one .sql per dialect, generated from src/backend/tables.ts
tests/ backend (node) and frontend (jsdom)