Problem
Every mounted task panel polls GetBranchCommits on a fixed 5-second interval regardless of visibility or activity — and every task stays mounted, even hidden ones.
TaskPanel.tsx:198-234: setInterval(fetchCommits, 5000) per panel; only guards are isLandedTask()/git-isolation, not visibility.
- All tasks stay mounted via the panel cache (
TilingLayout.tsx:233-244); focus mode hides inactive panels with visibility: hidden rather than unmounting (:581).
- At 30 tasks that's ~6 git subprocess invocations per second just for commit lists, plus 30 live xterm instances.
The codebase already solved this problem for git status polling — computeAllTasksInterval scales the interval with task count (src/store/taskStatus.ts:1071-1074) — the commit poll just never got the same treatment. Viewport visibility is also already computed and stored (taskViewportVisibility, TilingLayout.tsx:98-113).
Proposed fix
From a full design/UX audit (2026-07-07); adversarially verified. Line numbers as of b342bbd (v1.12.0).
Problem
Every mounted task panel polls
GetBranchCommitson a fixed 5-second interval regardless of visibility or activity — and every task stays mounted, even hidden ones.TaskPanel.tsx:198-234:setInterval(fetchCommits, 5000)per panel; only guards areisLandedTask()/git-isolation, not visibility.TilingLayout.tsx:233-244); focus mode hides inactive panels withvisibility: hiddenrather than unmounting (:581).The codebase already solved this problem for git status polling —
computeAllTasksIntervalscales the interval with task count (src/store/taskStatus.ts:1071-1074) — the commit poll just never got the same treatment. Viewport visibility is also already computed and stored (taskViewportVisibility,TilingLayout.tsx:98-113).Proposed fix
taskViewportVisibility(skip or slow polling for offscreen/hidden panels), and/or reuse the scaled-interval pattern fromtaskStatus.ts.TaskPanel.tsx:247-265) and the pty buffer lives in the main process.<For>(Sidebar.tsx:717) — fine for now, but worth virtualizing if task counts grow.From a full design/UX audit (2026-07-07); adversarially verified. Line numbers as of b342bbd (v1.12.0).