Compare commits

..
Author SHA1 Message Date
Calum H.andGitHub a77e4af0ed Merge branch 'main' into test 2026-06-26 17:23:35 +01:00
Michael H. d019ac7fcf test: remove blacksmith 2026-06-26 17:45:37 +02:00
Michael H. 076aaac3eb test: remove mold 2026-06-26 17:40:16 +02:00
Michael H. 7ae71d04a6 test: remove sccache 2026-06-26 17:31:45 +02:00
13 changed files with 13 additions and 181 deletions
-25
View File
@@ -73,17 +73,6 @@ jobs:
docker:
runs-on: ${{ needs.skip-if-clean.outputs.internal == 'true' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }}
env:
SCCACHE_DIR: ${{ needs.skip-if-clean.outputs.internal == 'true' && '/mnt/sccache' || '' }}
SCCACHE_CACHE_SIZE: ${{ needs.skip-if-clean.outputs.internal == 'true' && '10G' || '' }}
SCCACHE_MULTILEVEL_CHAIN: ${{ needs.skip-if-clean.outputs.internal == 'true' && 'disk,s3' || '' }}
SCCACHE_S3_KEY_PREFIX: ${{ needs.skip-if-clean.outputs.internal == 'true' && format('{0}/', github.repository) || '' }}
SCCACHE_BUCKET: ${{ secrets.SCCACHE_BUCKET }}
SCCACHE_REGION: ${{ secrets.SCCACHE_REGION }}
SCCACHE_ENDPOINT: ${{ secrets.SCCACHE_ENDPOINT }}
AWS_ACCESS_KEY_ID: ${{ secrets.SCCACHE_S3_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.SCCACHE_S3_SECRET_ACCESS_KEY }}
RUSTC_WRAPPER: ${{ needs.skip-if-clean.outputs.internal == 'true' && 'sccache' || '' }}
needs: [skip-if-clean]
if: ${{ needs.skip-if-clean.outputs.skip != 'true' }}
steps:
@@ -96,9 +85,6 @@ jobs:
rustflags: ''
cache: false
- name: Setup mold
uses: rui314/setup-mold@9c9c13bf4c3f1adef0cc596abc155580bcb04444 # v1 / Mold 2.41.0
- name: Cache Cargo registry and index
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
@@ -108,17 +94,6 @@ jobs:
~/.cargo/bin
key: ${{ runner.os }}-${{ runner.arch }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Mount sccache disk cache
if: needs.skip-if-clean.outputs.internal == 'true'
uses: useblacksmith/stickydisk@13af8883542ca949a717e70fef89d15edbb29d88 # v1.2.0
with:
key: ${{ github.repository }}-daedalus-sccache
path: /mnt/sccache
- name: Setup sccache
if: needs.skip-if-clean.outputs.internal == 'true'
uses: mozilla-actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10
- name: Build daedalus_client
run: cargo build --release --package daedalus_client
-24
View File
@@ -76,16 +76,6 @@ jobs:
env:
SQLX_OFFLINE: 'true'
GIT_HASH: ${{ github.sha }}
SCCACHE_DIR: ${{ needs.skip-if-clean.outputs.internal == 'true' && '/mnt/sccache' || '' }}
SCCACHE_CACHE_SIZE: ${{ needs.skip-if-clean.outputs.internal == 'true' && '10G' || '' }}
SCCACHE_MULTILEVEL_CHAIN: ${{ needs.skip-if-clean.outputs.internal == 'true' && 'disk,s3' || '' }}
SCCACHE_S3_KEY_PREFIX: ${{ needs.skip-if-clean.outputs.internal == 'true' && format('{0}/', github.repository) || '' }}
SCCACHE_BUCKET: ${{ secrets.SCCACHE_BUCKET }}
SCCACHE_REGION: ${{ secrets.SCCACHE_REGION }}
SCCACHE_ENDPOINT: ${{ secrets.SCCACHE_ENDPOINT }}
AWS_ACCESS_KEY_ID: ${{ secrets.SCCACHE_S3_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.SCCACHE_S3_SECRET_ACCESS_KEY }}
RUSTC_WRAPPER: ${{ needs.skip-if-clean.outputs.internal == 'true' && 'sccache' || '' }}
steps:
- name: Check out code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -96,9 +86,6 @@ jobs:
rustflags: ''
cache: false
- name: Setup mold
uses: rui314/setup-mold@9c9c13bf4c3f1adef0cc596abc155580bcb04444 # v1 / Mold 2.41.0
- name: Install build dependencies
uses: awalsh128/cache-apt-pkgs-action@acb598e5ddbc6f68a970c5da0688d2f3a9f04d05 # v1.6.0
with:
@@ -114,17 +101,6 @@ jobs:
~/.cargo/bin
key: ${{ runner.os }}-${{ runner.arch }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Mount sccache disk cache
if: needs.skip-if-clean.outputs.internal == 'true'
uses: useblacksmith/stickydisk@13af8883542ca949a717e70fef89d15edbb29d88 # v1.2.0
with:
key: ${{ github.repository }}-labrinth-sccache
path: /mnt/sccache
- name: Setup sccache
if: needs.skip-if-clean.outputs.internal == 'true'
uses: mozilla-actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10
- name: Build labrinth
run: cargo build --profile release-labrinth --package labrinth
-17
View File
@@ -44,16 +44,6 @@ jobs:
name: Build
env:
VITE_STRIPE_PUBLISHABLE_KEY: pk_live_51JbFxJJygY5LJFfKLVVldb10HlLt24p421OWRsTOWc5sXYFOnFUXWieSc6HD3PHo25ktx8db1WcHr36XGFvZFVUz00V9ixrCs5
# SCCACHE_DIR: '/mnt/sccache'
# SCCACHE_CACHE_SIZE: '10G'
# SCCACHE_MULTILEVEL_CHAIN: 'disk,s3'
SCCACHE_S3_KEY_PREFIX: '${{ github.repository }}/'
SCCACHE_BUCKET: ${{ secrets.SCCACHE_BUCKET }}
SCCACHE_REGION: ${{ secrets.SCCACHE_REGION }}
SCCACHE_ENDPOINT: ${{ secrets.SCCACHE_ENDPOINT }}
AWS_ACCESS_KEY_ID: ${{ secrets.SCCACHE_S3_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.SCCACHE_S3_SECRET_ACCESS_KEY }}
RUSTC_WRAPPER: 'sccache'
strategy:
fail-fast: false
matrix:
@@ -84,13 +74,6 @@ jobs:
rustflags: ''
target: ${{ contains(matrix.platform, 'macos') && 'x86_64-apple-darwin' || '' }}
- name: Setup mold
if: contains(matrix.platform, 'ubuntu')
uses: rui314/setup-mold@9c9c13bf4c3f1adef0cc596abc155580bcb04444 # v1 / Mold 2.41.0
- name: Setup sccache
uses: mozilla-actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10
- name: Enable Corepack
run: corepack enable
+1 -42
View File
@@ -18,25 +18,11 @@ jobs:
runs-on: ubuntu-latest
outputs:
skip: ${{ steps.check.outputs.skip }}
internal: ${{ steps.check-internal.outputs.internal }}
if: ${{ always() }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Check if workflow runs on an internal branch
id: check-internal
env:
EVENT_NAME: ${{ github.event_name }}
HEAD_REPO: ${{ github.event.pull_request.head.repo.full_name }}
REPO: ${{ github.repository }}
run: |
if [ "$EVENT_NAME" != "pull_request" ] || [ "$HEAD_REPO" = "$REPO" ]; then
echo "internal=true" >> $GITHUB_OUTPUT
else
echo "internal=false" >> $GITHUB_OUTPUT
fi
- name: Merge Queue CI Check Skipper
id: merge-queue-ci-skipper
uses: ./.github/merge-queue-ci-skipper
@@ -62,7 +48,7 @@ jobs:
build:
name: Lint and Test
runs-on: ${{ needs.skip-if-clean.outputs.internal == 'true' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }}
runs-on: ubuntu-latest
needs: [skip-if-clean]
if: ${{ needs.skip-if-clean.outputs.skip != 'true' }}
@@ -76,19 +62,6 @@ jobs:
# since we don't want warnings to become errors
# while developing)
RUSTFLAGS: -Dwarnings
# sccache config (only populated for internal branches; secrets aren't
# available to forked PRs, and blacksmith stickydisk requires a
# blacksmith runner)
SCCACHE_DIR: ${{ needs.skip-if-clean.outputs.internal == 'true' && '/mnt/sccache' || '' }}
SCCACHE_CACHE_SIZE: ${{ needs.skip-if-clean.outputs.internal == 'true' && '10G' || '' }}
SCCACHE_MULTILEVEL_CHAIN: ${{ needs.skip-if-clean.outputs.internal == 'true' && 'disk,s3' || '' }}
SCCACHE_S3_KEY_PREFIX: ${{ needs.skip-if-clean.outputs.internal == 'true' && format('{0}/', github.repository) || '' }}
SCCACHE_BUCKET: ${{ secrets.SCCACHE_BUCKET }}
SCCACHE_REGION: ${{ secrets.SCCACHE_REGION }}
SCCACHE_ENDPOINT: ${{ secrets.SCCACHE_ENDPOINT }}
AWS_ACCESS_KEY_ID: ${{ secrets.SCCACHE_S3_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.SCCACHE_S3_SECRET_ACCESS_KEY }}
RUSTC_WRAPPER: ${{ needs.skip-if-clean.outputs.internal == 'true' && 'sccache' || '' }}
steps:
- name: Check out code
@@ -129,9 +102,6 @@ jobs:
components: clippy, rustfmt
cache: false
- name: Setup mold
uses: rui314/setup-mold@9c9c13bf4c3f1adef0cc596abc155580bcb04444 # v1 / Mold 2.41.0
- name: Cache Cargo registry and index
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae #v5.0.5
with:
@@ -141,17 +111,6 @@ jobs:
~/.cargo/bin
key: ${{ runner.os }}-${{ runner.arch }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Mount sccache disk cache
if: needs.skip-if-clean.outputs.internal == 'true'
uses: useblacksmith/stickydisk@13af8883542ca949a717e70fef89d15edbb29d88 # v1.2.0
with:
key: ${{ github.repository }}-turbo-sccache
path: /mnt/sccache
- name: Setup sccache
if: needs.skip-if-clean.outputs.internal == 'true'
uses: mozilla-actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10
- name: Setup binstall
uses: cargo-bins/cargo-binstall@dc19f1e48450eefe5a29b8da6c6b00a87d730b37 # v1.18.1
@@ -1,11 +1,7 @@
<template>
<div
class="h-full w-full pt-6"
:class="isContainedServerRoute ? 'box-border min-h-0 overflow-hidden' : ''"
>
<div class="h-full w-full pt-6">
<ServersManageRootLayout
:server-id="serverId"
:layout-mode="isContainedServerRoute ? 'contained' : 'page'"
:reload-page="() => router.go(0)"
:resolve-viewer="resolveViewer"
:show-copy-id-action="themeStore.devMode"
@@ -67,8 +63,6 @@ const queryClient = useQueryClient()
const themeStore = useTheming()
const breadcrumbs = useBreadcrumbs()
const isContainedServerRoute = computed(() => route.name === 'ServerManageOverview')
const serverId = computed(() => {
const rawId = route.params.id
return Array.isArray(rawId) ? rawId[0] : (rawId ?? '')
@@ -3,5 +3,5 @@ import { ServersManageOverviewPage } from '@modrinth/ui'
</script>
<template>
<ServersManageOverviewPage contained-console />
<ServersManageOverviewPage />
</template>
-1
View File
@@ -247,7 +247,6 @@ export default new createRouter({
name: 'Logs',
component: Instance.Logs,
meta: {
renderMode: 'fixed',
useRootContext: true,
breadcrumb: [{ name: '?Instance', link: '/instance/{id}/' }, { name: 'Logs' }],
},
-10
View File
@@ -10,16 +10,6 @@ export type VersionEntry = {
}
const VERSIONS: VersionEntry[] = [
{
date: `2026-06-26T16:33:23+00:00`,
product: 'app',
version: '0.15.1',
body: `## Fixed
- Fixed issue where previous logs would not load in the Logs tab of an instance.
- Fixed issue where "Update all" would sometimes update linked modpack content.
- Fixed issue where disabled additional content would sometimes not appear as disabled in the UI.
- Fixed issue where instances with negative playtime fail to load. (How?)`,
},
{
date: `2026-06-25T21:22:14+00:00`,
product: 'app',
@@ -189,31 +189,14 @@ function handleDocumentPointerDown(event: PointerEvent) {
terminal.value.clearSelection()
}
function handleDocumentKeyDown(event: KeyboardEvent) {
if (!event.metaKey || event.key.toLowerCase() !== 'a') return
const target = event.target as Node | null
const active = document.activeElement
if (
!(target && containerRef.value?.contains(target)) &&
!(active && containerRef.value?.contains(active))
) {
return
}
event.preventDefault()
terminal.value?.selectAll()
}
onMounted(() => {
window.addEventListener('resize', handleWindowResize)
document.addEventListener('pointerdown', handleDocumentPointerDown)
document.addEventListener('keydown', handleDocumentKeyDown, true)
})
onBeforeUnmount(() => {
window.removeEventListener('resize', handleWindowResize)
document.removeEventListener('pointerdown', handleDocumentPointerDown)
document.removeEventListener('keydown', handleDocumentKeyDown, true)
if (resizeDebounce) clearTimeout(resizeDebounce)
})
@@ -38,7 +38,7 @@ const baseId = useId()
<template #popper>
<div class="flex flex-col max-w-[22rem] leading-tight gap-0.5">
<span class="text-contrast mb-1">{{ formatMessage(name, values) }}</span>
<span v-for="message in about" :key="message.id" class="text-primary">
<span v-for="message of about" :key="message.id" class="text-primary">
{{ formatMessage(message, values) }}
</span>
<span v-if="link" class="text-secondary text-xs opacity-80">
+1 -6
View File
@@ -198,12 +198,7 @@ export function useTerminal(options: UseTerminalOptions): UseTerminalReturn {
const mod = e.ctrlKey || e.metaKey
if (!mod) return true
const key = e.key.toLowerCase()
if (key === 'a') {
e.preventDefault()
term.selectAll()
return false
}
if (key === 'c' || key === 'insert') {
if (key === 'c' || key === 'insert' || key === 'a') {
return false
}
return true
@@ -1,24 +1,13 @@
<template>
<div
class="relative flex select-none flex-col gap-6"
:class="containedConsole ? 'h-full min-h-0 overflow-hidden' : ''"
data-pyro-server-manager-root
>
<div
class="flex flex-col gap-4"
:class="containedConsole ? 'min-h-0 flex-1 overflow-hidden' : ''"
>
<div class="relative flex select-none flex-col gap-6" data-pyro-server-manager-root>
<div class="flex flex-col gap-4">
<ServerManageStats
class="shrink-0"
:data="!isWsAuthIncorrect ? stats : undefined"
:loading="isWsAuthIncorrect"
/>
<div
class="flex flex-col gap-2"
:class="containedConsole ? 'min-h-0 flex-1 overflow-hidden' : 'min-h-[700px]'"
>
<span class="shrink-0 text-2xl font-semibold text-contrast">Console</span>
<div class="flex min-h-[700px] flex-col gap-2">
<span class="text-2xl font-semibold text-contrast">Console</span>
<ConsolePageLayout />
</div>
@@ -59,11 +48,9 @@ import { injectModrinthClient, injectModrinthServerContext } from '#ui/providers
const props = withDefaults(
defineProps<{
showAdvancedDebugInfo?: boolean
containedConsole?: boolean
}>(),
{
showAdvancedDebugInfo: false,
containedConsole: false,
},
)
@@ -107,17 +107,13 @@
}"
:class="[
'server-panel-' + revealState,
containedLayout
? 'h-full min-h-0 overflow-hidden pb-6'
: constrainWidth
? 'min-h-[100svh] max-w-[1280px] pb-16'
: 'min-h-[calc(100svh-100px)] pb-6',
constrainWidth ? 'min-h-[100svh] max-w-[1280px] pb-16' : 'min-h-[calc(100svh-100px)] pb-6',
]"
>
<template v-if="revealState !== 'pending' || isOnboarding">
<ServerManageHeader
v-if="!isOnboarding"
:class="['server-stagger-item', containedLayout ? 'shrink-0' : '']"
class="server-stagger-item"
:style="{ '--si': 0 }"
:server="serverData"
:server-image="serverImage"
@@ -184,7 +180,6 @@
<div
data-pyro-navigation
class="server-stagger-item isolate flex w-full select-none flex-col justify-between gap-4 overflow-auto md:flex-row md:items-center"
:class="containedLayout ? 'shrink-0' : ''"
:style="{ '--si': 1 }"
>
<NavTabs :links="navLinks" replace />
@@ -192,8 +187,7 @@
<div
data-pyro-mount
class="server-stagger-item w-full flex-1"
:class="containedLayout ? 'flex min-h-0 flex-col overflow-hidden' : 'h-full'"
class="server-stagger-item h-full w-full flex-1"
:style="{ '--si': 2 }"
>
<div
@@ -314,7 +308,7 @@
</div>
<ServerPanelAdmonitions
class="mb-4 shrink-0"
class="mb-4"
:sync-progress="syncProgress"
:content-error="contentError"
@content-retry="handleContentRetry"
@@ -453,7 +447,6 @@ const props = withDefaults(
type: 'mod' | 'plugin' | 'datapack'
}) => void | Promise<void>
constrainWidth?: boolean
layoutMode?: 'page' | 'contained'
}>(),
{
showCopyIdAction: false,
@@ -469,7 +462,6 @@ const props = withDefaults(
browseModpacks: undefined,
browseContent: undefined,
constrainWidth: false,
layoutMode: 'page',
},
)
@@ -507,7 +499,6 @@ const DISABLE_LOADING_ANIM = true
const { addNotification } = injectNotificationManager()
const client = injectModrinthClient()
const constrainWidth = computed(() => props.constrainWidth)
const containedLayout = computed(() => props.layoutMode === 'contained')
const queryClient = useQueryClient()
const route = useRoute()
const router = useRouter()