kvm/internal
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
..
confparser feat: jetkvm native in cGo 2025-09-29 14:09:30 +02:00
hidrpc feat: release keyPress automatically (#796) 2025-09-18 13:35:47 +02:00
logging feat: jetkvm native in cGo 2025-09-29 14:09:30 +02:00
mdns network enhanecment / refactor (#361) 2025-04-16 01:39:23 +02:00
native fix: segfault in cGo 2025-10-02 19:15:03 +02:00
network feat: jetkvm native in cGo 2025-09-29 14:09:30 +02:00
session feat: multi-session support with role-based permissions 2025-10-08 18:52:45 +03:00
timesync fix(timesync): ensure that auto-update waits for time sync (#609) 2025-09-16 15:37:02 +02:00
tzdata feat: improve custom jiggler settings and add timezone support (#742) 2025-08-19 16:50:42 +02:00
udhcpc Add ability to track modifier state on the device (#725) 2025-08-26 17:09:35 +02:00
usbgadget feat: multi-session support with role-based permissions 2025-10-08 18:52:45 +03:00
utils fix: ensure that security-key backed SSH keys are supported (#807) 2025-09-17 12:14:45 +02:00
websecure feat(websecure): add support for ed25519 certificates (#513) 2025-05-25 11:09:58 +02:00