element-hq / element-hq/element-web

Notification settings lose the mention rows once the server stops serving the legacy mention push rules (MSC4210)

Closed
#35,032 0 comments 0 reactions 0 assignees View on GitHub
T-Defect
Dominant language
TypeScript
Stars
13.5k
Forks
2.8k
PR merge metrics
PR metrics pending

Description

### Steps to reproduce

1. Run Synapse `develop` with `experimental_features: { msc4210_enabled: true }`. It then serves `.m.rule.is_user_mention` and `.m.rule.is_room_mention` but not `.m.rule.contains_user_name`, `.m.rule.contains_display_name` or `.m.rule.roomnotif` ([MSC4210](https://github.com/matrix-org/matrix-spec-proposals/pull/4210), Matrix v1.17). Synapse is about to do this by default (element-hq/synapse#19415).
2. Log in with Element Web.
3. Open Settings > Notifications.

### Outcome

**What did you expect?**

The "Mentions and keywords" section shows a row for user mentions and a row for `@room` mentions, backed by the intentional rules, and toggling them updates those rules on the server.

**What happened instead?**

The section shows only "Messages containing keywords". There is no way to change how mentions notify.

notification-settings-before-fix

Cause: the section is built from the three legacy rule IDs. The intentional rules are only ever written as synced rules of the legacy rows (#26227), never rendered on their own. When the server does not return the legacy rules there is nothing to render.

Sending and rendering are unaffected: Element Web already attaches `m.mentions` to every message, and matrix-js-sdk already ignores the legacy rules for events that carry it. Only the settings UI is broken.

### Operating system

macOS 26

### Application version

Element Web `develop` at c603feb6e6

### How did you install the app?

Local dev server

### Homeserver

Synapse 1.161.0rc1 (`develop`) with `msc4210_enabled: true`

### Will you send logs?

No

Contributor guide

Open the contributing guide

Research direction

Start in the Element Web notification settings implementation, tracing how the “Mentions and keywords” section is assembled from the legacy rule IDs. Check how the intentional user-mention and room-mention rules are represented, then verify the UI still shows both rows and that toggling them updates those rules when the legacy rules are absent.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend, web-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
74/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.