İspik
f10aaa5bbe
feat: add admin account email change route
...
Signed-off-by: İspik <ispik@ispik.dev >
2026-06-28 17:49:45 +03:00
İspik
08fb35c3f9
Merge branch 'main' into feat/admin-api
...
# Conflicts:
# crates/core/database/src/drivers/mod.rs
# crates/core/database/src/drivers/reference.rs
# crates/core/database/src/models/admin_migrations/ops/mongodb/init.rs
# crates/core/database/src/models/channels/ops.rs
# crates/core/database/src/models/server_members/ops.rs
# crates/core/database/src/models/server_members/ops/mongodb.rs
# crates/core/database/src/models/server_members/ops/reference.rs
# crates/core/database/src/util/bridge/v0.rs
# crates/core/result/src/axum.rs
# crates/core/result/src/lib.rs
# crates/core/result/src/rocket.rs
# crates/delta/src/routes/mod.rs
# crates/delta/src/routes/servers/server_edit.rs
2026-06-28 16:08:48 +03:00
İspik
ffab2369ab
feat: add pronouns to user and server members field ( #811 )
...
Signed-off-by: İspik <ispik@ispik.dev >
2026-06-21 00:55:23 -07:00
Zomatree
d27917b824
chore: migrate authifier into codebase ( #658 )
...
Co-authored-by: izzy <me@insrt.uk >
Signed-off-by: Zomatree <me@zomatree.live >
Signed-off-by: izzy <me@insrt.uk >
2026-06-21 00:50:06 +01:00
İspik
05bceb6d4a
feat: add admin channel wipe endpoint
2026-06-13 11:33:23 +03:00
İspik
e48d92c635
feat: add admin channel edit endpoint
2026-06-12 23:48:26 +03:00
ispik
93a00ffbf8
Merge branch 'main' into feat/admin-api
...
# Conflicts:
# crates/core/database/src/util/mod.rs
# crates/core/result/src/axum.rs
2026-05-23 13:26:21 +03:00
stoat-release[bot]
7937179db7
chore(main): release 0.13.7 ( #770 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-21 19:33:49 +01:00
stoat-release[bot]
03b52655ff
chore(main): release 0.13.6 ( #762 )
...
* chore(main): release 0.13.6
* 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>
2026-05-18 15:53:42 -07:00
İspik
af0d8aad14
feat: user slowmode events ( #760 )
...
* feat: user slowmode events
Signed-off-by: ispik <ispik@ispik.dev >
* fix: remove debug print statement for slowmodes
Signed-off-by: ispik <ispik@ispik.dev >
* refactor: Send user slowmodes as websocket connects instead of trying to send it in ready payload
Signed-off-by: ispik <ispik@ispik.dev >
* refactor: optimize user slowmode handling with bulk operations
Signed-off-by: ispik <ispik@ispik.dev >
* chore: specify release version
Release-As: 0.13.6
---------
Signed-off-by: ispik <ispik@ispik.dev >
2026-05-18 14:51:43 -07:00
stoat-release[bot]
6c920de03a
chore(main): release 0.13.5 ( #759 )
...
* chore(main): release 0.13.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>
2026-05-17 11:02:21 -07:00
stoat-release[bot]
ee4575470b
chore(main): release 0.13.4 ( #754 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-16 18:27:44 +01:00
stoat-release[bot]
ab9b8ccfca
chore(main): release 0.13.3 ( #750 )
...
* chore(main): release 0.13.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>
2026-05-15 12:22:27 -07:00
stoat-release[bot]
8157e1f6e9
chore(main): release 0.13.2 ( #747 )
...
* chore(main): release 0.13.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>
2026-05-11 15:26:03 +01:00
stoat-release[bot]
260036488d
chore(main): release 0.13.1 ( #745 )
...
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>
2026-05-10 15:34:41 +01:00
stoat-release[bot]
d52e84c5d3
chore(main): release 0.13.0 ( #722 )
...
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>
2026-05-09 17:26:38 +01:00
Gabriel
23ad135983
feat: add emoji rename endpoint ( #714 )
...
* feat: add rename endpoint with rename-only update
Signed-off-by: Gabriel <60961939+gabrielfordevelopment@users.noreply.github.com >
* fix: enforce detached emoji edit restrictions
Signed-off-by: Gabriel <60961939+gabrielfordevelopment@users.noreply.github.com >
* fix: always enforce emoji edit permissions
Signed-off-by: Gabriel <60961939+gabrielfordevelopment@users.noreply.github.com >
---------
Signed-off-by: Gabriel <60961939+gabrielfordevelopment@users.noreply.github.com >
2026-05-08 15:23:57 -07:00
İspik
841985d3b9
feat: add role icon support ( #724 )
...
Signed-off-by: ispik <ispik@ispik.dev >
2026-05-02 17:04:28 -07:00
ispik
8bd5542e71
Merge branch 'main' into feat/admin-api
...
# Conflicts:
# crates/core/database/src/models/users/model.rs
2026-04-27 10:29:19 +03:00
İspik
ed4fd5ebfe
fix: update message length validation to remove upper limit ( #723 )
...
Signed-off-by: ispik <ispik@ispik.dev >
2026-04-23 20:39:13 -07:00
ispik
533cc5835a
feat: add admin channel deletion endpoint
2026-04-18 19:31:38 +03:00
ispik
80b749d6fc
Merge branch 'main' into feat/admin-api
2026-04-18 18:54:02 +03:00
Angelo Kontaxis
3675ff1a1f
chore: migrate all local dependancies to workspace dependancies ( #710 )
...
* chore: start moving all deps to workspace deps
Signed-off-by: Zomatree <me@zomatree.live >
* chore: migrate all deps to workspace deps
Signed-off-by: Zomatree <me@zomatree.live >
* chore: add more dep groups
Signed-off-by: Zomatree <me@zomatree.live >
* fix: add migration to update existing files to be animated (#705 )
* fix: add migration to update existing files to be animated
Signed-off-by: Zomatree <me@zomatree.live >
* Revert "fix: add migration to update existing files to be animated"
This reverts commit 4e1f1c116c .
Signed-off-by: Zomatree <me@zomatree.live >
* fix: calculate animated for existing files when fetched
Signed-off-by: Zomatree <me@zomatree.live >
---------
Signed-off-by: Zomatree <me@zomatree.live >
* fix: mise start + missing docker image (#564 )
* fix: mise start + missing docker image
Signed-off-by: Damocles078 <hellodamocles078@gmail.com >
* fix: bump livekit version
Signed-off-by: Damocles <106018783+Damocles078@users.noreply.github.com >
---------
Signed-off-by: Damocles078 <hellodamocles078@gmail.com >
Signed-off-by: Tom <iamtomahawkx@gmail.com >
Signed-off-by: Damocles <106018783+Damocles078@users.noreply.github.com >
Co-authored-by: Tom <iamtomahawkx@gmail.com >
* docs: update donation link (#709 )
Signed-off-by: Zomatree <me@zomatree.live >
* fix: remove usage of deprecated functions
Signed-off-by: Zomatree <me@zomatree.live >
---------
Signed-off-by: Zomatree <me@zomatree.live >
Signed-off-by: Damocles078 <hellodamocles078@gmail.com >
Signed-off-by: Tom <iamtomahawkx@gmail.com >
Signed-off-by: Damocles <106018783+Damocles078@users.noreply.github.com >
Co-authored-by: Damocles <106018783+Damocles078@users.noreply.github.com >
Co-authored-by: Tom <iamtomahawkx@gmail.com >
Co-authored-by: Paul Makles <me@insrt.uk >
2026-04-17 19:02:18 -07:00
ispik
74ce10162c
Merge branch 'main' into feat/admin-api
2026-04-12 14:50:04 +03:00
ispik
5b9a909923
fix: update audit action for accurate account actions
2026-04-12 14:18:22 +03:00
ispik
01e0c30596
fix: update permissions for accounts routes to ManageAccounts
2026-04-12 14:12:15 +03:00
stoat-release[bot]
61fd13629f
chore(main): release 0.12.1 ( #700 )
...
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>
2026-04-11 12:31:11 +01:00
ispik
6e78f0b9c0
feat: implement admin account disable functionality
2026-04-11 14:00:50 +03:00
ispik
a152d825a2
fix: update Reference type to be lifetime parameterized in admin API functions
2026-04-11 01:01:57 +03:00
ispik
85ad261cc3
Merge branch 'main' into feat/admin-api
...
# Conflicts:
# crates/core/database/src/util/bridge/v0.rs
# crates/core/result/src/axum.rs
# crates/core/result/src/lib.rs
# crates/core/result/src/rocket.rs
2026-04-11 00:49:36 +03:00
Angelo Kontaxis
f2c056a151
fix: add migration to update existing files to be animated ( #705 )
...
* fix: add migration to update existing files to be animated
Signed-off-by: Zomatree <me@zomatree.live >
* Revert "fix: add migration to update existing files to be animated"
This reverts commit 4e1f1c116c .
Signed-off-by: Zomatree <me@zomatree.live >
* fix: calculate animated for existing files when fetched
Signed-off-by: Zomatree <me@zomatree.live >
---------
Signed-off-by: Zomatree <me@zomatree.live >
2026-04-01 19:48:22 -07:00
Tom
f30b729ca9
fix: don't send self dm notifications ( #706 )
...
* fix: don't send self dm notifications
Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com >
* fix: test failure due to wrong assertion (#707 )
Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com >
* fix: RA auto import moment
Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com >
---------
Signed-off-by: IAmTomahawkx <iamtomahawkx@gmail.com >
2026-03-31 15:25:36 -07:00
stoat-release[bot]
4d4b0dd864
chore(main): release 0.12.0 ( #602 )
...
Co-authored-by: stoat-release[bot] <245062572+stoat-release[bot]@users.noreply.github.com>
2026-03-28 22:22:37 -07:00
newt (
c2d4369e16
feat: compute thumbhash for images ( #596 )
...
* feat: compute thumbhash for images
Signed-off-by: newt <hi@newty.dev >
* Merge branch 'main' into feat/thumbhash
Signed-off-by: newt <hi@newty.dev >
* style: move comment onto newline
Signed-off-by: newt <hi@newty.dev >
* feat: make thumbhash optional
Signed-off-by: newt <hi@newty.dev >
---------
Signed-off-by: newt <hi@newty.dev >
Signed-off-by: newt (: <hi@newty.dev >
Signed-off-by: Tom <iamtomahawkx@gmail.com >
Co-authored-by: Tom <iamtomahawkx@gmail.com >
2026-03-27 17:29:55 -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
İ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
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
IAmTomahawkx
f857ca6926
Merge branch 'feat/admin-api' of github.com:stoatchat/stoatchat into feat/admin-api
2026-02-17 16:58:53 -08:00
IAmTomahawkx
73ce052e1a
feat: Working server/comment routes
2026-02-17 16:43:05 -08:00
IAmTomahawkx
4fd71c98d6
feat: Implement models and meta routes. Add empty files for routes still to be implemented.
2026-02-17 16:37:18 -08:00
IAmTomahawkx
96f046bc76
create models
2026-02-17 16:37:18 -08: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>
2026-02-17 22:14:57 +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>
2026-02-16 20:02:01 +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>
2026-02-13 19:50:32 +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>
2026-02-13 19:42:13 +00:00
stoat-release[bot]
2e87696c83
chore(main): release 0.11.1 ( #554 )
2026-02-13 00:21:29 +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>
2026-02-10 20:48:36 +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>
2026-02-09 20:51:30 +00:00