WebSocket connection - use direct node IP via NodePort 30843 (bypasses Traefik)
- Connect directly to node IP 192.168.42.191:30843 for WebSocket - NodePort 30843 exposes MediaService port 8443 directly - Bypasses Traefik to avoid WebSocket ...
WebSocket connection - use Traefik ingress instead of direct port 8443
- Changed WebSocket URL to connect through Traefik on standard HTTPS port (443) - Removed port 8443 from domain connections (Traefik routes to service on port 8...
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...
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...
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...
Add comprehensive custom forms builder with drag-and-drop
- Update CRM page: Change tab name from "Custom Online Forms" to "Custom Forms" - Add CustomFormManager component for form list/browse with create/edit/delete -...
Change ProductInfo.isEmptyCreditFfa type from boolean | null to boolean to match actual usage
Rename local product variable to productData to avoid conflict with function parameter
Also fix createVendor function to use vendorData instead of vendor to avoid parameter conflict
Rename local vendor variable to vendorData to avoid conflict with function parameter
Correct JSX syntax error - remove extra closing parenthesis in products map
Add remaining null safety checks for vendor.title access in table rendering and edit handlers
Add comprehensive null safety and defensive checks throughout LeadVendorManager
Add comprehensive null safety checks and defensive coding for title field access
Update LeadVendorManager to use title and description fields with full UI support
Use consistent [id] dynamic segment for vendor routes to fix Next.js build error
Fully wire vendors-products page with modern UI, full CRUD for vendors and products
Backend now sends IDs as strings to prevent JavaScript precision loss - simplified frontend parsing
Comprehensive ID precision fix - extract IDs from JSON text before parsing, add logging, ensure all IDs are strings
Replace 'any' type with proper type definition to fix TypeScript lint error
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.