Context
The latest performance optimizations replaced full iframe DOM tearing with highly efficient statsSnapshot postMessage() differential updates.
The Problem
While reviewing the frontend execution, there are still legacy setInterval timers stranded inside the CopilotPanel.ts inject script (e.g., the refreshTimer countdown). This forces Electron to keep the V8 context active unnecessarily.
Proposed Solution
Completely purge client-side intervals. The backend extension gateway is already aware of state changes. Offload all trigger mechanisms so that the frontend only reacts when the gateway fires a requestRefresh IPC message via the vscode.postMessage tunnel. This will make the dashboard entirely passive and event-driven.
Context
The latest performance optimizations replaced full iframe DOM tearing with highly efficient
statsSnapshotpostMessage()differential updates.The Problem
While reviewing the frontend execution, there are still legacy
setIntervaltimers stranded inside theCopilotPanel.tsinject script (e.g., therefreshTimercountdown). This forces Electron to keep the V8 context active unnecessarily.Proposed Solution
Completely purge client-side intervals. The backend extension gateway is already aware of state changes. Offload all trigger mechanisms so that the frontend only reacts when the gateway fires a
requestRefreshIPC message via thevscode.postMessagetunnel. This will make the dashboard entirely passive and event-driven.