kvm/ui
Alex P cd70efb83f feat: multi-session support with role-based permissions
Implements concurrent WebRTC session management with granular permission control, enabling multiple users to connect simultaneously with different access levels.

Features:
- Session modes: Primary (full control), Observer (view-only), Queued, Pending
- Role-based permissions (31 permissions across video, input, settings, system)
- Session approval workflow with configurable access control
- Primary control transfer, request, and approval mechanisms
- Grace period reconnection (prevents interruption on network issues)
- Automatic session timeout and cleanup
- Nickname system with browser-based auto-generation
- Trust-based emergency promotion (deadlock prevention)
- Session blacklisting (prevents transfer abuse)

Technical Implementation:
- Centralized permission system (internal/session package)
- Broadcast throttling (100ms global, 50ms per-session) for DoS protection
- Defense-in-depth permission validation
- Pre-allocated event maps for hot-path performance
- Lock-free session iteration with snapshot pattern
- Comprehensive session management UI with real-time updates

New Files:
- session_manager.go (1628 lines) - Core session lifecycle
- internal/session/permissions.go (306 lines) - Permission rules
- session_permissions.go (77 lines) - Package integration
- datachannel_helpers.go (11 lines) - Permission denied handler
- errors.go (10 lines) - Error definitions
- 14 new UI components (session management, approval dialogs, overlays)

50 files changed, 5836 insertions(+), 442 deletions(-)
2025-10-08 18:52:45 +03:00
..
public Update UI dependencies (#819) 2025-09-24 12:16:02 +02:00
src feat: multi-session support with role-based permissions 2025-10-08 18:52:45 +03:00
.env.cloud-development feat(cloud): Add custom cloud API URL configuration support (#181) 2025-02-25 16:10:46 +01:00
.env.cloud-production feat(cloud): Add custom cloud API URL configuration support (#181) 2025-02-25 16:10:46 +01:00
.env.cloud-staging feat(cloud): Add custom cloud API URL configuration support (#181) 2025-02-25 16:10:46 +01:00
.gitignore Release 202412292127 2024-12-29 21:27:42 +01:00
.prettierrc refactor: network settings UI (#486) 2025-05-20 15:22:08 +02:00
dev_device.sh network enhanecment / refactor (#361) 2025-04-16 01:39:23 +02:00
eslint.config.cjs Add ability to track modifier state on the device (#725) 2025-08-26 17:09:35 +02:00
index.html Update UI dependencies (#819) 2025-09-24 12:16:02 +02:00
package-lock.json upgrade ui packages (#861) 2025-10-01 21:43:46 +02:00
package.json upgrade ui packages (#861) 2025-10-01 21:43:46 +02:00
postcss.config.js chore: Upgrade UI vite and tailwind packages (#443) 2025-05-15 14:21:03 +02:00
tailwind.config.js chore(ui): Patch-bump packages and use tailwind upgrade (#456) 2025-05-16 19:59:57 +02:00
tsconfig.json chore(ui): Clean up warnings (#536) 2025-05-30 15:01:32 +02:00
tsconfig.node.json Release 202412292127 2024-12-29 21:27:42 +01:00
vite-env.d.ts Release 202412292127 2024-12-29 21:27:42 +01:00
vite.config.ts chore: enhance the gzip and cacheable handling of static files 2025-09-12 08:41:41 +02:00