<feed xmlns='http://www.w3.org/2005/Atom'>
<title>spacebarchat/server-ts.git/src/api, branch dev/admin-api</title>
<subtitle>Spacebar Server, written with love in TypeScript and C#
</subtitle>
<id>http://cgit.rory.gay/spacebarchat/server-ts.git/atom?h=dev%2Fadmin-api</id>
<link rel='self' href='http://cgit.rory.gay/spacebarchat/server-ts.git/atom?h=dev%2Fadmin-api'/>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/'/>
<updated>2025-10-05T19:34:40Z</updated>
<entry>
<title>Local changes</title>
<updated>2025-10-05T19:34:40Z</updated>
<author>
<name>Emma [it/its]@Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-04-08T16:55:55Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=abb1b570a4343d5e4fde34f55c1a2bf403f62981'/>
<id>urn:sha1:abb1b570a4343d5e4fde34f55c1a2bf403f62981</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix import</title>
<updated>2025-10-04T19:55:23Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-10-04T19:55:23Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=a4e40102116c2e4a2a42172a494822c7d594f750'/>
<id>urn:sha1:a4e40102116c2e4a2a42172a494822c7d594f750</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Templates, maybe?</title>
<updated>2025-10-04T19:52:18Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-10-04T19:52:18Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=95b08ac51ccb6fbc300ef7445ad367c21b332eaf'/>
<id>urn:sha1:95b08ac51ccb6fbc300ef7445ad367c21b332eaf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add sticker limit</title>
<updated>2025-10-04T19:25:39Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-10-04T19:25:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=021a38767959a996231a3b6fa03c0261fea7bf4a'/>
<id>urn:sha1:021a38767959a996231a3b6fa03c0261fea7bf4a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Unkown -&gt; unkown (typo fix)</title>
<updated>2025-10-04T17:09:26Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-10-03T18:53:24Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=625df4e31412f7e105aa462e86dfc104872cd532'/>
<id>urn:sha1:625df4e31412f7e105aa462e86dfc104872cd532</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Clean up array extensions</title>
<updated>2025-10-04T17:09:26Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-10-03T18:50:48Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=a25393e80683dbb1d2b9e305af624aa3752050d6'/>
<id>urn:sha1:a25393e80683dbb1d2b9e305af624aa3752050d6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add dotnet-ish Random class</title>
<updated>2025-10-04T17:09:25Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-10-03T18:29:32Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=7d2fd7b4f8d5ab7e27bfbea6a4498edbbaf7df9c'/>
<id>urn:sha1:7d2fd7b4f8d5ab7e27bfbea6a4498edbbaf7df9c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Drop dependency on missing-native-js-functions</title>
<updated>2025-10-04T17:09:25Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-10-03T18:28:25Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=b681ae7522029433c3df8caa6a08017012932c97'/>
<id>urn:sha1:b681ae7522029433c3df8caa6a08017012932c97</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move reporting menu to todo</title>
<updated>2025-10-04T17:09:25Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-10-03T17:18:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=88e043fad8ef89deee5567d56d9491721506d18a'/>
<id>urn:sha1:88e043fad8ef89deee5567d56d9491721506d18a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix ignored request schemas</title>
<updated>2025-10-04T17:09:25Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-10-02T17:29:49Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=efba3f245dc9694187ee5143410ce1fb18cd7302'/>
<id>urn:sha1:efba3f245dc9694187ee5143410ce1fb18cd7302</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: getting invites for a channel</title>
<updated>2025-10-02T16:55:47Z</updated>
<author>
<name>CyberL1</name>
<email>cyber.hf18@gmail.com</email>
</author>
<published>2025-10-02T13:39:18Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=9ef9744332ccc4de597ec98e75f0109ab4cc893c'/>
<id>urn:sha1:9ef9744332ccc4de597ec98e75f0109ab4cc893c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Log schema name on error</title>
<updated>2025-10-01T18:37:42Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-10-01T18:37:42Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=c6d763a905b163ea5c9244fbd483a3aaa233444b'/>
<id>urn:sha1:c6d763a905b163ea5c9244fbd483a3aaa233444b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Safety hub work</title>
<updated>2025-10-01T18:17:14Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-10-01T18:17:14Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=c232d5c82ea2bd0bc4e2f86a053e77cf01a9092f'/>
<id>urn:sha1:c232d5c82ea2bd0bc4e2f86a053e77cf01a9092f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement fetching mutual friends</title>
<updated>2025-09-30T17:24:10Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-30T17:24:10Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=6a3155adba66dda664d75ae4dbef2adcfcc4145d'/>
<id>urn:sha1:6a3155adba66dda664d75ae4dbef2adcfcc4145d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Pass mergeParams: true to new router calls due to express behavior change</title>
<updated>2025-09-30T05:14:10Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-30T05:14:10Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=d647f882b179bdaba8311717563d83fddc52a3dd'/>
<id>urn:sha1:d647f882b179bdaba8311717563d83fddc52a3dd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Clean up unused imports</title>
<updated>2025-09-30T03:13:29Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-30T03:13:29Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=b87d28c2c94371fabf620b713b136baed9dec185'/>
<id>urn:sha1:b87d28c2c94371fabf620b713b136baed9dec185</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Silence, dotenv, we dont want your ads</title>
<updated>2025-09-29T20:18:38Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-29T20:11:08Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=0e495bc31d475bfb56ddac5db226a0302bd4a1e2'/>
<id>urn:sha1:0e495bc31d475bfb56ddac5db226a0302bd4a1e2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Drop @sentry/node (Sentry support) - untested and unused</title>
<updated>2025-09-29T20:08:03Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-29T19:28:06Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=0c3d8a792f9f17f2f28ad449cd8bc5c2a381c8d5'/>
<id>urn:sha1:0c3d8a792f9f17f2f28ad449cd8bc5c2a381c8d5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>No error when message not found</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-29T01:13:05Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=54b8351e7cb3efa9ebf3c045bc3731c99e59b3f7'/>
<id>urn:sha1:54b8351e7cb3efa9ebf3c045bc3731c99e59b3f7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Also filter expired invites when returning invite list</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-29T00:40:09Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=46ad97d409ce00a2197db2ff79ba57725fc4f1aa'/>
<id>urn:sha1:46ad97d409ce00a2197db2ff79ba57725fc4f1aa</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Delete expired invites</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-29T00:38:35Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=ba612ab2ba50250bb62a3c9ee13e686e62d3cbee'/>
<id>urn:sha1:ba612ab2ba50250bb62a3c9ee13e686e62d3cbee</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add fetching guild profiles</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-29T00:19:20Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=2620a5551803734c6f498dfd00b6539e60e52bcf'/>
<id>urn:sha1:2620a5551803734c6f498dfd00b6539e60e52bcf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Maybe this tie</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-28T22:02:28Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=697b599eb51fcdb3f542c0323b891bed0d6e3d65'/>
<id>urn:sha1:697b599eb51fcdb3f542c0323b891bed0d6e3d65</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Include attachments</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-28T21:57:29Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=61c3b537ad1a51d6d73fb045bcd7f82419dbaea2'/>
<id>urn:sha1:61c3b537ad1a51d6d73fb045bcd7f82419dbaea2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Polyfill referenced message</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-28T21:52:36Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=364a98f71abc7af99115f6778d427d67759acc31'/>
<id>urn:sha1:364a98f71abc7af99115f6778d427d67759acc31</id>
<content type='text'>
</content>
</entry>
<entry>
<title>More relations</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-28T21:47:32Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=b6cfb32d5af5c7de1d61e6885ae9ea13c4c5fc5c'/>
<id>urn:sha1:b6cfb32d5af5c7de1d61e6885ae9ea13c4c5fc5c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add author and mentions relation to fetching messages</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-28T21:44:00Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=2f1b131b0f70bc923955261c57986e47d10627b2'/>
<id>urn:sha1:2f1b131b0f70bc923955261c57986e47d10627b2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Actually set the referenced_message relation on new messages</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-28T21:36:26Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=871880996bb1ce98e2018c1a124da0bd4af81bae'/>
<id>urn:sha1:871880996bb1ce98e2018c1a124da0bd4af81bae</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Include referenced_message relation on GET /channel/.../messages</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-28T21:27:18Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=ba5117c00329d9d288df4329821ed989aa10e038'/>
<id>urn:sha1:ba5117c00329d9d288df4329821ed989aa10e038</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Null coalescing for file id</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-28T18:36:07Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=f8e4e8864f48dff5852af45e32c78adbdf9b07ca'/>
<id>urn:sha1:f8e4e8864f48dff5852af45e32c78adbdf9b07ca</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use default ID on file upload requests</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-28T18:32:34Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=d59bd1050be9337ac6391ac7126f3abf6bbd7175'/>
<id>urn:sha1:d59bd1050be9337ac6391ac7126f3abf6bbd7175</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make cloud uploads work</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-28T18:09:38Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=f20dff80eff002d39a662eedb538a486ec6be76b'/>
<id>urn:sha1:f20dff80eff002d39a662eedb538a486ec6be76b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Logging of empty messages</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-23T22:03:03Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=d007acc64e464deafda2d86a89c5a6ff469823e5'/>
<id>urn:sha1:d007acc64e464deafda2d86a89c5a6ff469823e5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>meow???</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-23T21:58:21Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=c3fa8d3b1f6b4783a35ed840bf0ecadb838b8758'/>
<id>urn:sha1:c3fa8d3b1f6b4783a35ed840bf0ecadb838b8758</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Log validation errors</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-23T21:45:27Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=d166c9a69a156e4cb13b9d4807d8c21a6c4176d2'/>
<id>urn:sha1:d166c9a69a156e4cb13b9d4807d8c21a6c4176d2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Try to handle new attachment style in message handler</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-23T21:36:55Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=3bba7882fa153915a2b25c1bed267693f65fbb1a'/>
<id>urn:sha1:3bba7882fa153915a2b25c1bed267693f65fbb1a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Update message schema to handle cloud attachments</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-23T21:25:08Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=db765d8ff0423ec9eea9b624973895569ddff558'/>
<id>urn:sha1:db765d8ff0423ec9eea9b624973895569ddff558</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implment deleting cloud attachments</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-23T20:48:14Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=19ca94fc329dd3dcf80e0345167491ffb2644a9a'/>
<id>urn:sha1:19ca94fc329dd3dcf80e0345167491ffb2644a9a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix upload filename</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-23T19:12:27Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=2a10b3528fd369e2e9c5aa2385ba2a39c06e1585'/>
<id>urn:sha1:2a10b3528fd369e2e9c5aa2385ba2a39c06e1585</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add first half of cloud attachment uploads</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-23T19:05:35Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=1e6ed06da142e4aa558cf1ada38204d4adf55c92'/>
<id>urn:sha1:1e6ed06da142e4aa558cf1ada38204d4adf55c92</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix schema for preload messages</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-23T17:06:48Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=3720068b83a868dbf98f2566a53c5832d42654e4'/>
<id>urn:sha1:3720068b83a868dbf98f2566a53c5832d42654e4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement greeting</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-23T17:05:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=b6065145eed7c204bf2c04b1e01aab346f72ed8e'/>
<id>urn:sha1:b6065145eed7c204bf2c04b1e01aab346f72ed8e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement fetching DM messages by user ID</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-23T15:17:42Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=0db40d7a0a104085e6c6aa88deea12bcb80c7791'/>
<id>urn:sha1:0db40d7a0a104085e6c6aa88deea12bcb80c7791</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement message preloading</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-22T13:43:13Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=f78a9412b888a1e9429620bff1f50d922d4d7bb2'/>
<id>urn:sha1:f78a9412b888a1e9429620bff1f50d922d4d7bb2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Permissions: less magic numbers</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-09-11T11:03:54Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=a8f8af92d37d82d2ae3897ba4c0c8da008e9d256'/>
<id>urn:sha1:a8f8af92d37d82d2ae3897ba4c0c8da008e9d256</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add endpoint implementations</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-14T16:34:32Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=387722d017fe51335020f40852e8f2c708064bf6'/>
<id>urn:sha1:387722d017fe51335020f40852e8f2c708064bf6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Screw off, telemetry</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-13T22:31:00Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=8b946ac41dd617201552b248e5cb8dd3f92b52e6'/>
<id>urn:sha1:8b946ac41dd617201552b248e5cb8dd3f92b52e6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Colorful roles</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-12T18:12:37Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=528662446c3377032190c117f5a3fe2fa8f3b88e'/>
<id>urn:sha1:528662446c3377032190c117f5a3fe2fa8f3b88e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Do settings versioning</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-11T13:47:29Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=18e752a457eb178f35c37dd5e0d8b8e7a53e4cbe'/>
<id>urn:sha1:18e752a457eb178f35c37dd5e0d8b8e7a53e4cbe</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Oops, actually send the events to a user...</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-11T12:03:06Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=b212cbbea1259e47d4cf9db107cacdb4e35e4e1c'/>
<id>urn:sha1:b212cbbea1259e47d4cf9db107cacdb4e35e4e1c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Emit USER_SETTINGS_PROTO_UPDATE</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-11T11:59:53Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=5466de1c02447333f4cdfe09235b7bd08e548729'/>
<id>urn:sha1:5466de1c02447333f4cdfe09235b7bd08e548729</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge in json representation of settings protos</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-11T11:38:28Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=b62fc8aca85454ce68d2e8923da9e17181dd4cc6'/>
<id>urn:sha1:b62fc8aca85454ce68d2e8923da9e17181dd4cc6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Release -&gt; ClientRelease</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-11T11:20:29Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=93ef08320e9e4b1ddd727944194ecb625b73288f'/>
<id>urn:sha1:93ef08320e9e4b1ddd727944194ecb625b73288f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Setting protos support</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-11T10:55:38Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=5e3080d72fe5a388c53698c732b855b98ca92d6e'/>
<id>urn:sha1:5e3080d72fe5a388c53698c732b855b98ca92d6e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Update copyright date in pin endpoints</title>
<updated>2025-09-29T16:38:06Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-09T14:49:56Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=09147ae51c76a8806260c9a8512a602a4fdc3aee'/>
<id>urn:sha1:09147ae51c76a8806260c9a8512a602a4fdc3aee</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: don't set order for counting queries</title>
<updated>2025-09-29T16:32:21Z</updated>
<author>
<name>CyberL1</name>
<email>cyber.hf18@gmail.com</email>
</author>
<published>2025-09-29T08:20:15Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=3e93ad8a879454cfa56b5c9791c345af4f58cea6'/>
<id>urn:sha1:3e93ad8a879454cfa56b5c9791c345af4f58cea6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: set DESC order</title>
<updated>2025-09-29T16:32:21Z</updated>
<author>
<name>CyberL1</name>
<email>cyber.hf18@gmail.com</email>
</author>
<published>2025-09-29T08:17:42Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=6bf4109465311dc04b2aa50f38dbd79e83e820d9'/>
<id>urn:sha1:6bf4109465311dc04b2aa50f38dbd79e83e820d9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: don't use query builder</title>
<updated>2025-09-29T16:32:21Z</updated>
<author>
<name>CyberL1</name>
<email>cyber.hf18@gmail.com</email>
</author>
<published>2025-09-29T05:44:25Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=8e18a642fe6673a7d8adc24ed17cb0d6e3aa64ce'/>
<id>urn:sha1:8e18a642fe6673a7d8adc24ed17cb0d6e3aa64ce</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: don't use query builder</title>
<updated>2025-09-29T16:32:21Z</updated>
<author>
<name>CyberL1</name>
<email>cyber.hf18@gmail.com</email>
</author>
<published>2025-09-29T05:40:26Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=29c4a6695c1061200b79da5871e617eda2de47e4'/>
<id>urn:sha1:29c4a6695c1061200b79da5871e617eda2de47e4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: add `pinned` getter to `Message` entity</title>
<updated>2025-09-29T16:32:21Z</updated>
<author>
<name>CyberL1</name>
<email>cyber.hf18@gmail.com</email>
</author>
<published>2025-07-15T06:08:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=5c332ae763c1a5fdd1c0edcc7b379d59edc9dfbf'/>
<id>urn:sha1:5c332ae763c1a5fdd1c0edcc7b379d59edc9dfbf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: use `pinned_at` to check if message is pinnned</title>
<updated>2025-09-29T16:32:21Z</updated>
<author>
<name>CyberL1</name>
<email>cyber.hf18@gmail.com</email>
</author>
<published>2025-07-13T08:56:30Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=dc3a85f078e3c4242d22612e51c3729b11624c69'/>
<id>urn:sha1:dc3a85f078e3c4242d22612e51c3729b11624c69</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: getting message pinss</title>
<updated>2025-09-29T16:32:21Z</updated>
<author>
<name>CyberL1</name>
<email>cyber.hf18@gmail.com</email>
</author>
<published>2025-07-13T05:30:17Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=b8b461f0dba77eb0714fa8af3d33c92e376fdc0f'/>
<id>urn:sha1:b8b461f0dba77eb0714fa8af3d33c92e376fdc0f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix stupid bug</title>
<updated>2025-09-28T22:08:23Z</updated>
<author>
<name>MathMan05</name>
<email>mathmanrm@gmail.com</email>
</author>
<published>2025-09-19T20:19:52Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=b461da9b8f70a22769f89d5aab8e0550934f20e4'/>
<id>urn:sha1:b461da9b8f70a22769f89d5aab8e0550934f20e4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>prevent re-verifying email</title>
<updated>2025-09-05T22:35:50Z</updated>
<author>
<name>Puyodead1</name>
<email>puyodead@proton.me</email>
</author>
<published>2025-09-05T22:35:50Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=6ff8eec72269658d58642194e6d15c5b3c6be713'/>
<id>urn:sha1:6ff8eec72269658d58642194e6d15c5b3c6be713</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fixes and minor changes for email stuff</title>
<updated>2025-09-05T22:03:59Z</updated>
<author>
<name>Puyodead1</name>
<email>puyodead@proton.me</email>
</author>
<published>2025-09-05T22:03:59Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=b8b9b038cfc11f10ec6070679dca22b066d3a2c9'/>
<id>urn:sha1:b8b9b038cfc11f10ec6070679dca22b066d3a2c9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix an issue with NO_AUTHENTICATE routes</title>
<updated>2025-09-05T21:47:42Z</updated>
<author>
<name>Puyodead1</name>
<email>puyodead@proton.me</email>
</author>
<published>2025-09-05T21:47:42Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=5fafb6d156c539f6a99c0f4f8ce1f9c2820efe53'/>
<id>urn:sha1:5fafb6d156c539f6a99c0f4f8ce1f9c2820efe53</id>
<content type='text'>
</content>
</entry>
<entry>
<title>More cleanup</title>
<updated>2025-07-27T13:49:37Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-27T13:42:54Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=9d314cd995d68f0e4d05219e750959d344f674f8'/>
<id>urn:sha1:9d314cd995d68f0e4d05219e750959d344f674f8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>WIP logo/terminal stuff</title>
<updated>2025-07-27T13:49:37Z</updated>
<author>
<name>Emma [it/its]@Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2024-10-27T22:30:14Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=bd81cde9770e3d7c93b7b42f866b355c8b8bcbef'/>
<id>urn:sha1:bd81cde9770e3d7c93b7b42f866b355c8b8bcbef</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement CRUD for automod</title>
<updated>2025-07-27T13:49:37Z</updated>
<author>
<name>Emma [it/its]@Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2024-10-15T09:10:58Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=3f7d26118dd75f83390ecfed0c0d6397cf542093'/>
<id>urn:sha1:3f7d26118dd75f83390ecfed0c0d6397cf542093</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add types to the ban api response objects</title>
<updated>2025-07-21T21:05:14Z</updated>
<author>
<name>dank074</name>
<email>torresefrain10@gmail.com</email>
</author>
<published>2025-07-21T21:05:14Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=7261766459b266bb303e60af8e99ebf5d520e54b'/>
<id>urn:sha1:7261766459b266bb303e60af8e99ebf5d520e54b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>update guild bans api</title>
<updated>2025-07-21T05:46:14Z</updated>
<author>
<name>dank074</name>
<email>torresefrain10@gmail.com</email>
</author>
<published>2025-07-21T05:46:14Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=3c0efd17bcb2ef45c9990278fa0323db46b72aa6'/>
<id>urn:sha1:3c0efd17bcb2ef45c9990278fa0323db46b72aa6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge pull request #1305 from ZaneH/feat/handle-github-webhook</title>
<updated>2025-07-12T16:56:00Z</updated>
<author>
<name>Puyodead1</name>
<email>puyodead@proton.me</email>
</author>
<published>2025-07-12T16:56:00Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=9347a3ec6f1f4373149a8e9d6bc6b3a6d481dbc8'/>
<id>urn:sha1:9347a3ec6f1f4373149a8e9d6bc6b3a6d481dbc8</id>
<content type='text'>
Implement GitHub-compatible webhook</content>
</entry>
<entry>
<title>Modern pins endpoints</title>
<updated>2025-07-08T20:45:57Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-08T20:45:57Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=d58414c9c5a79992a33692f6b412357a2ba7b60d'/>
<id>urn:sha1:d58414c9c5a79992a33692f6b412357a2ba7b60d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add emoji source endpoint</title>
<updated>2025-07-07T19:59:25Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-07T19:59:25Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=cb0443821ef8da4b44ee2f4fb677854896287705'/>
<id>urn:sha1:cb0443821ef8da4b44ee2f4fb677854896287705</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add endpoint to get account standing</title>
<updated>2025-07-07T18:40:38Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-07T18:40:38Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=5205ccecd5d245d5d0c67c28339cf3e84c7a5fde'/>
<id>urn:sha1:5205ccecd5d245d5d0c67c28339cf3e84c7a5fde</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Prettier</title>
<updated>2025-07-06T16:03:17Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-06T09:08:51Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=b590482bfbed461c47e785e1bf59d16e211c6982'/>
<id>urn:sha1:b590482bfbed461c47e785e1bf59d16e211c6982</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix forgotten function signature changes</title>
<updated>2025-07-06T16:03:17Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-06T09:02:18Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=9e4a769d6937bf7a4002f118309537f9c820c3f6'/>
<id>urn:sha1:9e4a769d6937bf7a4002f118309537f9c820c3f6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make IP/user-agent validation in CDN work</title>
<updated>2025-07-06T16:03:17Z</updated>
<author>
<name>Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-04T07:10:42Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=2e196573ea1e257fc9266d6c63289c51fbaa4e12'/>
<id>urn:sha1:2e196573ea1e257fc9266d6c63289c51fbaa4e12</id>
<content type='text'>
</content>
</entry>
<entry>
<title>sign attachment on sending message</title>
<updated>2025-07-06T16:03:17Z</updated>
<author>
<name>Emma [it/its]@Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-03T07:29:25Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=0fcdbd28317d470a86f82b77e708a343eae473f7'/>
<id>urn:sha1:0fcdbd28317d470a86f82b77e708a343eae473f7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Sign media per user</title>
<updated>2025-07-06T16:03:17Z</updated>
<author>
<name>Emma [it/its]@Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-03T07:25:04Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=387cef269a28791ee0a721b4df7084aaf4445f39'/>
<id>urn:sha1:387cef269a28791ee0a721b4df7084aaf4445f39</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add options to erquire IP or User Agent to access CDN</title>
<updated>2025-07-06T16:03:17Z</updated>
<author>
<name>Emma [it/its]@Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-02T14:40:25Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=0e0da6d722f656c9d994e51543edc08940e06740'/>
<id>urn:sha1:0e0da6d722f656c9d994e51543edc08940e06740</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix typeorm queries no longer allowing empty where clauses</title>
<updated>2025-07-06T07:18:22Z</updated>
<author>
<name>Emma [it/its]@Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-02T15:36:46Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=3e549dae28fc89d93a657be6498fb2900d079fad'/>
<id>urn:sha1:3e549dae28fc89d93a657be6498fb2900d079fad</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Update some dependencies, fix nix</title>
<updated>2025-07-02T13:54:23Z</updated>
<author>
<name>Emma [it/its]@Rory&amp;</name>
<email>root@rory.gay</email>
</author>
<published>2025-07-02T13:54:23Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=fca7953a514f278f1ac4547602a2f328e8b5831d'/>
<id>urn:sha1:fca7953a514f278f1ac4547602a2f328e8b5831d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix the fix</title>
<updated>2025-07-01T23:21:24Z</updated>
<author>
<name>MathMan05</name>
<email>73901602+MathMan05@users.noreply.github.com</email>
</author>
<published>2024-08-26T04:13:14Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=6ab26cb3ffb9c40a203fa5f1f829b151b1847400'/>
<id>urn:sha1:6ab26cb3ffb9c40a203fa5f1f829b151b1847400</id>
<content type='text'>
this should actually be what's intended</content>
</entry>
<entry>
<title>Check for old password when setting new</title>
<updated>2025-07-01T23:21:24Z</updated>
<author>
<name>MathMan05</name>
<email>73901602+MathMan05@users.noreply.github.com</email>
</author>
<published>2024-08-26T03:56:55Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=76857bdcfb0057e3b512f2e91833b596d828e46a'/>
<id>urn:sha1:76857bdcfb0057e3b512f2e91833b596d828e46a</id>
<content type='text'>
Checks for password</content>
</entry>
<entry>
<title>Proxy avatar URL + adjust event logic</title>
<updated>2025-06-29T16:17:24Z</updated>
<author>
<name>Zane Helton</name>
<email>zane99@me.com</email>
</author>
<published>2025-06-29T16:17:24Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=ed85ba3dc245fcd17e8d1dadbad4bc5f57276936'/>
<id>urn:sha1:ed85ba3dc245fcd17e8d1dadbad4bc5f57276936</id>
<content type='text'>
I've proxied the URLs with `getProxyUrl` specifying the size as 80x80.

