From dd9e8832b1229bae1d7c59d41804e6ba57337dda Mon Sep 17 00:00:00 2001 From: Brian Date: Fri, 23 Jan 2026 00:31:33 -0500 Subject: [PATCH] fix: stop scanning huggingface cache for e2e Signed-off-by: Brian --- .../models/HuggingFaceModelHandler.spec.ts | 1 + .../src/models/HuggingFaceModelHandler.ts | 50 ++++++++++++------- 2 files changed, 32 insertions(+), 19 deletions(-) diff --git a/packages/backend/src/models/HuggingFaceModelHandler.spec.ts b/packages/backend/src/models/HuggingFaceModelHandler.spec.ts index 4228e714e..d3e7026e4 100644 --- a/packages/backend/src/models/HuggingFaceModelHandler.spec.ts +++ b/packages/backend/src/models/HuggingFaceModelHandler.spec.ts @@ -40,6 +40,7 @@ vi.mock('@huggingface/hub', () => { return { scanCacheDir: vi.fn(), snapshotDownload: vi.fn(), + getHFHubCachePath: vi.fn(), }; }); diff --git a/packages/backend/src/models/HuggingFaceModelHandler.ts b/packages/backend/src/models/HuggingFaceModelHandler.ts index 7c50af411..e9016c0f9 100644 --- a/packages/backend/src/models/HuggingFaceModelHandler.ts +++ b/packages/backend/src/models/HuggingFaceModelHandler.ts @@ -18,7 +18,7 @@ import { ModelHandler } from './ModelHandler'; import type { ModelInfo } from '@shared/models/IModelInfo'; import { Downloader } from '../utils/downloader'; -import { scanCacheDir, snapshotDownload } from '@huggingface/hub'; +import { scanCacheDir, snapshotDownload, getHFHubCachePath } from '@huggingface/hub'; import type { CompletionEvent } from './baseEvent'; import { getDurationSecondsSince } from '../utils/utils'; import type { ModelsManager } from '../managers/modelsManager'; @@ -120,26 +120,38 @@ export class HuggingFaceModelHandler extends ModelHandler { }) .filter(info => info.repo); - scanCacheDir() - .then(hfinfo => { - for (const repo of hfinfo.repos) { - for (const revision of repo.revisions) { - for (const ref of revision.refs) { - const model = hfModels.find(m => m.repo?.repo === repo.id.name && m.repo?.revision === ref); - if (model) { - model.model.file = { - path: revision.path, - file: '', - creation: revision.lastModifiedAt, - size: revision.size, - }; + // Only scan cache if we have HF models to check + if (hfModels.length > 0) { + // Check if cache directory exists before scanning + try { + const cachePath = getHFHubCachePath(); + await fs.access(cachePath); + } catch { + // Cache directory doesn't exist, skip scanning + return; + } + + scanCacheDir() + .then(hfinfo => { + for (const repo of hfinfo.repos) { + for (const revision of repo.revisions) { + for (const ref of revision.refs) { + const model = hfModels.find(m => m.repo?.repo === repo.id.name && m.repo?.revision === ref); + if (model) { + model.model.file = { + path: revision.path, + file: '', + creation: revision.lastModifiedAt, + size: revision.size, + }; + } } } } - } - }) - .catch((err: unknown): void => { - console.error('Something went wrong while scanning cache.', err); - }); + }) + .catch((err: unknown): void => { + console.error('Something went wrong while scanning cache.', err); + }); + } } }