François-Xavier Talbot
3f55711f9e
More billing fixes ( #4431 )
...
* 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
* Retrieve stripe address from PM
* chore: query cache, clippy, fmt
* fmt
* bring back the query cache
2025-09-27 22:37:30 +00:00
Alejandro González
bb9ce52c9d
feat(labrinth): hide orgs without a purpose, re-enable organization creation ( #4426 )
...
* chore(labrinth): set `DELPHI_URL` to a valid default in `.env.local`
* feat(labrinth): make orgs not publicly visible until they meet some conditions
* Revert "Org disabled frontend (#4424 )"
This reverts commit 2492b11ec0 .
* changelog: update for re-enabling organization creation
* chore: run `sqlx prepare`
* chore(labrinth): tweak tests to work with new org changes
* tweak: apply @triphora's suggestion
Co-authored-by: Emma Alexia <emma@modrinth.com >
Signed-off-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com >
* tweak: document `is_visible_organization` relationship with `Project#is_searchable`
---------
Signed-off-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com >
Co-authored-by: Emma Alexia <emma@modrinth.com >
2025-09-26 15:42:53 +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
Prospector
2492b11ec0
Org disabled frontend ( #4424 )
2025-09-26 01:55:57 +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
Jerozgen
5c00cb06f1
"Submit for review" button translation ( #4381 )
...
* "Submit for review" button translation
* Fix invitation message in the code
* Run web:fix
* Run intl:extract
---------
Co-authored-by: Calum H. <contact@cal.engineer >
2025-09-25 09:31:41 +00:00
François-Xavier Talbot
e6edf07eae
Fill variables for subject line ( #4415 )
2025-09-24 10:52:43 +00:00
François-Xavier Talbot
71d63fbe17
Fix version upload for popular projects ( #4410 )
...
* Only notify users that exist
* chore: query cache, clippy, fmt
2025-09-22 15:12:17 -07:00
François-Xavier Talbot
f33efed91b
Less emails per transactinos ( #4406 )
2025-09-22 19:40:59 +00:00
François-Xavier Talbot
d41b31c775
Fix track1099 ( #4405 )
...
* don't parse datetime
* fix import
* update comments
2025-09-22 18:08:22 +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
François-Xavier Talbot
afcdb1d0a1
more loggging ( #4404 )
2025-09-22 16:53:27 +00:00
Calum H.
f3060cd9b4
feat: email template for subscription price changes due to tax ( #4386 )
...
* feat: subscription tax change email
* feat: wording
* feat: subscription id var for support & finalize tax change email script
2025-09-22 16:36:50 +00:00
Modrinth Bot
1a1b9f54df
New translations from Crowdin (main) ( #4401 )
2025-09-22 15:56:14 +00:00
Jerozgen
716f293e8e
"Create a server" tooltip i18n fixes ( #4402 )
2025-09-22 15:56:06 +00:00
Calum H.
5b44454e18
feat: temporary tax compliance impl ( #4393 )
...
* feat: temporary tax compliance impl
* fix: lint & intl
* Update banner, reload page on submit, and fix withdraw button disabled state
---------
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com >
2025-09-21 22:23:07 +00:00
Calum H.
b425c66832
fix: hide versions checkbox depending on what game versions are avail ( #4396 )
...
* fix: hide versions checkbox depending on what game versions are avail
* refactor: use set instead of map
2025-09-21 22:17:58 +00:00
teaSummer
0b8762cd0a
fix(app): properly show all versions and notify loaders ( #4395 )
...
* fix(app): properly show all versions and notify loaders
* fix lint
2025-09-20 12:07:30 +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
Calum H.
8149618187
feat: introduce vue-email for templating with tailwind ( #4358 )
...
* feat: start on vue-email set up
* feat: email rendering and base template
* refactor: body slot only
* feat: templates
* fix: lint
* fix: build process
* fix: default import issue
* feat: continue making emails
* feat: update address
* feat: new templates
* feat: email temp page viewer
* fix: lint
* fix: reset password heading
* fix: lint
* fix: qa issues
2025-09-16 15:57:34 +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
Jerozgen
1491642209
I18n home page fixes ( #4369 )
...
* Fix missing dots in descriptions
* Fix untranslatable "our own app"
* Make full-width main header
* Fix missing space
2025-09-15 15:10:34 +00:00
Prospector
7bc2c1dd4d
make default layout translatable ( #4378 )
...
* make default layout translatable
* intl:extract
* fix lint
2025-09-15 07:49:31 +00:00
Modrinth Bot
9f11759292
New translations from Crowdin (main) ( #4379 )
2025-09-15 07:47:25 +00:00
Jerozgen
cef425b6be
Support longer "Sort by" for i18n on home page ( #4365 )
2025-09-15 06:22:11 +00:00
François-Xavier Talbot
3fc55184a7
Support alternative read-replica PgPool ( #4374 )
...
* Add ReadOnlyPgPool
* Clippy, fmt
2025-09-14 15:44:52 +00:00
Alejandro González
67e090565e
fix(labrinth): address email placeholder regression introduced in #4193 ( #4371 )
2025-09-12 22:26:05 +00:00
François-Xavier Talbot
d8d9720495
Only Fire Slack Webhook Once a Day ( #4368 )
...
* Only send webhook once per day
* pat clippy's back
* damn query cache
2025-09-11 23:38:22 +00:00
Alejandro González
9361acb78e
fix(labrinth): proper page view ingest URL origin filtering ( #4344 )
2025-09-10 23:38:27 +00:00
François-Xavier Talbot
58aac642a9
Slack webhook for payout source threshold alerts ( #4353 )
...
* Slack webhook for payout alerts
* add PAYOUT_ALERT_SLACK_WEBHOOK to check_env_vars
* Fix commit
* Fix webhook format
* Add new env vars in .env.local
* Rename env vars, fire webhook on error
* Fix compilation
* Clippy
* Fix CI
* Add env vars to .env.docker-compose
2025-09-10 21:16:21 +00:00
Modrinth Bot
af3b829449
New translations from Crowdin (main) ( #4300 )
...
* New translations from Crowdin (main)
* feat: warning + slap beta tag
* fix: intl
* fix: intl
---------
Co-authored-by: IMB11 <contact@cal.engineer >
2025-09-09 15:55:26 +00:00
Prospector
01b19424cd
Fix asia launch thumbnail
2025-09-08 14:54:21 -07:00
Prospector
4d3e1ade67
Modrinth Servers asia launch blog post ( #4346 )
...
* Add asia blog post
* remove medal callout since it's US-only.
* Update packages/blog/articles/modrinth-servers-southeast-asia.md
Co-authored-by: Cal H. <contact@cal.engineer >
Signed-off-by: Prospector <6166773+Prospector@users.noreply.github.com >
* update blog post
* update blog post + servers marketing page
* update blog post time
---------
Signed-off-by: Prospector <6166773+Prospector@users.noreply.github.com >
Co-authored-by: Cal H. <contact@cal.engineer >
2025-09-08 14:43:51 -07:00
Cal H.
1b33a3619f
feat: seed rounding and string seeds ( #4351 )
...
* feat: seed rounding fix
* chore: remove comment
2025-09-08 16:24:08 +00:00
François-Xavier Talbot
ea607c1a04
Include Tremendous image_logo_url ( #4349 )
2025-09-08 12:34:51 +00:00
Emma Alexia
c017038f71
Fix error when trying to delete user with uploaded images ( #4295 )
...
* Fix error when trying to delete user with uploaded images
`{"error":"database_error","description":"Database Error: Error while interacting with the database: error returned from database: update or delete on table \"users\" violates foreign key constraint \"uploaded_images_owner_id_fkey\" on table \"uploaded_images\""}`
* Update certain things to use Ghost instead of deleting entirely
* Fix mistake
2025-09-06 23:05:34 +00:00
Alejandro González
a323bf6c25
fix(app): make Modrinth account SSO logins from the app work ( #4345 )
2025-09-06 21:35:50 +00:00
Alejandro González
e2f07a7848
tweak(labrinth): create Clickhouse tables with a TTL for staging env ( #4343 )
...
* tweak(labrinth): create Clickhouse tables with a TTL for staging env
* chore: fix syntax error in Clickhouse DDL
2025-09-06 14:57:31 +00:00
François-Xavier Talbot
0511a14bd9
Fix tremendous balance check ( #4337 )
2025-09-04 12:28:22 +00:00
Prospector
aa6de3cc80
mod -> project in description settings ( #4330 )
2025-09-03 22:21:06 +00:00
Prospector
f5aece1fb1
Make it slightly clearer that the app is in beta ( #4333 )
...
* Make it slightly clearer that the app is in beta and add linux disclaimer. Also changed the way Modrinth App was being referred to as a regular noun instead of a proper noun
* i18n for app page
* update home page to use ~content
2025-09-03 22:13:23 +00:00
Prospector
79aa41fd7a
awazing ( #4336 )
2025-09-03 21:07:26 +00:00
François-Xavier Talbot
bd918c7616
Move update_bank_balances to billing task, don't fail every provider if one fails ( #4332 )
2025-09-03 13:12:34 +00:00
Prospector
d23b925bb9
Fixed a few icons in settings shrinking on mobile ( #4331 )
...
* Fix some icons shrinking Fixes #2297
* more shrinkage
* fix typo
2025-09-03 10:12:07 +00:00
Prospector
f48eaee336
Revert "Reset search when header button is clicked - Closes #1979 ( #4309 )"
...
This reverts commit 2e95a8a117 .
2025-09-02 10:45:48 -07:00
Prospector
2e95a8a117
Reset search when header button is clicked - Closes #1979 ( #4309 )
2025-09-02 16:04:55 +00:00
Prospector
2194ae774c
Force summaries to wrap in search results ( #4310 )
2025-09-02 16:04:44 +00:00