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. and Prospector
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
chyz and tdgao
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] and github-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. and sychic
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