[eric] fix browser agent stop: cancel mid-flight API calls, stop children before parent, guard frontend state

This commit is contained in:
ciregenz
2026-04-01 16:22:31 -07:00
parent b75c6f8fe2
commit e1c22dfaba
4 changed files with 53 additions and 23 deletions
+9
View File
@@ -536,6 +536,11 @@ const agentsSlice = createSlice({
}
}
const existing = state.sessions[action.payload.id];
// Don't let a stale "running" message overwrite a terminal status
const terminal = ['stopped', 'error'] as const;
if (existing && terminal.includes(existing.status as any) && action.payload.status === 'running') {
return;
}
// Preserve local pending_approvals if the server payload has none but
// the frontend has some (avoids race where backend clears approvals
// before the frontend processes the removal).
@@ -559,6 +564,10 @@ const agentsSlice = createSlice({
) {
const session = state.sessions[action.payload.sessionId];
if (session) {
const terminal = ['stopped', 'error'] as const;
if (terminal.includes(session.status as any) && action.payload.status === 'running') {
return;
}
session.status = action.payload.status;
}
if (action.payload.status === 'running' && !state.trackedNotificationIds.includes(action.payload.sessionId)) {