I've also adjusted the event logic so that unstarring doesn't trigger an
alert and I've disabled the 'watch' event because Discord doesn't use
it either.
</content>
</entry>
<entry>
<title>Make tsc happy when using strings as Date in embed</title>
<updated>2025-06-29T15:34:57Z</updated>
<author>
<name>Zane Helton</name>
<email>zane99@me.com</email>
</author>
<published>2025-06-29T15:34:57Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=590331518ce6f742773de4d90edaf5cd8dca8dc9'/>
<id>urn:sha1:590331518ce6f742773de4d90edaf5cd8dca8dc9</id>
<content type='text'>
Validation on embeds has interesting behavior. Embeds have a `timestamp`
property that is of type `Date`. However when providing a Date,
`WebhookExecuteSchema` silently ends the operation.

The resolution was to use strings and to annotate them with `//
@ts-expect-error`. This was not my first choice, but it was the best
option I saw.

The other option is to allow `Embeds` to pass strings as a timestamp but
I'd want a second opinion before making that change.
</content>
</entry>
<entry>
<title>Refactor `/github` endpoint into it's own file</title>
<updated>2025-06-29T14:46:16Z</updated>
<author>
<name>Zane Helton</name>
<email>zane99@me.com</email>
</author>
<published>2025-06-29T14:21:29Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=9143c1d408f65157a10d7b76794d74bb9d1c9657'/>
<id>urn:sha1:9143c1d408f65157a10d7b76794d74bb9d1c9657</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Capitalize `ref_type` when using in embed</title>
<updated>2025-06-29T07:56:01Z</updated>
<author>
<name>Zane Helton</name>
<email>zane99@me.com</email>
</author>
<published>2025-06-29T07:56:01Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=82642d0e97d23787417a337786f450330f570da6'/>
<id>urn:sha1:82642d0e97d23787417a337786f450330f570da6</id>
<content type='text'>
The GitHub API provides `ref_type` as lowercase. For consistency, this
adds a utility function and makes use of it when formatting the `create`
event from GitHub.

