Supported by Sable, don't know of any other supporting clients
Always includes full timestamp (rather than partial date/time) because
Sable doesn't render partials.
Has custom data-style extension if anyone cares
https://github.com/matrix-org/matrix-spec-proposals/pull/3160
It refuses to render the 1st message of a thread, whether it's an emote, or anything else. COMMET, *WHY?*
Anyway, I don't think it makes sense to add extra accommodation to what's clearly a client-level bug. So emotes are back, yay!
The whole reason this woke branch up again, is that Cadence said she wants to use Matrix threads for discoverability of Discord threads. So RIP Ellie Mode (the one that eradicates threads fully).
it was the goddamnit build cache it was the goddamnit build cache it was the goddamnit build cache it was the goddamnit build cache it was the goddamnit build cache it was the goddamnit build cache it was the goddamnit build cache it was the goddamnit build cache it was the goddamnit build cache it was the goddamnit build cache it was the goddamnit build cache it was the goddamnit build cache it was the goddamnit build cache it was the goddamnit build cache it was the goddamnit build cache it was the goddamnit build cache
I mean... The tests pass *almost* fine (the 3 that fail seem unrelated, but I gotta make double-sure), but I'm sure I didn't cover all of my changes with test, soooo...
Anyway, looking forward to getting crucified ny my friends, when the bot inevitably implodes, and spams all over our double-bridged Messenger group again.
SOLVED CONFLICTS WERE:
* src/m2d/event-dispatcher.js (I think we both had the same idea and both added the same thing? Something about retrigger.)
* src/web/pug/guild.pug (the whole file, somehow, but the Conflict Editor on the other hand said that they looked the same, so idk)
* test/ooye-test-data.sql (we both added a line at the end of the big block of Snowfalke pairs, near line 100)
OTHER CHANGES THAT GOT „AUTO-MERGED” (oh no...):
* src/d2m/actions/create-room.js
* src/d2m/event-dispatcher.js
* src/m2d/actions/send-event.js
* src/m2d/converters/event-to-message.js
* src/matrix/matrix-command-handler.js
* src/matrix/utils.js
* src/types.d.ts
* src/web/routes/guild.js
Large PNGs were almost certainly originally JPEG photos that were
converted to PNG by the user copy-pasting.
If the PNG is just supposed to be that large, you can still get the
original through the external URL option.
Had to change _removeExpiryParams to be based on URL parsing instead of
regexp because regexp didn't work with &format=jpeg on the end.