Commit Graph
156 Commits
Author SHA1 Message Date
SiriusandGitHub 84653bb416 Sending URL Preview Bundles (MSC 4095) (#34150)
* Fetches link previews for all links in message (instead of just the first one)

* message url component to display preview for multiple urls

* Revert visible behaviour back to only showing one URL preview

While fetching all link previews in the text message.

* Moved URL preview VM to MessageComposer

* Added com.beeper.linkpreviews to messages sent with the markdown compositor

* MSC 4452 implemented for the older (markdown) composer

* claude told me to use logger instead of console

* Previews generated with snapshot instead of vm

* moved attachPreviews to a separate file

* added attach URL previews to rich text editor

* don't let attachUrlPreviews block clearning the composer

* fixed linter errors

* moved url preview behind labs feature gate

* passed linters

* moved lab feature checking to where attach preview is used

* claude wrote some unit tests for url previewing

* fixed linter errors

* added feature to labs.md

* fixed linter errors

* fixed oxfmt error

* set previews to none if all previews failed

* resolved PR reviews besides the ones that requires a larger code change

* moved url preview VM creation to message composer

* removed delay when clearing composer url preview on message send

* minor changes to stop using globals everywhere

* moved debouncing responsibility to urlpreviewVM

* minor lint fixes

* added comment

* remove composer content from the state of urlpreview, moved it to the vm

* urlpreviewwrapper depends on the vm only

* added comments

* edited the comment

* updated snapshots

* claude fixed tests

* enable feature for tests that requires MSC4095

* updated snapshot
2026-07-13 15:31:18 +00:00
1b10122a7b Allow disabling legacy calls and make Voice & Video settings Legacy Voice & Video (#33692)
* Change `feature_group_calls` to default to true.
Change state to Beta

* Add `enableLegacyCallsVoip` (clarify: Audio settings relate to Legacy)
Change `element_call.use_exclusively` to just be the default of
`enableLegacyCallsVoip`.
Allow disabling in Legacy in the settings. (overwrite `use_exclusivly`
via `enableLegacyCallsVoip`)
Rename `Voice & Video` to `Legacy Voice & Video`

* improvements
 - settings title update to only show legacy when appropriate
 - hide menu all together if use_exclusivly is chosen

* simplify by removing the feature_group_calls flag

* smaller cleanup

* fix tests and cleanup

* clarify settings (disable) in config.md

* add back EC relevant settings in room settings dialog

* update screenshots (now default to EC enabled (not disabled)
-> show voice and video tab in room settings

* update screenshots

* always show option to control voice messages input

* lint

* fix test

* disable -> enabled And only have on mic dropdown

* update config.md

* Back to `disabled` (on by default/no config)

* remove element call hint from voice-video settings

* Update apps/web/src/i18n/strings/en_EN.json

Co-authored-by: Robin <robin@robin.town>

* Update apps/web/src/components/views/settings/tabs/user/VoiceUserSettingsTab.tsx

Co-authored-by: Robin <robin@robin.town>

* review

* cleanup element call url setting (its deprecated/not used anymore)

* clarify, that also jisti will be enabled/disabled by legacy settings
flag

* remove double section

* remove unn exassary element_call configurations

* Update en_EN.json

* Update VoiceUserSettingsTab.tsx

* Make tests use new defaults (enable element call)

* Default events power levels

* format

* review "Enable Legacy voice/video calls" label

* more radical usage of defaults in element_call config.json's

* Update config.json

* Update en_EN.json

* Update RoomSettingsDialog-test.tsx.snap

* Update useRoomCall.tsx

* fix imports

* Update request permission promp to latest designs:
https://www.figma.com/design/aOEkaJtaBmPy058V7uoqVr/Element-Call-Updates---2026?node-id=45-12591&t=7takL39icZwt9YjL-0

* Update config.json.d.ts

* fix usage of `Element` in i18n

* Update General-room-settings-tab-should-be-rendered-properly-1-linux.png

---------

Co-authored-by: Robin <robin@robin.town>
2026-07-07 16:09:36 +00:00
Florian DurosandGitHub b68ecdb860 Remove legacy room list (#34040)
* refactor(room-list): migrate SpaceStore off the legacy room list store

SpaceStore.setActiveRoomInSpace iterated the legacy RoomListStore's
`orderedLists` in `TAG_ORDER`; switch it to the space-aware
RoomListStoreV3.getSortedRoomsInActiveSpace() accessor. This drops the
last non-UI dependency on the legacy store and on `TAG_ORDER` (exported
from LegacyRoomList, deleted next).

* feat(room-list)!: remove the legacy room list UI

Delete the old sublist-based room list and its components now that the
new RoomListPanel is the default. Removed: LegacyRoomList,
LegacyRoomListHeader, RoomSublist, ExtraTile, RoomTile (+ Subtitle/
CallSummary), RoomBreadcrumbs and RoomSearch, plus their styles and
tests.

LeftPanel collapses to the RoomListPanel-only path. The shared
`contextMenuBelow` helper is relocated into RoomResultContextMenus (its
only remaining consumer).

* feat(room-list)!: remove the legacy RoomListStore

The legacy sublist-based room list UI is gone, so the old
`stores/room-list` store (Algorithm, sorters, filters, layout store,
space
watcher) has no remaining consumers. Delete the directory and its tests.

MatrixChat.forgetRoom no longer calls the legacy `manualRoomUpdate`; the
new room list store removes the room on the `AfterForgetRoom` dispatch
that still fires. Drop the `mxRoomListStore`/`mxRoomListLayoutStore`
globals and the now-dead test imports.

* feat(room-list)!: remove the feature_new_room_list labs flag

The new room list is now the only room list, so remove the
feature_new_room_list labs flag and make its enabled behaviour
unconditional everywhere it was gated:

- LoggedInView: always use the resizable layout and
NEW_ROOM_LIST_MIN_WIDTH;
  drop the collapsible/minimized legacy path.
- SpaceStore: People and Favourites are dropped from metaSpaceOrder (per
the
  long-standing TODO on the removed accessor).
- MessagePreviewStore: stop appending thread replies to previews.
- Settings, SidebarUserSettingsTab, PreferencesUserSettingsTab,
  QuickSettingsButton, SpacePanel, LandmarkNavigation: drop the flag
reads and
  legacy branches.

Update the tests that toggled the flag; the People/Favourites meta space
tests covered behaviour that the flag (default on) already disabled.

* feat(room-list)!: remove the dead legacy left-panel resizer

LoggedInView still built the old `Resizer`/`CollapseDistributor` over an
`lp-resizer` ResizeHandle and persisted `mx_lhs_size`. That handle is no
longer rendered (the resizable layout is now driven by
LeftResizablePanelView + ResizerViewModel, which persists its own state
via RoomList.panelSize/RoomList.isPanelCollapsed), so the old resizer
was
inert dead code left over from the legacy room list.

Remove createResizer/loadResizer/loadResizerPreferences, the
_resizeContainer/resizeHandler refs, the ResizeHandle render, the
mx_lhs_size handling and NEW_ROOM_LIST_MIN_WIDTH, plus the unit tests
that
exercised the mocked resizer.

* feat(room-list)!: update i18n files

* refactor(room-list): remove the now-unused collapseLhs state

`collapseLhs` is write-only since the left panel no longer collapses: it
was last read by LoggedInView's `shouldUseMinimizedUI`, removed with the
feature_new_room_list flag. Drop it from MatrixChat's IState (and its
assignments), collapsing the hide/show_left_panel handlers to just the
`notifyLeftHandleResized()` call they still need, and from
LoggedInView's
IProps and the test props.

* fix(room-list): instantiate message previewers lazily

Removing the unused SettingsStore import from MessagePreviewStore (when
the
feature_new_room_list flag was dropped) changed module load order and
exposed a latent circular dependency: ReactionEventPreview imports
MessagePreviewStore, which eagerly did `new ReactionEventPreview()` at
module-eval — so importing ReactionEventPreview first (as its unit test
does) hit "ReactionEventPreview is not a constructor".

Construct the previewers lazily on first use (cached) instead of at
module
load, so nothing dereferences a mid-evaluation module. Fixes
ReactionEventPreview-test.

* test(room-list): remove `feature_new_room_list` labs flag in e2e tests

* chore: remove remaining `newRoomList` flag

* chore: cleanup theme files

* fix: restore the re-resizable TouchEvent polyfill

* chore: remove usage of breadcrumbs settings in BreadcrumbStore

* Revert "fix(room-list): instantiate message previewers lazily"

This reverts commit 4e6eedfff0449c68a96c0470a4eb425b5aec5512.

* chore: remove unused function in BreadCrumbStore

* test: remove unused fuction of BreadcrumStore in tests

* test: add tests for RoomResultContextMenu
2026-07-02 09:07:37 +00:00
486fa57b68 [Labs] Sign in with QR on new EW using generated QR for MSC4108 v2024 (#33184)
* PoC Sign in with QR on new EW using generated QR for MSC4108 v2024

* Revert package.json changes

* Prettier

* Fix i18n

* Tidy up

* Remove unused state variable

* Iterate tests

* Partial revert

* Iterate

* Wire up qr_login route

* Iterate UI

* Fix React dev mode double rendering issue

* Fix react key warning

* Hide flow header on login

* Re-roll qr code on channel expiry

* Switch to AbortSignal

* Improve auto-retry QR UX

* Ensure we only show sign in with QR button if enabled

* XXX: enable labs flag on Netlify builds

* Tweak QR code sizing

* Move qr login flow into a dialog to match designs

* Fix null deviceId

* Remove duplicate log

* Iterate

* Fix tests

* Fix types

* Fix tests

* Fix tests

* Make Netlify more useful

* Make Netlify more useful v2

* Update copy

* Refactor QR link flow to use new SDK methods

Requires https://github.com/matrix-org/matrix-js-sdk/pull/5283
For element-hq/wat-internal#188
Split out from https://github.com/element-hq/element-web/pull/33184

* Link to js-sdk branch

* Update tests

* Simplify

* Revert js-sdk linking

* Iterate

* Iterate

* Refactor to handle most of the TODOs

* Remove unused code

* Remove unused code

* Use js-sdk isSignInWithQRAvailable API to simplify code

* Restore app-test.ts

* Improve coverage

* Improve coverage

* Remove unused prop/state

* Iterate

* Fix tests

* Iterate

* Tests

* Handle TODOs

* Docs

* Remove redundant call to crossSignDevice()

* Workaround to remove training slash on the serverName before auto-discovery

* Revert "Workaround to remove training slash on the serverName before auto-discovery"

This reverts commit 0335a8fdd1b8e8d949ab7fca17c76f8fab335b58.

* setLoggedIn not to be used with OIDC flows as it clears storage

as per docs on setLoggedIn we should use restoreSessionFromStorage

* Don't show the security_code_prompt unconditionally(i.e. for the web logging in mobile flow)

* Update LoginWithQRFlow-test.tsx.snap

* Update MatrixChat-test from setLoggedInSpy to restoreSessionSpy

* Add todo for server switch

* Add todo about handling base URL or server name

* Handle server name or base URL being returned

* Format

* Fix loading state height

* Handle the homeserver URL differing during QR code login

* Comments

* Comments

* Register OIDC client ID after homeserver swap

* Make QrLoginDialog async to minimise the impact on bundle size

* Handle unsupported HS earlier in the flow

* Iterate

* Delint

* Fix test

* Discard changes to apps/web/element.io/develop/config.json

---------

Co-authored-by: Hugh Nimmo-Smith <hughns@element.io>
Co-authored-by: David Langley <langley.dave@gmail.com>
2026-06-04 13:50:17 +00:00
Travis RalstonandGitHub d5a0ac6014 Remove MSC3215 (Report to Moderators) labs feature (#33492)
* Remove MSC3215 (Report to Moderators) labs feature

T&S does not believe this is used, and intends to replace it during Reporting v2 anyway.

Original MSC: https://github.com/matrix-org/matrix-spec-proposals/pull/3215

New (WIP) MSC: https://github.com/matrix-org/matrix-spec-proposals/pull/4468

(This PR/commit doesn't add MSC4468 support because it's unclear if we should use MSC4468 directly or via another endpoint like MSC4457)

[MSC4457]: https://github.com/matrix-org/matrix-spec-proposals/pull/4457

* Remove unused state: isRoomEncrypted
2026-05-14 20:46:01 +00:00
4bee845010 Show user status in timeline (#32991)
* Use other branch

* All the changes that got lost

* Fix merge

* Ensure emoji can only be one character long

* Fixup labs feature

* Remove redundant check

* Update snapshot

* update snapshot

* add snapshot

* unpin

* fix pnpm lock

* undo pn[m lockfile changes altogether

as we shouldn't actually need any afaik

* update snpahot for changed IDs

* Snapshot update

* Snapshot update

* There is now another section

* more snapshots

* more snapshot

* More snapshots

* oh come on snapshots

* actual snapshot update

* Fix sonar issues

* just update the thing manually

* [screams internally]

* Update snapshot

* test for useUserStatus

* Make useUserStatus actually truncate

* Split out slash command to its own file

& add test

* Remove irrelevant comment

* doc

* Comment on non-obvious error message

---------

Co-authored-by: David Baker <dbkr@users.noreply.github.com>
2026-04-29 08:14:22 +00:00
Richard van der HoffandGitHub c4638d1773 Promote "Share encrypted history" from labs (#33281)
* Promote "Share encrypted history" from labs

* fix lint

* Update labs.md

* update snapshots

* Update unit tests

* update playwright screenshot
2026-04-23 16:04:09 +00:00
Will HuntandGitHub b54e4e3b98 Update beta documentation (#32757)
* Add missing feature_notification_settings2

* Update beta docs with stronger restrictions

* a note

* Update betas.md

* Update betas.md
2026-03-16 09:53:34 +00:00
ff3f069122 Provide a labs flag for encrypted state events (MSC3414) (#31513)
Signed-off-by: Skye Elliot <actuallyori@gmail.com>
Co-authored-by: Skye Elliot <actuallyori@gmail.com>
2025-12-18 14:45:52 +00:00
Johannes MarbachandGitHub 160a7c1ae3 Move rich topics out of labs / stabilise MSC3765 (#29817)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-04-28 16:05:36 +00:00
R Midhun SureshandGitHub 03a5ee1c5b New Room List: Create new labs flag (#29239)
* Create new labs flag

* Render empty room list view

* Reload on flag change

* Rename RoomList.tsx to LegacyRoomList.tsx

and rename NewRoomListView.tsx to RoomListView.tsx

* Update labs.md
2025-02-12 12:14:18 +00:00
Florian Duros 450ad1dd85 Remove feature_dehydration 2024-10-09 18:04:47 +02:00
Michael Telatynski 3baba1da65 Remove legacy room header
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-01 10:06:24 +01:00
Robin de02f04395 Update docs to reflect that you can join calls without the labs flags 2024-09-27 14:06:50 -04:00
Richard van der Hoff 38c0bf3b62 Remove outdated rust-crypto settings config
As of https://github.com/matrix-org/matrix-react-sdk/pull/12630, Rust crypto is
no longer subject to config settings; they are no longer supported in config.
2024-06-21 13:38:35 +01:00
Valere e46c4d06c3 Update develop configuration to migrate users to rust 2024-02-02 13:50:21 +01:00
David Langley 855bb568b9 rename the GH org in links within documentation 2023-12-20 12:21:26 +00:00
Johannes MarbachandGitHub 1575832766 Merge branch 'develop' into germain-gg/25884 2023-11-22 15:41:10 +01:00
3c3ec88bba Add feature_disable_call_per_sender_encryption documentation (in labs.md) (#26548)
* add feature_disable_call_per_sender_encryption doc

Co-authored-by: aceArt-GmbH <33117017+aceArt-GmbH@users.noreply.github.com>

---------

Signed-off-by: Timo K <toger5@hotmail.de>
Co-authored-by: aceArt-GmbH <33117017+aceArt-GmbH@users.noreply.github.com>
2023-11-17 17:38:13 +01:00
Subash-LamichhaneandGitHub b93db38a70 docs: fixed multiple typos (#26403) 2023-10-19 13:04:36 +00:00
GermainandGitHub dcc0f9fbf6 Document feature_notifications_panel labs flag (#25924) 2023-09-20 08:21:37 +01:00
Michael TelatynskiandGitHub 7f3d85c0c5 Remove Exploring public spaces from labs.md (#25991) 2023-08-21 10:39:16 +01:00
Charly NguyenandGitHub 15836ac5df Update labs.md for knock rooms (#25923) 2023-08-04 15:56:13 +01:00
GermainandGitHub 8fc0763391 Remove feature_right_panel_default_open (#25915) 2023-08-03 09:34:00 +00:00
GermainandGitHub a0558a8287 Document 'feature_new_room_decoration_ui' (#25890) 2023-08-01 08:32:59 +01:00
Germain bca63dead7 Remove documentation for 'feature_state_counters' 2023-07-31 11:46:02 +01:00
GermainandGitHub c1bbaf6c02 Removing stale labs flag (#25823) 2023-07-18 09:37:09 +01:00
GermainandGitHub 041747391c Deprecate new breadcrumbs (#25617) 2023-06-19 09:19:00 +01:00
Michael TelatynskiandGitHub 2d09b826d1 Remove feature_favourite_messages as it is has been abandoned for now (#25605) 2023-06-15 11:03:44 +01:00
Michael TelatynskiandGitHub f5452fb097 Delabs reaction message previews (#25109) 2023-04-27 15:29:55 +01:00
GermainandGitHub 6c3268ac84 Remove reference to threads in labs (#24591) 2023-02-21 07:19:22 +13:00
Richard van der HoffandGitHub deb1197503 labs.md: add notes about feature_rust_crypto (#24488) 2023-02-13 10:04:17 +00:00
Hugh Nimmo-SmithandGitHub e047e5d803 Description of QR code sign in labs feature (#23513) 2023-02-01 18:43:45 +00:00
Johannes Marbach c614c5bf13 Merge branch 'develop' into feature/default-pin-drop 2023-01-23 13:34:29 +01:00
Michael TelatynskiandGitHub 60d05f03a5 Update docs links (#23966)
* Update betas.md

* Update labs.md
2022-12-12 16:51:49 +00:00
Michael Weimann 7921a6cbf8 Apply prettier formatting 2022-12-09 13:28:29 +01:00
Šimon BrandnerandGitHub 76eb76f185 Add betas.md (#22734) 2022-11-30 14:02:09 -07:00
RobinandGitHub fd40c7a24a New group call experience: Documentation (#23344)
* Document the use_exclusively Element Call config flag

* Document the new group call experience Labs flag
2022-09-25 10:57:26 -04:00
RobinandGitHub fed77108e6 Element Call video rooms (#23246)
* Add an element_call_url config option

* Document feature_element_call_video_rooms
2022-09-16 15:13:05 +00:00
Šimon BrandnerandGitHub a302dba006 Remove docs for feature_message_right_click_context_menu (#22228) 2022-08-18 09:18:45 +02:00
Šimon BrandnerandGitHub 9df3774886 Remove forgotten line out of labs docs (#23017)
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2022-08-05 22:04:27 +02:00
Šimon BrandnerandGitHub 0ed179d94c Show current avatar and name for users in message history (#22447) 2022-08-05 15:38:11 +00:00
Šimon BrandnerandGitHub 039141f91c Remove docs for feature_hidden_read_receipts (#22242) 2022-08-05 17:34:01 +02:00
Johannes Marbach db3d10f731 Move pin drop out of labs (PSG-664)
Signed-off-by: Johannes Marbach <johannesm@element.io>
2022-08-04 15:36:17 +02:00
yaya-usman c10735ad04 Add docs for feature_favourite_messages 2022-07-12 14:59:21 +03:00
Šimon BrandnerandGitHub 659f41482b Add docs feature_exploring_public_spaces (#22612) 2022-06-24 17:08:39 +02:00
RobinandGitHub 0fd1bc7f5a Release video rooms as a beta feature (#21962)
* Update labs documentation for the video rooms beta

* Make video rooms opt-out on develop
2022-06-09 13:08:03 -04:00
0a8938db4e Add docs for feature_html_topic labs flag (#21671)
Signed-off-by: Johannes Marbach <johannesm@element.io>

Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-06-07 13:31:13 -06:00
Travis RalstonandGitHub e749bb3ce3 Remove docs for now-defunct labs flags (#22101) 2022-05-06 13:20:59 -06:00
Kat GerasimovaandGitHub abb31c9b01 Improve wording in the labs docs page (#22053)
Try to clarify what the previews are
2022-05-04 19:35:48 +01:00