-
v3.4 Stable
released this
2026-02-14 07:20:19 +00:00 | 42 commits to main since this releaseIn celebration of Discord's recent self-immolation, here's version 3.4.
It supports full polls bridging in both directions, room upgrades and room v12, and better support for the Conduit family (including the recently revived Conduit).
If you are using the Conduit, you must switch to the "next" branch. Stable releases (aka "latest" tag) do not work, because they do not contain this commit, which OOYE relies on. Conduit Downloads/Containers
If you get a message like "Old versions of glob are not supported" or a big wall with "Missing: glob@11.1.0 from lock file", do this to fix:
- Check
npm -vand get npm version 11 or later (trynpm i -g npm) npm install --save-devnpm ci
For more help installing or updating, see the docs. Thanks for choosing Out Of Your Element.
And thanks to the contributors who made this release possible.Features
- Polls, in both directions
- Room upgrades and room version 12
e3e38b945285a4Components v2 support35e9c9eAdd ability to unlink spaces- Thank you Elliu for working on this!
44208b6Add /ping Discord command653e38a6032ba4Bridge Matrix media spoilers- Requires a compatible client. I don't know which clients those are.
17251c642025848ea29d6Suppress link embeds where applicable (Discord parity)92a6095Improve output of Matrix info command- Better information, better formatted
- Also available by reacting red question mark (Discord side only; helps those used to PluralKit)
- Let me know if you have more suggestions that would improve this
5a401a1When an auxiliary m.notice is deleted, instead of deleting the Discord message, suppress its embeds
Changes
c0d8275Fix m->d emoji sprite sheets looking enormous on mobile Discord only- Thank you to first-time contributor Abdul for working on this change!
c7e8d4dStorage is 15% more efficient now, wow!5e4b99aRemove reply fallback for same-room replies (and update tests accordingly)- This change comes from Emma!
b52b2deAdd custom format for Klipy GIF conversion5002f30Convert emojihax to real emoji d->mb16d731Include guild name in emoji pack name- This looks better in some clients, notably Commet.
0dc9293bf9f6b3c0bbdfdd7f5f8b08323f4b5143bfChanges to self-service space invite detection and homeserver compatibility- If you moderate a room, even if you didn't personally invite the OOYE bot, you should still be able to use the self-service space linking controls
f287806Disallow Discord users from using smalltext formatting (breaks Discord parity)536ab56Better d->m spoilers- Remove spoiler text entirely from plaintext body, so you're less likely to see it in notifications or room previews
2563a47If the spoiler contains a link, consider its embed to be a spoiler (Discord parity)
cd0b8bfAdd script to easily reset web password if you forgot itddc7387Send forwarded messages as m.text, not m.noticeb5596b2Fetch referenced_message for reply fallback if unavailable345b7d6Merge attachments with message when possible02d62c0Only show video embeds when they have extra info
Fixes
2496f4cFix retrying own events as non-moderator014a87eaf9e2d8228766cWrangle embed generation rulesc8b0f23Ensure m->d reactions get bridged when they were added really really fast1741bc0Fix animated emojis that were originally uploaded as webp format261bb1bAdjust for future changes to Discord permissions696a45fMAS compatibility231b261Fix topic diffing from original creation04d2602Pre-upload icons before diffing8e0fe29Web accessibility29d08dfFix Discord replies to multipart Matrix messagesa488c15Fix confusion between eventsToSend and unchangedEventsc472388Room create event must be included to diff6200d0bFix selective kstate failing on missing events5aa112fBetter detect reply rep in reply fallback238e911Fix m->d double-escaping Matrix mentions279e379The database really works better if you query it- The highly anticipated sequel to
0f24994
- The highly anticipated sequel to
fca4c75Fix speedbump+retrigger interactionsf5d50fcProperly stop PluralKit users typing after sending0ed3ef60d574c1Fix PluralKit repliesdbfa9d0Sync PK member profile on first message6df931fCheck if we got rugpulled while sending- Fixes a SSR race condition in database access that was observed with PluralKit a couple of times
6b4123be54536dMore accurate intent flags check in setuped76dbdWait for Discord connection before listening m->d33eef25Fix setup not listening for events at all7ebe8aaFix backfill scriptfba50e9Fix getPermissions misunderstanding the @everyone role (only matters for really silly guilds)3d3671eFix inviting users on one of the Conduits (only matters if you lost your database)
Code quality and documentation
20453aares.json type fixes239568aFully remove failed experiment4bc7e79Refactor private chat creation092a4cfAdd traefik documentation8661aa7Remove unused orm function0d15865kstate fixes and code coverage045fdfdGeneral code coverage513e671Formally remove discord_path from room avatars505c41aMore code coverage03e9fc4Room upgrades technical information756e8e2Make registration more consistent90fcbd0Update Discord libraries0dd8958Update dependenciesaa7222cPrint d->m errors when there is no room64369f1Fix testd1b0fa4Add tests for emoji sheet; style and nitsc8b2071Move poll-star-avatar file endpointc490965Fix typecheck314f37fAdd newline at end of registration to help shells14de436Add docker policy
Downloads
-
Source code (ZIP)
29 downloads
-
Source code (TAR.GZ)
17 downloads
- Check
-
v3.3 Stable
released this
2025-12-02 11:55:20 +00:00 | 153 commits to main since this releaseThis release fixes some infrequent but impactful issues. Other features you might like are also here.
Notable fixes
493bc25Fix unbridging procedure- Before, deleting a bridged channel could make weird stuff happen to unrelated rooms.
1758b7am->d: make image-replies work- I had assumed I had already added this from the beginning, which is why it's only just getting to you now, after I happened to notice it didn't work.
Features
c731303Update global profiles for sims- For Synapse, you must add
msc4069_profile_inhibit_propagation: truetoexperimental_features. - Conduit and descendants doesn't seem to support this feature.
- For the record, I don't think this is a good MSC, but since it's implemented in Synapse I may as well use it.
- For Synapse, you must add
edd4f98Support persistent Matrix sims for webhooks- Disabled by default. Enable it on the website.
- Useful when using other Discord bridges. Otherwise, not ideal, as sims will clutter the Matrix user list and will never be cleaned up.
1338e6bCode blocks that don't contain code will be converted to quotes instead. This is needed beacuse Discord line-wraps code blocks, but Matrix clients don't, leading to lots of surprise horizontal scrolling.
Fixes
0bb7a27Semaphore retries per roomf176b54Maybe accept invites more reliablye6c30f8Configure whether to receive presences0f24994The database works better if you query it.ce30272Exclude vulnerable version of glob- This didn't affect OOYE, but may as well update it anyway.
d0f7d79Fix duplicated data appearing on Matrixa2787f7Record failed URL in more error messages
Downloads
-
Source code (ZIP)
14 downloads
-
Source code (TAR.GZ)
22 downloads
-
v3.2 Stable
released this
2025-11-13 03:55:01 +00:00 | 165 commits to main since this releaseThis release fixes a huge variety of issues that were happening to some users.
Node v22 or later is now required. Make sure you install that first if you're on an older version. You can check with
node --version.For more help installing or updating, see the docs. Thanks for choosing Out Of Your Element!
Features
bb711c2OOYE provides an API for bots to get message infoab396bdGenerate special embeds for invites with events890e808Render tables in Matrix messages on Discord67291a3Get member data when running backfill7905802Setup will ask for the desired port
Changes
50a0472When adding self-service rooms, verify hierarchy instead of m.space.child639912fDon't overwrite space parent of self-service rooms65498e6Don't archive threads that are part of a forumc71044fOnly edit events if the text has changedb4dd66fcba7965bc32910More consistently generate embeds for Matrix messages7916f82Change thread started message to show the title more clearlyedf60bcRemove provider line from Tenor gifs
Fixes
d95a114Fix joining remote rooms for self-service (contributed by Elliu)10a3185baf024aGive sims enough power to send to read-only rooms as neededca8bbe0Replace PK API retrying with a local cache lookup for data- This has reduced the error rate of PluralKit messages to zero.
d8e6de6Keep PluralKit profile data up to date56a4fe1m->d: link too-large files instead of uploading2c15468Fix m->d then d->m reactions not merging8d4d505d->m: preserve unknown messages when syncing pins408475d158921dFix guild emoji upload command3de762dFix stickers that don't provide content typea7abdfdStay logged in for longer on web2614493@mentions are more likely to include the usernamecffd3c9Fix converting discord channel links7d83f11Fix channel links inside lists2a62849Fix replying to a message that had a new emojic50d238Fix adding to a super reactione0c0b7cSet up emojis in-process if neededd5d51b4Don't search for excessively long text6c23c577bfe140More precise power level checking4b5fb59Fix directory with emoji files50ca219Fix retrying d->m errorsd4f4664Fix retrying m->d message deletions2a0e22aDon't explode if it can't send follow-up errors255e166Specific error message for when remote emojis are unavailable3d34c9de332786Specific error message for when remote media doesn't load9a33ba3Fix evil encrypted file event with null url
Quality
Downloads
-
Source code (ZIP)
8 downloads
-
Source code (TAR.GZ)
12 downloads
-
v3.1 Stable
released this
2025-05-12 02:29:34 +00:00 | 225 commits to main since this releaseThis release fixes a variety of issues that some users were encountering, and also adds future-proofing for when Discord deprecates bot-owned guilds.
Please do
npm run setupafter updating.Changes
7a59f48Store emojis on the bot now that Discord supports thisadbd2bbChange button colours on web5d61dc9Support mentions of slash commands2522a74Only send read receipts to Matrix users if their event was bridged
Fixes
d326894Fix PK member lookup error messagesb0ffb45Allow un-reacting in read-only rooms22c569cIgnore not having access to read pins3975550Fix retrying failed m->d editsc29fbc8Fix QR code on relative pathsd5a7b32Fix web forms on relative pathsbcc3bfcFix web login when the homeserver uses matrix-media-repo8eee70aFixed some disconnection issues0c1a015Fix GIF stickers- These never worked until now. Oops!
Quality
dd63ac7New error trace stringifierc1592fcAdd test case for error stringifier4cb99feRework event dispatchers741311af066c7460a53f7Update dependencies960eca3Update SnowTransfer and use its new method5b58978Add screenshot to readmebb20e26Update docs for why the bridge has a website
Experimental backfill
Downloads
-
Source code (ZIP)
28 downloads
-
Source code (TAR.GZ)
34 downloads
-
v3.0 Stable
released this
2025-02-28 10:30:22 +00:00 | 249 commits to main since this releaseWelcome to version 3.0!
It's a whole new world. Here's the main features since the last stable version, which was v2.3:
Bridge features
- Finally, you can bridge an existing Matrix space with a Discord server instead of having to make a new space.
- Optionally use the website to add the bot, invite people, and change settings. Log in with either Matrix or Discord.
- Setup process is interactive, and checks that everything will work.
Discord/Matrix features
- Support d->m forwarded messages
- Support m->d pins
- Attachment links do not expire
- Support read-only channels
- Text commands have all been moved to Discord interactions
- Right click on Discord to see which Matrix users reacted
- Hundreds of bug fixes
Breaking changes
-
Your server must support Authenticated Media. - You do not need to freeze media - you can stay compatible with old Matrix clients if you want. But you must upgrade your homeserver to a version that supports the authenticated media endpoints. Authenticated media has been out for several months now, so hopefully you've already upgraded to a compatible version!
Supported servers
OOYE will check your server for Matrix v1.11 support when you run
npm run setupand will only continue if it works. So if it works, then it works.- Synapse is supported (tested)
- Conduwuit is supported (tested)
- Dendrite is supported (untested; it has the endpoints in a stable release)
- Conduit is supported (untested; it has the endpoints in a stable release)
- Construct is not supported (but Jason sold out to Conduwuit anyway)
-
You must give OOYE a public URL. - OOYE now runs a web server on port 6693 that needs to be publicly accessible over the internet. You can use a separate domain name, or reuse the same one that your homeserver uses. Learn more.
-
You must run setup again. - The registration file from v2.3 is incompatible with v3.0. Don't worry, it's easy to generate a new registration - just run
npm run setupagain, and it'll interactively guide you through the process. Learn more about the setup process. -
The database is in the working directory. - We shuffled things around for housekeeping. When you run setup, it will automatically move the database file for you. This should not impact most people. The data inside the database is compatible with v3.0, so you won't lose anything.
I hope you enjoy the new release! See here to learn how to install or upgrade.
If you have any questions or find a bug, please join us in #out-of-your-element:cadence.moe for help.
Detailed commits since v3.0-rc1
Changes
3b034ddOptional password protection for the web server, prompted during setupd5cbb8fRearrange the guild management web page2a45b5fReplace the hash icon on web
Fixes
f7ba176Fix automatically activating the content length workarounda867032m->d: Fix image captions to match client behavioura867032Fix an occasional issue with file uploads8e0950dFix client-side MXID validation on web
Documentation
Downloads
-
Source code (ZIP)
22 downloads
-
Source code (TAR.GZ)
12 downloads
-
v3.0-rc1 Stable
released this
2025-02-23 13:31:14 +00:00 | 258 commits to main since this releaseVersion 3.0 will be fully released in about a week, so that I can make sure nothing important is broken.
Please see the breaking changes in the v3.0-beta1 release notes.
Features
443618b5b06d59eadefef978eb40Log in with Matrix8ad01170f435e9381861ecfaada6ac40c54Show Discord presences on Matrixa29d019Make read-only Discord channels read-only on Matrix- Finally, no more randoms sending messages in #announcements.
6eed4ecThey can still react though.
b1b912417ea92aFully support unlinking channels- Unlinking in easy mode will keep members in the room but remove the room from the space. (So the room is preserved and it's harder to reuse it.)
- Unlinking in self-service will remove members from the room but keep it in the space. (So the room is easier to relink or just continue to use unlinked.)
6b919d2Allow d->m URL previews to be disabled- If you don't like them you can now stop seeing them.
Changes
ad5107963cc089Don't overwrite room custom topicsed417e0Preserve name/avatar/topic of linked rooms6df8d9aDisplay limited replies to unbridged messages20dabf4Only offer to link channels the bridge can access21c7b35Put QR code behind reveal buttoneec8b0fAdd loading indicator to invite screens6fe8c60Speed up new databases by default5b21344Debug room list on webea7aec5Don't show errors when maximum reactions reachede2df174Don't show private badge on every channel when the base role can't view channelsf9be1e3Improve dropdown button style
Fixes
f42eb64fa8ce28Fix many reactions saying invalid emojia579b50Catch PK API network errorseb4aa61Fix web loading indicatorsae57fa2Don't send announcements to weird channel types3d0609fFix duplicate guilds in list6a1be91Fix scanning forwarded messages for mentions4ae8da80d0ca98Don't add unwanted room data when it's not present69e3d64Handle replies to state events with no body15826dcMake Cloudflare errors less obnoxious46bd2cbFix web invite button duplicating the pagefb38db5Revert to Stacks 2.5.4 - 2.5.5 is messing up some colours
Documentation
d4a50cbAdvise not running as root2e13538Split out readme into separate pages, for installation and for developers
Quality
8ad299bAdd foreign keys to database5c0e830Display XHR errorsbe06cafClean up log messagef7e2c89Test setup for new web pages6e00066REPL code qualityfbc1b6f31cf91dCode qualitybb73341Code quality: get htmx from npma90d3b9Code coverage for link/unlink endpointsb207862Code coverage for matrix log in & guild settingsf98c30cRefactor web access control984d436b0ded8ea05868fRemove node-fetch - using native fetch instead8e0c154b6e1204331f2f6Update dependencies506e8a8Fix types for combining channels with threadsd0ac5b5Fix other people not being able to run testsa5fd30dQualify kind of stream62be5f7Code coverage for web settings5631b7eRemove unused API calls
Downloads
-
Source code (ZIP)
4 downloads
-
Source code (TAR.GZ)
15 downloads
-
v3.0-beta7 Pre-release
released this
2025-01-15 19:44:13 +00:00 | 333 commits to main since this releaseThis is a beta version. It is incomplete.
Please see the breaking changes in the v3.0-beta1 release notes.
Fixes
ad1aa2c0f6m->d: Convert room links that happen to be linked with #c6708d4dbdThe "link channels" button on web now actually works0c1b4c5e8eRemove unhelpful guard preventing d->m pin syncingfb18c0fe0bEnsure 1 pin = 1 pin even when message is split85269ea153a3e94a215aIgnore unimportant errors that would otherwise crash the process6bb31deeafIgnore missed messages if channel was just added931cacea6aDon't add channels/threads to the public directory1e4952f1b8Make it much less likely for reactions interaction to time outf3b0d01400Fix fish reaction
Quality
6e55061760Use kstate for d->m pins updatesde57bdaf3cAwait syncRoom after linking551dbd0c42Add dependency justification
Downloads
-
Source code (ZIP)
10 downloads
-
Source code (TAR.GZ)
10 downloads
-
v3.0-beta6 Pre-release
released this
2025-01-07 12:31:31 +00:00 | 346 commits to main since this releaseThis is a beta version. It is incomplete.
Please see the breaking changes in the v3.0-beta1 release notes.
Features
7e6548eSend a read receipt after successfully bridging a Matrix events- This may provide reassurance that the bridge is currently functioning.
06b6a63Sync pins back from Matrix to Discord- d->m has always been working, this adds the equivalent m->d.
2009e23New documentation article: Why does the bridge have a website?75140a58a6b8eeAllow Discord users to promote Matrix users to admin641127984d61a1Web server now supports being hosted on sub-paths, and no longer requires a dedicated domaindcb7ddanpm run setupchecks that the mandatory Discord intents have been enabled
Changes
3e5034c93cacbaRemove read receipts visibility client hint- This is a failed experiment that is long past its time. It needs to go.
4c62124Improve invitation QR codes used on web16ac997Add reassuring prose around interrupting/resuming setupd706391During setup, echo details about requests, for reverse proxy configuration QA
Fixes
bf01db1Check server before checking well-known- This was causing setup to be unusable with strangely configured well-known files. Now it should more closely follow the behaviour of the popular clients.
e00ce22Replace into guild_active from homepage- Now you can use the homepage buttons to make things right if you change your mind.
0fe02dcFix web page exploding for unlinked guildsbded929Fix guild page being broken when unlinkeda35860cHandle more guild page situations4f040e4Autocreate space if autocreating the room559d932Fix voice messages not being delivered88a232fCope if the username is already registered
Quality
Downloads
-
Source code (ZIP)
7 downloads
-
Source code (TAR.GZ)
5 downloads
-
v3.0-beta5 Pre-release
released this
2024-11-02 07:35:52 +00:00 | 373 commits to main since this releaseThis is a beta version. It is incomplete.
Please see the breaking changes in the v3.0-beta1 release notes.
Features
Changes
4287a32Website: Display list of unlinked roomsc127923Website: The link button now links channels086e8cdWebsite: Add privacy level controlsd72b162Website: Mobile design5a86c07Host QR codes locally
Fixes
07d6eb3Fix existingPartZero assertion error15e5b17When inviting bot, check it has bot scope14115c0Attempt retrigger after speedbumpb23b818Use attachment proxy for external_urlcce432aCompatibility: send {} with room joinse5f7c7fProxy discord attachment links within embeds3662ee5Fix interaction updates
Code quality
Downloads
-
Source code (ZIP)
10 downloads
-
Source code (TAR.GZ)
7 downloads
-
v3.0-beta4 Pre-release
released this
2024-09-29 12:45:38 +00:00 | 395 commits to main since this releaseThis is a beta version. It is incomplete.
Please see the breaking changes in the v3.0-beta1 release notes.
Features
5dbd79cPrompt to add redirect URI in setup
Changes
65170c1Clean up sample registration.yaml as it is no longer neededbad8c5b61803c333915a5Write tests
Fixes
f5853ccFix check for enabling content_length_workaround
Downloads
-
Source code (ZIP)
7 downloads
-
Source code (TAR.GZ)
7 downloads