-
v3.1 Stable
released this
2025-05-12 02:29:34 +00:00 | 49 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)
23 downloads
-
Source code (TAR.GZ)
22 downloads
-
v3.0 Stable
released this
2025-02-28 10:30:22 +00:00 | 73 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)
17 downloads
-
Source code (TAR.GZ)
7 downloads
-
v3.0-rc1 Stable
released this
2025-02-23 13:31:14 +00:00 | 82 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)
3 downloads
-
Source code (TAR.GZ)
7 downloads
-
v3.0-beta7 Pre-release
released this
2025-01-15 19:44:13 +00:00 | 157 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)
9 downloads
-
Source code (TAR.GZ)
2 downloads
-
v3.0-beta6 Pre-release
released this
2025-01-07 12:31:31 +00:00 | 170 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)
6 downloads
-
Source code (TAR.GZ)
1 download
-
v3.0-beta5 Pre-release
released this
2024-11-02 07:35:52 +00:00 | 197 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)
9 downloads
-
Source code (TAR.GZ)
2 downloads
-
v3.0-beta4 Pre-release
released this
2024-09-29 12:45:38 +00:00 | 219 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)
5 downloads
-
Source code (TAR.GZ)
3 downloads
-
v3.0-beta3 Pre-release
released this
2024-09-28 14:58:51 +00:00 | 225 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.
In beta3, I have changed the core logic of how room creation works. My changes passed manual testing, so it should be ok. If you notice any bugs in room creation, please let me know so I can address them before the full release.
Features
Changes
8743910Rename seed.js to setup; add npm script for it69c93caAutomatically set up content_length_workaround
Fixes
Downloads
-
Source code (ZIP)
6 downloads
-
Source code (TAR.GZ)
3 downloads
-
v3.0-beta2 Pre-release
released this
2024-09-24 04:31:47 +00:00 | 239 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
dbbb8281e6Move autocomplete status to a new table instead of just being a column
Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
3 downloads
-
v3.0-beta1 Pre-release
released this
2024-09-22 03:53:58 +00:00 | 240 commits to main since this releaseThis is a beta version. It is incomplete.
You are welcome to try this version if you want to be ahead of the curve or want to get the breaking changes out of the way early.
This version is stable, and I am using it, but it is not complete. Specifically, many of the web-based features are not implemented yet. Self-service is not implemented yet either.
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.
Supported servers
OOYE will check your server for Matrix v1.11 support when you run
npm run setup(formerly seed.js). If your server does not have support, OOYE will not start.- Synapse is supported (tested)
- Dendrite is supported (untested; it has the endpoints in a stable release)
- Conduwuit is supported (tested)
- Conduit is not yet supported (it has the bare endpoints, but they are not in a stable release yet)
- Construct is not supported (it does not have the endpoints)
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.
Why?
This is necessary due to Matrix introducing authenticated media - the only way for Discord API to access Matrix user avatar URLs is through OOYE's new media proxy. This also gave me the opportunity to add several other convenient web features, such as another media proxy for Matrix users to view expired Discord links, and web-based setup for bridging a new server. While it'll be a bit harder to set up OOYE initially because you'll probably have to do DNS, HTTPS, and reverse proxy configuration, I think you'll enjoy the end result.
You will be prompted for the public URL when you run
npm run setup(formerly seed.js). OOYE will check that your input is valid.You must run setup again.
Why?
Any registration.yaml files generated previously are incompatible with this version of OOYE. Don't worry, it's easy to generate a new registration - just run
npm run setupagain.After registration.yaml has been generated, you'll need to let your homeserver know about the updated version. setup.js will interactively guide you through this process.
(If you have an unusual situation where you need to run setup.js non-interactively, like Nix or Docker (?), you will have to create a valid registration.yaml first. Then you can run setup.js and it will not create any interactive prompts.)
The database is in the working directory.
Details
When you run seed.js, it will automatically move the database file for you. This should not impact most users.
I suggest running the bridge with
npm run startrather thannode start.js, because it will set the working directory to the repo directory. (If you have an unusual situation where you need to store the database outside of the repo, set the working directory accordingly and use start.js.)Changelog
Features
b6c23c3User-facing web features have been added, like links to add OOYE to a Discord server, invite Matrix users, and show linked channels- Some features, like self-service, have not been implemented yet in this beta release
37f3a5923a7394setup.js will show interactive prompts during initial setup, so you don't have to edit registration.yaml by handd5ec013c6175e0Matrix users can access expired Discord attachment links as they are routed through OOYEdecc32fb45d0f3c0d92ea1ebf9e1Discord users can access Matrix authenticated media as it is routed through the proxybe405d36bc3eafMigrate all legacy text commands to Discord interactions
Improvements
- Changes to how permissions are managed
ddb211f1037fe0The new /permissions command on Discord lets Discord moderators promote or demote Matrix users3a84658b8793da7afe3e7Power levels in spaces will be copied to existing and newly created roomsa218774Room avatar permission changes now require PL 50 moderator on Matrixdf1296eThe legacyinvitekey in registration will be migrated to the database- #37 The
invitekey (now in the database) will apply retroactively to existing rooms
42bfd03Author metadata of Discord slash command uses is bridged to Matrix5af7d6bAdd test for a generated embed on a replyee266f8Discord reactions should be attached to the bottom of embed messages more reliablya2e3f06Notify on Matrix that the room has been unbridged when the corresponding channel is deleted (this does not freeze or brick the room)b896278256196cb8a9924Fix type errors in scripts and make executable9e9f481setup.js validates the URL property01af302Move ooye.db to current working dir
Fixes
Downloads
-
Source code (ZIP)
7 downloads
-
Source code (TAR.GZ)
3 downloads