Memoize agent object in AgentPanelBody to prevent WebStreamViewport re-renders on keystroke

This commit is contained in:
Mohamed Boudra
2026-04-12 12:18:51 +07:00
parent 0d340959d7
commit cde10485d4
+13 -10
View File
@@ -483,16 +483,19 @@ function AgentPanelBody({
isPendingCreateForPanel && (!authoritativeStatus || isAuthoritativeBootstrapping);
const canFinalizePendingCreate = Boolean(authoritativeStatus) && !isAuthoritativeBootstrapping;
const agent: AgentScreenAgent | null =
agentState.serverId && agentState.id && agentState.status && agentState.cwd
? {
serverId: agentState.serverId,
id: agentState.id,
status: agentState.status,
cwd: agentState.cwd,
projectPlacement,
}
: null;
const agent = useMemo<AgentScreenAgent | null>(
() =>
agentState.serverId && agentState.id && agentState.status && agentState.cwd
? {
serverId: agentState.serverId,
id: agentState.id,
status: agentState.status,
cwd: agentState.cwd,
projectPlacement,
}
: null,
[agentState.serverId, agentState.id, agentState.status, agentState.cwd, projectPlacement],
);
const placeholderAgent: AgentScreenAgent | null = useMemo(() => {
if (!shouldUseOptimisticStream || !agentId) {