tag =&gt; Tag
branch =&gt; Branch
</content>
</entry>
<entry>
<title>Implement webhook handler for GitHub</title>
<updated>2025-06-29T07:18:43Z</updated>
<author>
<name>Zane Helton</name>
<email>zane99@me.com</email>
</author>
<published>2025-06-29T07:18:43Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=77dd48174206b0116dce011bff98d526b711eedc'/>
<id>urn:sha1:77dd48174206b0116dce011bff98d526b711eedc</id>
<content type='text'>
I've created a middleware that runs when `/github` is appended to the
webhook URL. The middleware parses the GitHub webhook and turns it into
usable embeds.
</content>
</entry>
<entry>
<title>Fix the creation of guilds from templates</title>
<updated>2025-06-29T03:27:14Z</updated>
<author>
<name>Zane Helton</name>
<email>zane99@me.com</email>
</author>
<published>2025-06-29T02:09:56Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=33fde3bc4a338dccd8707a7712763535862aa037'/>
<id>urn:sha1:33fde3bc4a338dccd8707a7712763535862aa037</id>
<content type='text'>
The biggest hold-up was missing fields (`premium_tier`,
`welcome_screen`, etc.) but it looks like someone has provided a
helpful function called `createGuild(...)` to provide sensible default
values.

This commit fixes the errors related to creating a guild from a
template. I've also refactored the code to include roles and channels in
the template.

