Commit Graph
147 Commits
Author SHA1 Message Date
tdgao 3b0052eeda feat: start language detection for summary and desc 2026-08-28 18:03:19 -06:00
tdgao df58a2e2f9 feat: check summary formatting by move link detection into its own validator 2026-08-28 14:31:05 -06:00
tdgao 84a16d7964 feat: get header length by rendering markdown to html 2026-08-28 14:13:52 -06:00
tdgao a926cff5f4 feat: bump description too short to error, add spam validation for desc and summary, update summary and description too short copy 2026-08-28 13:22:10 -06:00
tdgao c8499db174 feat: bump summary too short to errro 2026-08-28 12:44:32 -06:00
tdgao 215f9a180b feat: bump name minecraft check to error 2026-08-28 12:41:12 -06:00
tdgao d3146a6acb remove: image heavy description warning 2026-08-28 12:28:11 -06:00
tdgao 0d90c205bf feat: add allowed non-standard text 2026-08-28 12:27:58 -06:00
tdgao d7442e8760 feat: clean up link detection in summary and description 2026-08-28 12:10:19 -06:00
tdgao 18c1f31514 refactor: centralize project validation and nags into validation rules 2026-08-27 22:03:04 -06:00
tdgao 1f3f37c86c refactor: links validator 2026-08-27 13:39:50 -06:00
tdgao dc613b4bc0 fix: checking for banned banned external links outside of external links 2026-08-26 19:04:37 -06:00
tdgao 3ec0dfcf35 feat: move clean up summary as a blocking error 2026-08-26 18:35:07 -06:00
tdgao 5dcd66f27f feat: change links in summary to be a blocking error and combined with formatting nag, banned links in description are also blocking 2026-08-26 18:16:55 -06:00
tdgao ed859272d3 feat: remove loader detection from project name and set version as required not allowed 2026-08-26 17:48:20 -06:00
tdgao b1d33373fe fix: less false positives in profanity and fix gallary nag 2026-08-26 16:55:29 -06:00
tdgao 31e405e73c fix: not using whole words 2026-08-26 16:26:06 -06:00
tdgao ae4519cc26 feat: polish profanity validation 2026-08-26 16:20:35 -06:00
tdgao a348240686 feat: update nags with field validation, splitting between required/warning nags 2026-08-26 11:21:48 -06:00
tdgao 0d61960855 feat: implement more project field validators 2026-08-25 23:18:31 -06:00
Prospector ce64f73c66 Merge remote-tracking branch 'origin/main' into truman/content-moderation
# Conflicts:
#	_typos.toml
#	apps/frontend/src/locales/en-US/index.json
#	apps/frontend/src/pages/[type]/[project]/settings/index.vue
#	apps/frontend/src/pages/[type]/[project]/settings/license.vue
#	apps/frontend/src/pages/[type]/[project]/settings/links.vue
2026-08-25 15:22:11 -07:00
aecsocket e33ef5f252 fix: cleanup typos with typos:off/on comments (#7301)
* fix: cleanup typos with typos:off/on comments

* tombi

* bump tombi version
2026-08-25 15:18:27 +00:00
Calum H.andProspector c67f980c4a refactor: StyledInput refactor -> Input components (#6733)
* feat: align style

* feat: new input components

* refactor: migrate to new input components

* refactor: rename component

* prepr

* chore: group inputs like buttons

* fix: lint

* feat: docs

* fix: lint

* fix: bugs

* prepr

* fix slug + adjust create server project

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2026-08-25 06:15:38 +00:00
Prospector b080829878 typo 2026-08-24 16:32:04 -07:00
Prospector ad83117ebf add keybinds to copy/open prod links (#7294) 2026-08-24 16:29:36 -07:00
Prospector 8665419cd6 prepr + typos whitelist 2026-08-24 16:26:58 -07:00
tdgao eb22882138 feat: hook up validators with input fields 2026-08-24 16:19:49 -07:00
tdgao e618c1625a fix: link checks merge conflict issues 2026-08-24 16:19:49 -07:00
chyzandtdgao 4b2f8dedec Better External Link Validation (#7005)
* complain about links we know are incorrect

* dont complain about the specific part of the url being incorrect if it wouldn't be correct regardless

* UnsavedChangesPopup had a place where it was supposed to disable the save button but the actual impl didn't implement that property so i fixed that and also more work on link checks (including start of license link checks too)

* github sponsor note

* show the warning directly cuz it's not particularly clear there's a tooltip
migrate links page to actually good unsaved changes thing that every other page uses
also like self-hosted git support
also add 9minecraft to blacklist

* this dont look correct warning + oops duplicate id

* better/more blacklist

* clean up after merge

* imports

---------

Co-authored-by: tdgao <mr.trumgao@gmail.com>
2026-08-24 16:19:49 -07:00
tdgao 56b8cae31c feat: implement profanity and non-standard text validators 2026-08-24 16:19:49 -07:00
github-actions[bot]andgithub-merge-queue fb39dabe43 New translations from Crowdin (main) (#7280)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2026-08-24 09:22:50 +00:00
coolbot bc50ed5f65 moderation: new article placeholders and updated disclosures msgs (#7279)
placeholders for new articles, add disclosures FAQ to related messages.
2026-08-24 09:14:01 +00:00
coolbot 5b16a774f9 Various moderation updates (#7160)
* Update status alerts, permission quick replies, utils, rules, disclosures.

* typo
2026-08-16 00:23:55 +00:00
755825b09a project disclosures frontend (#6955)
* begin project disclosures

* new project settings header

* begin disclosure settings, edit content rules

* togglecards

* update phrasing of the rules, prepr

* more disclosure settings structuring

* add functionality toggle

* implement functionality with staging api

* improve project settings head titles

* feat(labrinth): project disclosures model

* feat(labrinth): project disclosures database model

* feat(labrinth): project disclosures get endpoint

* feat(labrinth): censor user ids if set by moderator

* feat(labrinth): wrap disclosures in struct

* feat(labrinth): edit project disclosures endpoint

* style(labrinth): cargo fmt

* style(labrinth): fix typo

* feat(labrinth): add fields for ai content disclosure

* fix(labrinth): field typo

* chore(labrinth): update query cache

* feat(labrinth): index disclosures in search

* refactor(labrinth): use enum instead of bools

* feat(labrinth): trigger incremental index on disclosure change

* feat(labrinth): change archived status to disclosure

* feat(labrinth): use disclosure for archival status

* fix(labrinth): error type for deserialization

* fix(labrinth): migration timestamp

* fix(labrinth): add disclosures to elasticsearch schema

* disclosures in search

* update photosensitivity warning copy

* update archiving, move general project settings to v3 (start redesign there), use project id lookups for stable cache keys, advanced in server search

* blue archive banner

* display AI use types

* improve labels

* add modrinth to link

* add placeholder missing disclosure report type

* add AI metadata checking to block image uploads with notice

* update copy

* update section 4 of rules

* Update rule 6 layout

* fix(labrinth): don't remove archival disclosure when changing status via v3 api

* feat(labrinth): derive str for ai usages and telemtry consent

* feat(labrinth): include ai usages and telemetry consent in disclosure types

* Update moderation checklist (#7056)

* fix: missing delphi severity (#7054)

* Utils nav, new disclosures stage, ai button in rules

* add prefix to collect

* Finish up new disclosures stage

* update r4 messages

* new r4 msg, update showcase clarity message

* fix: version upload failing to detect mrpack loader (#7063)

* fix: mrpack exporting with zip64 (#7064)

* fix: action bar max width (#7048)

* fix: action bar max width

* fix: width

* changelog

* Rule placeholders with subsections & anchors, update messages.

* update new messages to account for new rule and placeholder layout

* Add nag for content disclosures

---------

Co-authored-by: ThatGravyBoat <gravy@thatgravyboat.tech>
Co-authored-by: chyzman <chyzalt@gmail.com>
Co-authored-by: Truman Gao <106889354+tdgao@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>

* prepr

* refactor(labrinth): move disclosure parsing to document creation

* fix(labrinth): prevent removing moderator added archival disclosures

* fix(labrinth): dedupe ai usages

* fix(labrinth): auth logic on archived disclosure removal

* feat(labrinth): add interactions field

* style(labrinth): cargo fmt

* feat(labrinth): granular disclosure locking

* add 5.8, move 5.9, update messages and placeholders accordingly.

* move disclosures stage earlier

* include consent model info in telemetry disclosure msgs

* prepr + update date

* typo

* qa pass

* search suboptions

* add empty state

* checkboxes in column

* persistent advanced filters

* blog draft

* prepr

* support soft deletion

* reload instead of optimistically updating

* update blog

* TOS update + minor verbiage adjustment

* 45 day grace

---------

Co-authored-by: sychic <47618543+Sychic@users.noreply.github.com>
Co-authored-by: coolbot <76798835+coolbot100s@users.noreply.github.com>
Co-authored-by: ThatGravyBoat <gravy@thatgravyboat.tech>
Co-authored-by: chyzman <chyzalt@gmail.com>
Co-authored-by: Truman Gao <106889354+tdgao@users.noreply.github.com>
2026-08-13 09:01:18 -07:00
coolbot f27387462e Moderation: Rule placeholders with subsections & anchors, update messages. (#7068)
Rule placeholders with subsections & anchors, update messages.
2026-08-10 14:31:16 +00:00
coolbot ef90f08813 Moderation: Metadata Message (#7066)
* game versions msg

* sneak in some tec rev quick reply updates

* add loaders msg to metadata stage

* fix loaders msg
2026-08-10 14:31:03 +00:00
Modrinth Bot 357224f22a New translations from Crowdin (main) (#7071) 2026-08-10 11:43:08 +00:00
coolbot 318840e403 Fix: Version nag navigation (#7070)
* fix: version nag navigation

* prepr
2026-08-10 10:54:29 +00:00
chyz 5072c1d298 Moderation Changes Phase 2.-1 (#6833)
* better default state handling

* make next stage button work for going to next project

* fix skill issue

* actually fix initial values this time,
make single line inputs with varying lengths (text input and dropdown) use their widest possible length instead of whatever the hell they used to be

* loaders in progress

* loaders and versions test (probably dont use them as the messages suck and idrk what they should do quick fix/message wise)

* WIP the wip

* good enough for now slug taken improvements

* trim all those extra newlines

* viewedness

* batch prefetch queue + technically slightly faster checklist init

* show all valid alternative project types regardless of current project type

* Hide moderation permissions stage when it should be, and I'm sure this won't cause any issues

* Hide moderation permissions stage when it should be, and I'm sure this won't cause any issues

* gimme them versions

* better moderation permission stage shown check?

* betterer moderation permission stage shown check?

* bettererer moderation permission stage shown check? + also began deleting legacy checklist types

* fix certain stages being able to be considered viewed before being viewed

* more removals + i forgot to remove an import last commit

* changed nothing™️

* remove severities + bandaid post-approval message priorities + dependencies

* fix message preview tooltips

* next stage = next project when done

* insufficient description custom fix

* fix that thing coolbot told me was broken I forgot what it was oops

* oh there was a second bug there

* make alternate versions and incorrect project type required cuz they are

* re-navigate button also damn that's a lot of other stuff that pnpm fix... fixed?

* you cant just quick fix a slug into a taken one

* maybe lets not just try and set a slug to something entirely invalid?

* what if we just didn't drop ur queue :smart:

* more queue upgrades

* tweaks

* I love unbreaking things

* un-nuked renavigate button

* prepr

* prepr worked this time i think

* undo more mistakes

* i love intellij refactoring

* ok i think we're good
2026-08-07 23:40:11 +00:00
ThatGravyBoat 5ef999bf8a feat: requested moderation and tech review changes (#7019)
* feat: requested moderation and tech review changes

* chore: run prepr

* chore: run prepr

---------

Signed-off-by: ThatGravyBoat <gravy@thatgravyboat.tech>
2026-08-07 13:34:03 -07:00
Blodhgarm a71a361e0f feat: Allow for adjustable alignment of main content on certain pages for content moderators (#7034)
* Add type safety and validation for moderation settings

* Add ability for moderators to adjust page layout for discover, project, moderation pages

Primarily for changes to have more tooling present without overlapping important info
2026-08-07 16:45:37 +00:00
coolbot 474c6560fc feat: update gallery nags (#6999)
* update nag to require 3 images from shader projects.

* locales
2026-08-04 21:33:26 +00:00
Modrinth Bot 893ab49fdf New translations from Crowdin (main) (#6972) 2026-08-04 17:59:39 +00:00
ThatGravyBoat fe69e04785 feat: moderation settings (#6895)
* feat: moderation settings

* chore: move moderation specific feature flag to settings

* feat: force open collapsed regions if opened in new tab

* chore: remove unused field

* chore: run prepr
2026-07-28 19:38:56 +00:00
Modrinth Bot 372e2bf47b New translations from Crowdin (main) (#6892) 2026-07-27 10:46:42 +00:00
coolbot 44be49416b feat: update private use moderation msgs and stage (#6872) 2026-07-26 00:10:48 +00:00
Modrinth Bot eb8141134a New translations from Crowdin (main) (#6859) 2026-07-24 17:55:52 +00:00
Calum H.andsychic e58af98f21 feat: instance sharing thru shared-instances service (#6569)
* feat: implement instance share page + search_users backend call

* feat: invite players modal

* feat: use tanstack queries for friends sync across app pages

* feat: base shared instances implementation

* fix: admon style

* feat: impl instance admonitions like server panel

* fix: impl get + del usage

* feat: support modpack links

* feat: invite notif accepting

* fix: lint + fmt

* feat: impl install to play

* feat: impl usage of UpdateToPlayModal

* feat: warnings on deleting/disabling shared-instance version content

* fix: send instance name

* feat: align with backend

* feat: shared instances qa

* feat: wrong account protection

* feat: qa

* fix: smartly apply updates

* fix: install bug

* fix: 401/404 differentiation

* fix: fmt+prepr

* feat: qa

* feat: qa

* fix: signing out messes up revoke/deleted checks

* feat: qa

* fix: fmt + lint

* feat: lock content if part of shared instance

* fix: lint

* [do not merge] feat: rough invite links impl temp (#6666)

* fix: wrong cmd

* feat: invite page

* fix: server-manager DTO mismatch

* fix: drop anonymous invite link acceptance

* refactor: structured shared-instance unavailable errors

* refactor: centralise error presentations

* refactor: dedupe shared instance diff detection

* fix: logging in reqwests

* refactor: move app.vue shared instances into handler

* refactor: break up Share.vue

* refactor: split up shared instances state outside of instance index

* refactor: dedicated shared instances install/update modals + split up page

* refactor: centralized managed content

* refactor: split up install shared to own runner + shared.rs split up

* refactor: dedupe sql for instance metadata enrichmnt

* refactor: friends composable + dedupe friends logic across usages

* chore: reduced unused code

* fix: align with backend

* fix: lint

* fix: file sha changes

* fix: invite links not working due to icon signed

* feat: qa

* feat: reporting frontend dummy

* fix: try use header

* remove: file hash field

* fix: pin box

* feat: malware warning for shared instances

* fix: cache rule

* feat: config files syncing

* feat: disable config sharing

* fix: header

* fix: use mark ready

* fix: dont cause push update for configs

* fix: lint

* feat: sharing page in settings

* feat: move config + change flow

* fix: qa

* fix: lint prepr

* feat: proxy file upload thru shared instances backend

* fix: use collapisible

* fix: push config

* fix: config

* feat: swap out sign in modal for new one

* fix: report flow

* fix: exclude configs.zip from external warnings

* fix: nuxi init

* fix: config bundle downloading

* fix: error notif

* fix: polling

* fix: qa

* fix: lint + prepr

* feat: shared instances moderation frontend + hook up report flow

* fix: report copy

* fix: lint

* fix: lint

* fix: modrinth ids being undefined

* feat: instance quarantining

* fix: prepr + fmt

* fix: quarantined -> locked terminology

* fix: missing endpoint impls + fmt

* fix: missing api in build.rs

* fix: share tab jittery

* fix: fmt

*PT bug

* fix: invites count as users even if pending

* fix: prepr

* fix: invite page owner in users list

* fix: lint

* fix: qa

* fix: lint

* fix: members stale not clearing

* fix: invite use joined_at field

* fix: lint

* fix: qa

---------

Co-authored-by: sychic <47618543+Sychic@users.noreply.github.com>
2026-07-24 13:06:38 +00:00
ThatGravyBoat 706d4c1a1e fix: license nag showing for datapacks (#6807) 2026-07-21 23:22:54 +00:00
Prospector 832240a45f prepr 2026-07-21 11:42:30 -07:00