Angelo Kontaxis
91783b9066
fix: only show first line on commit messages ( #696 )
...
Signed-off-by: Zomatree <me@zomatree.live >
2026-03-27 17:29:37 -07:00
LazyCat
735d644e04
feat: Transfer ownership ( #396 )
...
* feat: Transfer ownership
Signed-off-by: LazyCat2 <68156188+LazyCat2@users.noreply.github.com >
* Allow privileged users to change ownership
Signed-off-by: LazyCat2 <68156188+LazyCat2@users.noreply.github.com >
* Require TOTP
Signed-off-by: LazyCat2 <68156188+LazyCat2@users.noreply.github.com >
* Require TOTP or password
Signed-off-by: LazyCat2 <68156188+LazyCat2@users.noreply.github.com >
---------
Signed-off-by: LazyCat2 <68156188+LazyCat2@users.noreply.github.com >
Signed-off-by: Tom <iamtomahawkx@gmail.com >
Co-authored-by: Tom <iamtomahawkx@gmail.com >
2026-03-27 17:24:53 -07:00
Tom
d1e72cee42
feat: parse message push notification content and replace internal formatting ( #693 )
...
* parse message push notification content and replace internal formatting
Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com >
* fix: don't unwrap the error I was using for db debugging
Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com >
* fix: emojis & remove compiler warning
Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com >
* fix: emojis in pushd
Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com >
* feat: report errors in the render function to sentry
Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com >
---------
Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com >
2026-03-27 17:15:05 -07:00
İspik
6107f242fd
feat: Add slowmode functionality to text channels ( #680 )
...
* feat: Add slowmode functionality to text channels
Signed-off-by: arsabutispik <ispik@ispik.dev >
* fix: use atomic check-and-set to prevent spamming with scripts
Signed-off-by: arsabutispik <ispik@ispik.dev >
* feat: Add BypassSlowmode permission to channel permissions
Signed-off-by: arsabutispik <ispik@ispik.dev >
* refactor: Use set_options instead of manually building the command
Signed-off-by: arsabutispik <ispik@ispik.dev >
---------
Signed-off-by: arsabutispik <ispik@ispik.dev >
2026-03-27 17:09:15 -07:00
Tom
a5cd08a655
fix: add flag for disabling events instead of commenting them out ( #695 )
...
Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com >
2026-03-27 17:03:48 -07:00
İspik
98c7b1b5a5
feat: implement time based message sweep on user ban ( #670 )
...
* feat: implement time based message sweep on user ban
- Adds `delete_message_seconds` (0 to 7 days in seconds) to the ban request payload.
Signed-off-by: arsabutispik <ispik@ispik.dev >
* refactor: pass ulid conversion to database
Signed-off-by: arsabutispik <ispik@ispik.dev >
* fix: use COL constant instead of hardcoded string in error mapper
Signed-off-by: arsabutispik <ispik@ispik.dev >
* refactor: broadcast bulk delete events during ban sweep
Updates the `delete_messages_by_author_since` trait to return a
HashMap of deleted message IDs grouped by channel.
The MongoDB implementation now uses a two-step process: it first
runs a projected `find` query to gather the target `_id` and
`channel` fields, then executes the `delete_many` operation.
This allows the ban route to loop through the affected channels and
dispatch `EventV1::BulkMessageDelete` WebSocket events, ensuring
that the swept messages are instantly removed from the UI for
all connected clients.
Signed-off-by: arsabutispik <ispik@ispik.dev >
* refactor: optimize message deletion by using $group and aggregate
Signed-off-by: arsabutispik <ispik@ispik.dev >
* refactor: use with_type in query
Signed-off-by: arsabutispik <ispik@ispik.dev >
* refactor: abstract function to Message model and mark attachments as deleted
Signed-off-by: arsabutispik <ispik@ispik.dev >
---------
Signed-off-by: arsabutispik <ispik@ispik.dev >
2026-03-27 17:02:12 -07:00
flexxyfluxx
ec22deb2cd
docs(readme): remove outdated reference to scripts/install.sh; add instruction to run mise install ( #691 )
...
* chore: fill in missing install step: mise install
Signed-off-by: flexxyfluxx <82163962+flexxyfluxx@users.noreply.github.com >
* chore: remove outdated reference to scripts/start.sh
Signed-off-by: flexxyfluxx <82163962+flexxyfluxx@users.noreply.github.com >
---------
Signed-off-by: flexxyfluxx <82163962+flexxyfluxx@users.noreply.github.com >
2026-03-27 13:25:57 -07:00
stoat-tofu[bot]
ecb94e278c
chore: modify .github/workflows/validate-pr-title.yml
2026-03-24 19:03:59 +00:00
stoat-tofu[bot]
1a9d5b4b65
chore: modify .github/workflows/release-webhook.yml
2026-03-24 19:03:39 +00:00
stoat-tofu[bot]
abfb3925fd
chore: modify .github/workflows/git-town.yml
2026-03-24 19:03:37 +00:00
stoat-tofu[bot]
2a73d82250
chore: modify .github/workflows/git-town.yml
2026-03-24 18:59:15 +00:00
Tom
edfa97db10
feat: Allow restricting server creation to specific users ( #685 )
...
Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com >
2026-03-23 12:25:33 -07:00
Tom
cf2cedcee1
chore: silence git town errors ( #687 )
...
Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com >
2026-03-23 11:51:22 -07:00
sinus-x
b830631bd2
fix(docs): Update GitHub links ( #647 )
...
Updates user-facing links to point to the new organization. Does not
update references in source code (user-agent, dependency references),
as they should be handled separately.
Signed-off-by: sinus-x <14353790+sinus-x@users.noreply.github.com >
2026-03-22 22:18:25 -07:00
Erik LaBine
3fa0abf47f
feat: Detect animation in image files for fetch_preview ( #574 )
...
* Implement animated metadata TODOs for database and thumbnailing.
Signed-off-by: Assisting <erik@eriklabine.com >
* Run linter for code changes
Signed-off-by: Assisting <erik@eriklabine.com >
---------
Signed-off-by: Assisting <erik@eriklabine.com >
2026-03-22 22:07:22 -07:00
Nico
5191bd16b2
feat: load config from env vars ( #576 )
...
Signed-off-by: Nico <nico.macioszek@gmail.com >
2026-03-22 20:33:01 -07:00
Paul Makles
2547fc6cd3
docs: add LLM policy to contrib.md ( #683 )
2026-03-22 14:02:58 +00:00
Tom
5701b5c18c
fix: don't use a bitop for OR ( #676 )
...
* fix: uname is missing from crond
Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com >
* fix: don't use a bitop
lol, two of us missed that.
---------
Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com >
2026-03-15 09:15:54 -07:00
Tom
dc4438bc3c
fix: uname is missing from crond ( #675 )
...
Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com >
2026-03-15 09:04:37 -07:00
Damocles
f2fc1ee00c
docs: documentation generation ( #575 )
...
Signed-off-by: Damocles078 <hellodamocles078@gmail.com >
2026-03-14 00:53:51 -07:00
İspik
ab525699bd
fix: add masquerade permission to default direct message settings ( #665 )
...
Signed-off-by: arsabutispik <ispik@ispik.dev >
2026-03-14 00:41:31 -07:00
Christopher Hultin
d56135e0cb
fix: Check for appropriate permission for removing other users avatar ( #657 )
...
* Check for appropriate permission for removing other users avatar
Signed-off-by: Chris Hultin <chris.hultin@gmail.com >
* limit check for non-self to just removal
Signed-off-by: Chris Hultin <chris.hultin@gmail.com >
* else if change
Signed-off-by: Chris Hultin <chris.hultin@gmail.com >
---------
Signed-off-by: Chris Hultin <chris.hultin@gmail.com >
2026-03-10 15:38:41 -07:00
Alex
52c0d2f266
fix: send push notifications for DM and group messages ( #660 )
...
DMs and group messages never triggered push notifications because
the condition only checked for explicit @mentions. DMs don't use
mentions, so users were never notified of new direct messages.
Signed-off-by: sanasol <mail@sanasol.ws >
2026-03-10 15:15:00 -07:00
Angelo Kontaxis
49c6289580
fix: store server id in redis and in room metadata to be able to delete voice state in all scenarios ( #656 )
...
* fix: store server id in redis values and in room metadata to be able to fully delete voice state in all scenarios
* fix: undo logging change
2026-03-10 15:14:32 -07:00
Tom
b0b728fb0d
fix: redis_url vs redis_uri in config ( #666 )
2026-03-10 15:00:06 -07:00
Damocles
d629e89304
fix: replace some links and Revolt mentions to current Stoat ( #515 )
2026-03-08 01:28:50 +00:00
Tom
24d0d2b726
fix: no node state set on channel creation ( #653 )
...
* fix: no node state set on channel creation
Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com >
* Update "join_call" logic to handle issue of "user is already connected to a channel that cannot be found"
Fixes stoatchat/for-web#951
Signed-off-by: Chris Hultin <chris.hultin@gmail.com >
* feat: remove node key when channel is empty or deleted
---------
Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com >
Signed-off-by: Chris Hultin <chris.hultin@gmail.com >
Co-authored-by: Chris Hultin <chris.hultin@gmail.com >
2026-03-02 20:45:42 -08:00
Kristian Kjærgård
f777e2863c
feat: add bug report template for issue tracking ( #627 )
...
Signed-off-by: Bobby <31723128+kris6673@users.noreply.github.com >
2026-03-01 11:16:45 -08:00
Jacob Schlecht
a80ad1cbe5
fix: Fix typo for p256dh in vapid notification flow ( #622 )
...
* fix: Fix typo for p256dh in vapid notification flow
This commit was made without the use of generative AI.
Signed-off-by: Jacob Schlecht <dadadah@echoha.us >
* fix: Revert .clone() change as it works fine without that change
This commit was made without the use of generative AI.
Signed-off-by: Jacob Schlecht <dadadah@echoha.us >
---------
Signed-off-by: Jacob Schlecht <dadadah@echoha.us >
2026-03-01 11:06:13 -08:00
Christopher Hultin
0b522ebddc
feat: expose global and user limits in root API response ( #644 )
...
* feat: expose global and user limits in root API response
Signed-off-by: Chris Hultin <chris.hultin@gmail.com >
* add missing file upload limits
Signed-off-by: Chris Hultin <chris.hultin@gmail.com >
* extract logic to generate "UserLimits" struct from "config"
Signed-off-by: Chris Hultin <chris.hultin@gmail.com >
* convert user limits from feature limits function to impl function
Signed-off-by: Chris Hultin <chris.hultin@gmail.com >
* picking nits
Signed-off-by: Chris Hultin <chris.hultin@gmail.com >
---------
Signed-off-by: Chris Hultin <chris.hultin@gmail.com >
2026-03-01 11:03:49 -08:00
stoat-tofu[bot]
6bd045eb79
chore: modify .github/workflows/release-webhook.yml
2026-02-20 20:45:25 +00:00
Tom
0698e115e8
fix: default video resolution is a non-existent size ( #601 )
...
fixes #588
2026-02-18 10:07:35 +00:00
stoat-release[bot]
8e3765df4c
chore(main): release 0.11.5 ( #598 )
...
* chore(main): release 0.11.5
* chore: update Cargo.lock
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
---------
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: stoat-release[bot] <245062572+stoat-release[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
v0.11.5
2026-02-17 22:14:57 +00:00
Paul Makles
1c98ead695
revert: disable user update events ( #593 )
...
* Revert "fix: cut presence traffic too while we engineer a new events architecture (#561 )"
This reverts commit 1f8ea963ad .
* Revert "fix: cut events traffic while we engineer a new events architecture (#559 )"
This reverts commit a11986ba1a .
* chore: only revert user update
2026-02-17 22:13:17 +00:00
stoat-release[bot]
8849d03cd2
chore(main): release 0.11.4 ( #591 )
...
* chore(main): release 0.11.4
* chore: update Cargo.lock
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
---------
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: stoat-release[bot] <245062572+stoat-release[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
v0.11.4
2026-02-16 20:02:01 +00:00
Paul Makles
a75e4eabfc
fix: add separate config option for redis events replica url ( #590 )
2026-02-16 19:37:04 +00:00
stoat-release[bot]
74f0c537e6
chore(main): release 0.11.3 ( #562 )
...
* chore(main): release 0.11.3
* chore: update Cargo.lock
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
---------
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: stoat-release[bot] <245062572+stoat-release[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
v0.11.3
2026-02-13 19:50:32 +00:00
Paul Makles
1f8ea963ad
fix: cut presence traffic too while we engineer a new events architecture ( #561 )
...
Signed-off-by: izzy <me@insrt.uk >
2026-02-13 19:49:23 +00:00
stoat-release[bot]
7c7f4f24de
chore(main): release 0.11.2 ( #560 )
...
* chore(main): release 0.11.2
* chore: update Cargo.lock
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
---------
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: stoat-release[bot] <245062572+stoat-release[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
v0.11.2
2026-02-13 19:42:13 +00:00
Paul Makles
a11986ba1a
fix: cut events traffic while we engineer a new events architecture ( #559 )
...
Signed-off-by: izzy <me@insrt.uk >
2026-02-13 19:40:51 +00:00
stoat-release[bot]
2e87696c83
chore(main): release 0.11.1 ( #554 )
v0.11.1
2026-02-13 00:21:29 +00:00
Angelo Kontaxis
94cb916231
fix: bots in multiple voice channel logic ( #544 )
2026-02-13 00:11:15 +00:00
Paul Makles
95c7dbc793
ci: do not interpolate directly into release workflows ( #545 )
2026-02-12 16:47:05 +00:00
stoat-release[bot]
ba798490e2
chore(main): release 0.11.0 ( #525 )
...
Co-authored-by: stoat-release[bot] <245062572+stoat-release[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
v0.11.0
2026-02-10 20:48:36 +00:00
Paul Makles
5132270f2e
feat: appeal to the almighty Spamhaus ( #524 )
2026-02-10 20:46:49 +00:00
Tanner Stirrat
4a0957b5ec
Update repo readme header ( #511 )
...
Update README.md
Signed-off-by: Tanner Stirrat <tstirrat@gmail.com >
2026-02-09 20:51:56 +00:00
stoat-release[bot]
1bfb2a7214
chore(main): release 0.10.3 ( #509 )
...
* chore(main): release 0.10.3
* chore: update Cargo.lock
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
---------
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: stoat-release[bot] <245062572+stoat-release[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
v0.10.3
2026-02-09 20:51:30 +00:00
Paul Makles
84483cee7a
fix: update Revolt -> Stoat in email titles/desc. ( #508 )
2026-02-07 16:24:53 +00:00
stoat-release[bot]
4bfd79c42c
chore(main): release 0.10.2 ( #506 )
...
Co-authored-by: stoat-release[bot] <245062572+stoat-release[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
v0.10.2
2026-01-25 22:43:56 +00:00
Paul Makles
413aa04dca
fix: thumbnailification requires rgb8/rgba8 ( #505 )
2026-01-25 22:36:31 +00:00