正确配置 Spring Security for WebSocket - 完全禁用 CSRF, 启用会话创建 IF REQUIRED 为 WebSocket 握手
删除导致编译错误的无效方法调用( GetId on MediaSession, get StatusCode on ServerHttpResponse)
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 中间软件和服务器传输到入侵 Route
- 为WebSocket升级头件添加了媒体-websocket升级中件 - 添加了媒体-websocket-transport以禁用HTTP/2(WebSocket需要HTTP/1.1) - 这样就可以通过Traefik入侵 实现适当的WebSocket连接
WebSocket连接 - 使用Traefik ingress而不是直接端口 8443
- 更改了WebSocket URL,以便在标准HTTPS端口上通过Traefik连接(443) - 将8443号港口从域名连接中移除(Traefik线路至80号港口服务) - 仅对本地主机/IP连接使用直接节点门户访问
WebSocket live message delivery - disable ChatMessageHandler subscription, enhance logging
- Disabled ChatMessageHandler subscription to chat.session.> that was consuming messages without forwarding to WebSocket - Enhanced WebSocketConfig logging to t...
添加对NATS订阅中独有的消费者名的支持 - 添加接受自定义消费者名的超载订阅()方法 - 允许多个聊天会拥有独立的NATS消费者 - 解决所有会议共享同一消费者导致消息发送冲突的问题
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
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 ...
Remove glitchy row animations when toggling checkboxes - Replace 'transition: all' with specific property transitions to prevent layout animations - Memoize sortedFields array to prevent unnecessary recreations - Only animate visual properties (colors, opacity) instead of layout properties
Move subStatusOptions definition after availableStatuses to fix declaration order
Move statusTabMap definition after availableStatuses to fix build error
Add missing Next.js API route handlers for custom-forms
- Create /api/security/custom-forms route handler for GET and POST - Create /api/security/custom-forms/[id] route handler for GET, PUT, and DELETE - Proxy reque...
Improve form creation error handling and validation
- Filter out fields with empty fieldIds before sending to backend - Filter out empty stacks from form data - Add validation error if fieldId is invalid during d...
在自定义FormService创建/更新Form中添加无效检查和验证
- 在调用 trim (.) 到LowwerCase () 之前, 添加空/ 空检查字段ID, 以防止 NullPointer 排除 - 对需要的字段(字段、标题、字段Id)添加全面的验证,并带有明确的错误信息 - 在创建Form/updateForm方法中添加字段ID格式验证作为双检查 - 改进错误消息以包含字段上下...
Add missing imports in FormEditor
- Add FIELD_TYPES_ARRAY import from fieldTypes - Add validateFieldId and normalizeFieldId imports from fieldValidation - Fixes TypeScript compilation errors
Replace Grid with CSS Grid layout in FieldTypeSelector
- Remove Grid component usage that was causing TypeScript errors - Replace with Box using CSS Grid for responsive layout - Maintains same visual layout and resp...
Fix TypeScript errors in FieldTypeSelector and remove unused imports
- Replace dynamic icon lookup with explicit icon map to avoid type assertion issues - Import all required icons directly from lucide-react - Remove unused Field...
Fix TypeScript errors in FieldConfigurationPanel
- Replace array.includes() with direct equality checks to avoid type narrowing issues - Remove unused Card import from FormEditor - Prefix unused stackIndex par...
Fix build errors in custom forms components
- Fix import error: getAllFields should be imported from utils, not fieldValidation - Fix TypeScript errors: Replace 'any' types with proper FieldType - Fix une...