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
Prospector
052637d402
Fix file inputs on Gallery and Versions pages not being selectable with keyboard ( #4312 )
2025-09-02 16:04:28 +00:00
Prospector
c1a092e55c
Make home page translatable, fix scrolling content animation timing ( #4325 )
...
* Make home page translatable, fix scrolling content animation timing
* intl:extract
2025-09-02 16:03:39 +00:00
Prospector
bd3342badf
Update rendered html with new renderer settings from #4311 ( #4324 )
2025-09-02 16:01:02 +00:00
Prospector
d0c67b368a
Fix minor edge case where unknown is first but not only. ( #4308 )
2025-09-01 18:41:38 +00:00
Prospector
8b2a89d4e0
Improve project page performance by removing unnecessary slow request for featured versions ( #4322 )
...
* Improve project page performance by removing unnecessary slow request for featured versions
* Allow existing featured versions users to continue using it with deprecation warning.
2025-09-01 18:00:29 +00:00
François-Xavier Talbot
8aede4e082
Revert decimal rounding order, fix profile settings ( #4314 )
...
* Revert rounding post subtraction in GET balance
* Switch to panic = "unwind" in release mode
* Use profile 'release-labrinth'
* Fix target path
2025-09-01 14:59:09 +00:00
Prospector
5a699eec22
Fix certain buttons having the wrong focus effect in Firefox browsers
2025-08-31 15:48:14 -07:00
Alejandro González
15c31f04a3
tweak(labrinth): skip versions with unsupported loader fields on project-wide fields change ( #4305 )
2025-08-31 17:59:22 +00:00
Prospector
48e5319134
handle edge case where versions have differing envs better + update changelog + lint
2025-08-31 10:31:49 -07:00
Prospector
8058993578
Improve accessibiltiy of env selector, improve mobile support, and message for those with no permission ( #4304 )
...
* Fix redirect from project ID
* improve fix
* improve accessibility of environment selector
* lint
* fix mobile accessibility of project settings and improve message for those without permission
* disable envs when multiple + lint
2025-08-31 10:23:21 -07:00
Prospector
28337c88f6
Fix redirect from project ID ( #4298 )
...
* Fix redirect from project ID
* improve fix
* lint
2025-08-31 10:22:38 -07:00
Emma Alexia
a6d08e9d50
Fix users getting a notification for private moderation messages ( #4302 )
2025-08-31 15:40:53 +00:00
Alejandro González
7943f77655
tweak(labrinth/auth): improve Modrinth auth callback error message ( #4303 )
2025-08-31 12:20:15 +00:00
Emma Alexia
dc4ef332f8
Clarify date timestamps in search docs ( #4293 )
...
Replaces #4206
2025-08-30 18:46:51 +00:00
Emma Alexia
652f2e241f
Allow server cancellation from admin billing ( #4294 )
...
Also fixes an issue (jankily) where Modrinth+ shows as an unknown product
2025-08-30 18:46:20 +00:00
Emma Alexia
5fd27bcb65
Fix larger gallery image uploading ( #4292 )
...
This reconciles a couple of differences between the frontend and backend regarding gallery image uploads.
- Frontend: The frontend thought that the limit should be 500 MiB for gallery images. This is obviously not right. It has been updated to 5 MiB.
- Backend: The backend has been rejecting anything between 2 MiB and 5 MiB, but this is inconsistent with prior usage, where the limit used to be 5 MiB. It has been updated to allow anything under 5 MiB.
Fixes #4291
2025-08-29 20:05:02 +00:00
Josiah Glosson
8fa01b937d
Small friends fixes ( #4270 )
...
* Ensure that fetch errors are properly propagated
* Handle user not found errors better in add_friend
* Cargo fmt
* Introduce new LabrinthError returnable by fetch_advanced
* Allow enter key to send a friend request
2025-08-29 14:08:26 +00:00
Alejandro González
8b98087936
fix(blog): resolve relative URLs in Markdown images and links with a fixed base ( #4287 )
...
These changes add a layered hook to the `markdown-it` renderer rules to
resolve `<img>` element `src` attributes and `<a>` element `href`
attributes to a path-absolute relative URL, to ensure that such URLs
always point to the same resource URL even when the URL the current
resource is being viewed from changes.
This fixes an issue with relative links and image source URLs being
broken when a blog post was watched from a URL that lacked a trailing
slash, as web browsers adjust the path relative URLs are resolved from
depending on whether such character is present, and we didn't account
for that.
While at it, I've rebuilt all the blog posts and their associated RSS
feed.
2025-08-29 13:44:03 +00:00
coolbot
7afe35a6cd
fix incorrect "versions" to "version" ( #4282 )
2025-08-29 06:51:06 +00:00