diff --git a/src/renderer/src/components/activity/ActivityPrototypePage.test.ts b/src/renderer/src/components/activity/ActivityPrototypePage.test.ts index 4046476fae5..be5710c6ee6 100644 --- a/src/renderer/src/components/activity/ActivityPrototypePage.test.ts +++ b/src/renderer/src/components/activity/ActivityPrototypePage.test.ts @@ -171,6 +171,9 @@ describe('buildActivityEvents', () => { expect(result.liveAgentByPaneKey[PANE_KEY].state).toBe('monitoring') expect(threads[0].currentAgentState).toBe('monitoring') + // A monitoring turn must not emit a `working` event that contradicts the live snapshot. + expect(result.events).toHaveLength(0) + expect(threads[0].latestEvent).toBeNull() expect(groups[0]).toMatchObject({ key: 'monitoring', label: 'Monitoring background tasks', diff --git a/src/renderer/src/components/activity/activity-pane-events.ts b/src/renderer/src/components/activity/activity-pane-events.ts index ea69ef13541..9170bcf8898 100644 --- a/src/renderer/src/components/activity/activity-pane-events.ts +++ b/src/renderer/src/components/activity/activity-pane-events.ts @@ -97,8 +97,11 @@ export function buildPaneActivityEvents(args: PaneEventInputs): ActivityEvent[] ) } + // Monitoring live turns surface only via the 'monitoring' snapshot, never as a working event. const currentState = - args.liveState !== null || isHistoricalActivityState(args.entry.state) ? args.entry.state : null + args.liveState === 'working' || isHistoricalActivityState(args.entry.state) + ? args.entry.state + : null if (currentState === null || args.entry.sessionBoundary === true) { return events }