This PR addresses a bridge crash discovered while backfilling old channels, alongside a wee QoL fix for the test suite.
* **Expired Events (`d2m`):** Wraps Discord scheduled event/invite link lookups in a try-catch block. If a link is expired (404 or Discord error 10006), the bridge now posts a fallback `m.notice` rather than throwing an error and halting message conversion.
* **Test Suite Setup:** Updates `test.js` to initialize the mock registration object using `getTemplateRegistration()` preventing test runner crashes when running without a local `registration.yaml` file.
Co-authored-by: Cadence Ember <cadence@disroot.org>
Reviewed-on: https://gitdab.com/cadence/out-of-your-element/pulls/73
Co-authored-by: Bea <beanie@theargo.space>
Co-committed-by: Bea <beanie@theargo.space>
- Autojoined child spaces are recorded as invited
- Update entry when reinvited
- Delete entry when uninvited or removed from room
- Allow linking with spaces you moderate, even if you didn't invite
- Store power levels immediately for new invited rooms
- Mark members as missing profile in this case
- Only delete from invite table if it left the space
Squashed commit of the following:
commit bd9fd5cd3cf3f1301df18074c997ec537a81b4f5
Author: Elliu <elliu@hashi.re>
Date: Sat Nov 15 15:32:18 2025 +0900
Revert "fix matrix / db resource cleanup on space unlink"
This reverts commit ccc10564f1e33ab277bc15f360b8c65f2d0ea867.
commit eec559293861305394770343d501389905fe1650
Author: Cadence Ember <cadence@disroot.org>
Date: Sat Nov 8 13:01:59 2025 +1300
Dependency inject snow for testing
commit b45eeb150e0702c201b8f710a3bdaa8e9f7d90be
Author: Elliu <elliu@hashi.re>
Date: Wed Nov 5 00:20:20 2025 +0900
manually revert 3597a3b: "Factorize some of the space link/unlink sanity checks"
commit 0f2e575df21bf940e4780c30d2701da989f62471
Author: Elliu <elliu@hashi.re>
Date: Wed Nov 5 00:04:38 2025 +0900
on unbriding room, also demote powel level of bridge user in matrix room
commit ccc10564f1e33ab277bc15f360b8c65f2d0ea867
Author: Elliu <elliu@hashi.re>
Date: Wed Nov 5 00:04:13 2025 +0900
fix matrix / db resource cleanup on space unlink
commit f4c1ea7c7f7d5a265b84ce464cd8e9e26d934a32
Author: Elliu <elliu@hashi.re>
Date: Tue Nov 4 23:54:41 2025 +0900
/unlink-space: properly leave guild and clean DB
commit 5f0ec3b2c861cc8b9edc51389d6176c7a22a1135
Author: Cadence Ember <cadence@disroot.org>
Date: Sun Nov 2 22:31:14 2025 +1300
Improve HTML to a state I'm happy with
commit 16309f26b3dd72927e05454cee8c63504b447b7f
Author: Elliu <elliu@hashi.re>
Date: Sat Nov 1 22:24:51 2025 +0900
add tests from /unlink-space endpoint
commit 5aff6f9048330a86eda3b2d1862f42df8d2bad84
Author: Elliu <elliu@hashi.re>
Date: Sat Sep 6 20:05:18 2025 +0900
Add /api/unlink-space implementation
commit dfc61594f68db4b52b3553ac7d3561ae9ce13b49
Author: Elliu <elliu@hashi.re>
Date: Sat Sep 6 19:59:44 2025 +0900
Extract /api/unlink code to its own function
commit 3597a3b5ce9dde3a9ddfe0853253bfda91a38335
Author: Elliu <elliu@hashi.re>
Date: Sat Sep 6 19:28:42 2025 +0900
Factorize some of the space link/unlink sanity checks
commit 05d788e26394106d9be24cef8b38f6c6f1e4c984
Author: Elliu <elliu@hashi.re>
Date: Sat Sep 6 18:23:01 2025 +0900
Add button to unlink a space
Co-authored-by: Cadence Ember <cadence@disroot.org>
First time a PK member sends a message in the channel, Discord sends a
MESSAGE_UPDATE with the proper avatar data for them. OOYE's speedbump
means sending this message will actually take the edit message path.
The edit message path previously did not force a profile sync. This is
why the Matrix profile did always show up after their second message,
because that message was not updated and took the send path.
Right now this doesn't seem to show up on any clients because extensible
events is a total mess, but if you did want to code a client that shows
this fallback without bothering to code real support for polls, you are
easily able to do that. Just pretend the poll end event is a
m.room.message and render it like usual.