-
v3.1 Stable
released this
2025-05-12 02:29:34 +00:00 | 42 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 setup
after updating.Changes
7a59f48
Store emojis on the bot now that Discord supports thisadbd2bb
Change button colours on web5d61dc9
Support mentions of slash commands2522a74
Only send read receipts to Matrix users if their event was bridged
Fixes
d326894
Fix PK member lookup error messagesb0ffb45
Allow un-reacting in read-only rooms22c569c
Ignore not having access to read pins3975550
Fix retrying failed m->d editsc29fbc8
Fix QR code on relative pathsd5a7b32
Fix web forms on relative pathsbcc3bfc
Fix web login when the homeserver uses matrix-media-repo8eee70a
Fixed some disconnection issues0c1a015
Fix GIF stickers- These never worked until now. Oops!
Quality
dd63ac7
New error trace stringifierc1592fc
Add test case for error stringifier4cb99fe
Rework event dispatchers741311a
f066c74
60a53f7
Update dependencies960eca3
Update SnowTransfer and use its new method5b58978
Add screenshot to readmebb20e26
Update docs for why the bridge has a website
Experimental backfill
Downloads
-
Source code (ZIP)
19 downloads
-
Source code (TAR.GZ)
18 downloads
-
v3.0 Stable
released this
2025-02-28 10:30:22 +00:00 | 66 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 setup
and 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 setup
again, 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
3b034dd
Optional password protection for the web server, prompted during setupd5cbb8f
Rearrange the guild management web page2a45b5f
Replace the hash icon on web
Fixes
f7ba176
Fix automatically activating the content length workarounda867032
m->d: Fix image captions to match client behavioura867032
Fix an occasional issue with file uploads8e0950d
Fix client-side MXID validation on web
Documentation
Downloads
-
Source code (ZIP)
15 downloads
-
Source code (TAR.GZ)
7 downloads
-
v3.0-rc1 Stable
released this
2025-02-23 13:31:14 +00:00 | 75 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
443618b
5b06d59
eadefef
978eb40
Log in with Matrix8ad0117
0f435e9
381861e
cfaada6
ac40c54
Show Discord presences on Matrixa29d019
Make read-only Discord channels read-only on Matrix- Finally, no more randoms sending messages in #announcements.
6eed4ec
They can still react though.
b1b9124
17ea92a
Fully 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.)
6b919d2
Allow d->m URL previews to be disabled- If you don't like them you can now stop seeing them.
Changes
ad51079
63cc089
Don't overwrite room custom topicsed417e0
Preserve name/avatar/topic of linked rooms6df8d9a
Display limited replies to unbridged messages20dabf4
Only offer to link channels the bridge can access21c7b35
Put QR code behind reveal buttoneec8b0f
Add loading indicator to invite screens6fe8c60
Speed up new databases by default5b21344
Debug room list on webea7aec5
Don't show errors when maximum reactions reachede2df174
Don't show private badge on every channel when the base role can't view channelsf9be1e3
Improve dropdown button style
Fixes
f42eb64
fa8ce28
Fix many reactions saying invalid emojia579b50
Catch PK API network errorseb4aa61
Fix web loading indicatorsae57fa2
Don't send announcements to weird channel types3d0609f
Fix duplicate guilds in list6a1be91
Fix scanning forwarded messages for mentions4ae8da8
0d0ca98
Don't add unwanted room data when it's not present69e3d64
Handle replies to state events with no body15826dc
Make Cloudflare errors less obnoxious46bd2cb
Fix web invite button duplicating the pagefb38db5
Revert to Stacks 2.5.4 - 2.5.5 is messing up some colours
Documentation
d4a50cb
Advise not running as root2e13538
Split out readme into separate pages, for installation and for developers
Quality
8ad299b
Add foreign keys to database5c0e830
Display XHR errorsbe06caf
Clean up log messagef7e2c89
Test setup for new web pages6e00066
REPL code qualityfbc1b6f
31cf91d
Code qualitybb73341
Code quality: get htmx from npma90d3b9
Code coverage for link/unlink endpointsb207862
Code coverage for matrix log in & guild settingsf98c30c
Refactor web access control984d436
b0ded8e
a05868f
Remove node-fetch - using native fetch instead8e0c154
b6e1204
331f2f6
Update dependencies506e8a8
Fix types for combining channels with threadsd0ac5b5
Fix other people not being able to run testsa5fd30d
Qualify kind of stream62be5f7
Code coverage for web settings5631b7e
Remove 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 | 150 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
ad1aa2c0f6
m->d: Convert room links that happen to be linked with #c6708d4dbd
The "link channels" button on web now actually works0c1b4c5e8e
Remove unhelpful guard preventing d->m pin syncingfb18c0fe0b
Ensure 1 pin = 1 pin even when message is split85269ea153
a3e94a215a
Ignore unimportant errors that would otherwise crash the process6bb31deeaf
Ignore missed messages if channel was just added931cacea6a
Don't add channels/threads to the public directory1e4952f1b8
Make it much less likely for reactions interaction to time outf3b0d01400
Fix fish reaction
Quality
6e55061760
Use kstate for d->m pins updatesde57bdaf3c
Await syncRoom after linking551dbd0c42
Add dependency justification
Downloads
-
Source code (ZIP)
8 downloads
-
Source code (TAR.GZ)
1 download
-
v3.0-beta6 Pre-release
released this
2025-01-07 12:31:31 +00:00 | 163 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
7e6548e
Send a read receipt after successfully bridging a Matrix events- This may provide reassurance that the bridge is currently functioning.
06b6a63
Sync pins back from Matrix to Discord- d->m has always been working, this adds the equivalent m->d.
2009e23
New documentation article: Why does the bridge have a website?75140a5
8a6b8ee
Allow Discord users to promote Matrix users to admin6411279
84d61a1
Web server now supports being hosted on sub-paths, and no longer requires a dedicated domaindcb7dda
npm run setup
checks that the mandatory Discord intents have been enabled
Changes
3e5034c
93cacba
Remove read receipts visibility client hint- This is a failed experiment that is long past its time. It needs to go.
4c62124
Improve invitation QR codes used on web16ac997
Add reassuring prose around interrupting/resuming setupd706391
During setup, echo details about requests, for reverse proxy configuration QA
Fixes
bf01db1
Check 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.
e00ce22
Replace into guild_active from homepage- Now you can use the homepage buttons to make things right if you change your mind.
0fe02dc
Fix web page exploding for unlinked guildsbded929
Fix guild page being broken when unlinkeda35860c
Handle more guild page situations4f040e4
Autocreate space if autocreating the room559d932
Fix voice messages not being delivered88a232f
Cope 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 | 190 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
4287a32
Website: Display list of unlinked roomsc127923
Website: The link button now links channels086e8cd
Website: Add privacy level controlsd72b162
Website: Mobile design5a86c07
Host QR codes locally
Fixes
07d6eb3
Fix existingPartZero assertion error15e5b17
When inviting bot, check it has bot scope14115c0
Attempt retrigger after speedbumpb23b818
Use attachment proxy for external_urlcce432a
Compatibility: send {} with room joinse5f7c7f
Proxy discord attachment links within embeds3662ee5
Fix interaction updates
Code quality
Downloads
-
Source code (ZIP)
8 downloads
-
Source code (TAR.GZ)
2 downloads
-
v3.0-beta4 Pre-release
released this
2024-09-29 12:45:38 +00:00 | 212 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
5dbd79c
Prompt to add redirect URI in setup
Changes
65170c1
Clean up sample registration.yaml as it is no longer neededbad8c5b
61803c3
33915a5
Write tests
Fixes
f5853cc
Fix check for enabling content_length_workaround
Downloads
-
Source code (ZIP)
4 downloads
-
Source code (TAR.GZ)
3 downloads
-
v3.0-beta3 Pre-release
released this
2024-09-28 14:58:51 +00:00 | 218 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
8743910
Rename seed.js to setup; add npm script for it69c93ca
Automatically set up content_length_workaround
Fixes
Downloads
-
Source code (ZIP)
6 downloads
-
Source code (TAR.GZ)
2 downloads
-
v3.0-beta2 Pre-release
released this
2024-09-24 04:31:47 +00:00 | 232 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
dbbb8281e6
Move autocomplete status to a new table instead of just being a column
Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
2 downloads
-
v3.0-beta1 Pre-release
released this
2024-09-22 03:53:58 +00:00 | 233 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 setup
again.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 start
rather 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
b6c23c3
User-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
37f3a59
23a7394
setup.js will show interactive prompts during initial setup, so you don't have to edit registration.yaml by handd5ec013
c6175e0
Matrix users can access expired Discord attachment links as they are routed through OOYEdecc32f
b45d0f3
c0d92ea
1ebf9e1
Discord users can access Matrix authenticated media as it is routed through the proxybe405d3
6bc3eaf
Migrate all legacy text commands to Discord interactions
Improvements
- Changes to how permissions are managed
ddb211f
1037fe0
The new /permissions command on Discord lets Discord moderators promote or demote Matrix users3a84658
b8793da
7afe3e7
Power levels in spaces will be copied to existing and newly created roomsa218774
Room avatar permission changes now require PL 50 moderator on Matrixdf1296e
The legacyinvite
key in registration will be migrated to the database- #37 The
invite
key (now in the database) will apply retroactively to existing rooms
42bfd03
Author metadata of Discord slash command uses is bridged to Matrix5af7d6b
Add test for a generated embed on a replyee266f8
Discord reactions should be attached to the bottom of embed messages more reliablya2e3f06
Notify on Matrix that the room has been unbridged when the corresponding channel is deleted (this does not freeze or brick the room)b896278
256196c
b8a9924
Fix type errors in scripts and make executable9e9f481
setup.js validates the URL property01af302
Move ooye.db to current working dir
Fixes
Downloads
-
Source code (ZIP)
7 downloads
-
Source code (TAR.GZ)
3 downloads