Commit Graph

5598 Commits

Author SHA1 Message Date
mishraditi
78931d4f0d fix(settings) Fixes missing previews after device permissions are granted. 2026-03-13 10:25:22 -04:00
Nishant kumar
0676ca5e62 fix(invite): Use decoded room name for dial-in info page url
* fix(invite): normalize room before building dial-in URL to avoid double encoding

* refactor(invite): use getNormalizedRoomName for room normalization
2026-03-12 13:05:47 -05:00
mishraditi
f387ae2113 fix i18n key for breakout room participant ellipsis tooltip 2026-03-12 11:54:20 -05:00
Hristo Terezov
f4a6036c1b fix(custom-panel): Button group
Since we render the button last when it has group 2 out of 4 React prints console.error.
2026-03-11 15:15:45 -05:00
damencho
1674a05ad0 feat(etherpad): Drops duplicate command listener. 2026-03-10 14:02:42 -05:00
Дамян Минков
0097e08d60 feat(amplitude): Updates initialization.
* feat(amplitude): Updates initialization.

* fix(amplitude): remove ts-ignore.

---------

Co-authored-by: Hristo Terezov <hristo@jitsi.org>
2026-03-10 14:02:31 -05:00
damencho
052024e3b7 fix(etherpad): Checks the received command value. 2026-03-09 12:50:54 -05:00
Solomon
eeb80fddf7 fix(UI): Mirrors Virtual Background previews (#17090)
* fix(vb-preview mirror):

Add flipVideoX CSS class to VirtualBackgroundPreview component

Fixes: #17089

* Update VirtualBackgroundPreview.tsx

Fixed the Lint errors
2026-03-09 13:23:05 -04:00
Vishal Malyan
c3e442f160 fix(ui): update Switch callback deps to prevent stale toggle handler for E2EE 2026-03-09 10:22:29 -04:00
Aaron van Meerten
6f8414e67f fix(base/util): prevent double URL encoding of non-ASCII room names
Room names with non-ASCII characters (e.g. ò) were double URL-encoded
when appended as query parameters to websocket, conference-request, and
keepalive URLs. getBackendSafeRoomName() returns a percent-encoded string
which was then re-encoded by URLSearchParams.append() via appendURLParam().

Extract getNormalizedRoomName() that decodes, NFKC-normalizes, and
lowercases without percent-encoding, and use it in the appendURLParam
call sites. getBackendSafeRoomName() is refactored to call it internally,
preserving identical behavior for all other callers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 08:22:22 -05:00
damencho
0f33b88774 fix(authentication): Shows notification if popup is blocked.
Adds a retry logic with a button. The problem is that some browsers (Safari) when window.open is not executed directly in the onClick handler, but on some underlying Promise will block the popup.
2026-03-06 15:23:35 -06:00
Nitin Kumar
9e3b54ffdf feat(chat/web): add explicit ChatButtonEntry interface and return type to useChatButton hook (#16937) 2026-03-06 11:30:40 -05:00
Yash Rastogi
74158c25a1 fix(polls): use creatorName prop instead of localParticipant in native PollAnswer (#17083) 2026-03-06 10:37:50 -05:00
Vishal Malyan
8bcca2dd35 Hide Android status bar in landscape mode during conferences without immersive mode. (#16675)
* Hide status bar in landscape mode
2026-03-06 16:20:41 +02:00
Hristo Terezov
86e641c2a1 fix(chat): scroll to latest messages when opening chat or CC tabs
Chat and CC panels showed oldest messages at the top when opened because
scrollIntoView was called on hidden (display: none) elements where it
silently does nothing. Now we skip scrolling on mount for hidden tabs
and defer it to when each tab first becomes visible, while preserving
the user's scroll position on subsequent tab switches.
2026-03-06 06:46:42 -06:00
mishraditi
5199068bd2 fix(breakout-rooms): fix participant menu not closing in breakout rooms (#17091)
* fix(breakout-rooms): fix participant context menu not closing on re-click
2026-03-05 12:49:49 -06:00
Yash Rastogi
33679ac163 fix(virtual-background): show notification when background limit is reached (#17053) 2026-03-04 13:23:21 -05:00
damencho
5da150d8ef fix(jwt): Some services will not give you a new token till it is expired. 2026-03-03 13:36:41 -06:00
Horatiu Muresan
f1339644b0 fix(url-params) Sanitize url params (#17070)
- check the passed lang param is in allowed languages
- validate http/https on deployment URLs
2026-03-03 13:28:53 +02:00
vishal2005025
3883811439 fix(gifs): prevent GIF popover from closing on internal clicks 2026-03-03 10:42:19 +01:00
Hristo Terezov
1f1dbb2517 feat(pip): add debug logging for better PiP flow observability
Add logger.debug calls throughout the PiP (Picture-in-Picture) feature
to make it easier to trace the PiP lifecycle when investigating issues.
Covers API event dispatching, action invocations with state snapshots,
requestPictureInPicture success/failure paths, and Electron namespace
mutations.
2026-03-02 17:26:15 -06:00
Saúl Ibarra Corretgé
b2ad0995ae feat(recording) remove recording limit functionality
It was designed for the 8x8 standalone apps which have been sunset for a
while.
2026-03-02 20:14:03 +01:00
vishal2005025
d4bbaaba83 fix(livestream): add YouTube “Go Live” reminder in Start Live Stream dialog 2026-03-02 15:09:26 +01:00
Calinteodor
b6d89b0939 feat(modal): fixes around JitsiScreen footer (#17041)
*Add extra px for Jitsi screen footer when native keyboard is visible.
2026-03-02 15:54:41 +02:00
Saúl Ibarra Corretgé
900a2da909 fix(i18n) make translateToHTML more resilient 2026-03-02 14:46:49 +01:00
damencho
38504d51cd fix(permissions): Make sure permissions are handled on mobile.
Fixes #17029.
2026-02-27 14:55:39 -06:00
damencho
ac48d1def2 fix(visitor): Checks for auth expired before redirecting to avoid jwt errors. 2026-02-27 13:03:20 -06:00
damencho
d0ab6557c1 fix(authentication): Trigger connect if no connection is available for reconnect. 2026-02-27 13:03:20 -06:00
Nitin Kumar
808f4cad7a refactor(chat): adds explicit return types to selector and utility functions (#16944) 2026-02-27 12:32:37 -05:00
damencho
737448c19b fix(toolbar): Fixes build, missing props. 2026-02-26 20:20:04 -06:00
Rajvardhan Singh Rathore
cff9b3b157 fix: added missing aria-labels to toolbar buttons for accessibility 2026-02-26 17:53:48 -06:00
damencho
a6422882dd fix(authentication): Drops not needed tokenAuthUrlAutoRedirect. 2026-02-25 16:42:54 -06:00
mishraditi
e9848f6438 fix(recording): show advanced options in several corner cases
* fix(recording): show advanced options for local recording with transcription

* Fixed edge case when all recording service are disabled

* Modified css

* Added warning message

* Show transcription option when no recording service is present

* Addressed PR reviews

* squash: Hide recording advanced option when not rendering recording.

* squash: Show recording button when only transcriptions are enabled.

* squash: Make sure we do not call record when it is not rendered due to no permissions.

* squash: Allows those with just feature transcription to use async transcribe.

* squash: Show recording stop button when recording is running when only transcriptions feature is available.

---------

Co-authored-by: damencho <damencho@jitsi.org>
2026-02-25 16:42:41 -06:00
yash1927
5c7f7d5d1e refactor(webhid-manager): use COMMANDS.OFF_HOLD constant instead of hardcoded string 2026-02-25 16:41:33 -06:00
damencho
9d6c38590c fix(chat): Clear all state when changing room.
Some state may be left when switching to breakout room.
2026-02-25 14:05:57 -06:00
damencho
42c2398345 fix(transcriptions): Fixes showing premium options dialog from chat panel.
This is jaas related.
2026-02-25 14:05:47 -06:00
damencho
bcc1a3ec72 fix(breakout): Hides unsupported services in breakout rooms. 2026-02-25 14:05:24 -06:00
Nishant kumar
c3c42b477b feat(transcription): allow custom transcriber languages via config (#16984)
* feat(transcription): allow custom transcriber languages via config

* fix(transcription): avoid duplicating default language json and document config

* feat(config): add support for custom transcription languages in configuration

* fix(config): satisfy lint and ts rules
2026-02-25 10:34:47 -06:00
yash1927
35539c0772 fix(local-recording): close AudioContext on recording stop
fix(local-recording): close AudioContext on recording stop
2026-02-25 08:08:04 -06:00
Bandhan Majumder
e1296fd82f fix(toolbox): enabledInJwt check for isDesktopShareButtonDisabled in native (#16997) 2026-02-24 11:36:13 -06:00
Calinteodor
5c92faccf6 feat(filmstrip): move AudioTracksContainer outside (#17000)
* Move AudioTracksContainer outside of filmstrip feature.
2026-02-24 16:55:09 +02:00
damencho
c00b1c8145 fix(authentication): Skip prejoin in some case when not inline. 2026-02-24 07:40:41 -06:00
damencho
c5c7983675 fix(authentication): Fixes loading jwt middleware.
In 96d02e8 a middleware.web was introduced which broke loading the original one.
2026-02-23 18:14:28 -06:00
Jaya Allamsetty
a461e867d5 fix(video-layout) Fixes auto-pinning of SS in large calls. (#16992)
* fix(video-layout) Fixes auto-pinning of SS in large calls.
In calls with 50+ participants, isTopPanelEnabled returns true. This causes isStageFilmstripAvailable(state) (called with no minimum participant count from getPinnedParticipant) to return true even when activeParticipants is empty. When getPinnedParticipant takes that stage filmstrip path, it reads from activeParticipants.find(p => p.pinned) — which is always
  empty for an auto-pinned screenshare.
Added an explicit check in shouldDisplayTileView's auto-mode logic: when there are active screenshares AND the top panel is enabled AND auto-pin is active AND Follow Me isn't controlling the layout, exit tile view. The guards on getAutoPinSetting() and !isFollowMeActive(state) mirror the same conditions checked everywhere else before auto-pinning fires, ensuring
  consistent behavior.

* squash: Fixes linter error
2026-02-23 17:31:12 -05:00
Дамян Минков
96d02e8484 feat(authentication): Inline authentication for web
* fix(meeting_id): Depends on jitsi_session(uses session.user_region).

* feat(authentication): A static page that can be used with some auth providers like keycloak.

* fix(authentication): Implements inline authentication.

squash: Adds refresh token use when refresh token is needed on connection resuming.
squash: Fix bugs and move to PKCE flow.

* squash: Adds nonce verification.

* squash: Drops the closing logic.

* squash: Replace resuming event with CONNECTION_TOKEN_EXPIRED one.

* squash: Fixes comments.

* squash: Make sure we use tokenAuthUrl only when it is set and is not jaas.

* squash: Move CONNECTION_TOKEN_EXPIRED to web only middleware as it uses web only logic for now.

* squash: Fix comments.
2026-02-23 13:12:37 -06:00
solomon17705cs
244b5f9dd3 Fix: correct label binding in Advanced Options switches
Update the label's htmlFor and the Switch id from 'recording-switch-transcription' to 'recording-switch-audio-video' in StartRecordingDialogContent. This corrects the label-to-control association for the audio/video recording toggle, fixing an accessibility/mapping mismatch.
2026-02-23 13:05:26 -06:00
mishraditi
df0e55eda3 fix(settings): avoid activating all microphones when audio levels are disabled 2026-02-20 13:40:40 -06:00
Calinteodor
f7d64341f8 feat(lobby): Updates around toolbox menu and state (#16965)
* Remove hang up button from prejoin/lobby toolbox and reset lobby visibility state when access denied.
2026-02-20 11:13:42 +02:00
Jaya Allamsetty
156dd24b14 fix(filmstrip) Fixes an issue with ghost tiles appearing on the filmstrip.
This was a regression of the recent changes to filmstrip reordering.
2026-02-19 17:43:22 -05:00
Calinteodor
91481aa245 fix(lobby): use conferenceLeft instead of conferenceWilLeave
*Hang-up button is calling both appNavigate and conferenceWillLeave synchronously and something is interfering.
appNavigate is async and something is calling it again before conferenceWillLeave completes.
2026-02-19 13:59:54 +02:00