Commit Graph
70093 Commits
Author SHA1 Message Date
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
6290be95fd [create-pull-request] automated change (#34271)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-07-17 07:19:53 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ba42273065 Update testcontainers docker digests (#34310)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-16 21:57:12 +00:00
Richard van der HoffandGitHub 4f15a084c0 Minor tweaks to the layered.sh build script (#34300)
I struggled to understand what was going on in my failing build. Clean up some
comments, and try to make the console output a bit more helpful.
2026-07-16 19:37:48 +00:00
Florian DurosandGitHub 377534e6e9 Room list: fix *Chat moved* toast appearing when room list is loaded (#34305)
* Fix Chat moved toast appearing when room list is loaded

* Update e2e tests
2026-07-16 18:20:42 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
7ad619e693 Update dependency postcss to v8.5.19 (#34312)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-16 18:16:33 +00:00
Michael TelatynskiandGitHub b9972b7e9e Enable some oxlint a11y rules & improve keyboard accessibility (#34291)
* Conform to oxlint rule jsx-a11y/role-has-required-aria-props

* Conform to oxlint rule jsx-a11y/role-supports-aria-props

* Conform to oxlint rule jsx-a11y/interactive-supports-focus

* Conform to oxlint rule jsx-a11y/click-events-have-key-events

* Update snapshots
2026-07-16 17:29:49 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
40137cdc54 Update dependency @types/node to v25.9.5 (#34311)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-16 17:26:43 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e48e57ae1e Update nginxinc/nginx-unprivileged:alpine-slim Docker digest to d9fa638 (#34309)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-16 15:39:36 +00:00
RobinandGitHub 6c40c56845 Fix join call button in header having two labels (#34293)
Both the tooltip ("Video call") and the aria-label attribute ("Join video call") were trying to set different labels. I propose that the "Video call" tooltip should actually count as a description.
2026-07-16 10:04:15 +00:00
Tol WassmanandGitHub f1f3aaad76 fix grammar in message for error loading reply (#33802) 2026-07-16 09:23:03 +00:00
Richard van der HoffandGitHub 3af3d8b873 Fix missing fields in mock /room_keys/version responses (#34273)
These mock responses are incomplete, and as of
https://github.com/matrix-org/matrix-js-sdk/pull/5419, will start to fail type
checks.
2026-07-16 08:48:00 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e8af1421ff Update zizmorcore/zizmor-action action to v0.6.0 (#34288)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-16 07:52:57 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4973825b68 Update dependency postcss to v8.5.18 (#34286)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-15 22:26:21 +00:00
R Midhun SureshandGitHub a5648306aa Add functionality to UIStore (#32963)
- Make it possible to query if the window is currently being resized
- Emit WidthIncreased/WidthDecreased events
2026-07-15 21:57:42 +00:00
Will HuntandGitHub cc76070639 Introduce a Module API to get application settings. (#34278)
* Add a module API to get application settings.

* fix test
2026-07-15 19:20:21 +00:00
SiriusandGitHub 8e0ed84eac Fixed sending url preview bundles relying on update delay (#34266)
* Fixed url preview bundle using url previews generated after the composer is cleared when sending message

* lint fix

* added comment

* fixed linting error

* added comments
2026-07-15 18:48:05 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
6f02054452 Update ghcr.io/element-hq/synapse:develop Docker digest to 61e103d (#34285)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-15 13:30:58 +00:00
Florian DurosandGitHub 123b33a2a4 Fix room list throwing an error when adding an existing room (#34281) 2026-07-15 13:29:31 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
cce2fa29dd Update npm non-major dependencies (#34287)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-15 13:20:25 +00:00
mxandreasandGitHub c2139f1987 Make notification settings copy/layout more user-friendly (#34120)
* Make notification settings copy/layout more user-friendly and closer to EX.

* Fix E2E tests.
2026-07-15 13:05:14 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
7bc822fae1 Update react (#34282)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-15 12:59:57 +00:00
Florian DurosandGitHub 017661eee3 Remove spammy matrix chat log (#34275) 2026-07-15 11:36:30 +00:00
Michael TelatynskiandGitHub 04fac0a9a4 Update find-unused-settings script (#34252)
* Move more tests over to vitest

* Add exception for test_setting

* Update find-unused-settings script

To not consider usage in tests as real usage

* Remove legacy font settings

They have been being migrated for over 2 years at this point and are flagged by the script as unused

* Re-add test
2026-07-15 10:21:49 +00:00
hayyaksiandGitHub 703bd6177c Make the persistent-storage request observable and warn when it is denied (#33987)
* Make the persistent-storage request observable and warn when it is denied

The end-to-end encryption crypto store lives in IndexedDB. If the origin's storage is not
durable, Chromium can evict it under storage pressure, forcing a logout and recovery-key
re-entry. tryPersistStorage() requested navigator.storage.persist() but only logged the
boolean result, so a denial was invisible.

Make the request observable: it is now async and checks persisted() first (short-circuiting
to avoid re-requesting/re-prompting), a failure to query the state no longer blocks the
request, and a denial warns via the logger (captured by rageshakes) with a stronger
desktop-specific message. It never rejects - the sole caller treats it as fire-and-forget.

This makes the risk observable but cannot by itself guarantee durability: no Electron
main-process API can force per-origin persistence, so a complete cure needs a follow-up.

* Address review: log query errors, drop the requestStorageAccess fallback and the desktop-specific warning

- Include the caught error when the persisted-state query fails.
- Remove the document.requestStorageAccess branch: it is the Storage Access
  API (cross-site cookie/storage access), not durability, and all supported
  browsers (Safari >= 15.2 included) have navigator.storage.persist().
- Drop the desktop-specific suffix from the denial warning.
- Reword the fire-and-forget doc to avoid referencing the caller.
- Simplify the test harness: no descriptor save/restore, delete the stub in
  afterEach.
2026-07-15 10:03:25 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
86b5a28a32 Update npm non-major dependencies (#34263)
* Update npm non-major dependencies

* Fix pcss comments

* Run oxfmt

* Fix lockfile

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-07-15 09:15:58 +00:00
Florian DurosandGitHub 19f7ea2f7d Fix incorrect plural form in call tile (#34272) 2026-07-15 08:59:11 +00:00
keeharandGitHub 65149798ef Give the collapsed space panel separator clearance from the macOS traffic lights (#34243)
* Space the collapsed space panel separator away from the macOS traffic lights

On macOS the frameless window draws the traffic light buttons over the top
of the space panel. The cluster is inset 9px and is roughly 52px wide, so it
ends about 61px from the window edge. The collapsed space panel is 68px wide,
which left its right-hand separator crowding the green button.

Widen the collapsed panel to 76px on macOS so the separator gets about 15px
of clearance, in line with the compound 4x spacing step. The rule is added to
the styling already injected for the macOS title bar, so it only affects the
desktop app on macOS and is removed in full screen along with the rest.

Fixes https://github.com/element-hq/element-web/issues/32012

Notes: Fix the collapsed space panel separator sitting too close to the macOS traffic light buttons.

* Use contributor copyright header on the new test file
2026-07-15 08:52:43 +00:00
Michael TelatynskiandGitHub 0c61944ffd Move more tests over to vitest (#34249)
* Move more tests over to vitest

* Add exception for test_setting
2026-07-15 08:48:51 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
cb07147d72 Update actions/setup-node action to v7 (#34261)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-15 08:45:52 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
5803106244 Update dependency sanitize-html to v2.17.6 (#34262)
* Update dependency sanitize-html to v2.17.6

* Update jest config

* Slow laptop be slow

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-07-15 08:41:41 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
831ab040d0 Update dependency nx to v23.0.2 (#34259)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-07-15 08:31:27 +00:00
e6460a5f4e Localazy Download (#34214)
* [create-pull-request] automated change

* Fix tests for notification settings label update.

* Fix lint.

* Screenshot updates for tests.

* Fix playwright E2E tests.

* Fix E2E playwright tests.

---------

Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
Co-authored-by: mxandreas <andreass@element.io>
2026-07-14 17:57:24 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
64fc4a6b5d Update dependency @sentry/webpack-plugin to v5.4.0 (#34264)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-14 17:28:11 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
e74b9f5d17 Update Node.js to 384bd20 (#34257)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-14 17:10:18 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
b2b4a4c9d0 Update nginxinc/nginx-unprivileged:alpine-slim Docker digest to eed3e4c (#34256)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-14 16:20:18 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f7b8c51ee4 Update dependency eslint-plugin-storybook to v10.5.0 (#34260)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-14 16:13:40 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
bae2f123c3 Update rust:bullseye Docker digest to 7373627 (#34258)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-14 16:13:00 +00:00