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

+2 -134
View File
@@ -664,7 +664,6 @@
"done_cli_link": "Open the CLI docs"
},
"nav": {
"collab": "Meetings",
"home": "Home",
"terminal": "Terminal",
"localTerminal": "Local Terminal",
@@ -1032,8 +1031,6 @@
"enableAutoTmuxDesc": "Keep your shell and anything running in it alive across disconnects and browser restarts by running inside tmux (tmux must be installed on the host)",
"enableSessionLogging": "Session Logging",
"enableSessionLoggingDesc": "Record terminal session output for later review",
"allowSessionSharing": "Allow Session Sharing",
"allowSessionSharingDesc": "Let live sessions on this host be shared via link or with other users",
"localEchoLabel": "Local Echo",
"localEchoDesc": "Predict safe printable keystrokes locally on slow connections. Password prompts and control input are never echoed.",
"localEchoDefault": "Use global setting",
@@ -1573,137 +1570,11 @@
"join": "Join",
"sharedSessionLabel": "{{hostName}} (shared)"
},
"collab": {
"createRoom": "New room",
"roomName": "Room name",
"persistentRoom": "Persistent room",
"persistentRoomHint": "Persistent rooms stay listed after the meeting ends and can be reused.",
"noRooms": "No rooms yet. Create one to start a meeting.",
"openRoom": "Open",
"endRoom": "End meeting",
"leaveRoom": "Leave",
"deleteMember": "Remove",
"removeMember": "Remove {{name}}",
"removeMemberTitle": "Remove this member?",
"removeMemberDescription": "{{name}} will lose access to this room immediately. Any active SSH viewer will be disconnected.",
"invite": "Invite",
"inviteTitle": "Invite members",
"members": "Members",
"membersPanel": "Room members and control requests",
"membersWithCount": "Members ({{count}})",
"online": "online",
"offline": "offline",
"you": "(you)",
"hostBadge": "Host",
"presenterBadge": "Presenting",
"present": "Present",
"presentTitle": "Take the stage",
"presentHost": "Host",
"searchHosts": "Search hosts",
"noHostsFound": "No available hosts found.",
"presentProtocol": "Protocol",
"stopPresenting": "Stop presenting",
"takeOver": "Take over",
"takeOverConfirmTitle": "Replace the current presentation?",
"takeOverDescription": "{{name}} is presenting now. Taking over will disconnect everyone from that stage.",
"emptyStage": "Nobody is presenting. Take the stage to share a session.",
"stageLoading": "Connecting to the stage...",
"stageEnded": "The presentation ended",
"roomEnded": "This meeting has ended",
"presenterLabel": "{{name}} is presenting",
"guestLink": "Guest link",
"guestLinkOn": "Guest link is on. Anyone with the link can watch the stage.",
"guestLinkOff": "Guest link is off.",
"copyLink": "Copy link",
"rotateLink": "Rotate link",
"disableLink": "Disable link",
"rotateLinkConfirmTitle": "Rotate the guest link?",
"rotateLinkDescription": "The current link will stop working immediately. Connected SSH guests will be disconnected.",
"disableLinkConfirmTitle": "Disable the guest link?",
"disableLinkDescription": "Anonymous SSH viewers will be disconnected immediately and the current link will stop working.",
"linkCopied": "Link copied",
"roles": "Roles",
"users": "Users",
"searchUsers": "Search users",
"endConfirmTitle": "End this meeting?",
"endDescription": "{{name}} will end for everyone and cannot be reopened.",
"endPersistentDescription": "The active presentation in {{name}} will stop. The room remains available for reuse.",
"deleteRoom": "Delete room",
"deleteConfirmTitle": "Delete this room?",
"deleteDescription": "{{name}} will be permanently deleted for everyone and cannot be undone.",
"invitedTo": "You were invited to \"{{name}}\"",
"guest": {
"title": "Meeting",
"waiting": "Waiting for the presenter...",
"linkInvalid": "This guest link is invalid or the meeting has ended"
},
"reopenFromPanel": "This meeting tab expired. Reopen the room from the Meetings panel.",
"requestControl": "Request control",
"cancelControlRequest": "Cancel request",
"controlQueue": "Control requests",
"noControlRequests": "No pending requests.",
"grantControlTo": "Give control to {{name}}",
"dismissControlRequest": "Dismiss {{name}}'s control request",
"releaseControl": "Release control",
"grantControl": "Give control",
"revokeControl": "Take back control",
"controlRequestedBy": "{{name}} asked for control",
"grant": "Grant",
"controlBadge": "In control",
"youArePresenting": "You are presenting in another tab. Stop presenting to hand the stage over.",
"created": "Room created",
"invited": "Members invited",
"roomTab": "Meeting"
},
"sessionSharing": {
"guestView": {
"loading": "Connecting to shared session...",
"linkInvalid": "This share link is invalid, expired, or has been revoked",
"rateLimited": "Too many attempts, please try again shortly",
"sessionEnded": "This session has ended",
"readOnlyBadge": "View only",
"ownerLabel": "Host owner"
},
"modalTitle": "Share session",
"shareButton": "Share",
"notReadyToShare": "Session is not ready to share yet",
"modeTab": {
"link": "Link",
"user": "User"
},
"linkModeDescription": "Anyone with this link can join, no account required.",
"userModeDescription": "Share with a specific user who already has access to this host. If they do not have access yet, share the host with them first or use a link instead. Once shared, the session appears in their Connections tab.",
"permissionLevel": {
"label": "Permission level",
"readOnly": "Read-only",
"readOnlyDescription": "Can watch the session live but cannot type or interact.",
"readWrite": "Read-write",
"readWriteDescription": "Can type and interact with the session just like the owner."
},
"expiryLabel": "Link expiry",
"createLinkButton": "Create link",
"createShareButton": "Share with user",
"searchUsersPlaceholder": "Search users...",
"noUsersFound": "No users found",
"linkCreated": "Share link created",
"linkCopied": "Link copied to clipboard",
"copyLink": "Copy link",
"shareCreated": "Session shared. It will appear in their Connections tab.",
"shareFailed": "Failed to create share",
"userLacksHostAccess": "That user does not have access to this host yet. Share the host with them first, or use a link instead.",
"activeShares": "Active shares",
"noActiveShares": "No active shares for this session",
"revoke": "Revoke",
"revokeConfirmTitle": "Revoke this share?",
"revokeConfirmDescription": "Anyone using this share will lose access immediately.",
"revoked": "Share revoked",
"revokeFailed": "Failed to revoke share",
"joinCount": "{{count}} join",
"joinCount_other": "{{count}} joins",
"expiresAt": "Expires {{date}}",
"linkShareBadge": "Link",
"userShareBadge": "User: {{username}}",
"loadSharesFailed": "Failed to load active shares"
"readWrite": "Read-write"
}
},
"terminal": {
"connect": "Connect to Host",
@@ -2251,7 +2122,6 @@
"analyticsEnabledDesc": "Sends an anonymous daily count of users, hosts, and feature usage to help improve Termix. No personal data or connection details are ever included.",
"analyticsEnabledLockedDesc": "This setting is locked by the ENABLE_TELEMETRY environment variable and cannot be changed here.",
"updateAnalyticsFailed": "Failed to update analytics setting",
"sessionSharingGloballyEnabled": "Allow Session Sharing",
"auditForwardingTitle": "Forward to SIEM",
"auditForwardingDesc": "Ship a copy of every audit entry to an external collector as NDJSON. Local logs stay the source of truth.",
"auditForwardingEnvNotice": "An environment variable also configures forwarding; the URL saved here takes precedence.",
@@ -2259,8 +2129,6 @@
"auditForwardingTokenStored": "Bearer token (stored)",
"auditForwardingSaved": "Audit forwarding settings saved",
"auditForwardingSaveError": "Failed to save audit forwarding settings",
"sessionSharingGloballyEnabledDesc": "Allow live terminal, RDP, VNC, and Telnet sessions to be shared instance-wide. Overrides every per-host sharing toggle when disabled.",
"updateSessionSharingFailed": "Failed to update session sharing setting",
"sessionTimeout": "Session Timeout",
"hours": "hours",
"sessionTimeoutRange": "Min 1h · Max 720h",