Commit Graph
498 Commits
Author SHA1 Message Date
aecsocket 1dee87c06f Merge branch 'main' into boris/search-index-fix 2026-07-24 12:25:48 +01:00
Michael H. 508b96c27f chore: skip neverbounce for oauth 2026-07-24 02:15:16 +02:00
Sychic 95f97a44ec feat(labrinth): shared instances moderation (#6784)
* feat(labrinth): shared instance report type

* style(labrinth): cargo fmt

* feat(labrinth): check that instance exists when reporting

* style(labrinth): cleanup unused import

* feat(labrinth): store version id for shared instance reports

* style(labrinth): satisfy clippy

* fix(labrinth): use string id instead of int
2026-07-23 20:20:25 +00:00
François-Xavier Talbot b4d681e713 feat(labrinth): Redis Cluster (#6771)
* chore(labrinth): bump to redis 1.4.1

* feat(labrinth): redis cluster

* chore: cleanup

* feat(labrinth): cache locking

* fix(labrinth): clippy

* chore(labrinth): cleanup env, remove postcard support

* chore(ci): fix test env for labrinth

* chore(labrinth): bump all key versions

* chore(labrinth): improve redis key identities handling

* chore(labrinth): simplify deadline handling

* chore(labrinth): remove unused lease tracking

* chore(labrinth): remove distributed cache locking for now

* chore(labrinth): improve redis backend init error

* feat(labrinth): expose redis read replica strategy

* chore(ci): remove other connection mode tests

* chore: split xredis crate

* feat(xredis): primaries routing

* chore: tombi fmt

* chore: clippy

* chore: update query cache
2026-07-23 11:35:02 +02:00
François-Xavier Talbot 96e2d95d02 feat(labrinth): route to update subscriptions for archon (#6811)
* feat(labrinth): add /_internal/billing/subscriptions/manager/update_many

* chore: fixes

* chore: clippy

* chore: fixes
2026-07-22 16:18:08 +00:00
aecsocket d04a753443 more AST normalization 2026-07-22 16:00:32 +01:00
aecsocket 07fd4fae5f fix: make Redis key TTL variable (#6821) 2026-07-22 14:43:39 +00:00
aecsocket ba0914319d Merge branch 'main' into boris/search-index-fix 2026-07-22 15:05:32 +01:00
aecsocket d7a72fcf46 doc comment 2026-07-22 15:05:01 +01:00
aecsocket 00b9bafe9d wip: search filter AST 2026-07-22 14:53:46 +01:00
aecsocket ee2ad5f05b feat: block disposable email addresses (#6783)
* feat: block disposable email addresses

* fix typos

* remove test
2026-07-20 17:57:36 +00:00
aecsocket f482e11401 put categories into the project doc 2026-07-20 18:47:36 +01:00
aecsocket 2d089a7526 query perf 2026-07-20 18:35:08 +01:00
Michael H. e52ae416a8 feat: email blacklist (#6779)
* feat: email blacklist

* feat: wildcard support
2026-07-20 14:02:55 +02:00
François-Xavier Talbot 6319832465 feat: email bounce check (#6774)
* feat: neverbounce API client

* feat(labrinth): integrate neverbounce

* chore: tombi

* chore: typo

* chore: clippy

* chore: remove unused dep

* chore: cleanup
2026-07-20 10:58:46 +02:00
François-Xavier Talbot 7144f08f0f feat: require verified email to publish, to prevent spam (#6777)
* feat: require verified email to create projects, collections and organizations

* fix(labrinth): fix tests

* chore: fmt

* chore: intl
2026-07-20 02:51:16 +00:00
François-Xavier Talbot c579925f03 feat: honeypot signup field (#6776)
feat: account consent
2026-07-19 21:54:23 +00:00
François-Xavier Talbot 6b569e4ee4 redis compression (#6769)
* feat(labrinth): encode/decode redis values with postcard, add version in namespaces

* chore(labrinth): split cache ex special cases without version

* chore(labrinth): simplify get_many

* fix: tombi

* feat(labrinth): compression support

* chore(labrinth): cleanup redis ser/de

* fix(labrinth): use get_deserialized in tests
2026-07-19 01:25:00 +02:00
François-Xavier Talbot 6b62e3b480 fix(labrinth): register debug routes (#6766) 2026-07-19 01:24:52 +02:00
Sychic 543cb42210 remove(labrinth): old shared instances impl (#6760) 2026-07-17 19:27:38 +00:00
aecsocketandProspector 86c6fb8239 fix: global trace and tech review improvements (#6699)
* remaining globally safe/unsafe buttons

* tweak global traces layout

* deterministic local trace ordering

* fix preview

* ignore severity for ordering

* show globally resolved traces toggle

* minor frontend changes

* prepr

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2026-07-17 15:08:59 +00:00
aecsocket bb1fb6f86f factor out filter rewriting 2026-07-17 14:27:33 +01:00
aecsocket 587c4054c8 fix compile 2026-07-17 14:06:07 +01:00
aecsocket 7cca619315 Merge branch 'main' into boris/search-index-fix 2026-07-17 13:44:19 +01:00
aecsocket b0559153ad cleanup pass 2026-07-17 13:42:02 +01:00
aecsocket 5b5c96cf78 standardise fn names 2026-07-17 13:00:39 +01:00
aecsocket 7a54515f63 cleanup pass 2 2026-07-17 12:38:22 +01:00
aecsocket 14ba540203 cleanup pass 2026-07-17 12:22:12 +01:00
aecsocket 60cf5cb147 clean up SearchBackend interface 2026-07-15 20:31:08 +01:00
aecsocket dad5970e8d fix: attribution list route permissions (#6731)
* fix: attribution list route permissions

* proper auth
2026-07-15 14:38:08 +00:00
aecsocket c389c24c50 Merge branch 'main' into boris/search-index-fix 2026-07-15 14:49:02 +01:00
aecsocket 77deb033f7 wip: projects/versions collections 2026-07-15 13:49:33 +01:00
aecsocket 818a9db9f7 fix: add more logging to index-billing task (#6708)
* more logging to index billing

* schema update
2026-07-14 07:52:50 +00:00
Robin 31ef22767e feat: add norisk client source support (#6707)
Signed-off-by: Robin <me@orb1n.dev>
2026-07-13 15:25:51 -07:00
François-Xavier Talbot 9e1e8788e2 feat(labrinth): return tax amount in user subscription listing (#6496)
* feat(labrinth): include next charge's tax amount

* chore(api-client): add next_charge_tax_amount

* fix
2026-07-13 17:06:22 +00:00
penguinencounterandaecsocket 7c4df7442b fix(labrinth): fix filtering not working unless breakdown set to same field (#6608)
* fix(labrinth): return columns used in filters

fixes modrinth/code#6607

* chore(labrinth): sqlx query data update

* don't implicitly breakdown when filtering by a metric

* fix docs

---------

Co-authored-by: aecsocket <43144841+aecsocket@users.noreply.github.com>
2026-07-12 11:31:56 +02:00
aecsocket e1556a8ee3 fix: attribution scanning details (#6651)
* key override file sources on file path, allow deleting groups

* dont scan modrinth files

* delete attr group button

* return what override files already exist on platform

* intl:extract

* uppercase queries

* fix dupe migration key
2026-07-12 09:04:54 +00:00
aecsocket 61990b0599 fix test 2026-07-10 13:44:47 +01:00
aecsocket 5ddae38014 batch by document and dedup loaders 2026-07-10 13:26:08 +01:00
aecsocket ca1899be92 Merge branch 'main' into boris/search-index-fix 2026-07-10 13:16:51 +01:00
aecsocket e877167db7 feat: global trace database frontend + improvements to tech review status sync (#6671)
* wip

* ui edits

* better logic for syncing tech review state in a single centralized place

* never automatically finish a tech review report

* fix css

* fix clippy

* prepr
2026-07-09 16:09:02 +00:00
aecsocket 95ddb489a7 fix clippy 2026-07-09 14:09:04 +01:00
aecsocket 11978fd479 fix 2026-07-09 13:31:52 +01:00
aecsocket 9e22e88d3f Merge branch 'main' into boris/search-index-fix 2026-07-09 13:27:27 +01:00
aecsocket a27a4828ef don't facet by project id 2026-07-09 13:26:17 +01:00
Sychic 5f8837604d feat(labrinth): shared instance icon (#6665) 2026-07-08 22:45:15 +00:00
Prospector 795dad040f feat: add complementary installer source support (#6667) 2026-07-08 15:44:59 -07:00
aecsocket c84b658e41 feat: tech review global trace database (#6648)
* global detail verdicts system

* global traces frontend

* split global routes into own mod

* tweak migration to only do no-key check at app level

* prepr
2026-07-08 16:06:45 +00:00
Prospector efdfb51149 fix: add DEI (downloads, equality, and inequality) (#6664)
fix: add DEI
2026-07-08 15:04:21 +00:00
François-Xavier Talbot 407641ee7c fix(labrinth): serde(default) new search document fields (#6656) 2026-07-07 15:28:54 -07:00