To make sure that the @everyone role is cloned correctly, when
creating the guild from a template, we check if the role's ID
matches the template's `source_guild_id`. If it does, we set the
@everyone role to the new guild's ID.
</content>
</entry>
<entry>
<title>Set `premium_tier` to 0 when creating guild from template</title>
<updated>2025-06-29T03:27:14Z</updated>
<author>
<name>Zane Helton</name>
<email>zane99@me.com</email>
</author>
<published>2025-06-28T22:10:38Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=eec2a8ba8584e1b3121e9b2fda05dc98c77ddf25'/>
<id>urn:sha1:eec2a8ba8584e1b3121e9b2fda05dc98c77ddf25</id>
<content type='text'>
I think we'll need to discuss the proper way to provide default values
here. `premium_tier` for example should never be provided from the
template so it's fine going after the spread operator.

This commit still doesn't allow guilds to be created from template
because the next error is that `welcome_screen` doesn't exist. Our
options:

1. Provide default values in the ORM
2. Provide default values in the guild creation process
3. Throw an error if the template is missing values

Resolves: #1283 but creates a new issue
</content>
</entry>
<entry>
<title>Await guild creation to fix a race condition</title>
<updated>2025-06-29T03:27:14Z</updated>
<author>
<name>Zane Helton</name>
<email>zane99@me.com</email>
</author>
<published>2025-06-28T22:02:54Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=ff692c19b77a7dcae07dcb71f33c4753db106f5d'/>
<id>urn:sha1:ff692c19b77a7dcae07dcb71f33c4753db106f5d</id>
<content type='text'>
`Promise.all(...)` runs these simultaneously, yet role depends on the
guild to be created first. This can lead to a race condition. I've
awaited role creation too because the call to `Member.addToGuild(...)`
relies on the role to be created.
</content>
</entry>
<entry>
<title>Fix PATCH Template route implementation</title>
<updated>2025-06-29T03:25:22Z</updated>
<author>
<name>Zane Helton</name>
<email>zane99@me.com</email>
</author>
<published>2025-06-29T02:56:15Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=4772731a17c309c3e5af5173f9c928e65c4728cc'/>
<id>urn:sha1:4772731a17c309c3e5af5173f9c928e65c4728cc</id>
<content type='text'>
The previous PATCH implementation was creating a new template rather
than editing the existing template. This resulted in all requests
failing because it was missing more than one required field.

