Room Features, Performance & UI Polish#33
Merged
Conversation
… network conditions - Implemented ConnectionQualityManager component to monitor connection quality and adjust video stream quality for peers based on their active speaking status. - Introduced PerformanceMonitor component for debugging, displaying metrics such as FPS, bandwidth, and connection quality. - Created ActiveSpeakerGrid component to manage and display active speakers with appropriate video quality settings. - Developed CanvasPeerTile for rendering video streams on a canvas to optimize CPU usage for off-screen participants. - Added LayoutToggle component to switch between grid and speaker view layouts. - Implemented VirtualParticipantList for efficient rendering of participant items using react-window. - Enhanced useActiveSpeakers and useConnectionQuality hooks for improved speaker tracking and connection quality assessment. - Introduced bandwidth estimation utility to provide recommendations based on participant count and connection quality. - Created layout slice in Zustand store to manage layout mode state.
…k execution on error
…ntainer; enhance ParticipantItem with co-host role toggle
…tor in peer tiles; implement room locking functionality
…options; integrate MediaPipe for background processing
- Add text labels (Mute/Unmute, Stop/Start, Share, Leave) to control bar buttons - Wrap control bar buttons in a frosted-glass pill container - Extend MediaControlButton to support optional label prop (w-14 tall variant) - Add room ID display in header center with backdrop blur
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Room Features, Performance & UI Polish
Summary
This PR covers a broad set of improvements across the Mitsi web client spanning January–March 2026: adaptive video quality management, a suite of new room moderation and collaboration features, virtual background support, reliability fixes, and a UI/UX polish pass.
What's Changed
Adaptive Video Quality & Performance
HEARTBEAT_INTERVALto 30 000 ms for stable keep-alive behaviourRoom Moderation & Collaboration
CautionModaland theRecordcomponentMessaging
Virtual Background
requestAnimationFrame-only loop with avisibilitychange+setIntervalfallback so the pipeline keeps running at ~30 fps when the tab is hiddenAudio
Reliability Fixes
handleMessage/RoomProvider) — previously a thrown error would leave the media server waiting for an acknowledgement indefinitely; nowcallback({ status: 'error' })is always called in the catch pathUI/UX Polish
bg-black/50 backdrop-blur-md border border-white/10 rounded-2xlcontainerbg-black/20 backdrop-blur-smapplied to the room header; room ID shown in the centrebg-linear-to-t from-black/70overlay replacing bare text on tilesshadow-[0_0_16px_rgba(59,130,246,0.4)]w-16 h-16with participant name shown belowTest Plan
🤖 Generated with Claude Code