Swap field mapping columns, add remaining fields label, fix arrow positioning
Add nowrap to preview table, auto-select single options, and validate required data
Resolve linting errors in transformations.ts and FieldMappingInterface.tsx
Complete lead import system with file parsing, field mapping, transformations, validation, and batch processing
Extend background gradient to fill entire viewable page area
- Added minHeight: 100% to ensure background extends to bottom - Added backgroundSize and backgroundRepeat to ensure gradient covers full area - Background now ...
Remove vertical scrollbar on leads/allotments page by using available height
- Changed from minHeight: 100vh to height: 100% to fit within layout - Changed hardcoded calc(100vh - 200px) to flex: 1 for proper sizing - Added overflow: hidd...
Use correct logo variant and restore full gradient opacity with blend mode
- Changed from logo-full to logo variant (same as NavPri) - Removed faded gradient overlay - Used mix-blend-mode to show logo behind fully opaque gradient
Add grayscale logo background to root page instead of creating room page
- Added logo background to existing root /page.tsx - Logo displayed at 60% size, grayscale, centered and vertically aligned - Removed incorrectly created /room/...
Add room page with grayscale logo background
- Created new room page at /app/room/page.tsx - Added logo as background image at 60% size - Applied grayscale filter to background logo - Centered and vertical...
Fix ChatBox subscription loop and NATS cleanup - use refs for callbacks to prevent useEffect re-runs, improve NATS error handling
Fix publisher detection - wait for configured event and filter by publisher:true
Add room creation to startVideoCall and startScreenShare functions
Explicitly create Janus VideoRoom before joining to resolve 'No such room' error
Add extensive logging to VideoRoom onmessage handler and join success callback to debug publisher subscription
Fix build error - remove incomingCallId from console.log (not in scope)
Add extensive logging to answerIncomingCall to debug why calls don't connect when answered
Fix connecting state - clear isConnecting after publisher established even without remote peer
Fix session validation in subscribeToPublisher - ensure session has attach method before use
Improve video call connection reliability - enhanced subscription logic, ICE state handling, and publisher detection with retries
Fix Janus session initialization - properly capture and validate session object
Replace 'any' type with Record<string, unknown> to fix TypeScript build error
Validate existing session before reuse and fix session attach method issue
Fix Janus session initialization - wait for success callback before resolving
Comprehensive WebRTC video call fixes - remote stream handling, modern UI, and subscription logic
Handle call-answered messages, improve error logging, and fix session cleanup
Move answerIncomingCall declaration before startAudioCall to fix 'used before declaration' error
Move addSystemMessage declaration before useEffect that uses it - Fixes 'used before declaration' TypeScript error
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
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
