Skip to content

Commit 51e9f52

Browse files
Merge remote-tracking branch 'upstream/release-v1.153' into famedly-release/v1.153
2 parents dadce64 + 7b1c4da commit 51e9f52

63 files changed

Lines changed: 3145 additions & 453 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/dependabot.yml

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
version: 2
2+
# As dependabot is currently only run on a weekly basis, we raise the
3+
# open-pull-requests-limit to 10 (from the default of 5) to better ensure we
4+
# don't continuously grow a backlog of updates.
5+
updates:
6+
- # "pip" is the correct setting for poetry, per https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem
7+
package-ecosystem: "pip"
8+
directory: "/"
9+
open-pull-requests-limit: 10
10+
versioning-strategy: "increase-if-necessary"
11+
schedule:
12+
interval: "weekly"
13+
# Group patch updates to packages together into a single PR, as they rarely
14+
# if ever contain breaking changes that need to be reviewed separately.
15+
#
16+
# Less PRs means a streamlined review process.
17+
#
18+
# Python packages follow semantic versioning, and tend to only introduce
19+
# breaking changes in major version bumps. Thus, we'll group minor and patch
20+
# versions together.
21+
groups:
22+
minor-and-patches:
23+
applies-to: version-updates
24+
patterns:
25+
- "*"
26+
update-types:
27+
- "minor"
28+
- "patch"
29+
# Prevent pulling packages that were recently updated to help mitigate
30+
# supply chain attacks. 14 days was taken from the recommendation at
31+
# https://blog.yossarian.net/2025/11/21/We-should-all-be-using-dependency-cooldowns
32+
# where the author noted that 9/10 attacks would have been mitigated by a
33+
# two week cooldown.
34+
#
35+
# The cooldown only applies to general updates; security updates will still
36+
# be pulled in as soon as possible.
37+
cooldown:
38+
default-days: 14
39+
40+
- package-ecosystem: "docker"
41+
directory: "/docker"
42+
open-pull-requests-limit: 10
43+
schedule:
44+
interval: "weekly"
45+
# For container versions, breaking changes are also typically only introduced in major
46+
# package bumps.
47+
groups:
48+
minor-and-patches:
49+
applies-to: version-updates
50+
patterns:
51+
- "*"
52+
update-types:
53+
- "minor"
54+
- "patch"
55+
cooldown:
56+
default-days: 14
57+
58+
- package-ecosystem: "github-actions"
59+
directory: "/"
60+
open-pull-requests-limit: 10
61+
schedule:
62+
interval: "weekly"
63+
# Similarly for GitHub Actions, breaking changes are typically only introduced in major
64+
# package bumps.
65+
groups:
66+
minor-and-patches:
67+
applies-to: version-updates
68+
patterns:
69+
- "*"
70+
update-types:
71+
- "minor"
72+
- "patch"
73+
cooldown:
74+
default-days: 14
75+
76+
- package-ecosystem: "cargo"
77+
directory: "/"
78+
open-pull-requests-limit: 10
79+
versioning-strategy: "lockfile-only"
80+
schedule:
81+
interval: "weekly"
82+
# The Rust ecosystem is special in that breaking changes are often introduced
83+
# in minor version bumps, as packages typically stay pre-1.0 for a long time.
84+
# Thus we specifically keep minor version bumps separate in their own PRs.
85+
groups:
86+
patches:
87+
applies-to: version-updates
88+
patterns:
89+
- "*"
90+
update-types:
91+
- "patch"
92+
cooldown:
93+
default-days: 14

