Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do not filter users post search #9556

Merged
merged 5 commits into from
Jul 17, 2023
Merged

Conversation

maxmalek
Copy link
Contributor

@maxmalek maxmalek commented Nov 8, 2022

Signed-off-by: Maximilian Malek maximilian.malek@uni-graz.at

Fixes element-hq/element-web#24422

Checklist

  • Tests written for new code (and old code if feasible)
  • Linter and other CI checks pass
  • Sign-off given on the changes (see CONTRIBUTING.md)

Notes: Make sure users returned by the homeserver search API are displayed. Don't silently drop any.

Currently, Element only displays search results that contain the search term as substring, which is IMHO an anti-feature. This one-line change removes the filter for the people search and displays all results sent by the homeserver.

Pros:

  • Makes fuzzy search, regex search, etc possible (if handled by the server)
  • Actually displays what was returned by the API; does not silently drop legitimate search results
  • More control for homeservers

Cons:

  • Malicious homeservers may send garbage that is then actually shown

Ideally those other substring filters nearby should be removed entirely, but the user search is the biggest problem on my end right now so I've kept this PR to the minimum.

Background: I'm working on an identity server & search provider similar to ma1sd that handles the _matrix/client/r0/user_directory/search endpoint redirected via reverse proxy.
This means I'm able to inject users into the search that are not returned by synapse.
We've been using ma1sd's LDAP-based search extensively, but I ended up writing my own since ma1sd is too slow. Added fuzzy search, then realized element silently drops results it doesn't like.


Here's what your changelog entry will look like:

✨ Features

Signed-off-by: Maximilian Malek <maximilian.malek@uni-graz.at>
@maxmalek maxmalek requested a review from a team as a code owner November 8, 2022 17:04
@github-actions github-actions bot added the Z-Community-PR Issue is solved by a community member's PR label Nov 8, 2022
Copy link
Contributor

@SimonBrandner SimonBrandner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is going to require a design review to check we really want this behaviour

@@ -408,7 +408,7 @@ const SpotlightDialog: React.FC<IProps> = ({ initialText = "", initialFilter = n
!entry.query?.some(q => q.includes(lcQuery))
) return; // bail, does not match query
} else if (isMemberResult(entry)) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would prefer to remove the if statement completely

@SimonBrandner SimonBrandner requested a review from a team November 10, 2022 14:45
@SimonBrandner SimonBrandner added the T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements label Nov 10, 2022
maxmalek added a commit to maxmalek/ugreg that referenced this pull request Nov 29, 2022
Fuzzy search is pointless with clients that apply their own sort order
(and especially use an unstable sort, like element)

Hack to work around matrix-org/matrix-react-sdk#9556
@germain-gg germain-gg removed their request for review December 5, 2022 08:55
@HarHarLinks
Copy link
Contributor

Without digging into this code to deep, the file name indicates this is only the Spotlight search (i.e. what appears when you press Ctrl+K or the top left "fake input box button").

Would this not need to be changed for the "Start new chat" and "Invite to room" modals, too?

maxmalek added a commit to maxmalek/ugreg that referenced this pull request Mar 3, 2023
@daniellekirkwood
Copy link

I've tried comparing the netlify build with the product and can't see the difference here - could you give me an example of where and how this changes the user's experience? Thank you!

