diff --git a/config/quality/eslint-suppressions.json b/config/quality/eslint-suppressions.json index 81dc80bdee..3454e0c72d 100644 --- a/config/quality/eslint-suppressions.json +++ b/config/quality/eslint-suppressions.json @@ -898,11 +898,43 @@ }, "react-hooks/exhaustive-deps": { "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 2 } }, "src/app/(dashboard)/dashboard/a2a/page.tsx": { "@typescript-eslint/no-unused-vars": { "count": 6 + }, + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/acp-agents/page.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/activity/ActivityFeedClient.tsx": { + "react-hooks/purity": { + "count": 1 + }, + "react-hooks/refs": { + "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/analytics/CacheHealthTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/analytics/ComboHealthTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/app/(dashboard)/dashboard/analytics/CompressionAnalyticsTab.tsx": { @@ -910,9 +942,48 @@ "count": 1 } }, + "src/app/(dashboard)/dashboard/analytics/ProviderUtilizationTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/analytics/RouteExplainabilityTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 2 + } + }, "src/app/(dashboard)/dashboard/api-manager/ApiManagerPageClient.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 + }, + "react-hooks/immutability": { + "count": 4 + }, + "react-hooks/preserve-manual-memoization": { + "count": 2 + }, + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/audit/A2aAuditTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/audit/ComplianceTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/audit/McpAuditTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 2 + } + }, + "src/app/(dashboard)/dashboard/batch/components/wizard/CostEstimateStep.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/app/(dashboard)/dashboard/batch/components/wizard/InputStep.tsx": { @@ -920,6 +991,34 @@ "count": 1 } }, + "src/app/(dashboard)/dashboard/batch/components/wizard/JsonlValidationStep.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/batch/files/page.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/cache/components/CacheEntriesTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/cache/components/ReasoningCacheTab.tsx": { + "react-hooks/purity": { + "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/cache/page.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, "src/app/(dashboard)/dashboard/cli-agents/CliAgentsPageClient.tsx": { "no-restricted-syntax": { "count": 4 @@ -931,11 +1030,54 @@ }, "react-hooks/exhaustive-deps": { "count": 1 + }, + "react-hooks/immutability": { + "count": 3 + }, + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/cli-code/components/ClaudeClassifierCompatToggle.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/cli-code/components/ClaudeToolCard.tsx": { + "react-hooks/immutability": { + "count": 3 + }, + "react-hooks/set-state-in-effect": { + "count": 2 + } + }, + "src/app/(dashboard)/dashboard/cli-code/components/CliProfileAutoSyncToggles.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/app/(dashboard)/dashboard/cli-code/components/ClineToolCard.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 + }, + "react-hooks/immutability": { + "count": 3 + }, + "react-hooks/set-state-in-effect": { + "count": 2 + } + }, + "src/app/(dashboard)/dashboard/cli-code/components/CliproxyapiToolCard.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/cli-code/components/CodexToolCard.tsx": { + "react-hooks/immutability": { + "count": 4 + }, + "react-hooks/set-state-in-effect": { + "count": 2 } }, "src/app/(dashboard)/dashboard/cli-code/components/CopilotToolCard.tsx": { @@ -943,14 +1085,55 @@ "count": 3 } }, + "src/app/(dashboard)/dashboard/cli-code/components/DroidToolCard.tsx": { + "react-hooks/immutability": { + "count": 3 + }, + "react-hooks/set-state-in-effect": { + "count": 2 + } + }, + "src/app/(dashboard)/dashboard/cli-code/components/GrokBuildToolCard.tsx": { + "react-hooks/set-state-in-effect": { + "count": 2 + } + }, "src/app/(dashboard)/dashboard/cli-code/components/HermesAgentToolCard.tsx": { "@typescript-eslint/no-unused-vars": { "count": 2 + }, + "react-hooks/immutability": { + "count": 1 + }, + "react-hooks/purity": { + "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/app/(dashboard)/dashboard/cli-code/components/KiloToolCard.tsx": { "@typescript-eslint/no-unused-vars": { "count": 2 + }, + "react-hooks/immutability": { + "count": 3 + }, + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/cli-code/components/OpenClawToolCard.tsx": { + "react-hooks/immutability": { + "count": 3 + }, + "react-hooks/set-state-in-effect": { + "count": 2 + } + }, + "src/app/(dashboard)/dashboard/combos/ComboControlCenterClient.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/app/(dashboard)/dashboard/combos/page.tsx": { @@ -964,11 +1147,31 @@ "count": 7 } }, + "src/app/(dashboard)/dashboard/conductor/ConductorPageClient.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/conductor/FaroChat.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/conversations/page.tsx": { + "react-hooks/set-state-in-effect": { + "count": 2 + } + }, "src/app/(dashboard)/dashboard/costs/CostOverviewTab.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 } }, + "src/app/(dashboard)/dashboard/costs/components/ApiKeyUsageLimitCard.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, "src/app/(dashboard)/dashboard/costs/costExplorerUtils.ts": { "no-restricted-syntax": { "count": 1 @@ -982,11 +1185,77 @@ "src/app/(dashboard)/dashboard/costs/quota-share/components/PoolWizard.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 3 + } + }, + "src/app/(dashboard)/dashboard/costs/quota-share/hooks/usePoolUsage.ts": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/costs/quota-share/hooks/usePools.ts": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/costs/useApiKeyUsageLimits.ts": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/discovery/DiscoveryPageClient.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.tsx": { + "react-hooks/immutability": { + "count": 3 + } + }, + "src/app/(dashboard)/dashboard/endpoint/components/A2ADashboard.tsx": { + "react-hooks/set-state-in-effect": { + "count": 2 + } + }, + "src/app/(dashboard)/dashboard/endpoint/components/MCPDashboard.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/endpoint/components/NotionSourceCard.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/endpoint/components/ObsidianSourceCard.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/free-provider-rankings/page.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/app/(dashboard)/dashboard/health/ProviderHealthAutopilotCard.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/health/ProviderHealthMatrixCard.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/health/TelemetryCard.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/app/(dashboard)/dashboard/health/page.tsx": { @@ -997,6 +1266,34 @@ "src/app/(dashboard)/dashboard/mcp/page.tsx": { "@typescript-eslint/no-unused-vars": { "count": 2 + }, + "react-hooks/set-state-in-effect": { + "count": 2 + } + }, + "src/app/(dashboard)/dashboard/memory/components/EditMemoryModal.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/memory/components/QdrantConfigCard.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/memory/components/tabs/MemoriesTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/memory/hooks/useEngineStatus.ts": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/memory/hooks/useMemorySettings.ts": { + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/app/(dashboard)/dashboard/onboarding/page.tsx": { @@ -1014,6 +1311,24 @@ "count": 1 } }, + "src/app/(dashboard)/dashboard/plugins/[name]/config/page.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/plugins/page.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/provider-stats/page.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + }, + "react-hooks/static-components": { + "count": 7 + } + }, "src/app/(dashboard)/dashboard/providers/[id]/ProviderDetailPageClient.tsx": { "@typescript-eslint/no-unused-vars": { "count": 2 @@ -1044,21 +1359,64 @@ "count": 3 } }, + "src/app/(dashboard)/dashboard/providers/[id]/components/CustomModelsSection.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, "src/app/(dashboard)/dashboard/providers/[id]/components/EmptyConnectionsPlaceholder.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 } }, + "src/app/(dashboard)/dashboard/providers/[id]/components/ModelCompatPopover.tsx": { + "react-hooks/refs": { + "count": 4 + }, + "react-hooks/set-state-in-effect": { + "count": 3 + } + }, "src/app/(dashboard)/dashboard/providers/[id]/components/PassthroughModelsSection.tsx": { "@typescript-eslint/no-unused-vars": { "count": 3 } }, + "src/app/(dashboard)/dashboard/providers/[id]/components/ProviderCcAliasSection.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/providers/[id]/components/ProviderInterceptionSection.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/providers/[id]/components/ProviderParamFilterSection.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/providers/[id]/components/VolcengineConnectModal.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, "src/app/(dashboard)/dashboard/providers/[id]/components/__tests__/CursorAgentNudge.test.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 } }, + "src/app/(dashboard)/dashboard/providers/[id]/components/modals/EditCompatibleNodeModal.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/providers/[id]/components/modals/EditConnectionModal.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, "src/app/(dashboard)/dashboard/providers/[id]/components/modals/ImportCodexAuthModal.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 @@ -1077,11 +1435,57 @@ "src/app/(dashboard)/dashboard/providers/[id]/hooks/useProviderConnections.ts": { "@typescript-eslint/no-unused-vars": { "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 2 + } + }, + "src/app/(dashboard)/dashboard/providers/[id]/hooks/useProviderSettings.ts": { + "react-hooks/set-state-in-effect": { + "count": 2 + } + }, + "src/app/(dashboard)/dashboard/providers/components/AddCompatibleProviderModal.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/providers/hooks/useProviderModels.ts": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/providers/hooks/useProviderUrlFilters.ts": { + "react-hooks/set-state-in-effect": { + "count": 2 + } + }, + "src/app/(dashboard)/dashboard/providers/hooks/useRiskAcknowledged.ts": { + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/app/(dashboard)/dashboard/providers/page.tsx": { "@typescript-eslint/no-unused-vars": { "count": 4 + }, + "react-hooks/set-state-in-effect": { + "count": 2 + } + }, + "src/app/(dashboard)/dashboard/providers/services/components/CliproxyAccountHealthCard.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/providers/services/components/DarioAccountPanel.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/providers/services/components/NinerouterModelList.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/app/(dashboard)/dashboard/providers/utils/buildCurl.ts": { @@ -1089,6 +1493,34 @@ "count": 1 } }, + "src/app/(dashboard)/dashboard/radar/RadarCatalogTable.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/radar/intel/page.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/radar/page.tsx": { + "react-hooks/set-state-in-effect": { + "count": 2 + } + }, + "src/app/(dashboard)/dashboard/radar/setup/page.tsx": { + "react-hooks/preserve-manual-memoization": { + "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/relay/RelayProxyClient.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, "src/app/(dashboard)/dashboard/resilience/connections/components/ConnectionDetail.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 @@ -1099,6 +1531,19 @@ "count": 1 } }, + "src/app/(dashboard)/dashboard/resilience/connections/components/ResilienceConnectionsClient.tsx": { + "react-hooks/purity": { + "count": 1 + }, + "react-hooks/refs": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/runtime/components/ModelCooldownsCard.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, "src/app/(dashboard)/dashboard/search-tools/components/SearchHistory.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 @@ -1114,6 +1559,11 @@ "count": 1 } }, + "src/app/(dashboard)/dashboard/settings/components/AccessTokensTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, "src/app/(dashboard)/dashboard/settings/components/AppearanceTab.tsx": { "@next/next/no-img-element": { "count": 4 @@ -1122,6 +1572,9 @@ "src/app/(dashboard)/dashboard/settings/components/AuthzSection.tsx": { "no-restricted-syntax": { "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/app/(dashboard)/dashboard/settings/components/CliproxyapiSettingsTab.tsx": { @@ -1139,9 +1592,22 @@ "count": 1 } }, + "src/app/(dashboard)/dashboard/settings/components/FallbackChainsEditor.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/settings/components/IPFilterSection.tsx": { + "react-hooks/immutability": { + "count": 1 + } + }, "src/app/(dashboard)/dashboard/settings/components/MitmProxyTab.tsx": { "@next/next/no-html-link-for-pages": { "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/app/(dashboard)/dashboard/settings/components/ModelAliasesTab.tsx": { @@ -1152,6 +1618,9 @@ "src/app/(dashboard)/dashboard/settings/components/ModelCapabilityOverridesTab.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/app/(dashboard)/dashboard/settings/components/ModelLockoutCard.tsx": { @@ -1159,9 +1628,37 @@ "count": 1 } }, + "src/app/(dashboard)/dashboard/settings/components/ModelsDevSyncTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/settings/components/OneproxyTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/settings/components/PayloadRulesTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/settings/components/PoliciesPanel.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/settings/components/PricingTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 2 + } + }, "src/app/(dashboard)/dashboard/settings/components/ProviderAccountRoutingCard.tsx": { "react-hooks/exhaustive-deps": { "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/app/(dashboard)/dashboard/settings/components/ProxyRegistryManager.tsx": { @@ -1169,11 +1666,21 @@ "count": 3 } }, + "src/app/(dashboard)/dashboard/settings/components/ResilienceTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 7 + } + }, "src/app/(dashboard)/dashboard/settings/components/ResponsesStatePolicyTab.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 } }, + "src/app/(dashboard)/dashboard/settings/components/RoutingStrategyCard.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, "src/app/(dashboard)/dashboard/settings/components/RoutingTab.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 @@ -1187,6 +1694,19 @@ "src/app/(dashboard)/dashboard/settings/components/SystemStorageTab.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/settings/components/proxy/GlobalConfigTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/settings/components/proxy/SubscriptionTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/app/(dashboard)/dashboard/settings/components/useProxyPoolModal.ts": { @@ -1199,6 +1719,21 @@ "count": 3 } }, + "src/app/(dashboard)/dashboard/tools/agent-bridge/components/ModelSelectorModal.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/tools/agent-bridge/components/SetupWizard.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/tools/traffic-inspector/components/CustomHostsManager.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, "src/app/(dashboard)/dashboard/tools/traffic-inspector/components/RequestStreamingList.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 @@ -1209,6 +1744,11 @@ "count": 1 } }, + "src/app/(dashboard)/dashboard/translator/components/MonitorTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, "src/app/(dashboard)/dashboard/translator/components/ResultNarrated.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 @@ -1224,6 +1764,11 @@ "count": 1 } }, + "src/app/(dashboard)/dashboard/usage/components/EvalsTab.tsx": { + "react-hooks/set-state-in-effect": { + "count": 2 + } + }, "src/app/(dashboard)/dashboard/usage/components/ProviderLimits/ProviderLimitCard.tsx": { "@typescript-eslint/no-unused-vars": { "count": 3 @@ -1234,6 +1779,11 @@ "count": 1 } }, + "src/app/(dashboard)/dashboard/usage/components/ProviderLimits/useCodexResetCreditRedemption.ts": { + "react-hooks/immutability": { + "count": 2 + } + }, "src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 @@ -1242,11 +1792,22 @@ "src/app/(dashboard)/dashboard/usage/components/RateLimitStatus.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/app/(dashboard)/dashboard/usage/components/SessionsTab.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/webhooks/WebhooksPageClient.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/app/(dashboard)/dashboard/webhooks/__tests__/webhook-wizard.test.tsx": { @@ -1254,6 +1815,27 @@ "count": 1 } }, + "src/app/(dashboard)/dashboard/webhooks/components/AddWebhookWizard.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/dashboard/webhooks/components/WebhookDeliveriesPanel.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/app/(dashboard)/home/ProviderQuotaWidget.tsx": { + "react-hooks/purity": { + "count": 1 + }, + "react-hooks/refs": { + "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, "src/app/(dashboard)/home/page.tsx": { "no-restricted-imports": { "count": 1 @@ -2097,11 +2679,21 @@ "count": 1 } }, + "src/app/global-error.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, "src/app/login/page.tsx": { "@typescript-eslint/no-unused-vars": { "count": 3 } }, + "src/app/status/page.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, "src/domain/assessment/assessor.ts": { "@typescript-eslint/no-unused-vars": { "count": 1 @@ -2839,6 +3431,9 @@ "src/shared/components/KiroAuthModal.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/shared/components/LanguageSelector.tsx": { @@ -2846,6 +3441,11 @@ "count": 1 } }, + "src/shared/components/ModelSelectModal.tsx": { + "react-hooks/set-state-in-effect": { + "count": 4 + } + }, "src/shared/components/NotificationToast.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 @@ -2854,16 +3454,28 @@ "src/shared/components/OAuthModal.tsx": { "@typescript-eslint/no-unused-vars": { "count": 3 + }, + "react-hooks/set-state-in-effect": { + "count": 4 } }, "src/shared/components/PricingModal.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 + }, + "react-hooks/immutability": { + "count": 1 } }, "src/shared/components/ProxyConfigModal.tsx": { "react-hooks/exhaustive-deps": { "count": 1 + }, + "react-hooks/immutability": { + "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/shared/components/ProxyLogDetail.tsx": { @@ -2871,6 +3483,16 @@ "count": 1 } }, + "src/shared/components/ReasoningRoutingRules.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/shared/components/RequestLoggerDetail.sections.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, "src/shared/components/RequestLoggerV2.tsx": { "@typescript-eslint/no-unused-vars": { "count": 3 @@ -2890,6 +3512,17 @@ }, "@typescript-eslint/no-unused-vars": { "count": 2 + }, + "react-hooks/set-state-in-effect": { + "count": 2 + } + }, + "src/shared/components/UsageStats.tsx": { + "react-hooks/preserve-manual-memoization": { + "count": 1 + }, + "react-hooks/set-state-in-effect": { + "count": 1 } }, "src/shared/components/analytics/charts.tsx": { @@ -2902,6 +3535,16 @@ "count": 1 } }, + "src/shared/components/analytics/useProviderDailyUsage.ts": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, + "src/shared/components/compression/ComboCompressionModeSelect.tsx": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, "src/shared/components/docs/CodeBlock.tsx": { "@typescript-eslint/no-unused-vars": { "count": 1 @@ -2937,6 +3580,11 @@ "count": 1 } }, + "src/shared/hooks/cli/useToolBatchStatuses.ts": { + "react-hooks/set-state-in-effect": { + "count": 1 + } + }, "src/shared/hooks/useTheme.ts": { "@typescript-eslint/no-unused-vars": { "count": 1