perf: remove idle background polling hooks

This commit is contained in:
Bohdan Triapitsyn
2026-04-03 19:55:47 +03:00
parent d982171689
commit c5497e9823
2 changed files with 21 additions and 28 deletions
+5 -12
View File
@@ -19,8 +19,6 @@ import { usePushVisibilityBeacon } from '@/hooks/usePushVisibilityBeacon';
import { usePwaManifestSync } from '@/hooks/usePwaManifestSync'; import { usePwaManifestSync } from '@/hooks/usePwaManifestSync';
import { usePwaInstallPrompt } from '@/hooks/usePwaInstallPrompt'; import { usePwaInstallPrompt } from '@/hooks/usePwaInstallPrompt';
import { useWindowTitle } from '@/hooks/useWindowTitle'; import { useWindowTitle } from '@/hooks/useWindowTitle';
import { useGitHubPrBackgroundTracking } from '@/hooks/useGitHubPrBackgroundTracking';
import { GitPollingProvider } from '@/hooks/useGitPolling';
import { useConfigStore } from '@/stores/useConfigStore'; import { useConfigStore } from '@/stores/useConfigStore';
import { hasModifier } from '@/lib/utils'; import { hasModifier } from '@/lib/utils';
import { isDesktopLocalOriginActive, isDesktopShell } from '@/lib/desktop'; import { isDesktopLocalOriginActive, isDesktopShell } from '@/lib/desktop';
@@ -142,12 +140,9 @@ const SyncOptimisticBridge: React.FC = () => {
return null; return null;
}; };
function SyncAppEffects({ apis, embeddedBackgroundWorkEnabled }: { function SyncAppEffects({ embeddedBackgroundWorkEnabled }: {
apis: RuntimeAPIs;
embeddedBackgroundWorkEnabled: boolean; embeddedBackgroundWorkEnabled: boolean;
}) { }) {
const githubApi = embeddedBackgroundWorkEnabled ? apis.github : undefined;
useGitHubPrBackgroundTracking(githubApi, apis.git);
usePwaManifestSync(); usePwaManifestSync();
useSessionAutoCleanup(embeddedBackgroundWorkEnabled); useSessionAutoCleanup(embeddedBackgroundWorkEnabled);
useQueuedMessageAutoSend(embeddedBackgroundWorkEnabled); useQueuedMessageAutoSend(embeddedBackgroundWorkEnabled);
@@ -532,7 +527,7 @@ function App({ apis }: AppProps) {
<TooltipProvider delayDuration={700} skipDelayDuration={150}> <TooltipProvider delayDuration={700} skipDelayDuration={150}>
<div className="h-full text-foreground bg-background"> <div className="h-full text-foreground bg-background">
<EmbeddedSessionSelectionGate embeddedSessionChat={embeddedSessionChat} isVSCodeRuntime={isVSCodeRuntime} /> <EmbeddedSessionSelectionGate embeddedSessionChat={embeddedSessionChat} isVSCodeRuntime={isVSCodeRuntime} />
<SyncAppEffects apis={apis} embeddedBackgroundWorkEnabled={embeddedBackgroundWorkEnabled} /> <SyncAppEffects embeddedBackgroundWorkEnabled={embeddedBackgroundWorkEnabled} />
<ChatView /> <ChatView />
<Toaster /> <Toaster />
</div> </div>
@@ -557,7 +552,7 @@ function App({ apis }: AppProps) {
<RuntimeAPIProvider apis={apis}> <RuntimeAPIProvider apis={apis}>
<TooltipProvider delayDuration={700} skipDelayDuration={150}> <TooltipProvider delayDuration={700} skipDelayDuration={150}>
<div className="h-full text-foreground bg-background"> <div className="h-full text-foreground bg-background">
<SyncAppEffects apis={apis} embeddedBackgroundWorkEnabled={embeddedBackgroundWorkEnabled} /> <SyncAppEffects embeddedBackgroundWorkEnabled={embeddedBackgroundWorkEnabled} />
<AgentManagerView /> <AgentManagerView />
<Toaster /> <Toaster />
</div> </div>
@@ -575,7 +570,7 @@ function App({ apis }: AppProps) {
<FireworksProvider> <FireworksProvider>
<TooltipProvider delayDuration={700} skipDelayDuration={150}> <TooltipProvider delayDuration={700} skipDelayDuration={150}>
<div className="h-full text-foreground bg-background"> <div className="h-full text-foreground bg-background">
<SyncAppEffects apis={apis} embeddedBackgroundWorkEnabled={embeddedBackgroundWorkEnabled} /> <SyncAppEffects embeddedBackgroundWorkEnabled={embeddedBackgroundWorkEnabled} />
<VSCodeLayout /> <VSCodeLayout />
<Toaster /> <Toaster />
</div> </div>
@@ -591,12 +586,11 @@ function App({ apis }: AppProps) {
<ErrorBoundary> <ErrorBoundary>
<SyncProvider sdk={opencodeClient.getSdkClient()} directory={currentDirectory || ''}> <SyncProvider sdk={opencodeClient.getSdkClient()} directory={currentDirectory || ''}>
<RuntimeAPIProvider apis={apis}> <RuntimeAPIProvider apis={apis}>
<GitPollingProvider>
<FireworksProvider> <FireworksProvider>
<VoiceProvider> <VoiceProvider>
<TooltipProvider delayDuration={700} skipDelayDuration={150}> <TooltipProvider delayDuration={700} skipDelayDuration={150}>
<div className={isDesktopRuntime ? 'h-full text-foreground bg-transparent' : 'h-full text-foreground bg-background'}> <div className={isDesktopRuntime ? 'h-full text-foreground bg-transparent' : 'h-full text-foreground bg-background'}>
<SyncAppEffects apis={apis} embeddedBackgroundWorkEnabled={embeddedBackgroundWorkEnabled} /> <SyncAppEffects embeddedBackgroundWorkEnabled={embeddedBackgroundWorkEnabled} />
<MainLayout /> <MainLayout />
<Toaster /> <Toaster />
<ConfigUpdateOverlay /> <ConfigUpdateOverlay />
@@ -608,7 +602,6 @@ function App({ apis }: AppProps) {
</TooltipProvider> </TooltipProvider>
</VoiceProvider> </VoiceProvider>
</FireworksProvider> </FireworksProvider>
</GitPollingProvider>
</RuntimeAPIProvider> </RuntimeAPIProvider>
</SyncProvider> </SyncProvider>
</ErrorBoundary> </ErrorBoundary>
@@ -948,7 +948,7 @@ export const MainLayout: React.FC = () => {
</div> </div>
</div> </div>
<BottomTerminalDock isOpen={isBottomTerminalOpen} isMobile={isMobile}> <BottomTerminalDock isOpen={isBottomTerminalOpen} isMobile={isMobile}>
<ErrorBoundary><TerminalView /></ErrorBoundary> {isBottomTerminalOpen ? <ErrorBoundary><TerminalView /></ErrorBoundary> : null}
</BottomTerminalDock> </BottomTerminalDock>
</div> </div>
<RightSidebar <RightSidebar