@@ -408,7 +408,7 @@ const SpotlightDialog: React.FC<IProps> = ({ initialText = "", initialFilter = n
!entry.query?.some(q => q.includes(lcQuery))
) return; // bail, does not match query
} else if (isMemberResult(entry)) {
if (!entry.query?.some(q => q.includes(lcQuery))) return; // bail, does not match query
// Do not filter users
Copy link
Member

@t3chguy t3chguy Mar 15, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment needs to say WHY (because we rely on the server to filter DIRECTORY results for us)

Copy link
Contributor

@HarHarLinks HarHarLinks Mar 22, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you elaborate why clientside filtering is done in the first place? I think the spec suggests nothing of the kind, and I think additional validation seems superfluous since the server should be trustworthy enough.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably a copy-pasta, but you'd need to ask whomever wrote it

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@HarHarLinks and me investigated it further and found the following:

The component has different sources for the users: (1) the results from the user profile endpoint and (2) all users that joined any room that I am in.

(1) was already server-side filtered using the user entered query:

useDebouncedCallback(filter === Filter.People, searchPeople, searchParams);

(2) is not pre-filtered, but every user is added to the possible user results:

for (const user of [...findVisibleRoomMembers(cli, msc3946ProcessDynamicPredecessor), ...users]) {
// Make sure we don't have any user more than once
if (alreadyAddedUserIds.has(user.userId)) continue;
alreadyAddedUserIds.add(user.userId);
userResults.push(toMemberResult(user));
}

The conditional in discussion is thus required to filter the users in (2):

} else if (isMemberResult(entry)) {
if (!entry.query?.some((q) => q.includes(lcQuery))) return; // bail, does not match query

However, this line will also filter the results that were already filtered by the server. This shouldn't be necessary because I would assume that we can trust that the homeserver returns proper results.

Proposal

We would propose some refactorings to remove the double-filtering of the server results:

  // ...
+ const localUsers = findVisibleRoomMembers(cli, msc3946ProcessDynamicPredecessor).filter(... apply the filtering by trimmedQuery ...);
+ for (const user of [...localUsers, ...users]) {
- for (const user of [...findVisibleRoomMembers(cli, msc3946ProcessDynamicPredecessor), ...users]) {
      // Make sure we don't have any user more than once
      if (alreadyAddedUserIds.has(user.userId)) continue;
      alreadyAddedUserIds.add(user.userId);
  
      userResults.push(toMemberResult(user));
  }
  
  // ...

With this change, the filtering of the possibleResults can be skipped:

- } else if (isMemberResult(entry)) {
-   if (!entry.query?.some((q) => q.includes(lcQuery))) return; // bail, does not match query

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Further, we suggest to add our use-case to the tests.

@pmaier1
Copy link

pmaier1 commented Mar 15, 2023

From a product POV, I think we want to move on with this as it makes progress towards better user discoverability. There are some unknowns which we'd like to clarify, though:

could you give me an example of where and how this changes the user's experience

Yes, that would be appreciated to better understand the change in behavior.

Would this not need to be changed for the "Start new chat" and "Invite to room" modals, too?

  1. I agree. The behavior of these components should be consistent. Please clarify.

Malicious homeservers may send garbage that is then actually shown

  1. From an engineering POV, are there risks from this change we might be overseeing? Is there a good reason for the current behavior?
  2. How do other clients behave? We'd want this behavior to be consistent cross-platform.

@HatoNordeck
Copy link

O.K., I try to give the use case, here, and why we need this change:
We want to implement a fuzzy search, which also enables search by user attributes in the LDAP, e.g. search by role in the Organization. This is an extension of the functionality at the Homeserver level. Therefor the clients should allow search results, which differ from the search string. A clientside validation is not meaningful and blocks a better serverside  search implementation.

Example fuzzy search:
Search String: Mathew Hodgson
Search Result: Matthew Hodgson, ID, Avatar 

Example search by attribute: 
Search String: COO
Search Result: Amandine Le Pape, ID, Avatar
Search Result 2: Christian Hauff, ID, Avatar 

Out of scope here, but next stage would be, to also allow more complex search result objects in the client, which contain also the found attribute and give transparency, why the person was found:
Search String: COO
Search Result: Amandine Le Pape, ID, Avatar, Role: COO
Search Result 2: Christian Hauff, ID, Avatar, Organisation: Coop

@daniellekirkwood
Copy link

O.K., I try to give the use case, here, and why we need this change: We want to implement a fuzzy search, which also enables search by user attributes in the LDAP, e.g. search by role in the Organization.

This was super helpful -- thank you!

@daniellekirkwood
Copy link

@SimonBrandner & @pmaier1 I think we're good to remove the Design Reviewer and instead add a Product one.

I'll do that now but feel free to comment if you think it still needs design input.

@daniellekirkwood daniellekirkwood requested review from a team and removed request for a team March 23, 2023 12:08
Copy link

@pmaier1 pmaier1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From a product POV this goes in the right direction 👍
Please still let us know whether there are other locations to be made consistent.

Copy link
Member

@t3chguy t3chguy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment/approach needs improving as per the earlier request

@HarHarLinks
Copy link
Contributor

HarHarLinks commented Apr 4, 2023

Would this not need to be changed for the "Start new chat" and "Invite to room" modals, too?

Those appear to not filter the results in the same way it is done in spotlight and hence already work for the use-case described by @HatoNordeck.

The android app "works" regarding this use-case from my point of view (it matches web's invite behavior, and to my knowledge it does not have a secondary "spotlight" search as web does).

iOS remains untested by myself as I don't have Apple hardware.

@MTRNord
Copy link
Contributor

MTRNord commented Apr 5, 2023

iOS remains untested by myself as I don't have Apple hardware.

I tested it with the Bundesmessenger fork (It has no changes in this UI part) and it seems to work just fine for the User invite dialogs. There don't seem to be any other searches that accept User searches in the first place. They are not filtering any of the results.

@HarHarLinks
Copy link
Contributor

Progress update: I talked to OP out of band about following up on this request. We decided that as soon as we (Nordeck) feel confident enough about having tested our proposed amendment (#9556 (comment)) we are going to open our own PR which is to supersede this one.

@t3chguy t3chguy marked this pull request as ready for review July 17, 2023 13:46
@t3chguy t3chguy added this pull request to the merge queue Jul 17, 2023
Merged via the queue into matrix-org:develop with commit f1db2b3 Jul 17, 2023
70 checks passed
t3chguy added a commit that referenced this pull request Jul 18, 2023
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Aug 25, 2023
Changes in [1.11.39](https://github.com/vector-im/element-web/releases/tag/v1.11.39) (2023-08-15)
=================================================================================================

## 🦖 Deprecations
 * Deprecate camelCase config options ([\#25800](element-hq/element-web#25800)).
 * Deprecate customisations in favour of Module API ([\#25736](element-hq/element-web#25736)). Fixes #25733.

## ✨ Features
 * Update labs.md for knock rooms ([\#25923](element-hq/element-web#25923)). Contributed by @charlynguyen.
 * Package release builds of element-web in package.element.io debs ([\#25198](element-hq/element-web#25198)).
 * Allow knocking rooms ([\#11353](matrix-org/matrix-react-sdk#11353)). Contributed by @charlynguyen.
 * Support adding space-restricted joins on rooms not members of those spaces ([\#9017](matrix-org/matrix-react-sdk#9017)). Fixes #19213.
 * Clear requiresClient and show pop-out if widget-api fails to ready ([\#11321](matrix-org/matrix-react-sdk#11321)). Fixes vector-im/customer-retainer#73.
 * Bump pagination sizes due to hidden events ([\#11342](matrix-org/matrix-react-sdk#11342)).
 * Remove display of key backup signatures from backup settings ([\#11333](matrix-org/matrix-react-sdk#11333)).
 * Use PassphraseFields in ExportE2eKeysDialog to enforce minimum passphrase complexity ([\#11222](matrix-org/matrix-react-sdk#11222)). Fixes #9478.

## 🐛 Bug Fixes
 * Fix "Export chat" not respecting configured time format in plain text mode ([\#10696](matrix-org/matrix-react-sdk#10696)). Fixes #23838. Contributed by @rashmitpankhania.
 * Fix some missing 1-count pluralisations around event list summaries ([\#11371](matrix-org/matrix-react-sdk#11371)). Fixes #25925.
 * Fix create subspace dialog not working for public space creation ([\#11367](matrix-org/matrix-react-sdk#11367)). Fixes #25916.
 * Search for users on paste ([\#11304](matrix-org/matrix-react-sdk#11304)). Fixes #17523. Contributed by @peterscheu-aceart.
 * Fix AppTile context menu not always showing up when it has options ([\#11358](matrix-org/matrix-react-sdk#11358)). Fixes #25914.
 * Fix clicking on home all rooms space notification not working ([\#11337](matrix-org/matrix-react-sdk#11337)). Fixes #22844.
 * Fix joining a suggested room switching space away ([\#11347](matrix-org/matrix-react-sdk#11347)). Fixes #25838.
 * Fix home/all rooms context menu in space panel ([\#11350](matrix-org/matrix-react-sdk#11350)). Fixes #25896.
 * Make keyboard handling in and out of autocomplete completions consistent ([\#11344](matrix-org/matrix-react-sdk#11344)). Fixes #25878.
 * De-duplicate reactions by sender to account for faulty/malicious servers ([\#11340](matrix-org/matrix-react-sdk#11340)). Fixes #25872.
 * Fix disable_3pid_login being ignored for the email field ([\#11335](matrix-org/matrix-react-sdk#11335)). Fixes #25863.
 * Upgrade wysiwyg editor for ctrl+backspace windows fix ([\#11324](matrix-org/matrix-react-sdk#11324)). Fixes vector-im/verticals-internal#102.
 * Unhide the view source event toggle - it works well enough ([\#11336](matrix-org/matrix-react-sdk#11336)). Fixes #25861.

Changes in [1.11.38](https://github.com/vector-im/element-web/releases/tag/v1.11.38) (2023-08-04)
=================================================================================================

## ✨ Features
 * Package release builds of element-web in package.element.io debs ([\#25198](element-hq/element-web#25198)).

## 🐛 Bug Fixes
 * Revert to using the /presence API for presence ([\#11366](matrix-org/matrix-react-sdk#11366))

Changes in [1.11.37](https://github.com/vector-im/element-web/releases/tag/v1.11.37) (2023-08-01)
=================================================================================================

## 🦖 Deprecations
 * Deprecate camelCase config options ([\#25800](element-hq/element-web#25800)).
 * Deprecate customisations in favour of Module API ([\#25736](element-hq/element-web#25736)). Fixes #25733.

## ✨ Features
 * Do not show "Forget room" button in Room View header for guest users ([\#10898](matrix-org/matrix-react-sdk#10898)). Contributed by @spantaleev.
 * Switch to updating presence via /sync calls instead of PUT /presence ([\#11223](matrix-org/matrix-react-sdk#11223)). Fixes #20809 #13877 and #4813.
 * Fix blockquote colour contrast ([\#11299](matrix-org/matrix-react-sdk#11299)). Fixes matrix-org/element-web-rageshakes#21800.
 * Don't hide room header buttons in video rooms and rooms with a call ([\#9712](matrix-org/matrix-react-sdk#9712)). Fixes #23900.
 * OIDC: Persist details in session storage, create store ([\#11302](matrix-org/matrix-react-sdk#11302)). Fixes #25710. Contributed by @kerryarchibald.
 * Allow setting room join rule to knock ([\#11248](matrix-org/matrix-react-sdk#11248)). Contributed by @charlynguyen.
 * Retry joins on 524 (Cloudflare timeout) also ([\#11296](matrix-org/matrix-react-sdk#11296)). Fixes #8776.
 * Make sure users returned by the homeserver search API are displayed. Don't silently drop any. ([\#9556](matrix-org/matrix-react-sdk#9556)). Fixes #24422. Contributed by @maxmalek.
 * Offer to unban user during invite if inviter has sufficient permissions ([\#11256](matrix-org/matrix-react-sdk#11256)). Fixes #3222.
 * Split join and goto slash commands, the latter shouldn't auto_join ([\#11259](matrix-org/matrix-react-sdk#11259)). Fixes #10128.
 * Integration work for rich text editor 2.3.1 ([\#11172](matrix-org/matrix-react-sdk#11172)). Contributed by @alunturner.
 * Compound color pass ([\#11079](matrix-org/matrix-react-sdk#11079)). Fixes vector-im/internal-planning#450 and #25547.
 * Warn when demoting self via /op and /deop slash commands ([\#11214](matrix-org/matrix-react-sdk#11214)). Fixes #13726.

## 🐛 Bug Fixes
 * Correct Jitsi preferred_domain property ([\#25813](element-hq/element-web#25813)). Contributed by @benbz.
 * Fix edge case with sent indicator being drawn when it shouldn't be ([\#11320](matrix-org/matrix-react-sdk#11320)).
 * Use correct translation function for WYSIWYG buttons ([\#11315](matrix-org/matrix-react-sdk#11315)). Fixes vector-im/verticals-internal#109.
 * Handle empty own profile ([\#11319](matrix-org/matrix-react-sdk#11319)). Fixes #25510.
 * Fix peeked rooms showing up in historical ([\#11316](matrix-org/matrix-react-sdk#11316)). Fixes #22473.
 * Ensure consistency when rendering the sent event indicator ([\#11314](matrix-org/matrix-react-sdk#11314)). Fixes #17937.
 * Prevent re-filtering user directory results in spotlight ([\#11290](matrix-org/matrix-react-sdk#11290)). Fixes #24422.
 * Fix GIF label on dark theme ([\#11312](matrix-org/matrix-react-sdk#11312)). Fixes #25836.
 * Fix issues around room notification settings flaking out ([\#11306](matrix-org/matrix-react-sdk#11306)). Fixes #16472 #21309 and #6828.
 * Fix invite dialog showing the same user multiple times ([\#11308](matrix-org/matrix-react-sdk#11308)). Fixes #25578.
 * Don't show composer send button if user cannot send ([\#11298](matrix-org/matrix-react-sdk#11298)). Fixes #25825.
 * Restore color for sender in imageview ([\#11289](matrix-org/matrix-react-sdk#11289)). Fixes #25822.
 * Fix changelog dialog heading size ([\#11286](matrix-org/matrix-react-sdk#11286)). Fixes #25789.
 * Restore offline presence badge color ([\#11287](matrix-org/matrix-react-sdk#11287)). Fixes #25792.
 * Fix bubble message layout avatar overlap ([\#11284](matrix-org/matrix-react-sdk#11284)). Fixes #25818.
 * Fix voice call tile size ([\#11285](matrix-org/matrix-react-sdk#11285)). Fixes #25684.
 * Fix layout of sessions tab buttons ([\#11279](matrix-org/matrix-react-sdk#11279)). Fixes #25545.
 * Don't bother showing redundant tooltip on space menu ([\#11276](matrix-org/matrix-react-sdk#11276)). Fixes #20380.
 * Remove reply fallback from notifications ([\#11278](matrix-org/matrix-react-sdk#11278)). Fixes #17859.
 * Populate info.duration for audio & video file uploads ([\#11225](matrix-org/matrix-react-sdk#11225)). Fixes #17720.
 * Hide widget menu button if it there are no options available ([\#11257](matrix-org/matrix-react-sdk#11257)). Fixes #24826.
 * Fix colour regressions ([\#11273](matrix-org/matrix-react-sdk#11273)). Fixes #25788, #25808 #25811 and #25812.
 * Fix room view not properly maintaining scroll position ([\#11274](matrix-org/matrix-react-sdk#11274)). Fixes #25810.
 * Prevent user from accidentally double clicking user info admin actions ([\#11254](matrix-org/matrix-react-sdk#11254)). Fixes #10944.
 * Fix missing metaspace notification badges ([\#11269](matrix-org/matrix-react-sdk#11269)). Fixes #25679.
 * Fix clicking MXID in timeline going to matrix.to ([\#11263](matrix-org/matrix-react-sdk#11263)). Fixes #23342.
 * Restoring optional ligatures by resetting letter-spacing ([\#11202](matrix-org/matrix-react-sdk#11202)). Fixes #25727.
 * Allow emoji presentation selector to not break BigEmoji styling ([\#11253](matrix-org/matrix-react-sdk#11253)). Fixes #17848.
 * Make event highliht use primary content token ([\#11255](matrix-org/matrix-react-sdk#11255)).
 * Fix event info events size and color ([\#11252](matrix-org/matrix-react-sdk#11252)). Fixes #25778.
 * Fix color mapping for blockquote border ([\#11251](matrix-org/matrix-react-sdk#11251)). Fixes #25782.
 * Strip emoji variation when searching emoji by emoji ([\#11221](matrix-org/matrix-react-sdk#11221)). Fixes #18703.
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Aug 31, 2023
Changes in [1.11.39](https://github.com/vector-im/element-web/releases/tag/v1.11.39) (2023-08-15)
=================================================================================================

## 🦖 Deprecations
 * Deprecate camelCase config options ([\#25800](element-hq/element-web#25800)).
 * Deprecate customisations in favour of Module API ([\#25736](element-hq/element-web#25736)). Fixes #25733.

## ✨ Features
 * Update labs.md for knock rooms ([\#25923](element-hq/element-web#25923)). Contributed by @charlynguyen.
 * Package release builds of element-web in package.element.io debs ([\#25198](element-hq/element-web#25198)).
 * Allow knocking rooms ([\#11353](matrix-org/matrix-react-sdk#11353)). Contributed by @charlynguyen.
 * Support adding space-restricted joins on rooms not members of those spaces ([\#9017](matrix-org/matrix-react-sdk#9017)). Fixes #19213.
 * Clear requiresClient and show pop-out if widget-api fails to ready ([\#11321](matrix-org/matrix-react-sdk#11321)). Fixes vector-im/customer-retainer#73.
 * Bump pagination sizes due to hidden events ([\#11342](matrix-org/matrix-react-sdk#11342)).
 * Remove display of key backup signatures from backup settings ([\#11333](matrix-org/matrix-react-sdk#11333)).
 * Use PassphraseFields in ExportE2eKeysDialog to enforce minimum passphrase complexity ([\#11222](matrix-org/matrix-react-sdk#11222)). Fixes #9478.

## 🐛 Bug Fixes
 * Fix "Export chat" not respecting configured time format in plain text mode ([\#10696](matrix-org/matrix-react-sdk#10696)). Fixes #23838. Contributed by @rashmitpankhania.
 * Fix some missing 1-count pluralisations around event list summaries ([\#11371](matrix-org/matrix-react-sdk#11371)). Fixes #25925.
 * Fix create subspace dialog not working for public space creation ([\#11367](matrix-org/matrix-react-sdk#11367)). Fixes #25916.
 * Search for users on paste ([\#11304](matrix-org/matrix-react-sdk#11304)). Fixes #17523. Contributed by @peterscheu-aceart.
 * Fix AppTile context menu not always showing up when it has options ([\#11358](matrix-org/matrix-react-sdk#11358)). Fixes #25914.
 * Fix clicking on home all rooms space notification not working ([\#11337](matrix-org/matrix-react-sdk#11337)). Fixes #22844.
 * Fix joining a suggested room switching space away ([\#11347](matrix-org/matrix-react-sdk#11347)). Fixes #25838.
 * Fix home/all rooms context menu in space panel ([\#11350](matrix-org/matrix-react-sdk#11350)). Fixes #25896.
 * Make keyboard handling in and out of autocomplete completions consistent ([\#11344](matrix-org/matrix-react-sdk#11344)). Fixes #25878.
 * De-duplicate reactions by sender to account for faulty/malicious servers ([\#11340](matrix-org/matrix-react-sdk#11340)). Fixes #25872.
 * Fix disable_3pid_login being ignored for the email field ([\#11335](matrix-org/matrix-react-sdk#11335)). Fixes #25863.
 * Upgrade wysiwyg editor for ctrl+backspace windows fix ([\#11324](matrix-org/matrix-react-sdk#11324)). Fixes vector-im/verticals-internal#102.
 * Unhide the view source event toggle - it works well enough ([\#11336](matrix-org/matrix-react-sdk#11336)). Fixes #25861.

Changes in [1.11.38](https://github.com/vector-im/element-web/releases/tag/v1.11.38) (2023-08-04)
=================================================================================================

## ✨ Features
 * Package release builds of element-web in package.element.io debs ([\#25198](element-hq/element-web#25198)).

## 🐛 Bug Fixes
 * Revert to using the /presence API for presence ([\#11366](matrix-org/matrix-react-sdk#11366))

Changes in [1.11.37](https://github.com/vector-im/element-web/releases/tag/v1.11.37) (2023-08-01)
=================================================================================================

## 🦖 Deprecations
 * Deprecate camelCase config options ([\#25800](element-hq/element-web#25800)).
 * Deprecate customisations in favour of Module API ([\#25736](element-hq/element-web#25736)). Fixes #25733.

## ✨ Features
 * Do not show "Forget room" button in Room View header for guest users ([\#10898](matrix-org/matrix-react-sdk#10898)). Contributed by @spantaleev.
 * Switch to updating presence via /sync calls instead of PUT /presence ([\#11223](matrix-org/matrix-react-sdk#11223)). Fixes #20809 #13877 and #4813.
 * Fix blockquote colour contrast ([\#11299](matrix-org/matrix-react-sdk#11299)). Fixes matrix-org/element-web-rageshakes#21800.
 * Don't hide room header buttons in video rooms and rooms with a call ([\#9712](matrix-org/matrix-react-sdk#9712)). Fixes #23900.
 * OIDC: Persist details in session storage, create store ([\#11302](matrix-org/matrix-react-sdk#11302)). Fixes #25710. Contributed by @kerryarchibald.
 * Allow setting room join rule to knock ([\#11248](matrix-org/matrix-react-sdk#11248)). Contributed by @charlynguyen.
 * Retry joins on 524 (Cloudflare timeout) also ([\#11296](matrix-org/matrix-react-sdk#11296)). Fixes #8776.
 * Make sure users returned by the homeserver search API are displayed. Don't silently drop any. ([\#9556](matrix-org/matrix-react-sdk#9556)). Fixes #24422. Contributed by @maxmalek.
 * Offer to unban user during invite if inviter has sufficient permissions ([\#11256](matrix-org/matrix-react-sdk#11256)). Fixes #3222.
 * Split join and goto slash commands, the latter shouldn't auto_join ([\#11259](matrix-org/matrix-react-sdk#11259)). Fixes #10128.
 * Integration work for rich text editor 2.3.1 ([\#11172](matrix-org/matrix-react-sdk#11172)). Contributed by @alunturner.
 * Compound color pass ([\#11079](matrix-org/matrix-react-sdk#11079)). Fixes vector-im/internal-planning#450 and #25547.
 * Warn when demoting self via /op and /deop slash commands ([\#11214](matrix-org/matrix-react-sdk#11214)). Fixes #13726.

## 🐛 Bug Fixes
 * Correct Jitsi preferred_domain property ([\#25813](element-hq/element-web#25813)). Contributed by @benbz.
 * Fix edge case with sent indicator being drawn when it shouldn't be ([\#11320](matrix-org/matrix-react-sdk#11320)).
 * Use correct translation function for WYSIWYG buttons ([\#11315](matrix-org/matrix-react-sdk#11315)). Fixes vector-im/verticals-internal#109.
 * Handle empty own profile ([\#11319](matrix-org/matrix-react-sdk#11319)). Fixes #25510.
 * Fix peeked rooms showing up in historical ([\#11316](matrix-org/matrix-react-sdk#11316)). Fixes #22473.
 * Ensure consistency when rendering the sent event indicator ([\#11314](matrix-org/matrix-react-sdk#11314)). Fixes #17937.
 * Prevent re-filtering user directory results in spotlight ([\#11290](matrix-org/matrix-react-sdk#11290)). Fixes #24422.
 * Fix GIF label on dark theme ([\#11312](matrix-org/matrix-react-sdk#11312)). Fixes #25836.
 * Fix issues around room notification settings flaking out ([\#11306](matrix-org/matrix-react-sdk#11306)). Fixes #16472 #21309 and #6828.
 * Fix invite dialog showing the same user multiple times ([\#11308](matrix-org/matrix-react-sdk#11308)). Fixes #25578.
 * Don't show composer send button if user cannot send ([\#11298](matrix-org/matrix-react-sdk#11298)). Fixes #25825.
 * Restore color for sender in imageview ([\#11289](matrix-org/matrix-react-sdk#11289)). Fixes #25822.
 * Fix changelog dialog heading size ([\#11286](matrix-org/matrix-react-sdk#11286)). Fixes #25789.
 * Restore offline presence badge color ([\#11287](matrix-org/matrix-react-sdk#11287)). Fixes #25792.
 * Fix bubble message layout avatar overlap ([\#11284](matrix-org/matrix-react-sdk#11284)). Fixes #25818.
 * Fix voice call tile size ([\#11285](matrix-org/matrix-react-sdk#11285)). Fixes #25684.
 * Fix layout of sessions tab buttons ([\#11279](matrix-org/matrix-react-sdk#11279)). Fixes #25545.
 * Don't bother showing redundant tooltip on space menu ([\#11276](matrix-org/matrix-react-sdk#11276)). Fixes #20380.
 * Remove reply fallback from notifications ([\#11278](matrix-org/matrix-react-sdk#11278)). Fixes #17859.
 * Populate info.duration for audio & video file uploads ([\#11225](matrix-org/matrix-react-sdk#11225)). Fixes #17720.
 * Hide widget menu button if it there are no options available ([\#11257](matrix-org/matrix-react-sdk#11257)). Fixes #24826.
 * Fix colour regressions ([\#11273](matrix-org/matrix-react-sdk#11273)). Fixes #25788, #25808 #25811 and #25812.
 * Fix room view not properly maintaining scroll position ([\#11274](matrix-org/matrix-react-sdk#11274)). Fixes #25810.
 * Prevent user from accidentally double clicking user info admin actions ([\#11254](matrix-org/matrix-react-sdk#11254)). Fixes #10944.
 * Fix missing metaspace notification badges ([\#11269](matrix-org/matrix-react-sdk#11269)). Fixes #25679.
 * Fix clicking MXID in timeline going to matrix.to ([\#11263](matrix-org/matrix-react-sdk#11263)). Fixes #23342.
 * Restoring optional ligatures by resetting letter-spacing ([\#11202](matrix-org/matrix-react-sdk#11202)). Fixes #25727.
 * Allow emoji presentation selector to not break BigEmoji styling ([\#11253](matrix-org/matrix-react-sdk#11253)). Fixes #17848.
 * Make event highliht use primary content token ([\#11255](matrix-org/matrix-react-sdk#11255)).
 * Fix event info events size and color ([\#11252](matrix-org/matrix-react-sdk#11252)). Fixes #25778.
 * Fix color mapping for blockquote border ([\#11251](matrix-org/matrix-react-sdk#11251)). Fixes #25782.
 * Strip emoji variation when searching emoji by emoji ([\#11221](matrix-org/matrix-react-sdk#11221)). Fixes #18703.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements Z-Community-PR Issue is solved by a community member's PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

The user search does not work.
9 participants