Resolves: #1281
</content>
</entry>
<entry>
<title>Add OP to message.mentions when replied to</title>
<updated>2025-06-28T23:14:58Z</updated>
<author>
<name>Zane Helton</name>
<email>zane99@me.com</email>
</author>
<published>2025-06-28T23:01:49Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=4f7591965125d7c3289b81ff8bba6ba91512af3f'/>
<id>urn:sha1:4f7591965125d7c3289b81ff8bba6ba91512af3f</id>
<content type='text'>
The `message.message_reference` stores:

1. `message_id`
2. `channel_id`
3. `guild_id`

We use the `message_id` and `channel_id` to `.findOne(...)` Message, and
find the author. If the author is the same as OP, we skip (so replying
to yourself doesn't add you to the mentions array) otherwise, it adds
the author_id to the mentions array.

Resolves: #1247
</content>
</entry>
<entry>
<title>Preserve reactions when a message is edited</title>
<updated>2025-06-28T22:44:47Z</updated>
<author>
<name>Zane Helton</name>
<email>zane99@me.com</email>
</author>
<published>2025-06-28T13:57:34Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=e8d3f655a399a8ac5870e0d2612e2e23d87ae6b3'/>
<id>urn:sha1:e8d3f655a399a8ac5870e0d2612e2e23d87ae6b3</id>
<content type='text'>
Resolves #1241
</content>
</entry>
<entry>
<title>Properly filter existing embed links</title>
<updated>2025-06-28T22:39:42Z</updated>
<author>
<name>Zane Helton</name>
<email>zane99@me.com</email>
</author>
<published>2025-06-28T14:55:56Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=81d431363113d9a21ec252b016ff41210833e97c'/>
<id>urn:sha1:81d431363113d9a21ec252b016ff41210833e97c</id>
<content type='text'>
In a previous PR, I was checking if the `.url` property existed, the
correct fix is to remove any embed that isn't a rich embed
type (non-link).

See also: #1296
</content>
</entry>
<entry>
<title>Start fresh when updating embeds for links</title>
<updated>2025-06-28T08:30:52Z</updated>
<author>
<name>Zane Helton</name>
<email>zane99@me.com</email>
</author>
<published>2025-06-28T07:17:09Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=184433b0781dbbf40c150d598336545ae5fa5720'/>
<id>urn:sha1:184433b0781dbbf40c150d598336545ae5fa5720</id>
<content type='text'>
In a previous commit I was attempting to be clever by only
replacing/removing embeds if necessary. This not only made the logic
more confusing but introduced a bug that would allow for orphaned
embeds when updating the search params of a URL.

This commit will remove all embeds that have a `.url` property and start
fresh. This simplifies the code and eliminates the aforementioned bug.
</content>
</entry>
<entry>
<title>Fix various issues with embeds on message updates</title>
<updated>2025-06-28T08:30:52Z</updated>
<author>
<name>Zane Helton</name>
<email>zane99@me.com</email>
</author>
<published>2025-06-28T05:38:46Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=f9cfb46e73b2e51d0c48fe509594bc3338ed65ac'/>
<id>urn:sha1:f9cfb46e73b2e51d0c48fe509594bc3338ed65ac</id>
<content type='text'>
The `postHandleMessage` function is parsing links and adding them to the
EmbedCache table if necessary. In the previous implementation, message
updates would push to the embeds unconditionally.

This commit parses links from the message and:

1. Normalizes the URLs
  - Useful for deduplicating similar URLs
2. Remove embeds with matching normalized URLs
  - Leaves all embeds except for ones with a `.url` property matching
  the updated message
  - This allows embeds to be re-ordered if the URL is moved
3. If no normalized URLs are found, remove all embeds
4. Take the deduplicated + normalized URLs and add an embed to the message and
insert into the EmbedCache table (if necessary)

This enables:

1. Embeds to be re-ordered by re-ordering links
2. Embeds to be removed by removing links

and fixes:

1. Duplicate embeds being attached to a message when edited
</content>
</entry>
<entry>
<title>Add validation to date_of_birth registration field</title>
<updated>2025-06-28T07:08:00Z</updated>
<author>
<name>Zane Helton</name>
<email>zane99@me.com</email>
</author>
<published>2025-06-28T02:23:10Z</published>
<link rel='alternate' type='text/html' href='http://cgit.rory.gay/spacebarchat/server-ts.git/commit/?id=c0f9c22e67f33e9b12eca33432c4a2a849e0c20e'/>
<id>urn:sha1:c0f9c22e67f33e9b12eca33432c4a2a849e0c20e</id>
<content type='text'>
Resolves: #1020
</content>
</entry>
</feed>
