* identical links nag + use V3 more
* updater status alerts
* identity verification msg for servers
* private use msg for server projects
* fix newlines in some messages
* Tweak + add description messages
* tweak status alerts
* flinks for summary messages
* Rule 4 msgs for servers
* account for some jank
* fixes
* Project Type placeholder
* update locales
* add button for rejecting pay to play servers
* update country to region
* add lowercase option for project type placeholders
* update link of article to the published url
* prepr
---------
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
* Tweak search sorting
* Tweak search sorting
* fix ping impl
* remove port field, add server regions
* fix compile
* fix tests
* update frontend banner upload size limit
* feat: use server project region instead of country
* remove java and bedrock port in frontend
* add helper text
* allow filtering by if server is online
* add server status online offline filter
* use region in instance
* pre-collapse status in app discovery
* pnpm prepr
* remove server discovery flag
* add servers into mobile nav tabs
* parse port from address if present
---------
Co-authored-by: tdgao <mr.trumgao@gmail.com>
* ping queue with tests
* mc ping server info + timeout
* sqlx prepare
* tombi fmt
* tombi fmt
* allow querying server ping data
* fix shear
* wip: resolve comments with pings
* Switch to Redis for server pings
* tombi fmt
* fix compile error
* clear cache on project ping, add server store link
* Schema changes
* Improve server messages for app pinging
* synthetic server project version for search indexing
* wip: clean up server ping, background tasks
* fix migration to sync with main, propagate background task errors
* wip: server modpack content query, components in search
* wip: massive component query refactor
* fix more defaults stuff
* sqlx
* fix serde deser flatten
* fix search indexing not showing fields
* remove leftover prompt
* fix import
* add diff detection for version dependencies without version_id/project_id
* move servers tab to end
* hide app nav tabs if only one tab
* fix undefined property
* on click link for server side bar info
* show recommended & supported versions for vanilla
* fix how install.js installs instance with modpack content title instead of server project title and dont fetch icon when installing to existing instance
* use large play button instance
* show update success instead of launching right into the game
* add global installing server project state
* add comment
* small change: open discover to modpack
* implement ping server projects for latency in app
* add projectV3 to nag context for moderation package
* fix play server project button when instance is launched
* add ping to project header
* wip: server verified plays
* server verified plays compiling
* queue up server plays in batches
* report server plays improved in frontend
* fixes to tracking server joins
* fix: server project detection to do loose null check
* fix server projects showing license
* fix empty server info card
* fix server projects links title
* Fix backend impl for server player count analytics
* fix: allow for links to be set to empty
* hook up server recent plays
* cargo sqlx prepare
* add project sidebar stories
* feat: update project sidebar server info card to new design
* update server project header and project card
* feat: add hide label for project cards
* feat: add tags sidebar card
* small fix to keep color consistent
* fix: remove required content tab from server project page
* many small fixes
* handle locking server instance content
* fix hiding modal after saving server compatibility version
* copy content card item and table from content tab update branch
* fix nav tabs active tag
* fix switching between server instance vs regular instance persisted invalid state
* fix a lot of the bugginess of navtabs when theres hidden/shown tabs between instances. match frontend nav tabs
* hook up backend searchfor frontend in websiet
* fix: server project card tags
* hook up search v3 in app backend for app frontend
* Don't return missing components in project query
* Add game versions to server filters
* move reporting server joins to backend
* send account UUID along with server play analytics
* update java server ping schema
* feat: implement use server search for search sorting and filter facets
* pnpm prepr
* fix game version filter facet
* fix: allow java and bedrock addresses to be deleted
* feat: hook up languages
* Default deserialize `ProjectSerial`
* feat: show server project tags
* small fix on languages multi select
* also default java server content
* fix: update compatibility modal not closing after successful upload
* remove play button in website discovery for servers
* reenable fence in app backend
* update online/offline tag
* add online status indicator pulsing
* revert pulsing
* disable link for custom modpack project and show tooltip
* change modpack to modded type
* update ip address entire button to be clickable
* polish server info card styles
* make offline tag red and properly hook up online tag
* move server related settings into own tab
* fix setting project compatibility resets unsaved changes
* fix javaServerPatchaData wiping content field
* updates to compatibility card, add download button and display supported versions better
* fix unsaved changes popup for tags
* remove console.log
* fix incorrect project type in projects in dashboard
* fix: savable.ts to reset currentValues to data() after save
* upload server banner as gallery image with title == "__mc_server_banner__" and filter it from frontend gallery
* fix error handling and helper text copy
* ensure gallery banners are filtered in app backend gallery display
* add grouped filters for search
* add query params for server search
* feat: deep linking to open server project page then open install to play
* fix search in app frontend
* fix: server project showing offline
* fix: profile create error app backend
Here's what was happening and the fix:
Root cause: In create.rs:107, profile_create assumed the icon_path parameter was always a local filename relative to the caches directory. It did caches_dir().join(icon) which produced a path like ...\caches\https://staging-cdn.modrinth.com/... — the colons in https:// are illegal in Windows paths (OS error 123).
The frontend's installServerProject and createVanillaInstance in install.js:290 both pass project.icon_url (a full URL) directly as the icon parameter.
Fix: Modified profile_create to detect when the icon parameter is a URL (starts with http:// or https://). When it is, it downloads the icon via fetch(), extracts the filename from the URL path, and passes the downloaded bytes and filename to set_icon() which hashes and caches it properly. The existing local-file path continues to work as before.
* pass undefined instead of unknown for modpack content modal
* fix: wrong way to determine offline status
* delete required content page placeholder
* fix: redirect running function instead of passing function
* add in wiki page
* fix diffs which have unknown project/filename
* pnpm prepr
* feat: add handling for "stop" instance state for server project card and page play button
* fix updating modpack shouldn't launch right into game
* small fix on external icon
* fix refresh search causing infinite rerender i.e. maximum call stack size exceeded
watch(route) → watch(() => [route.query.i, route.query.ai, route.path]) (line 102): The deep watch on the entire Vue Router route object was the most likely cause of the stack overflow. Vue Router's route object contains matched records with component definitions and other deeply nested structures. Deep-watching it triggers recursive traversal on every route change (including those from router.replace() inside refreshSearch()). Now it only watches the specific properties that updateInstanceContext() actually needs.
ref → shallowRef for serverHits and serverPings (line 189-190): The v3 search results can be deeply nested objects (minecraft_java_server.ping.data, content, etc.). Using shallowRef prevents Vue from creating deep reactive proxies on these objects, which is consistent with how results already uses shallowRef on line 295.
Re-entrance guard + try/catch on refreshSearch() (line 310): The watcher calls refreshSearch() without awaiting, so state changes during the async execution could trigger the watcher again, causing concurrent calls. The guard prevents overlapping calls, and the try/catch ensures loading.value = false is always reached (fixing the infinite loading).
* don't require auth token for logging server play
* fetch latest server player count from redis instead of search doc
* remove components. in search facet
* Category and search sort fixes
* add logging for refreshSearch in browse.vue
* fix: use windows.history.replace instead of router.replace due to vue production bug and remove logs
* fix: server refresh search reactivity
* fix: type errors
* conquer the type errors in Browse.vue
* update search input background
* fix tags location
* slight change to color
* feat: add linked to modpack project for regular modpack instances
* feat: installation tab updates
* fix: copy ip missing hover effect
* feat: implement category and countries negative filters
* fix servers tab label in profile page
* implement add server to instance
* feat: implement allow editing server instances
* update installation settings to handle vanilla server instance case
* hide servers tab when installing content to instance
* add sorting for user installed content to be top of list in content
* update categories filters from one group filter card to separate filters cards
* add active scale
* fix offline server showing online
* update language display
* update tooltip
* hide navtabs if theres only one tab
* fix: modpack content name truncate in project card
* feat: add server projects to moderation queue
* update redirect middleware no longer needs projectV3
* update comment
* fix: server tags labels
* feat: add the mf icons finally
* Revert "update redirect middleware no longer needs projectV3"
This reverts commit 1289cb52869185abe1481dfb6b0c00c0233bf59e.
* fix open in browser
* revert any handling for handling base linked modpack content for content tab
* update instance online players to be client ping
* fix showing modpack/loader version for server instance in installation settings
* server projects are not marked as modpacks
* skip license check for server projects
* feat: add the concept of linked worlds for server instances and keep in sync with server project
* fix: router.push doesn't add history state, use nagivateTo instead
* fix: get server modpack content wrong link
* update some categories to default collapse
* small fixes
* optional languages & bedrock
* move creator below tags
* sort linked worlds to be first
* add red orange and green ping variants
* bring back content tab
* add download button in required content in app
* fix: server info card loading
* fix: brief flash of normal project before server project stuff loads in
* misc fixes
* invalidate project v3
* fix unused imports
* Quick pass for moderation related changes (#5429)
* filter certain nags out from server projects.
* move add-links nag to links.ts
* first few server related nags
* moderation checklist groundwork
* Prevent undefined stage from appearing on servers.
* add projectV3 to shouldShow callback
* Filter buttons by server project type
* fix, revert private use msg, adjust server & link nags
* starting tags + servers msg
* fix no projectV3
* fix: router.push doesn't add history state, use nagivateTo instead
* Tags nag works with servers now
* support servers' v3 exclusive links
* reupload, and status messages + nag tweaks.
* fixes
* Update tags.vue warning for server projects.
* don't suggest adding a bedrock IP
* Tweak phrasing on servers alert msg
---------
Signed-off-by: Truman Gao <106889354+tdgao@users.noreply.github.com>
Co-authored-by: tdgao <mr.trumgao@gmail.com>
Co-authored-by: Truman Gao <106889354+tdgao@users.noreply.github.com>
* only show unique tags in project card
* add projectV3 to cache purge
* fix type: add projectV3 to cache purge
* update caching behaviour for installing
* max 3 plays per user
* accept date_modified and date_created for sorting
* add locking environment filter for server instance and update copy
* custom pack button only shows when needed (#5444)
* expose server pinging route to frontend
* feat: add server field validation with pinging on unfocus
* improve pinging logs
* try another pinging crate
* small fixes
* prefill published project id for updating published project
* fix running app bar for mac
* cargo sqlx prepare
* fix app login avatar
* pnpm prepr
* fix download menu for mac
* FIX CI
* fix lint errors
* cargo fmt
* fix toml
* fix more lint
* add server copy
* more lint
* fix any types
* also ping unlisted and private servers
* fix lint
* remove option for showTypeSelector
* fix cannot read user from undefined
* pnpm prepr
* update pinging to make it better
* update copy
* fix login cache issue
* add project select default icon
* fix: minecraft_java_server not redirecting
* pnpm prepr
* fix required content card in project page for custom modpack
* fix app project cards custom modpacks
* update pre-collapsed for app frontend
* don't send server projects to discord webhook
* add lock icon to linked world managed by server project
* pnpm prepr
* make automod msgs on server projects private
* fix pagination for server projects tab
* fix recent plays copy
* fix sync linked world with server project
* pnpm prepr
* add 0.11.0 changelog
* update date
---------
Signed-off-by: Truman Gao <106889354+tdgao@users.noreply.github.com>
Co-authored-by: aecsocket <aecsocket@tutanota.com>
Co-authored-by: coolbot <76798835+coolbot100s@users.noreply.github.com>
* feat: ssr fixes
* feat: lazy load non-core data
* feat: ssr timing debugging
* feat: go back to all parallel
* feat: migrate to DI + set up mutators
* feat: remove double get versions request, only call v3
* refactor: [version].vue page to use composition API and typescript
* feat: gallery.vue start
* fix: remove left behind console log
* fix: type issues + gallery
* fix: versionsummary modal + version page direct join
* fix: projectRaw guard
* fix: currentMember val fix
* fix: actualProjectType
* fix: vers summary link same page
* fix: lint
---------
Co-authored-by: tdgao <mr.trumgao@gmail.com>
* feat: filtering + sorting alignment
* polish: malicious summary modal changes
* feat: better filter row using floating panel
* fix: re-enable request
* fix: lint
* polish: jump back to files tab qol
* feat: scroll to top of next card when done
* fix: show lock icon on preview msg
* feat: download no _blank
* feat: show also marked in notif
* feat: auto expand if only one class in the file
* feat: proper page titles
* fix: text-contrast typo
* fix: lint
* feat: QA changes
* feat: individual report page + more qa
* fix: back btn
* fix: broken import
* feat: quick reply msgs
* fix: in other queue filter
* fix: caching threads wrongly
* fix: flag filter
* feat: toggle enabled by default
* fix: dont make btns opacity 50
---------
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
* update reports message to the correct support bubble color
* update checklist to direct to new settings pages and use v3 env info
* fix: project v2 + v3 in moderation checklist funcs
* Split environment stage if project uses mixed environments.
---------
Co-authored-by: Calum H. (IMB11) <contact@cal.engineer>
* start modal, working show modal
* add stages and implement MultiModalStage component
* add project versions context and add file button
* implement add files stage
* export interfaces
* move MultiStageModal to /base
* small update to file input
* add version types to api-client
* wrap version namespace under v3
* implement add details stage fields and loaders component
* start create MC versions stage
* implement changelog stage and bring width into a per stage concern
* implement loader picker with grouping
* improve grouping and sorting for loader picker
* use chips component
* small updaets
* fix loader icon color
* componentize mc version picker
* initial version of shift click to select range
* use newModal for markdown editor
* start add dependencies stage with search
* implement showing mod options in search
* componentize modselect and add version/dependency relation select
* hide version and dependency relation when no project selected
* fix project facet search
* implement api-client versions requests
* fix search api request facet type to be string
* fix new modal outer container scroll
* implement add dependency stage
* fix parse error
* add placeholders
* fix types
* update dependency row styles
* small change
* fix the types on manage versions to be correct with labrinth request bodies
* fix create version file parts
* use draft version ref in flow and implement proper file handlling
* use draft version ref for mc versions select
* implement reactive modal state and conditionally disabled next buttons
* ensure all data is using draftVersion ref
* remove shift click to select range since it sucks
* fix up add dependencies stage state/types
* small fixes
* implement adding dependencies connected to api calls and make adding dependencies work
* add final create version button config
* start create version backend call and bring versions table to project settings
* set add files stage width
* remove version file upload in project page
* small fix
* fix create version api call
* implement error handling
* implement mc versions search
* implement showing all mc versions
* small fix
* implement prefill data
* add success notification
* add cancel button
* add new dropzone file input
* run pnpm run fix
* add tailwind preset in ui package
* polish file version row
* fix modal widths
* hide added versions when no versions added
* implement add loaders stage
* implement small chips and small fixes
* implement grouping for all releases
* implement new all releases grouping
* implement better shift click for version select
* small fixes
* fix search input style
* delete versions provider and start project type inferring
* implement getting project type
* add versions empty state, add folder up icon and pnpm run fix
* implement create version in project versions table
* update side nav
* implement dynamic create version flow depending on project type and detected data
* add id to stages and fix calling setStage not working
* move added loaded out of loader picker
* remove selected and detected MC versions
* add loading message to dependency search and fix dependency type always being "required"
* fix components in ref
* fix width on dropdown
* implement toggle all mc versions based on state of last in range
* fix mc version text colour
* do proper clean up
* update loaders to use tag item
* update UI to use TagItem and better match styles
* handle detected data when setting primary file
* add progress bar
* hide progress bar for non-progress stage
* add loading state on submit
* properly cache dependencies projects/versions
* pnpm run fix
* add dragover show purple border on dropzone file input
* better handle added dependencies
* move versions in side nav
* implement adding file type
* fix api body format for file type
* implement working edit existing version
- working add/remove file
- working edit version details
* a step towards proper versions refresh
* add gallery to project settings
* actually figured out refresh versions
* move checklist into settings page
* remove editing version from version page and add button to versions table in project settings
* remove edit and delete buttons from gallery in project page
* add empty state messages for project page
* add default scroll bar styles
* implement support for new file types
* remove edit from dropdown in project page versions table
* redirect to settings page
* move changelog to row with actions
* fix overflow on added dependencies
* fix redirect
* update scroll styles
* implement add environment stage (create and modify version not persisting environment to backend)
* small style fixes
* small spacing fix
* small style fixes
* add a flag for loading dependency projects
* address PR comments
* fix modrinth ui imports
* use magic keys instead of window.addeventlistener
* add spacing in bottom of settings page
* useDebounceFn from vue
* fix inconsistent stroke
* persist scroll through
* fix remove button
* fix api fields
* fix version file dropdown: hide primary option in edit mode and fix setting initial value
* fix links in nags
* implement skipped field for skipping steps instead of mutating stages array's elements
* implement suggested dependencies components
* implement suggested dependencies api call
* refactor cached get project and get version calls
* always hide environments
* update links
* set scroll in 10ms
* update links
* fix links pt2
* fix shadow
* fix progress bar
* dont include mc versions in suggested versions finder
* fix text overflow styles
* use tooltip
* fix change version name api
* implement set environment api call
* delete unused vue pages
* implement detected environment, edit environment step, and fix showing loaders in details for no loader projects
* small fix
* no loaders project wrong check
* fix not having 'minecraft' loader for resource pack
* implement updating existing files file type
* move add minecraft loader outside try catch
* add datapack to have environment
* fix being able to select duplicate MC versions
* remove datapack project from environment
* fix version fetch
* fix having detected environment not properly skipping step
* only add detected data when primary file changes
* fix unknown environemtn
* implement gallery and versions have moved admonition
* update project page for creator view
* small copy update
* merge fixes
* pnpm run fix
* fix checkmark squished
* fix version type can be deselected
* refactor: DI context + better typed MultistageModal
* fix type import
* Misc QA fixes
* fix allowed file types with no project type
* implement new add files stage
* fix versiosn header with new pagination
* hide buttons when no files for add file stage
* use prettier formatter
* allow signature file types
* add detecting primary file
* fix progress bar in firefox
* fix environment not correctly being hidden/shown
* remove environment missing nag
* temp bring back environment page
* remove delete version action from project page
* replace "continue" next button label with actual next step
* fix types
* pnpm run fix
* move supplementary files alert up and update border radius style on dropzone
* copy updates
* small update on version num placeholder
* update placeholder
* make timeout on upload routes 2 minutes
* fix lint issues
* run pnpm intl:extract
---------
Co-authored-by: Calum H. (IMB11) <contact@cal.engineer>
* Taplo and typos in CI
* Clean up Cargo.toml files
* Fix CI
* Fix CI
* Run typos in CI
* Loosen typos a bit
* Fix typos
* Fix taplo
* Switch to Tombi
* Fix Tombi errors
* Remove unused typos config
* Tombi fmt
* Remove extraneous cargo fmt
* fix typos