.github/workflows/docker.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,13 @@ jobs:
4141
echo "SYNAPSE_VERSION=$(grep "^version" pyproject.toml | sed -E 's/version\s*=\s*["]([^"]*)["]/\1/')" >> $GITHUB_ENV
4242
4343
- name: Log in to DockerHub
44-
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
44+
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
4545
with:
4646
username: ${{ secrets.DOCKERHUB_USERNAME }}
4747
password: ${{ secrets.DOCKERHUB_TOKEN }}
4848

4949
- name: Log in to GHCR
50-
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
50+
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
5151
with:
5252
registry: ghcr.io
5353
username: ${{ github.repository_owner }}
@@ -79,15 +79,15 @@ jobs:
7979
services/backend-repositories/secret/data/oci.element.io password | OCI_PASSWORD ;
8080
8181
- name: Login to Element OCI Registry
82-
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
82+
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
8383
with:
8484
registry: oci-push.vpn.infra.element.io
8585
username: ${{ steps.import-secrets.outputs.OCI_USERNAME }}
8686
password: ${{ steps.import-secrets.outputs.OCI_PASSWORD }}
8787

8888
- name: Build and push by digest
8989
id: build
90-
uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0
90+
uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0
9191
with:
9292
push: true
9393
labels: |
@@ -108,7 +108,7 @@ jobs:
108108
touch "${{ runner.temp }}/digests/${digest#sha256:}"
109109
110110
- name: Upload digest
111-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
111+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
112112
with:
113113
name: digests-${{ matrix.suffix }}
114114
path: ${{ runner.temp }}/digests/*
@@ -136,14 +136,14 @@ jobs:
136136
merge-multiple: true
137137

138138
- name: Log in to DockerHub
139-
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
139+
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
140140
if: ${{ startsWith(matrix.repository, 'docker.io') }}
141141
with:
142142
username: ${{ secrets.DOCKERHUB_USERNAME }}
143143
password: ${{ secrets.DOCKERHUB_TOKEN }}
144144

145145
- name: Log in to GHCR
146-
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
146+
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
147147
if: ${{ startsWith(matrix.repository, 'ghcr.io') }}
148148
with:
149149
registry: ghcr.io
@@ -176,7 +176,7 @@ jobs:
176176
services/backend-repositories/secret/data/oci.element.io password | OCI_PASSWORD ;
177177
178178
- name: Login to Element OCI Registry
179-
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
179+
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
180180
with:
181181
registry: oci-push.vpn.infra.element.io
182182
username: ${{ steps.import-secrets.outputs.OCI_USERNAME }}
@@ -186,7 +186,7 @@ jobs:
186186
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
187187

188188
- name: Install Cosign
189-
uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad # v4.0.0
189+
uses: sigstore/cosign-installer@cad07c2e89fa2edd6e2d7bab4c1aa38e53f76003 # v4.1.1
190190

191191
- name: Calculate docker image tag
192192
uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0

.github/workflows/docs-pr.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
cp book/welcome_and_overview.html book/index.html
4646
4747
- name: Upload Artifact
48-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
48+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
4949
with:
5050
name: book
5151
path: book

.github/workflows/latest_deps.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ jobs:
172172
if: ${{ always() }}
173173
run: /sytest/scripts/tap_to_gha.pl /logs/results.tap
174174
- name: Upload SyTest logs
175-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
175+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
176176
if: ${{ always() }}
177177
with:
178178
name: Sytest Logs - ${{ job.status }} - (${{ join(matrix.*, ', ') }})

.github/workflows/push_complement_image.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
with:
5353
poetry-version: "2.2.1"
5454
- name: Login to registry
55-
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
55+
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
5656
with:
5757
registry: ghcr.io
5858
username: ${{ github.actor }}

.github/workflows/release-artifacts.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ jobs:
6464
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
6565

6666
- name: Set up docker layer caching
67-
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
67+
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
6868
with:
6969
path: /tmp/.buildx-cache
7070
key: ${{ runner.os }}-buildx-${{ github.sha }}
@@ -99,7 +99,7 @@ jobs:
9999
echo "ARTIFACT_NAME=${DISTRO#*:}" >> "$GITHUB_OUTPUT"
100100
101101
- name: Upload debs as artifacts
102-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
102+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
103103
with:
104104
name: debs-${{ steps.artifact-name.outputs.ARTIFACT_NAME }}
105105
path: debs/*
@@ -150,7 +150,7 @@ jobs:
150150
# musl: (TODO: investigate).
151151
CIBW_TEST_SKIP: pp3*-* *musl*
152152

153-
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
153+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
154154
with:
155155
name: Wheel-${{ matrix.os }}
156156
path: ./wheelhouse/*.whl
@@ -171,7 +171,7 @@ jobs:
171171
- name: Build sdist
172172
run: python -m build --sdist
173173

174-
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
174+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
175175
with:
176176
name: Sdist
177177
path: dist/*.tar.gz

.github/workflows/tests.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ jobs:
174174
# Cribbed from
175175
# https://github.com/AustinScola/mypy-cache-github-action/blob/85ea4f2972abed39b33bd02c36e341b28ca59213/src/restore.ts#L10-L17
176176
- name: Restore/persist mypy's cache
177-
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
177+
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
178178
with:
179179
path: |
180180
.mypy_cache
@@ -561,7 +561,7 @@ jobs:
561561
if: ${{ always() }}
562562
run: /sytest/scripts/tap_to_gha.pl /logs/results.tap
563563
- name: Upload SyTest logs
564-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
564+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
565565
if: ${{ always() }}
566566
with:
567567
name: Sytest Logs - ${{ job.status }} - (${{ join(matrix.job.*, ', ') }})
@@ -658,7 +658,7 @@ jobs:
658658
PGPASSWORD: postgres
659659
PGDATABASE: postgres
660660
- name: "Upload schema differences"
661-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
661+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
662662
if: ${{ failure() && !cancelled() && steps.run_tester_script.outcome == 'failure' }}
663663
with:
664664
name: Schema dumps

.github/workflows/twisted_trunk.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ jobs:
145145
if: ${{ always() }}
146146
run: /sytest/scripts/tap_to_gha.pl /logs/results.tap
147147
- name: Upload SyTest logs
148-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
148+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
149149
if: ${{ always() }}
150150
with:
151151
name: Sytest Logs - ${{ job.status }} - (${{ join(matrix.*, ', ') }})

CHANGES.md

Lines changed: 52 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,59 @@
1+
# Synapse 1.153.0 (2026-05-19)
2+
3+
No significant changes since 1.153.0rc3.
4+
5+
6+
# Synapse 1.153.0rc3 (2026-05-15)
7+
8+
## Bugfixes
9+
10+
- Revert 'Have [MSC4186: Simplified Sliding Sync](https://github.com/matrix-org/matrix-spec-proposals/pull/4186) return a new response immediately if a room subscription has changed and produced a new response. ([\#19714](https://github.com/element-hq/synapse/issues/19714))' (introduced in 1.153.0rc1) due to performance problems. ([\#19784](https://github.com/element-hq/synapse/issues/19784))
11+
12+
13+
# Synapse 1.153.0rc2 (2026-05-13)
14+
15+
## Bugfixes
16+
17+
- Correctly handle arbitrary precision integers in `unsigned` field of events. The bug was introduced in 1.153.0rc1. ([\#19769](https://github.com/element-hq/synapse/issues/19769))
18+
19+
20+
# Synapse 1.153.0rc1 (2026-05-08)
21+
22+
## Features
23+
24+
- Make ACLs apply to EDUs per [MSC4163](https://github.com/matrix-org/matrix-spec-proposals/pull/4163). ([\#18475](https://github.com/element-hq/synapse/issues/18475))
25+
- Stabilize [MSC3266: Room summary API](https://github.com/matrix-org/matrix-spec-proposals/pull/3266), removing the experimental config flag `msc3266_enabled`. Contributed by @dasha-uwu. ([\#19720](https://github.com/element-hq/synapse/issues/19720))
26+
- Partial [MSC4311](https://github.com/matrix-org/matrix-spec-proposals/pull/4311) implementation: `m.room.create` is now a required part of stripped `invite_state`/`knock_state` . Contributed by @FrenchGithubUser @Famedly. ([\#19722](https://github.com/element-hq/synapse/issues/19722))
27+
- Expose `tombstoned` and `replacement_room` in room details on admin API endpoint `GET /_synapse/admin/v1/rooms/<room_id>`. Contributed by Noah Markert. ([\#19737](https://github.com/element-hq/synapse/issues/19737))
28+
29+
## Bugfixes
30+
31+
- Allow self-requested user erasure (upon account deactivation) to succeed even if Synapse has disabled profile changes. Contributed by Famedly. ([\#19398](https://github.com/element-hq/synapse/issues/19398))
32+
- Fix Synapse not backfilling new history when attempting to use a pagination token near a backward extremity. ([\#19611](https://github.com/element-hq/synapse/issues/19611))
33+
- Have [MSC4186: Simplified Sliding Sync](https://github.com/matrix-org/matrix-spec-proposals/pull/4186) return a new response immediately if a room subscription has changed and produced a new response. ([\#19714](https://github.com/element-hq/synapse/issues/19714))
34+
- Fix a bug where when upgrading a room to room version 12, the power level event in the old room got temporarily mutated to remove the user upgrading the room's power. ([\#19727](https://github.com/element-hq/synapse/issues/19727))
35+
- Fix packaging for Fedora and EPEL caused by unnecessary bumping `authlib` minimum version requirement in `pyproject.toml` file. Contributed by Oleg Girko. ([\#19742](https://github.com/element-hq/synapse/issues/19742))
36+
37+
## Improved Documentation
38+
39+
- Add warning about known problems when configuring `use_frozen_dicts`. ([\#19711](https://github.com/element-hq/synapse/issues/19711))
40+
41+
## Internal Changes
42+
43+
- Port `Event.signatures` field to Rust. ([\#19706](https://github.com/element-hq/synapse/issues/19706))
44+
- Port `Event.unsigned` field to Rust. ([\#19708](https://github.com/element-hq/synapse/issues/19708))
45+
- Add a Rust canonical JSON serializer. ([\#19739](https://github.com/element-hq/synapse/issues/19739), [\#19763](https://github.com/element-hq/synapse/issues/19763))
46+
- Configure Dependabot to only update Python dependencies in the lockfile, unless widening upper bounds. ([\#19743](https://github.com/element-hq/synapse/issues/19743))
47+
- Reduce `WORKER_LOCK_MAX_RETRY_INTERVAL` to 5 seconds to reduce idle time after lock is released. ([\#19755](https://github.com/element-hq/synapse/issues/19755))
48+
- Force keyword-only arguments for `Duration` so time units have to be specified. ([\#19756](https://github.com/element-hq/synapse/issues/19756))
49+
50+
151
# Synapse 1.152.1 (2026-05-07)
252

353
## Security Fixes
454

5-
- Prevent CPU starvation (Denial of Service) under worker lock contention, additionally capping the `WorkerLock` time out interval to a maximum of 60 seconds. Contributed by Famedly. ([\#19394](https://github.com/element-hq/synapse/issues/19394), ELEMENTSEC-2026-1706, [GHSA-8q93-326v-3m7g](https://github.com/element-hq/synapse/security/advisories/GHSA-8q93-326v-3m7g), CVE pending)
6-
- Prevent pagination ending when a page is full of rejected events. (ELEMENTSEC-2025-1636, [GHSA-6qf2-7x63-mm6v](https://github.com/element-hq/synapse/security/advisories/GHSA-6qf2-7x63-mm6v), CVE pending)
55+
- Prevent CPU starvation (Denial of Service) under worker lock contention, additionally capping the `WorkerLock` time out interval to a maximum of 60 seconds. Contributed by Famedly. ([\#19394](https://github.com/element-hq/synapse/issues/19394), ELEMENTSEC-2026-1706, [GHSA-8q93-326v-3m7g](https://github.com/element-hq/synapse/security/advisories/GHSA-8q93-326v-3m7g), CVE-2026-45078)
56+
- Prevent pagination ending when a page is full of rejected events. (ELEMENTSEC-2025-1636, [GHSA-6qf2-7x63-mm6v](https://github.com/element-hq/synapse/security/advisories/GHSA-6qf2-7x63-mm6v), CVE-2026-45076)
757

858

959
# Synapse 1.152.0 (2026-04-28)

0 commit comments

Comments
 (0)