Xander
6fba33d443
Fix payouts notifications not delivering ( #5430 )
...
* fix FK violation when inserting rows into `notifications_deliveries`
* add test for FK violation when inserting into notifications_deliveries
* sqlx prepare
* add migration to prevent stale notifications from being dequeued all at once upon fix
* Revert "add migration to prevent stale notifications from being dequeued all at once upon fix"
This reverts commit 446f398752bbddb632196a549501f9ce0b2da67f.
2026-02-26 19:42:25 +00:00
Xander
017f6a5afb
fix: session refresh works as intended now ( #5330 )
...
* fix: session refresh works as intended now
* use code-defined defaults for expires and session_expires
* fix sqlx
* database migration drop defaults
* run fmt
* remove comment in migration
Signed-off-by: Xander <xander@isxander.dev >
---------
Signed-off-by: Xander <xander@isxander.dev >
2026-02-26 17:33:09 +00:00
aecsocket
f052ecd702
Batch of tech review backend fixes ( #5398 )
...
* Don't enter project into tech review if no new traces
* Send tech review exited message if files are deleted
* change PATCH /issue-detail/{id} to batch update details
* Fix sorting
* store delphi jar in backend
* show jar in tech review card
* improve jar display in frontend
* Fix live/in review label for tech review cards
* sqlx prepare
* polish: decode segments + code qual fix
* fix: skip first seg
* fix: only slice if needed
* Fix tech rev card styling
---------
Co-authored-by: Calum H. (IMB11) <contact@cal.engineer >
2026-02-20 12:54:36 +00:00
aecsocket
ec81bcb13c
Improve environment variable handling and reading ( #5389 )
...
* wip: better env var reading
* move most env vars to env.rs
* migrate more env vars
* more migration
* more migrations
* More migration
* 🦀 dotenvy is gone (almost)
* 🦀 dotenvy is gone 🦀
* Fix mural source account env var handling
* Remove defaults from admin key vars
* dummy commit to update github pr
* fix ci
2026-02-19 17:33:41 +00:00
aecsocket
e7eb4899a1
Fix user deletion to update more tables ( #5351 )
...
* wip: fix user delete
* add wrap_errs
* delete more rows in user deletion
* sqlx prepare
2026-02-12 11:37:40 +00:00
aecsocket
b1954be2c7
Ref-count Redis pool internals, fix project creation slug/ID collision ( #5302 )
...
* Ref-count Redis pool internals, fix project creation slug/ID collision
* cargo sqlx prepare
2026-02-05 05:18:33 +00:00
aecsocket
d5869c514e
Use deadpool fork with tracing ( #5276 )
...
* Use deadpool fork with tracing
* Implement minimum Redis connections
* fix typos maybe
* address pr comments
2026-02-02 23:24:55 +00:00
aecsocket
a207daef0d
Update charges rows on user deletion ( #5269 )
2026-02-01 19:14:38 +00:00
aecsocket
e57c15b3ce
Add SQLx operation tracing ( #5223 )
...
* wip: vendor sqlx-tracing
* (compiles) standardize pg types used
* more standardization
* general log message improvements
* wip: improve sqlx-tracing architecture
* unify sqlx::Executor type
* wip: try fix sqlx tracing
* wip: sqlx-tracing compiles
* so close
* it compiles
* fix ci
2026-01-28 13:38:57 +00:00
aecsocket
05f8113bd0
Fix CI on main ( #5213 )
2026-01-25 12:40:22 -08:00
François-Xavier Talbot
2d7e87a4cb
Local cache lock ( #5193 )
2026-01-24 00:35:46 +01:00
Michael H.
1cf782c298
Revert "Implement redis clustering ( #5189 )"
...
This reverts commit fb1050e409 .
2026-01-23 16:08:07 +01:00
Jai Agrawal
fb1050e409
Implement redis clustering ( #5189 )
...
Co-authored-by: Jai Agrawal <geometrically@Jais-MacBook-Pro.local >
2026-01-23 13:51:17 +01:00
François-Xavier Talbot
5c29a8c7dd
Batched search indexing ( #5191 )
...
* Use RO pool for search indexing
* Batched search indexing that actually works
* Query cache
2026-01-23 12:32:02 +00:00
aecsocket
1d193ed01b
More tracing spans for Labrinth Redis ( #5182 )
...
* more tracing in redis ops
* Improve Redis tracing
* improve messages
* make lpush and brpop use traced cmds
2026-01-22 17:46:37 +01:00
aecsocket
e072f2237b
Improve Labrinth Sentry integration ( #5174 )
...
* Improve Sentry integration
* remove debug routes
* fix ci
* sentry tracing stuff
* Add spans to Sentry logging
* Fix CI
* Redis op instrumentation
* pr comments
2026-01-21 18:59:05 +00:00
aecsocket
c37bf75853
Implement replied/unreplied filter for tech review ( #5006 )
...
* Implement replied/unreplied filter for tech review
* project status filter
* wip: issue type filter
* correct filter field
* wip: break up tech review query
* Improve tech review query
* Get tech review working more properly
* Add get single project reports endpoint
2026-01-15 11:54:20 +00:00
Emma Alexia
50a87ba933
Fix user deletion (again) (again) (notifications_deliveries) ( #5112 )
...
Doesn't seem to work fully with notification IDs, not sure why.
2026-01-13 22:25:00 +00:00
Calum H.
b46f6d0141
feat: moderation locking ( #5070 )
...
* feat: base locking impl
* feat: lock logic in place in rev endpoint + fetch rev
* feat: frontend impl and finalize
* feat: auto skip if using the moderation queue page
* fix: qa issues
* fix: async state + locking fix
* fix: lint
* fix: fmt
* fix: qa issue
* fix: qa + redirect bug
* fix: lint
* feat: delete all locks endpoint for admins
* fix: dedupe
* fix: fmt
* fix: project redirect move to middleware
* fix: lint
2026-01-12 17:08:30 +00:00
François-Xavier Talbot
ff222aa168
PG/RedisPool configuration/o11y improvements ( #5032 )
...
* Don't retain Redis connections while doing database queries
* Optional REDIS_WAIT_TIMEOUT_MS
* Attach more data to CacheTimeout errrors
* Fix locks_released
* Fmt
* Set default REDIS_WAIT_TIMEOUT_MS to 15s
* Fix lint
* Close Redis connections idle for > 5 minutes
* Exponential backoff on cache spin lock
2026-01-08 20:47:13 +01:00
aecsocket
39f2b0ecb6
Technical review queue ( #4775 )
...
* chore: fix typo in status message
* feat(labrinth): overhaul malware scanner report storage and routes
* chore: address some review comments
* feat: add Delphi to Docker Compose `with-delphi` profile
* chore: fix unused import Clippy lint
* feat(labrinth/delphi): use PAT token authorization with project read scopes
* chore: expose file IDs in version queries
* fix: accept null decompiled source payloads from Delphi
* tweak(labrinth): expose base62 file IDs more consistently for Delphi
* feat(labrinth/delphi): support new Delphi report severity field
* chore(labrinth): run `cargo sqlx prepare` to fix Docker build errors
* tweak: add route for fetching Delphi issue type schema, abstract Labrinth away from issue types
* chore: run `cargo sqlx prepare`
* chore: fix typo on frontend generated state file message
* feat: update to use new Delphi issue schema
* wip: tech review endpoints
* wip: add ToSchema for dependent types
* wip: report issues return
* wip
* wip: returning more data
* wip
* Fix up db query
* Delphi configuration to talk to Labrinth
* Get Delphi working with Labrinth
* Add Delphi dummy fixture
* Better Delphi logging
* Improve utoipa for tech review routes
* Add more sorting options for tech review queue
* Oops join
* New routes for fetching issues and reports
* Fix which kind of ID is returned in tech review endpoints
* Deduplicate tech review report rows
* Reduce info sent for projects
* Fetch more thread info
* Address PR comments
* fix ci
* fix postgres version mismatch
* fix version creation
* Implement routes
* fix up tech review
* Allow adding a moderation comment to Delphi rejections
* fix up rebase
* exclude rejected projects from tech review
* add status change msg to tech review thread
* cargo sqlx prepare
* also ignore withheld projects
* More filtering on issue search
* wip: report routes
* Fix up for build
* cargo sqlx prepare
* fix thread message privacy
* New tech review search route
* submit route
* details have statuses now
* add default to drid status
* dedup issue details
* fix sqlx query on empty files
* fixes
* Dedupe issue detail statuses and message on entering tech rev
* Fix qa issues
* Fix qa issues
* fix review comments
* typos
* fix ci
* feat: tech review frontend (#4781 )
* chore: fix typo in status message
* feat(labrinth): overhaul malware scanner report storage and routes
* chore: address some review comments
* feat: add Delphi to Docker Compose `with-delphi` profile
* chore: fix unused import Clippy lint
* feat(labrinth/delphi): use PAT token authorization with project read scopes
* chore: expose file IDs in version queries
* fix: accept null decompiled source payloads from Delphi
* tweak(labrinth): expose base62 file IDs more consistently for Delphi
* feat(labrinth/delphi): support new Delphi report severity field
* chore(labrinth): run `cargo sqlx prepare` to fix Docker build errors
* tweak: add route for fetching Delphi issue type schema, abstract Labrinth away from issue types
* chore: run `cargo sqlx prepare`
* chore: fix typo on frontend generated state file message
* feat: update to use new Delphi issue schema
* wip: tech review endpoints
* wip: add ToSchema for dependent types
* wip: report issues return
* wip
* wip: returning more data
* wip
* Fix up db query
* Delphi configuration to talk to Labrinth
* Get Delphi working with Labrinth
* Add Delphi dummy fixture
* Better Delphi logging
* Improve utoipa for tech review routes
* Add more sorting options for tech review queue
* Oops join
* New routes for fetching issues and reports
* Fix which kind of ID is returned in tech review endpoints
* Deduplicate tech review report rows
* Reduce info sent for projects
* Fetch more thread info
* Address PR comments
* fix ci
* fix ci
* fix postgres version mismatch
* fix version creation
* Implement routes
* feat: batch scan alert
* feat: layout
* feat: introduce surface variables
* fix: theme selector
* feat: rough draft of tech review card
* feat: tab switcher
* feat: batch scan btn
* feat: api-client module for tech review
* draft: impl
* feat: auto icons
* fix: layout issues
* feat: fixes to code blocks + flag labels
* feat: temp remove mock data
* fix: search sort types
* fix: intl & lint
* chore: re-enable mock data
* fix: flag badges + auto open first issue in file tab
* feat: update for new routes
* fix: more qa issues
* feat: lazy load sources
* fix: re-enable auth middleware
* feat: impl threads
* fix: lint & severity
* feat: download btn + switch to using NavTabs with new local mode option
* feat: re-add toplevel btns
* feat: reports page consistency
* fix: consistency on project queue
* fix: icons + sizing
* fix: colors and gaps
* fix: impl endpoints
* feat: load all flags on file tab
* feat: thread generics changes
* feat: more qa
* feat: fix collapse
* fix: qa
* feat: msg modal
* fix: ISO import
* feat: qa fixes
* fix: empty state basic
* fix: collapsible region
* fix: collapse thread by default
* feat: rough draft of new process/flow
* fix labrinth build
* fix thread message privacy
* New tech review search route
* feat: qa fixes
* feat: QA changes
* fix: verdict on detail not whole issue
* fix: lint + intl
* fix: lint
* fix: thread message for tech rev verdict
* feat: use anim frames
* fix: exports + typecheck
* polish: qa changes
* feat: qa
* feat: qa polish
* feat: fix malic modal
* fix: lint
* fix: qa + lint
* fix: pagination
* fix: lint
* fix: qa
* intl extract
* fix ci
---------
Signed-off-by: Calum H. <contact@cal.engineer >
Co-authored-by: Alejandro González <me@alegon.dev >
Co-authored-by: aecsocket <aecsocket@tutanota.com >
---------
Signed-off-by: Calum H. <contact@cal.engineer >
Co-authored-by: Alejandro González <me@alegon.dev >
Co-authored-by: Calum H. <contact@cal.engineer >
2025-12-20 11:43:04 +00:00
aecsocket
783aaa6553
Add revenue split to affiliate codes v2 ( #4672 )
...
* wip: affiliate payouts again
* Implement affiliate payout queue
* Deactivate subscription affiliations on cancellation
* Remove a test that never compiled in the first place
* Update sqlx cache
* address some PR comments
* more comments
* wip: handle refund charges
* cargo sqlx prepare
* Address PR comments
* cargo sqlx prepare
2025-12-02 00:01:24 +00:00
aecsocket
089cca60ce
Fix PayPal SSO OAuth callback ( #4758 )
...
* Maybe fix PayPal SSO
* cargo sqlx prepare
* maybe works
* Attempt 2 of fixing
* Fix vue
* Try adding more logging to flow
2025-11-16 21:49:48 +00:00
aecsocket
98b4970680
Store method ID for payouts ( #4752 )
...
* Store method ID for payouts
* Fixes
2025-11-10 16:41:06 +00:00
aecsocket
9706f1597b
Supporting documents for Mural payouts ( #4721 )
...
* wip: gotenberg
* Generate and provide supporting docs for Mural payouts
* Correct docs
* shear
* update cargo lock because r-a complains otherwise
* Remove local Gotenberg queue and use Redis instead
* Store platform_id in database correctly
* Address PR comments
* Fix up CI
* fix rebase
* Add timeout to default env vars
2025-11-08 23:27:31 +00:00
aecsocket
f8a5a77daa
Expose test utils to Labrinth dependents ( #4703 )
...
* Expose test utils to Labrinth dependents
* Feature gate `labrinth::test`
* Unify db migrators
* Expose `NotificationBuilder::insert_many_deliveries`
* Add logging utils to common crate
* Remove unused console-subscriber layer
* fix CI
2025-11-08 20:26:24 +00:00
François-Xavier Talbot
7437a833ef
Fix payout notifications ( #4707 )
...
* Add limit to payouts_values_notifications synchronizer
* Set payout notification threshold to $1
* Fix formatting
* Query cache
2025-11-05 19:43:59 +00:00
François-Xavier Talbot
92698e4bb5
Update tax change notification timings ( #4706 )
2025-11-03 22:15:16 +00:00
aecsocket
17f395ee55
Mural Pay integration ( #4520 )
...
* wip: muralpay integration
* Basic Mural Pay API bindings
* Fix clippy
* use dotenvy in muralpay example
* Refactor payout creation code
* wip: muralpay payout requests
* Mural Pay payouts work
* Fix clippy
* add mural pay fees API
* Work on payout fee API
* Fees API for more payment methods
* Fix CI
* Temporarily disable Venmo and PayPal methods from frontend
* wip: counterparties
* Start on counterparties and payment methods API
* Mural Pay multiple methods when fetching
* Don't send supported_countries to frontend
* Add countries to muralpay fiat methods
* Compile fix
* Add exchange rate info to fees endpoint
* Add fees to premium Tremendous options
* Add delivery email field to Tremendous payouts
* Add Tremendous product category to payout methods
* Add bank details API to muralpay
* Fix CI
* Fix CI
* Remove prepaid visa, compute fees properly for Tremendous methods
* Add more details to Tremendous errors
* Add fees to Mural
* Payout history route and bank details
* Re-add legacy PayPal/Venmo options for US
* move the mural bank details route
* Add utoipa support to payout endpoints
* address some PR comments
* add CORS to new utoipa routes
* Immediately approve mural payouts
* Add currency support to Tremendous payouts
* Currency forex
* add forex to tremendous fee request
* Add Mural balance to bank balance info
* Add more Tremendous currencies support
* Transaction payouts available use the correct date
* Address my own review comment
* Address PR comments
* Change Mural withdrawal limit to 3k
* maybe fix tremendous gift cards
* Change how Mural minimum withdrawals are calculated
* Tweak min/max withdrawal values
---------
Co-authored-by: Calum H. <contact@cal.engineer >
Co-authored-by: Alejandro González <me@alegon.dev >
2025-11-03 14:19:46 -08:00
aecsocket
b7f0988399
Decouple project deletion from thread deletion ( #4673 )
...
* Decouple project deletion from thread deletion
* Allow a thread to exist without a project
* attempt 2
* Modify migration to set orphaned threads' mods to NULL instead of removing constraint entirely
* Use mod PAT for mod threads
2025-10-31 19:04:01 +00:00
aecsocket
bcc36362be
Expose utilities for setting up the database ( #4657 )
...
* Expose utilities for setting up the database
* Expose migrator directly
* Make some test utils publicly accessible
* expose migrator
* more test fixture utils
* more test fixture utils
* more test fixture utils
* fix
* fix lint
2025-10-30 10:10:25 +00:00
aecsocket
707ff2146b
Update appropriate rows when removing a user ( #4597 )
...
* Update appropriate rows when removing a user
* Update sqlx cache
* Delete rows from payouts_values_notifications instead of make ghost user
2025-10-24 14:19:53 +00:00
François-Xavier Talbot
f375913c62
Adjust some values in tax-related tasks ( #4598 )
...
* Adjust some values for tax processing
* chore: query cache, clippy, fmt
2025-10-21 15:55:54 +00:00
François-Xavier Talbot
eeed4e572d
Credit subscriptions ( #4575 )
...
* Implement subscription crediting
* chore: query cache, clippy, fmt
* Improve code, improve query for next open charge
* chore: query cache, clippy, fmt
* Move server ID copy button up
* Node + region crediting
* Make it less ugly
* chore: query cache, clippy, fmt
* Bugfixes
* Fix lint
* Adjust migration
* Adjust migration
* Remove billing change
* Move DEFAULT_CREDIT_EMAIL_MESSAGE to utils.ts
* Lint
* Merge
* bump clickhouse, disable validation
* tombi fmt
* Update cargo lock
2025-10-20 17:35:44 +00:00
François-Xavier Talbot
5db5bf4c4c
Changes to handling of refunds in Anrok ( #4556 )
...
* Use negations, track transaction version/accounting time, use original charge accounting time in refunds
* query cache
* chore: query cache, clippy, fmt
* Fix tax drift calculation
* Fix migration
* Increase update_tax_transactions rate
2025-10-17 15:57:36 +00:00
François-Xavier Talbot
0c66fa3f12
Custom Emails ( #4526 )
...
* Dynamic email template
* Set lower cache expiry for templates
* Custom email route
* Fix subject line on custom emails
* chore: query cache, clippy, fmt
* Bugfixes
* Key-based caching on custom emails
* Sequentially process emails prone to causing cache stampede
* Fill variables in dynamic body + subject line
* Update apps/labrinth/src/queue/email/templates.rs
Co-authored-by: aecsocket <aecsocket@tutanota.com >
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com >
* Update apps/labrinth/src/queue/email/templates.rs
Co-authored-by: aecsocket <aecsocket@tutanota.com >
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com >
---------
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com >
Co-authored-by: aecsocket <aecsocket@tutanota.com >
2025-10-10 16:30:38 +00:00
François-Xavier Talbot
9589e23118
Link customer ID to Anrok transaction ( #4509 )
...
* Mark transactions with unresolvable addresses as unresolved
* Add customer_name + customer_id to anrok transactions
* Increase rate of Anrok syn
* Remove timer from update_tax_transactions
* chore: query cache, clippy, fmt
2025-10-06 16:06:57 +00:00
Emma Alexia
f874856452
Fix user deletion with new notifications_deliveries table for real ( #4473 )
...
Maybe this will work? I dunno but users are still saying they're getting errors deleting accs. In theory it shouldn't matter if the transaction all gets committed at the same time, though, right? I can't really test this so I would like someone to tell me whether this will actually make a difference.
Co-authored-by: François-X. T <fetch@ferrous.ch >
2025-10-03 13:03:02 +00:00
François-Xavier Talbot
beb1bdb31f
Skip synchronizing transactions to Anrok if missing payment intent ID ( #4446 )
...
* Skip succeeded txns with no payment platform ID
* chore: query cache, clippy, fmt
2025-09-30 14:36:41 +00:00
François-Xavier Talbot
54747aa628
Tweaks and fixes to background tasks ( #4447 )
...
* adjustments
* chore: query cache, clippy, fmt
2025-09-30 11:43:59 +00:00
Emma Alexia
324ad65d7c
Fix user deletion with new notification_deliveries table ( #4437 )
2025-09-29 18:04:22 +00:00
aecsocket
f466470d06
Hard caps on creating projects/orgs/collections ( #4430 )
...
* implement backend limits on project creation
* implement collection, org creation hard caps
* Fix limit api
* Fix clippy
* Fix limits
* Update sqlx queries
* Address PR comments on user limit structure
* sqlx prepare and clippy
* fix test maybe
2025-09-28 10:01:00 +00:00
François-Xavier Talbot
14af3d0763
Billing fixes ( #4422 )
...
* Only update the PaymentMethod ID if not using placeholder ID
* comment
* Create Anrok transactions for all charges
* Fix comment
* Prefer using payment method's address rather than customer address
* chore: query cache, clippy, fmt
2025-09-26 15:39:47 +00:00
François-Xavier Talbot
4228a193e9
Charge tax on products ( #4361 )
...
* Initial Anrok integration
* Query cache, fmt, clippy
* Fmt
* Use payment intent function in edit_subscription
* Attach Anrok client, use payments in index_billing
* Integrate Anrok with refunds
* Bug fixes
* More bugfixes
* Fix resubscriptions
* Medal promotion bugfixes
* Use stripe metadata constants everywhere
* Pre-fill values in products_tax_identifiers
* Cleanup billing route module
* Cleanup
* Email notification for tax charge
* Don't charge tax on users which haven't been notified of tax change
* Fix taxnotification.amount templates
* Update .env.docker-compose
* Update .env.local
* Clippy
* Fmt
* Query cache
* Periodically update tax amount on upcoming charges
* Fix queries
* Skip indexing tax amount on charges if no charges to process
* chore: query cache, clippy, fmt
* Fix a lot of things
* Remove test code
* chore: query cache, clippy, fmt
* Fix money formatting
* Fix conflicts
* Extra documentation, handle tax association properly
* Track loss in tax drift
* chore: query cache, clippy, fmt
* Add subscription.id variable
* chore: query cache, clippy, fmt
* chore: query cache, clippy, fmt
2025-09-25 11:29:29 +00:00
François-Xavier Talbot
47020f34b6
Tax compliance adjustments ( #4414 )
...
* tax compliance adjustments
* chore: query cache, clippy, fmt
2025-09-25 11:02:33 +00:00
aecsocket
20281c4efc
Allow users to manage their own affiliate codes ( #4392 )
...
* Allow users to manage their own affiliate codes
* Add a badge to restrict access to affiliate codes
* sqlx prepare and clippy
2025-09-22 16:54:09 +00:00
aecsocket
36d0760a3e
Use Nightly + Cranelift for dev, only fail on warnings in CI ( #4388 )
...
* Switch to nightly + cranelift
* Fail on warnings only in CI
* Fix check errors
* Don't use mold on Linux to fix CI
* Pin nightly toolchain and add default rustup components
* Fix another CI thing
* PR comment
2025-09-18 18:20:19 +00:00
aecsocket
4def0e8407
Initial affiliate codes implementation ( #4382 )
...
* Initial affiliate codes implementation
* some more docs to codes
* sqlx prepare
* Address PR comments
* Address more PR comments
* fix clippy
* Switch to using Json<T> for type-safe responses
2025-09-18 15:43:34 +00:00
François-Xavier Talbot
6da190ed01
New Creator Notifications ( #4383 )
...
* Some new notification types
* Fix error
* Use existing DB models rather than inline queries
* Fix template fillout
* Fix ModerationThreadMessageReceived
* Insert more notifications, fix some formatting
* chore: query cache, clippy, fmt
* chore: query cache, clippy, fmt
* Use outer transactions to insert notifications instead of creating a new one
* Join futures
2025-09-17 19:37:21 +00:00
François-Xavier Talbot
902d749293
[DO NOT MERGE] Email notification system ( #4338 )
...
* Migration
* Fixup db models
* Redis
* Stuff
* Switch PKs to BIGSERIALs, insert to notifications_deliveries when inserting notifications
* Queue, templates
* Query cache
* Fixes, fixtures
* Perf, cache template data & HTML bodies
* Notification type configuration, ResetPassword notification type
* Reset password
* Query cache
* Clippy + fmt
* Traces, fix typo, fix user email in ResetPassword
* send_email
* Models, db
* Remove dead code, adjust notification settings in migration
* Clippy fmt
* Delete dead code, fixes
* Fmt
* Update apps/labrinth/src/queue/email.rs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com >
* Remove old fixtures
* Unify email retry delay
* Fix type
* External notifications
* Remove `notifications_types_preference_restrictions`, as user notification preferences is out of scope for this PR
* Query cache, fmt, clippy
* Fix join in get_many_user_exposed_on_site
* Remove migration comment
* Query cache
* Update html body urls
* Remove comment
* Add paymentfailed.service variable to PaymentFailed notification variant
* Fix compile error
* Fix deleting notifications
* Update apps/labrinth/src/database/models/user_item.rs
Co-authored-by: Josiah Glosson <soujournme@gmail.com >
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com >
* Update apps/labrinth/src/database/models/user_item.rs
Co-authored-by: Josiah Glosson <soujournme@gmail.com >
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com >
* Update Cargo.toml
Co-authored-by: Josiah Glosson <soujournme@gmail.com >
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com >
* Update apps/labrinth/migrations/20250902133943_notification-extension.sql
Co-authored-by: Josiah Glosson <soujournme@gmail.com >
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com >
* Address review comments
* Fix compliation
* Update apps/labrinth/src/database/models/users_notifications_preferences_item.rs
Co-authored-by: Josiah Glosson <soujournme@gmail.com >
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com >
* Use strfmt to format emails
* Configurable Reply-To
* Configurable Reply-To
* Refactor for email background task
* Send some emails inline
* Fix account creation email check
* Revert "Use strfmt to format emails"
This reverts commit e0d6614afe51fa6349918377e953ba294c34ae0b.
* Reintroduce fill_template
* Set password reset email inline
* Process more emails per index
* clippy fmt
* Query cache
---------
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Josiah Glosson <soujournme@gmail.com >
2025-09-15 19:02:29 +00:00