From 353b4dec9777fb169891c981debaf8af895f766f Mon Sep 17 00:00:00 2001 From: "Calum H. (IMB11)" Date: Mon, 19 Oct 2026 18:34:51 +0100 Subject: [PATCH 1/3] refactor: remove unused content store functionality --- .../ui/download-manager/store-verification.ts | 65 ----- .../download-manager/use-download-manager.ts | 61 ----- .../content-storage.vue | 137 +---------- .../app-frontend/src/locales/en-US/index.json | 27 -- apps/app/build.rs | 1 - apps/app/src/api/settings.rs | 24 -- ...8ac8e7eed1006101179cb1aeb5936f3ebed5b.json | 20 -- packages/app-lib/src/api/instance/run.rs | 10 - .../src/api/instance/synced_packs/storage.rs | 2 - packages/app-lib/src/api/settings.rs | 39 +-- packages/app-lib/src/launcher/mod.rs | 1 - .../content_store/adapters/filesystem.rs | 139 +---------- .../adapters/sqlite/instance_storage_rows.rs | 7 - .../content_store/commands/file_changes.rs | 20 +- .../content_store/commands/instance_files.rs | 74 +----- .../state/content_store/commands/migration.rs | 1 - .../state/content_store/commands/recovery.rs | 26 +- .../content_store/commands/verify_content.rs | 195 +-------------- .../app-lib/src/state/content_store/mod.rs | 13 +- .../src/state/content_store/model/mod.rs | 5 +- .../src/state/content_store/model/reports.rs | 14 -- .../src/state/content_store/model/storage.rs | 15 -- .../app-lib/src/state/content_store/store.rs | 2 - .../move_app_directory/managed_content.rs | 43 +--- .../instances/commands/content_mutation.rs | 194 +-------------- .../commands/migrate_legacy_content.rs | 231 ------------------ .../src/state/instances/commands/mod.rs | 2 - packages/app-lib/src/state/mod.rs | 19 -- 28 files changed, 71 insertions(+), 1316 deletions(-) delete mode 100644 apps/app-frontend/src/components/ui/download-manager/store-verification.ts delete mode 100644 packages/app-lib/.sqlx/query-084d9630881ff0859dd4fdcadd78ac8e7eed1006101179cb1aeb5936f3ebed5b.json delete mode 100644 packages/app-lib/src/state/instances/commands/migrate_legacy_content.rs diff --git a/apps/app-frontend/src/components/ui/download-manager/store-verification.ts b/apps/app-frontend/src/components/ui/download-manager/store-verification.ts deleted file mode 100644 index 458e7a25216..00000000000 --- a/apps/app-frontend/src/components/ui/download-manager/store-verification.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { Channel, invoke } from '@tauri-apps/api/core' -import { computed, ref } from 'vue' - -export interface StoreVerification { - checked: number - repaired: number - issues: { sha512: string; message: string }[] -} - -export const storeVerificationReport = ref(null) - -export const storeVerificationTask = ref<{ - id: string - status: 'running' | 'succeeded' | 'failed' - current: number - total: number - rate: number - lastRead: number -} | null>(null) - -export const verifyingStore = computed(() => storeVerificationTask.value?.status === 'running') - -export async function verifyStore(): Promise { - if (verifyingStore.value) throw new Error('Content verification is already running') - const task = { - id: `store-verification-${crypto.randomUUID()}`, - status: 'running' as const, - current: 0, - total: 0, - rate: 0, - lastRead: performance.now(), - } - storeVerificationTask.value = task - storeVerificationReport.value = null - let previousBytes = 0 - let previousTime = performance.now() - const onProgress = new Channel<[number, number]>() - onProgress.onmessage = ([current, total]) => { - const active = storeVerificationTask.value - if (!active || active.id !== task.id || active.status !== 'running') return - const now = performance.now() - active.current = current - active.total = total - if (current > previousBytes) { - active.rate = ((current - previousBytes) * 1000) / Math.max(1, now - previousTime) - active.lastRead = now - } - previousBytes = current - previousTime = now - } - try { - const report = await invoke('plugin:settings|store_verify', { - repair: true, - onProgress, - }) - storeVerificationReport.value = report - storeVerificationTask.value!.status = report.issues.length ? 'failed' : 'succeeded' - return report - } catch (error) { - storeVerificationTask.value!.status = 'failed' - throw error - } finally { - storeVerificationTask.value!.rate = 0 - } -} diff --git a/apps/app-frontend/src/components/ui/download-manager/use-download-manager.ts b/apps/app-frontend/src/components/ui/download-manager/use-download-manager.ts index 47d5c38b724..b2c83360f87 100644 --- a/apps/app-frontend/src/components/ui/download-manager/use-download-manager.ts +++ b/apps/app-frontend/src/components/ui/download-manager/use-download-manager.ts @@ -37,7 +37,6 @@ import { sharedInstancePublishes, type SharedInstancePublishTask, } from './shared-instance-publishes' -import { storeVerificationTask } from './store-verification' import { useInstallJobDisplay } from './use-install-job-display' export interface DownloadManagerJob { @@ -67,19 +66,6 @@ export interface DownloadManagerJob { busy: boolean } -const verificationMessages = defineMessages({ - verifying: { id: 'app.download-manager.verifying', defaultMessage: 'Verifying' }, - title: { id: 'app.settings.resource-management.store.title', defaultMessage: 'Content storage' }, - complete: { - id: 'app.settings.resource-management.store.verified', - defaultMessage: 'Verification complete', - }, - failed: { - id: 'app.settings.resource-management.store.attention', - defaultMessage: 'Some files still need attention', - }, -}) - const fileMessages = defineMessages({ preparing: { id: 'app.file-download.preparing', defaultMessage: 'Preparing download…' }, waiting: { id: 'app.file-download.waiting', defaultMessage: 'Waiting for the server…' }, @@ -196,10 +182,6 @@ export function useDownloadManager() { }), ) - const verificationRows = computed(() => { - const task = storeVerificationTask.value - return task ? [buildVerificationRow(task)] : [] - }) const fileRows = computed(() => [...externalFileDownloads.value.values()].map(buildFileRow)) const debugExportRows = computed(() => [...debugInfoExports.value.values()].map(buildDebugExportRow), @@ -209,7 +191,6 @@ export function useDownloadManager() { ) const allRows = computed(() => [ ...rows.value, - ...verificationRows.value, ...fileRows.value, ...debugExportRows.value, ...publishRows.value, @@ -400,44 +381,6 @@ export function useDownloadManager() { } } - function buildVerificationRow( - task: NonNullable, - ): DownloadManagerJob { - const progress = task.total ? Math.min(0.99, task.current / task.total) : 0 - const rate = task.status === 'running' && now.value - task.lastRead < 2000 ? task.rate : 0 - - return { - id: task.id, - instanceId: null, - status: task.status, - paused: false, - canceling: false, - canPause: false, - canCancel: false, - canRetry: false, - title: formatMessage(verificationMessages.title), - iconUrl: null, - text: formatMessage( - task.status === 'running' - ? verificationMessages.verifying - : task.status === 'succeeded' - ? verificationMessages.complete - : verificationMessages.failed, - ), - progress, - overallProgress: task.status === 'succeeded' ? 1 : progress, - progressLabel: - task.status === 'running' - ? `${formatBytes(task.current)} / ${formatBytes(task.total)} · ${display.formatRate(rate) || '0 B/s'}` - : '', - waiting: task.total === 0 || task.current >= task.total, - eta: '', - canCopyDetails: false, - copied: false, - busy: false, - } - } - function newestFirst(a: DownloadManagerJob, b: DownloadManagerJob) { return (b.finishedAt ?? '').localeCompare(a.finishedAt ?? '') } @@ -572,10 +515,6 @@ export function useDownloadManager() { if (publish.status !== 'running') sharedInstancePublishes.value.delete(id) return } - if (storeVerificationTask.value?.id === id) { - if (storeVerificationTask.value.status !== 'running') storeVerificationTask.value = null - return - } const job = jobs.value.get(id) if (!job || job.status === 'queued' || job.status === 'running') return await runAction(id, async () => { diff --git a/apps/app-frontend/src/features/settings/system/resource-management-settings/content-storage.vue b/apps/app-frontend/src/features/settings/system/resource-management-settings/content-storage.vue index 97c657f059f..9ad6195a866 100644 --- a/apps/app-frontend/src/features/settings/system/resource-management-settings/content-storage.vue +++ b/apps/app-frontend/src/features/settings/system/resource-management-settings/content-storage.vue @@ -1,7 +1,6 @@