Commit Graph
70134 Commits
Author SHA1 Message Date
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2ae68b8b20 Update aws-actions/configure-aws-credentials digest to e6de054 (#34411)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-24 09:28:30 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
cbd59b5119 Update zizmorcore/zizmor-action action to v0.6.1 (#34414)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-24 09:16:25 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
671b1258fe Update dependency @element-hq/element-call-embedded to v0.22.0 (#34415)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-24 09:15:42 +00:00
5bcfe5aee6 [create-pull-request] automated change (#34409)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-07-24 07:21:47 +00:00
Michael TelatynskiandGitHub 106d6024b2 Remove support for MSC3391 & MSC3852 (#34400)
* Remove support for MSC3391 & MSC3852

As they were both rejected & closed.

Synapse already removed support for MSC3852 which means it already did nothing: https://github.com/element-hq/synapse/pull/19430

* Update snapshot
2026-07-23 13:18:00 +00:00
David BakerandGitHub f3033e91db Bump compound-web to 9.9.0 (#34398)
* Bump compound-web to 9.9.0

For max menu width

* fix pnpm again

* snapshot

* Snapshots
2026-07-23 13:09:55 +00:00
Florian DurosandGitHub 2d07c591e3 Use correct color for cancel button in dialog (#34308)
* Use secondary style for cancel button in dialog

* Update snapshots

* Update screenshots

* Update screenshots
2026-07-23 12:41:17 +00:00
Richard van der HoffandGitHub 8dc1965d15 Fix docs and build script for desktop build (#34395)
* Fix some documentation for element-desktop

Some of these links got broken, or outdated, during the monorepo switch.

* Fix desktop docker build script

It will fail with 'workspace_node_modules: no such file or directory' if the
directory does not exist.

This got broken by https://github.com/element-hq/element-web/pull/33641.

* Clarify native modules doc

Most of this stuff does not apply when using the docker build.

* update snapshot
2026-07-23 11:11:59 +00:00
Richard van der HoffandGitHub 19e72d28fc Update to Seshat 5.0.0 (#34396) 2026-07-23 10:55:28 +00:00
2430e0ab8b Move some of the slowest tests from jest to vitest (#34277)
* Remove doubled-up I18n Provider. ModalManager already provides this.

* Reconfigure svgr into a vite-friendly `?react` resource query

* Move InviteDialog test to vitest

* Move RoomHeader tests to Vitest

* Share serializer between Jest & Vitest

* Attempt to stabilise InviteDialog test

* Fix async leaks

* Iterate based on copilot review

* Fix InviteDialog throttle

* Iterate

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Fix lockfile

* Iterate

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-07-22 13:18:04 +00:00
David LangleyandGitHub 5b0fd416fd Add ellipsis and title to spotlight search results (#34379) 2026-07-22 13:11:38 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
5603ae02d9 Update npm non-major dependencies (#34377)
* Update npm non-major dependencies

* Iterate

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-07-22 12:00:53 +00:00
Michael TelatynskiandGitHub 49a2bdd7e4 Replace legacy $spacing-X vars with Compound Design Tokens (#34380)
* Replace legacy `$spacing-X` vars with Compound Design Tokens

* Remove unused font size vars

* Use calc to get negative spacing vars
2026-07-22 10:10:57 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ef8cfda6fe Update react (#34367)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-22 10:00:05 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
5ab293aa98 Update dependency vite to v8.1.5 (#34366)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-22 09:20:09 +00:00
Michael TelatynskiandGitHub 7e8daab9ee Tweak CSS bundling to dedupe more styles (#34371)
* Tweak CSS bundling to dedupe more styles

Previously all of compound-web & compound-design-tokens were duplicated amongst all the themes rather than just being in `bundle.css`.

* Fix highlight.js & github-markdown-css dark/light

* Fix highlight.js & github-markdown-css dark/light

* Iterate
2026-07-22 09:08:27 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
a64c8c5020 Update dependency eslint-plugin-storybook to v10.5.2 (#34365)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-07-22 08:40:31 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4d5dd1554a Update testcontainers docker digests (#34376)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-22 08:08:28 +00:00
be8c07699b [create-pull-request] automated change (#34374)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-07-22 08:08:17 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
5db9e3101a Update actions/setup-python action to v7 (#34378)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-22 08:06:53 +00:00
R Midhun SureshandGitHub 3bff251010 Auto Collapse Behaviour - Collapse left panel on window resize (#32964)
* Add functionality to UIStore

- Make it possible to query if the window is currently being resized
- Emit WidthIncreased/WidthDecreased events

* Change resize behaviour of panel

So that the panel does not become smaller when the window is resized.
This is consistent with the old room-list design.

* Introduce a `CollapseHandler` object

This should be used by the collapse behaviours to collapse/expand the
panel. There's a good reason to not have the behaviours depend directly
on the react-resizable-panels API methods: We dont want the collapse/expand
calls to conflict with each other. See the comments in the code for more
information.

* Introduce a base class for collapse behaviour logic

Behaviours should extend this class to describe when the panel should
automatically collapse and expand.

* Add the window resize collapse behaviour

* Create a central file from which to export all behaviours

* Add a class to orchestrate the collapse behaviours

ResizerViewModel will only have a dependency on this class.

* Collapse panel on app start if necessary

For eg, if the app is started with a small window width, the panel should be
collapsed.

* Wire auto collapse code into the viewmodel

* Write jest tests

* Fix e2e tests

* Fix lint error

* Fix e2e test failures

* Expand the panel before taking screenshot

Fixes incorrect narrow screenshots in RTE.spec.ts and CIDER.spec.ts

* Make comments consistent

* Move tests from jest to vitest

* Fix lint errors

* Improve comment

* Remove variable

* Remove mock

* Fix comment formatting
2026-07-21 16:37:28 +00:00
Florian DurosandGitHub 363ef74248 Room list: change Edit section label to Save in edit section dialog (#34364)
* Change `Edit section` label to `Save` in edit section dialog

* Update e2e tests
2026-07-21 15:39:42 +00:00
Michael Telatynski c80d39a182 Reset matrix-js-sdk back to develop branch 2026-07-21 15:32:18 +00:00
Michael Telatynski bc76609239 Merge remote-tracking branch 'origin/master' into develop
# Conflicts:
#	pnpm-lock.yaml
2026-07-21 15:31:08 +00:00
David BakerandGitHub 8effa81ad8 Set auto on-a-call status (#34306)
* Support for reading m.call status

(well, the prefixed version)

* Abstract the details away in userStatusFromProfile

make the validate functions non-exported

* Write on on-=a-call status

* Add tests

* Move user call status logic to its own listener

* Move tests

* use vi rather than jest

* add more mocks

* call async
2026-07-21 14:58:00 +00:00
RiotRobot dea10bf390 v1.12.24 2026-07-21 14:06:59 +00:00
Michael TelatynskiandGitHub 89bb6a1124 Fix resolution path for eslint-plugin-element-call 2026-07-21 14:55:53 +01:00
RiotRobot 79e46aa8e7 Upgrade dependency to matrix-js-sdk@42.0.0 2026-07-21 13:52:07 +00:00
Will HuntandGitHub a509a32a5c Publish storybook to netlify. (#34343) 2026-07-21 11:22:21 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e4bb560808 Update storybook to v10.5.2 (#34354)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-21 10:22:40 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
3fce982a1d Update testcontainers docker digests (#34352)
* Update testcontainers docker digests

* Update screenshot for default room version change

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-07-21 10:02:50 +00:00
Florian DurosandGitHub 475d16094c Room list: increase startup performance when rooms have notifications (#34358)
* Throttle section header update when listening to room notifications

* Update room list section header tests
2026-07-20 15:35:57 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f0c4f6a312 Update dependency electron to v43.1.1 (#34353)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-20 13:57:55 +00:00
Michael TelatynskiandGitHub b719f531dd Migrate more tests to vitest (#34349) 2026-07-20 13:07:35 +00:00
6c2c962588 Collapsed URL previews in timeline (#34165)
* 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

* Collpased URL previews in timeline

* CSS for collapsed URL previews

* fixed typo thing?

* update class for this component

* remove dead code from css

* 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

* one slow preview no longer blocks up the current batch of previews from loading

* show failed and loading url previews

* collapsed urlpreview styles to match the expanded preview

* css formtting

* composer url preview summary bar

* prefer site icon

* Revert "Merge branch 'url-preview-loading-indicator' into collapsed-url-previews"

This reverts commit b7a1ccb0e74661458e16c128814ba1939bdf400e, reversing
changes made to 1340b216407cf9af95741174819f97a144c13bb3.

* updated shared-components Punit test snapshots

* updated snapshots

* wait for tall image to load before capturing snapshot (claude wrote this)

* try remove requestanimation frame

* use semantic tokens instead of specifying hard values in some places

* Update packages/shared-components/src/room/timeline/event-tile/UrlPreviewGroupView/LinkPreview/LinkPreview.tsx

Co-authored-by: Florian Duros <florian.duros@ormaz.fr>

* changed css so previews looks less horrendous on different front sizes, particularly very small font sizes

* updated unit test snapshots

* regenerated playwright story screenshots

---------

Co-authored-by: Florian Duros <florian.duros@ormaz.fr>
2026-07-20 09:39:48 +00:00
SiriusandGitHub 63eaba6b07 Include the url preview bundle field in the devtools timeline event editor (#34289)
* added urlpreview field in event editor

* oxfmt

* claude wrote test!

* handled reviews

* oxlint fix

* formatting

* removed useless stubclient
2026-07-20 09:17:51 +00:00
d254b41eaf [create-pull-request] automated change (#34342)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-07-20 07:38:30 +00:00
dd7c9ed6fe Widen the macOS title-bar drag strips so the window is easy to move (#33991)
* Widen the macOS title-bar drag strips so the window is easy to move

With titleBarStyle: "hidden" there is no native title bar, so the macOS window can only be
moved via the -webkit-app-region: drag strips above the room and left-panel headers. Those
strips were only ~13-24px tall and too thin to reliably grab, making the window awkward to
move.

Raise the drag strips above the room, left-panel and space headers to 32px (matching the
traffic-light offset already used elsewhere in the file) for a comfortable grab zone;
interactive controls keep -webkit-app-region: no-drag so they stay clickable. The injected CSS
is also extracted into a pure buildTitleBarCss() helper so the string contract can be
unit-tested.

* Address review: use author copyright, cover setupMacosTitleBar, drop dead selector

Use my own copyright on the new test file rather than New Vector's.

Add tests for setupMacosTitleBar() itself: the platform guard and the
enter-full-screen / leave-full-screen / did-finish-load lifecycle were
previously never executed, leaving the diff below the 80% coverage gate.

Drop the .mx_LeftPanel_newRoomList::before rule: #34040 removed that class
from the product, so the rule matched nothing and the border-right it carried
was silently lost from the left panel. Fold it back into .mx_LeftPanel::before,
with a regression test covering the separator.

---------

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-07-17 16:25:14 +00:00
13aa6fcc46 Warn when an encrypted search runs before the index has finished building (#34001)
* Warn when an encrypted search runs before the index has finished building

When a search runs in an encrypted room while the local Seshat index is still
crawling not-yet-indexed history, results can silently come back partial.
SearchWarning now subscribes to the event index's changedCheckpoint progress and
shows a polite (role=status) notice while the crawl is in progress, clearing
automatically the moment indexing finishes.

* Scope the partial-index warning to the room being searched

The warning was driven by `currentRoom() !== null`, which is a global signal:
it is non-null while the crawler has any outstanding checkpoint for any room.
Searching a fully-crawled room while an unrelated room was still being crawled
therefore claimed the results may be incomplete when they were not.

Drive it from `crawlingRooms()` instead, which reports the rooms with
outstanding checkpoints by id, and pass the search scope and room id in from
RoomSearchAuxPanel: a room-scoped search now asks only about that room, while
an all-rooms search still reacts to any outstanding checkpoint. Using room ids
throughout also avoids `currentRoom()` returning null, and so under-reporting a
crawl, when the js-sdk does not know the room at the head of the queue.

The `changedCheckpoint` payload only carries the globally-current room and
cannot answer a per-room question, so the handler re-reads the checkpoint set.

* Also warn when the searched room has not been indexed at all

The crawl set cannot see a room that has no checkpoint: before the initial
checkpoints have been seeded, such a room is absent from it and looks identical
to one that has been fully crawled. That is the case issue #32253 describes, so
ask isRoomIndexed() as well, and warn when the index holds no events for the
room being searched.

Only ask it while the crawler still has work outstanding. That is what the
warning claims, and the index has no event for its contents changing --
changedCheckpoint fires on checkpoint transitions only, and an idle crawler is
silent -- so a warning raised once the crawler had drained would never be
re-evaluated and would stick.

Rename the hook to useIsIndexIncomplete, as it no longer answers the narrower
question of whether a crawl is in progress. Re-seed it from the checkpoint set
on each scope or room change so that the previous search's answer is not left
on screen while the lookup is in flight, but not on each checkpoint change,
which would blink an already-earned warning off and on again.

Also reword the crawlingRooms() doc, which described the set as the rooms being
crawled when it holds every queued checkpoint too.

---------

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-07-17 16:20:30 +00:00
David BakerandGitHub d0a70fb1da Make the text copy button use IconButton (#34224)
* Make the text copy button use IconButton

This obviously should be a shared component, but design is looking at
what it will actually look like long term, so until then, let's at
least make it use compound's IconButton so it gets the hover background
state, and sort out the padding & margins.

Requires https://github.com/element-hq/compound-web/pull/528

* snapshots & add aria-label

* more snapshots

* Remove unnecessary width & height

update other screenshots with expected changes

* One more screenshot

* This really shouldn't be necessary: see what test fails

* Fix test to look in screen for the labels

Because the labels from the tooltip don't go in the container, they
get added to the dom at the top level in a floaty bit.

* update snapshots again

* Fix button size

and also add comment to the other place where we fudge the padding

* Update snapshots

* Align to center

* Screenshots
2026-07-17 14:49:53 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
67fc33ad98 Update npm non-major dependencies (#34320)
* Update npm non-major dependencies

* Oxfmt

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-07-17 14:14:07 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
9de39dc72b Update dependency react-resizable-panels to v4.12.2 (#34313)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-17 12:49:32 +00:00
Michael TelatynskiandGitHub 9d459ac71b Add way to skip desktop build/test for downstream tests (#34322)
* Add way to skip desktop build/test for downstream tests

* Iterate
2026-07-17 11:24:42 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
155992300a Update browserslist (#34265)
* Update browserslist

* Update test

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-07-17 10:55:07 +00:00
SiriusandGitHub 63e65fc60a Use url preview bundle for URL preview in timeline (MSC4095) (#34170)
* use url preview bundle preview content in timeline

* fixed linting errors

* claude wrote a test!

* moved reading settings from the view model into the component

* claude wrote more tests

* applied reviews
2026-07-17 10:18:10 +00:00
David BakerandGitHub adbe90ceb7 Support for reading m.call status (#34295)
* Support for reading m.call status

(well, the prefixed version)

* Abstract the details away in userStatusFromProfile

make the validate functions non-exported

* Add test

* format the oxen

* Remove set function

should be in the other PR
2026-07-17 10:07:38 +00:00
Michael TelatynskiandGitHub 79ac7fbc9e Use oxlint to apply jsx/tsx extension consistently (#34303)
* Remove stale max-len disablements

* Remove stale camelCase & naming-convention disablements

* Remove stale ban-ts-comment disablements

* Remove stale no-var disablements

* Remove stale no-empty-property disablements

* Remove stale react rule disablements

* Remove stale no-constant-condition disablements

* Remove stale no-unused-vars disablements

* Remove stale disablements for disabled rules

* fixup camelcase

* Remove dead code

* Tidy code

* Tweak oxlint config

* Use oxlint to apply jsx/tsx extension consistently

* Fix import

* Fix imports

* Rename affected snapshots

* Update more imports
2026-07-17 09:50:57 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
63b8974051 Update dependency nx to v23.1.0 (#34321)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-17 08:37:44 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e28b59f545 Update dependency webpack-bundle-analyzer to v5.3.1 (#34319)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-17 08:25:18 +00:00
Michael TelatynskiandGitHub b51c5ed8a7 Tweak oxlint config & delint our code (#34301)
* Remove stale max-len disablements

* Remove stale camelCase & naming-convention disablements

* Remove stale ban-ts-comment disablements

* Remove stale no-var disablements

* Remove stale no-empty-property disablements

* Remove stale react rule disablements

* Remove stale no-constant-condition disablements

* Remove stale no-unused-vars disablements

* Remove stale disablements for disabled rules

* fixup camelcase

* Remove dead code

* Tidy code

* Tweak oxlint config
2026-07-17 07:55:31 +00:00