From 5259bf48b20b5ddb923fc1a34e8204aa90fbf16d Mon Sep 17 00:00:00 2001 From: catlog22 Date: Mon, 12 Jan 2026 22:31:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=88=B0=E5=8A=A0=E8=BD=BD=E9=A1=BA=E5=BA=8F?= =?UTF-8?q?=EF=BC=8C=E4=BC=98=E5=8C=96=E5=B7=A5=E4=BD=9C=E5=8C=BA=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=8A=A0=E8=BD=BD=E9=80=BB=E8=BE=91=EF=BC=8C=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E9=A2=84=E5=8A=A0=E8=BD=BD=E5=92=8C=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ccw/src/core/server.ts | 1 + .../dashboard-js/views/codexlens-manager.js | 37 +++++++++++-------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/ccw/src/core/server.ts b/ccw/src/core/server.ts index 9b90f68a..c5a370f0 100644 --- a/ccw/src/core/server.ts +++ b/ccw/src/core/server.ts @@ -104,6 +104,7 @@ const MODULE_FILES = [ 'help-i18n.js', // Help page translations 'utils.js', 'state.js', + 'services.js', // CacheManager, EventManager, PreloadService - must be before main.js 'api.js', 'components/theme.js', 'components/modals.js', diff --git a/ccw/src/templates/dashboard-js/views/codexlens-manager.js b/ccw/src/templates/dashboard-js/views/codexlens-manager.js index a0697db5..ae660f30 100644 --- a/ccw/src/templates/dashboard-js/views/codexlens-manager.js +++ b/ccw/src/templates/dashboard-js/views/codexlens-manager.js @@ -174,21 +174,28 @@ async function refreshWorkspaceIndexStatus(forceRefresh) { window.eventManager.on('data:updated:workspace-status', _workspaceStatusHandler); } - // 3. Trigger background loading - if (window.preloadService) { - try { - var freshData = await window.preloadService.preload('workspace-status', { force: forceRefresh }); - render(freshData); - } catch (err) { - console.error('[CodexLens] Failed to load workspace status:', err); - if (headerFtsEl) headerFtsEl.textContent = '--'; - if (headerVectorEl) headerVectorEl.textContent = '--'; - if (container) { - container.innerHTML = '
' + - ' ' + - (t('common.error') || 'Error') + ': ' + err.message + - '
'; - } + // 3. Trigger background loading (with fallback to direct fetch) + try { + var freshData; + if (window.preloadService) { + freshData = await window.preloadService.preload('workspace-status', { force: forceRefresh }); + } else { + // Fallback: direct fetch if preloadService not available + var path = encodeURIComponent(projectPath || ''); + var response = await fetch('/api/codexlens/workspace-status?path=' + path); + if (!response.ok) throw new Error('HTTP ' + response.status); + freshData = await response.json(); + } + render(freshData); + } catch (err) { + console.error('[CodexLens] Failed to load workspace status:', err); + if (headerFtsEl) headerFtsEl.textContent = '--'; + if (headerVectorEl) headerVectorEl.textContent = '--'; + if (container) { + container.innerHTML = '
' + + ' ' + + (t('common.error') || 'Error') + ': ' + err.message + + '
'; } }