diff --git a/src/webview/page-achievements.ts b/src/webview/page-achievements.ts index 0de562b..531d931 100644 --- a/src/webview/page-achievements.ts +++ b/src/webview/page-achievements.ts @@ -478,6 +478,17 @@ function renderAchievementPage( /* ── Render ───────────────────────────────────────────────────────── */ +async function getAchievementConsumption(filter: DateFilter): Promise<{ modelTotals: Record }> { + try { + return await rpc<{ modelTotals: Record }>('getConsumption', filter as Record); + } catch (error) { + if (error instanceof Error && error.message === 'Token reporting is temporarily disabled') { + return { modelTotals: {} }; + } + throw error; + } +} + export async function renderAchievements(container: HTMLElement, filter: DateFilter): Promise { render(html`<${LoadingScreen} message="Computing achievements..." />`, container); @@ -499,7 +510,7 @@ export async function renderAchievements(container: HTMLElement, filter: DateFil const dailyActivity = await rpc('getDailyActivity', filter as Record); const allSessions = await rpc<{ total: number }>('getSessions', { page: 1, pageSize: 1, filter: filter as Record }); const codeByLang = await rpc<{ byLanguage: { labels: string[] } }>('getCodeProduction', filter as Record); - const consumption = await rpc<{ modelTotals: Record }>('getConsumption', filter as Record); + const consumption = await getAchievementConsumption(filter); const workflows = await rpc<{ clusters: { id: string }[] }>('getWorkflowOptimization', filter as Record); const avgReqsPerSession = allSessions.total > 0 ? stats.totalRequests / allSessions.total : 0;