feat(usage): add toggle to hide prediction rows on usage cards (#1420)

* feat(usage): add showPredValues setting to quota store

* feat(usage): register usageShowPredValues in settings sanitizers

* feat(usage): add i18n key for show predictions toggle

* feat(usage): add show predictions toggle to sidebar

* feat(usage): hide pred row by default, gate on showPredValues

* fix(usage): gate header dropdown PaceIndicator behind showPredValues

* fix(usage): gate VSCodeLayout PaceIndicator behind showPredValues

* fix(usage): correct indentation drift in Header.tsx PaceIndicator blocks
This commit is contained in:
Erman HAVUÇ
2026-05-26 01:54:24 +03:00
committed by GitHub
parent ceee53576b
commit 684d55f4aa
16 changed files with 57 additions and 7 deletions
+1
View File
@@ -87,6 +87,7 @@ export type DesktopSettings = {
usageAutoRefresh?: boolean;
usageRefreshIntervalMs?: number;
usageDisplayMode?: 'usage' | 'remaining';
usageShowPredValues?: boolean;
usageDropdownProviders?: string[];
usageSelectedModels?: Record<string, string[]>; // Map of providerId -> selected model names
usageCollapsedFamilies?: Record<string, string[]>; // Map of providerId -> collapsed family IDs (UsagePage)
@@ -945,6 +945,7 @@ export const settingsDict = {
'settings.usage.sidebar.field.displayModePlaceholder': 'Display mode',
'settings.usage.sidebar.field.displayModeUsage': 'Usage',
'settings.usage.sidebar.field.displayModeRemaining': 'Quota remaining',
'settings.usage.sidebar.field.showPredictions': 'Show predictions',
'settings.usage.sidebar.status.notSet': 'Not set',
'settings.usage.page.empty.selectProvider': 'Select a provider to view usage details.',
'settings.usage.page.header.providerUsage': '{provider} Usage',
@@ -912,6 +912,7 @@ export const settingsDict = {
"settings.usage.sidebar.field.displayModePlaceholder": "Modo de visualización",
"settings.usage.sidebar.field.displayModeUsage": "Uso",
"settings.usage.sidebar.field.displayModeRemaining": "Cuota restante",
"settings.usage.sidebar.field.showPredictions": "Mostrar predicciones",
"settings.usage.sidebar.status.notSet": "No establecido",
"settings.usage.page.empty.selectProvider": "Selecciona un proveedor para ver detalles de uso.",
"settings.usage.page.header.providerUsage": "Uso de {provider}",
@@ -912,6 +912,7 @@ export const settingsDict = {
'settings.usage.sidebar.field.displayModePlaceholder': '표시 모드',
'settings.usage.sidebar.field.displayModeUsage': '사용량',
'settings.usage.sidebar.field.displayModeRemaining': '남은 할당량',
'settings.usage.sidebar.field.showPredictions': '예측 표시',
'settings.usage.sidebar.status.notSet': '설정 안 됨',
'settings.usage.page.empty.selectProvider': '사용량 세부 정보를 보려면 프로바이더를 선택하세요.',
'settings.usage.page.header.providerUsage': '{provider} 사용량',
@@ -1597,6 +1597,7 @@ export const settingsDict = {
'settings.usage.sidebar.field.display': 'Wyświetlanie',
'settings.usage.sidebar.field.displayModePlaceholder': 'Tryb wyświetlania',
'settings.usage.sidebar.field.displayModeRemaining': 'Pozostała kwota',
'settings.usage.sidebar.field.showPredictions': 'Pokaż prognozy',
'settings.usage.sidebar.field.displayModeUsage': 'Użycie',
'settings.usage.sidebar.field.intervalPlaceholder': 'Interwał',
'settings.usage.sidebar.status.notSet': 'Nie ustawiono',
@@ -912,6 +912,7 @@ export const settingsDict = {
"settings.usage.sidebar.field.displayModePlaceholder": "Modo de visualização",
"settings.usage.sidebar.field.displayModeUsage": "Uso",
"settings.usage.sidebar.field.displayModeRemaining": "Cota restante",
"settings.usage.sidebar.field.showPredictions": "Mostrar previsões",
"settings.usage.sidebar.status.notSet": "Não definido",
"settings.usage.page.empty.selectProvider": "Selecione um provedor para ver detalhes de uso.",
"settings.usage.page.header.providerUsage": "Uso de {provider}",
@@ -912,6 +912,7 @@ export const settingsDict = {
"settings.usage.sidebar.field.displayModePlaceholder": "Режим відображення",
"settings.usage.sidebar.field.displayModeUsage": "Використання",
"settings.usage.sidebar.field.displayModeRemaining": "Залишок квоти",
"settings.usage.sidebar.field.showPredictions": "Показувати прогнози",
"settings.usage.sidebar.status.notSet": "Не встановлено",
"settings.usage.page.empty.selectProvider": "Виберіть провайдера, щоб переглянути деталі використання.",
"settings.usage.page.header.providerUsage": "Використання {provider}",
@@ -912,6 +912,7 @@ export const settingsDict = {
'settings.usage.sidebar.field.displayModePlaceholder': '显示模式',
'settings.usage.sidebar.field.displayModeUsage': '用量',
'settings.usage.sidebar.field.displayModeRemaining': '剩余配额',
'settings.usage.sidebar.field.showPredictions': '显示预测',
'settings.usage.sidebar.status.notSet': '未设置',
'settings.usage.page.empty.selectProvider': '选择一个提供商以查看用量详情。',
'settings.usage.page.header.providerUsage': '{provider} 用量',
+3
View File
@@ -790,6 +790,9 @@ const sanitizeWebSettings = (payload: unknown): DesktopSettings | null => {
if (candidate.usageDisplayMode === 'usage' || candidate.usageDisplayMode === 'remaining') {
result.usageDisplayMode = candidate.usageDisplayMode;
}
if (typeof candidate.usageShowPredValues === 'boolean') {
result.usageShowPredValues = candidate.usageShowPredValues;
}
if (Array.isArray(candidate.usageDropdownProviders)) {
result.usageDropdownProviders = candidate.usageDropdownProviders.filter(
(entry): entry is string => typeof entry === 'string' && entry.length > 0