Set isCallActive to true when room is joined to prevent video panel from disappearing - Set isCallActive=true in join room success callback - Keeps video panel visible while ICE connection establishes - Prevents panel from disappearing when isConnecting becomes false before ICE connects
Prevent premature cleanup of video call by fixing cleanup effect - Remove localStream from cleanup effect dependencies to prevent premature cleanup - Add localStreamRef to track current stream for cleanup - Keep ref in sync with state via useEffect - Fixes video call panel appearing then quickly disappearing
Use handleRemoteJsep instead of send for streaming answer JSEP - Replace handle.send with handleRemoteJsep after creating streaming answer - handleRemoteJsep is the correct method for sending JSEP after createAnswer - Fixes TypeScript error about missing message property in PluginMessage
Remove unsupported audioRecv/videoRecv from VideoRoom createAnswer - Remove audioRecv and videoRecv properties from deprecated media object - These properties are not supported by the Janus type definition - Receiving capabilities are negotiated automatically via SDP
Remove deprecated media properties from createAnswer calls - Remove media property with audioRecv/videoRecv from subscriber createAnswer - Remove media property from streaming plugin createAnswer - createAnswer automatically handles receiving based on the offer JSEP
Replace 'any' types with proper TypeScript types in useWebRTC and ChatDock - Replace all 'any' types with Record<string, unknown>, RTCSessionDescriptionInit, string | Error, etc. - Fix ChatDock message type to use proper interface instead of 'any' - Fix unused parameter warnings by prefixing with underscore
Auto-open chat window when receiving messages from another user - unminimize if minimized, open if closed
Remove useEffect dependencies causing connection to abort - empty dependency array so effect only runs once on mount
Remove invalid SockJS.OPEN constants causing TypeScript build error
Add extensive SockJS connection error logging to diagnose connection failures
Add EXTENSIVE logging to useChatWebSocket hook and ChatBox component - every single step logged
WebSocket connection - use public domain kamocrm.com:8443 instead of private IP
- Use public domain with port 8443 (e.g., kamocrm.com:8443) - Public address forwards to NodePort 30843 on private IP 192.168.42.191 - Extracts base domain from...
WebSocket连接 - 通过NodePort 30843 (bypasses Traefik) 使用直接节点IP
- 为WebSocket直接连接IP 192.168.42.191-30843节点 - NodePort 30843 直接曝光MediaService port 8443 - Bypasses Traefik以避免WebSocket升级问题 - 总是使用HTTPS协议进行WebSocket连接
WebSocket连接 - 使用Traefik ingress而不是直接端口 8443
- 更改了WebSocket URL,以便在标准HTTPS端口上通过Traefik连接(443) - 将8443号港口从域名连接中移除(Traefik线路至80号港口服务) - 仅对本地主机/IP连接使用直接节点门户访问
Prevent self-chat and improve session creation error handling - Add validation in MemberItem to prevent opening chat with own member ID - Add backend validation in MediaController to prevent self-chat sessions - Improve error handling in ChatDock to not retry 4xx client errors
Ensure page fits viewport while preserving internal content scrollbars
Resolve vertical overflow on settings member page by removing viewport height calculations
Increase logo size and adjust welcome text layout
- Increased logo size from 200x80 to 300x120 - Positioned welcome text to start at right edge of logo - Added explicit left text alignment - Improved responsive...
Replace MUI Grid with CSS Grid for compatibility with MUI v7
- Replaced Grid component with Box using CSS Grid layout - Maintains responsive breakpoints (xs: 1, sm: 2, md: 3, lg: 4 columns) - Fixes TypeScript build error ...
Create welcome presentation page with feature cards
- Added full logo display at top left using ThemeLogo component - Created modern, polished welcome page with feature cards grid - Each feature card includes ico...