Calum H.
ebf4a6ef5f
fix: bulk update updating linked content ( #6517 )
...
* fix: bulk update updating linked content
* fix: disabled content sometimes desyncing
* fix: bad filter
* fix: fmt
2026-06-26 17:50:15 +02:00
Calum H.
e4376c2b15
fix: clamp negative playtime ( #6519 )
...
* fix: clamp negative playtime
* fix: remove triggers use instant
2026-06-26 17:50:03 +02:00
734720e11e
feat: instances v2 ( #6431 )
...
* feat: base of instances v2
* feat: use old profiles with compat layer
* prototype: instances v2
* fix: install_from using profile
* fix: skins migration fix
* fix: frontend still using profile path
* fix: add update proj multiselect guard
* fix: cargo fmt
* fix: content missing fields
* feat: break up app-lib/api/instance.rs
* fix: check_content_updates mismatch
* fix: updater modal cleanup w/new structure
* feat: better update all handling
* fix: remove preview_update_all
* fix: feedback on bulk update + lint
* fix: rem transitions
* fix: change to jsonb
* feat: app db backup after update
* fix: lint
* fix: sqlx prepare + use sqlx macros
* fix: lint
* fix: bugs
* feat: defuck the installing process up
* fix: bug of hell
* fix: shear
* fix: fmt
* fix: install progress spacing + change mc/content/overrides to bytes
* fix: lint
* fix: prepr
* fix: navtabs anim not working in app
* fix: worlds.vue improvements + browse page fixes
* feat: optimise queries + adapter fns
* fix: lint
* fix: lint
* feat: shared modrinth-content-management crate (#6469 )
* feat: disable warnings setting
* feat: add instances shortcuts (#6329 )
* Add modrinth://launch deep link to start a profile
Support external profile launching via modrinth://launch/{profile_path} for integrations such as Stream Deck.
* Change route to /launch/profile/{id} for future extensibility
* fix: ensure profile path is url decoded
* fix: URL-decode profile path from deep link
* fix: use urlencoding crate for URL decoding
* feat: implement app instance shortcuts
* feat: change windows shortcut creation to use windows api instead
* feat: implement creating a shortcut launching world/server
* format
* fmt
* fix multiline inline tables
* pnpm prepr
* feat: move create shortcut to last item
* refactor: split up shortcuts.rs for individual platforms
* refactor: turn profile launch url into url type
* use string literal and add safety comment
* pt2
* refactor: rename anything that's profile into instance
* update mac shortcut
---------
Co-authored-by: DJCheesusReal <134006619+DJCheesusReal@users.noreply.github.com >
---------
Co-authored-by: Truman Gao <106889354+tdgao@users.noreply.github.com >
Co-authored-by: DJCheesusReal <134006619+DJCheesusReal@users.noreply.github.com >
2026-06-25 21:19:29 +00:00
François-Xavier Talbot
3aaa2ef071
feat(app-backend): key circuit breaker by URI path pattern ( #6383 )
...
* feat(app-lib): split `FetchFence` on base URI path
* chore: fmt
* fix(app-lib): fix test timing
2026-06-16 18:49:06 +00:00
aecsocket
bc5a761312
Add analytics meta for downloading dependent projects ( #6318 )
...
* Send dependent mod info to backend
* Parse meta from query
* condense dependent_on and modpack
* Analytics dependents response
2026-06-09 15:47:52 +00:00
Calum H.
9404d46782
feat: release channels instance setting ( #6252 )
...
* feat: rough release channels impl draft
* feat: move to bottom + lint
* fix: invalidate content queries on channel change
* fix: change to chips
* fix: lint
* fix: copy
2026-06-08 17:10:59 +00:00
Calum H.
d077d44540
fix: content tab uniqueness regression ( #6156 )
...
* fix: content tab uniqueness regression
Closes : #6154
* fix: further regressions
* fix: lint
* fix: lint
2026-05-21 22:03:35 +00:00
Calum H.
c3fe7b4232
feat: content management changes ( #6104 )
...
* feat: change modpack updating flow
* fix: pending install state loss
* fix: mods.vue perf problems
* chore: todo doc
* draft: try preload/fix suspense
* fix: lint
2026-05-20 17:07:35 +00:00
Prospector and aecsocket
be618d96f4
fix: 404 when returning to collections dashboard ( #5963 )
...
* fix 404 when returning to collections dashboard, fix a couple hydration
issues
* fix clippy
* fmt
* fix hydration issue on revenue page
* fix transfer history page error
---------
Co-authored-by: aecsocket <aecsocket@tutanota.com >
2026-05-02 16:33:19 +00:00
aecsocket
1875b89556
Have app send download analytics meta ( #5954 )
...
* wip: add download reasons to app
* update how download meta is gathered
* cargo fmt
* prepr frontend
2026-04-30 19:55:47 +00:00
Calum H.
381ea51cce
refactor: align files tab with content tab design ( #5621 )
...
* fix: files.vue bugs before styling changes
* feat: move files tab to shared layout structure
* fix: qa
* fix: qa
* fix: bugs
* fix: lint
* fix: admonition cleanup with progress + actions
* fix: cleanup
* fix: modals
* fix: admon title
* fix: i18n standard
* fix: lint + i18n pass
* fix: remove transition
* fix: type errors
* feat: files tab in app
* fix: qa
* fix: backup item minmax
* fix: use ContentPageHeader for server panel
* fix: lint
* fix: lint
* fix: lint
* feat: page leave safety
* fix: lint
* fix: cargo fmt fix
* fix: blank in prod
* fix: content card table stuff
* Revert "fix: blank in prod"
This reverts commit 74758fe185 .
* fix: import
* feat: browse worlds/servers flow
* fix: worlds tab parity with content tab
* fix: perf bug + shader filter pill copy
* feat: singleplayer filter
* fix: ordering
* fix: breadcrumbs
* fix: lint
* fix: qa
* feat: store server proj id when adding to a non-linked instance
* fix: lint
* fix: i18n + qa
* fix: conflict
* qa: already installed modal + placeholders not server-specific
* fix: qa
* fix: add + edit server modals
* fix: qa
* fix: security
* fix: devin flags
* fix: lint
* chore: change file to break build cache
* fix: admon
* fix: import path stuff
* feat: qa
* fix: fmt fmt idiot
---------
Signed-off-by: Calum H. <calum@modrinth.com >
2026-03-26 18:55:15 +00:00
Calum H.
1d10af09f5
fix: final content tab qa ( #5611 )
...
* fix: queued admonition always showing
* fix: dont apply grayscale to checkbox in content card item
* fix: actual stable id for disable/enable/bulk state
* fix: vue-router resolve workaround
* fix: show disable/enable btns same time
* fix: remove mr-2 on toggle
* fix: type errors + add ModpackAlreadyInstalledModal
* fix: bulk actions + overflow menu hitting ad container
* fix: responsiveness of ContentSelectionBar
* feat: better backup naming for inline backups + sorting fixes
* fix: lint
* fix: typo
2026-03-18 18:03:55 +00:00
Calum H.
989f282de3
fixes: post content tab release issues ( #5566 )
...
* fix: migrate old cache entries for CachedFileUpdate
* feat: toggle goofy fix + switch version reimpl in app and panel
* fix: multimc detection
* fix: add tie breaker for sorting
* feat: toggle hover state
* fix: lint
2026-03-14 22:43:59 +00:00
7d92e4ec7f
feat: content tab rewrite for worlds ( #5136 )
...
* feat: base content card component
* fix: tooltips + colors
* feat: fix orgs
* feat: base content tab internals rewrite
* feat: fix invalidmodal
* feat: add ContentModpackCard
* fix: extract types
* draft: layout
* feat: unlink modal
* feat: impl content tab
* fix: lint
* fix: toggling
* temp: disable updating stuff
* feat: selection v-model
* feat: bulk selection
* feat: mods tab rough draft
* feat: use fuse.js
* feat: add project combobox
* clean up project combobox
* feat: start install to play modal
* fix: events
* feat: use v-on
* feat: bulk actions + fix floating action bar width
* feat: figma alignments
* feat: migrate toggle to tailwind
* fix: row borders
* feat: disabled state
* feat: virtual list impl for card table based on window scroll
* fix: lint
* feat: virtualization + smaller contentcard items
* feat: use ContentCardTable + ContentCardItems
* feat: fix gap + border issues on last elm
* feat: cleanup + use proper searching
* fix: use TeleportOverflowMenu
* fix: fallback to svg if src is invalid on avatar component
* fix: storybook
* feat: start on updater modal
* feat: finish content updater modal
* feat: i18n pass
* feat: impl modal
* feat(app): backend changes for content tab refactor (#5237 )
* feat: include_changelog=false for updater modal
* fix: hash overrides
* feat: update checking for modpack
* feat: qa
* feat: modpack content modal
* fix: padding in table to match modals + tightness
* fix: lint
* feat: delete modal
* feat: fix toggle bugs
* fix: prepr
* fix: duplicate messages
* qa: full width search
* qa: use bg-surface-1.5
* qa: animation for filter pills
* qa: standardize hover colors
* fix: border-[1px] is border
* qa: mass de-select actually mass selecting
* qa: match figma designs for floating action bar
* qa: modal fixes
* q: modal fixes x2
* fix: table border
* qa: confirm modals
* qa: modal alignment
* qa: re-add stuck heading + dedupe logic
* qa: dedupe virtual scrolling + remove dead components
* qa: responsiveness for content table + link fixes
* qa: version column link, tooltips + lint fixes
* qa: instance busy protections
* fix: installation freeze bug
* chore: remove old mods page
* refactor: deduplicate layout
* chore: delete old content page(s)
* qa
* qa
* qa
* feat: sort btn - to iterate
* fix: ml
* feat: date added
* fix: lint
* fix: formatting.ts removal
* feat: get_dependencies_as_content_items
* qa: final QA changes
* refactor: deduplicate + polish content.rs
* feat: hook up content.vue with v1
* feat: hide v1 content api behind frontend feature flag
* fix: query keys + copy on empty state
* chore: i18n pass
* feat: reimpl unlink + upload endpoint
* feat: use bulk endpoints v1
* fix: lint
* fix: flags
* fix: responsiveness via container queries
* fix: lint
* qa: 1
* qa: fixes
* qa: fix ssr issues with browse content
* qa: header page divider
* qa: modals
* fix: prepr
* fix: issues
* fix: lint
* fix: toggle v1 ff
* qa: 5
* qa: delete modal copy
* feat: creation flow modals (#5383 )
* refactor: delete content v0 usages + impl
* feat: qa + fixes
* feat: installing banner using state event
* feat: fix modpack card bugs + filtering issues
* refactor: delete backups v0 api module
* feat: v1 servers GET endpoint
* fix: backups
* feat: swap to kyros upload v1 addon
* fix: use tanstack for loader.vue
* feat: finish install from discovery modal
* qa: bug fixes
* feat: set up installation settings
* fix: lint
* fix: typos
* fix: bugs
* fix: disable inline content
* feat: content tab improvements — upload UX, installation settings, and client-only indicators
Upload cancellation and navigation guard:
- Add ConfirmLeaveModal that prompts when navigating away during upload
- Cancel in-flight XHR uploads when user confirms leaving the page
- Add beforeunload handler to warn on browser/tab close during upload
- Track uploadedBytes/totalBytes in UploadState for progress display
- Replace Collapsible with Transition for upload progress admonition
- Show byte progress and percentage in upload banner
- Clamp upload progress to prevent exceeding 100%
Installation settings (server.properties):
- Add KnownPropertiesFields and PropertiesFields types to Archon types
- Add buildProperties() to creation flow context to collect gamemode,
difficulty, seed, world type, structures, and generator settings
- Pass properties through installContent on onboarding, discovery, and
ServerSetupModal flows
Server setup and discovery flow improvements:
- Migrate ServerSetupModal from servers_v0.reinstall to content_v1.installContent
- Replace loaderApiNames lookup with toApiLoader() helper
- Remove eraseDataOnInstall toggle — always use soft_override: false
- Simplify modpack install on discovery page to use first available version
and route through creation flow modal for both onboarding and non-onboarding
- Differentiate post-install navigation: content page for onboarding,
loader options for existing servers
Modpack update flow:
- Replace updateModpack() call with installContent() using soft_override: true
to support version selection in the content updater modal
Client-only mod indicators:
- Add environment field to AddonVersion (reuses Labrinth.Projects.v3.Environment)
- Add environment to ContentItem and isClientOnly to ContentCardTableItem
- Show orange TriangleAlertIcon with tooltip on client-only mods in content table
- Add "Client-only" filter pill to content filtering (controlled via
showClientOnlyFilter on ContentManagerContext)
- Apply client-only indicators in both ContentPageLayout and ModpackContentModal
Misc:
- Add CLAUDE.md note about using prepr commands for lint checks
- Export ConfirmLeaveModal from instances barrel
* fix: piping
* fix: switch content disable for linked server instances
* feat: client only filter
* fix: prepr
* feat: hasUpdate shape update
* feat: bulk update endpoint impl for content in panel
* feat: websocket state impl again with new phases
* fix: ws
* fix: use timeout fn for sync admon + fix content card layout scroll for browsers with overflow anchor bug
* fix: qa bugs
* fix: lint, a11y and i18n
* refactor: set up layouts folder properly
* fix: linked data cache stuff + lint
* feat: move installationsettings to shared layout
* fix: lint
* fix: issues
* feat: temp fuck staging up
* fix: lockfile
* fix: data sync issues on loader.vue
* fix: lint
* Hide shader configuration files from content list (#5499 )
* feat: workaround search problem + split out reset
* fix: qa
* fix: changelog not showing on first open
* fix: qa + optimistic updating improvements
* fix: prepr+lint
* fix: qa
* feat: qa
* fix: lint
* fix: lint
* fix: build
* fix: build
* fix: type errors
* fix: fade and JAVA_HOME passthrough
* feat: qa
* feat: impl diff shit
* fix: qa
* fix: app qa
* feat: update diff modal
* fix: endpoint
* fix: qa
* fix: qa
* fix: use bulk in modpack modal
* feat: abort signal impl + fix issues
* fix: diff modal trunc
* feat: qa
* fix: qa
* feat: tooltip content tab
* fix: prepr
* fix: dismiss on settings btn
* feat: qa
* feat: dont clear handlers on disconnect
* fix: lint
* fix: wrangler + introduce staging-archon env file
---------
Signed-off-by: Calum H. <calum@modrinth.com >
Co-authored-by: tdgao <mr.trumgao@gmail.com >
Co-authored-by: Artyom Ezri <61311568+Artezon@users.noreply.github.com >
2026-03-12 13:24:32 -07:00