You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
cloud task streams can end while the run is still active. In that state, ph-code could stop watching the run and miss later task updates, making follow-up messages appear stuck or disappear from the conversation.
the be fix in PostHog/posthog#57836 also changes follow-up user_message responses to acknowledge queueing instead of returning the agent turn result synchronously, so the desktop client needs to keep the prompt pending until the streamed prompt echo arrives.
Changes
reconnect the cloud task watcher after a clean stream completion when the fetched run state is still non-terminal
start or refresh the cloud watcher before sending a cloud follow-up prompt
treat queued follow-up responses as pending, render the optimistic user message at the tail of the transcript, and clear that optimistic item once a streamed session/prompt event arrives
apps/code/src/renderer/features/sessions/service/service.ts, line 3216-3220 (link)
The clearTailOptimisticItems and appendEvents calls are separate Zustand state updates. Although React 18 batches synchronous setState calls within the same microtask, clearing the tail item before appending the new events creates a window where neither the optimistic item nor the conversation echo is present. Swapping the order (append first, then clear) keeps the tail item visible via deduplication until the echo lands, avoiding any potential flash. The same pattern appears in the two reconcileCloudLogGapOnce call sites as well.
Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/code/src/renderer/features/sessions/service/service.ts
Line: 3216-3220
Comment:
The `clearTailOptimisticItems` and `appendEvents` calls are separate Zustand state updates. Although React 18 batches synchronous `setState` calls within the same microtask, clearing the tail item before appending the new events creates a window where neither the optimistic item nor the conversation echo is present. Swapping the order (append first, then clear) keeps the tail item visible via deduplication until the echo lands, avoiding any potential flash. The same pattern appears in the two `reconcileCloudLogGapOnce` call sites as well.
How can I resolve this? If you propose a fix, please make it concise.
Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.
---### Issue 1 of 1
apps/code/src/renderer/features/sessions/service/service.ts:3216-3220
The `clearTailOptimisticItems` and `appendEvents` calls are separate Zustand state updates. Although React 18 batches synchronous `setState` calls within the same microtask, clearing the tail item before appending the new events creates a window where neither the optimistic item nor the conversation echo is present. Swapping the order (append first, then clear) keeps the tail item visible via deduplication until the echo lands, avoiding any potential flash. The same pattern appears in the two `reconcileCloudLogGapOnce` call sites as well.
```suggestion sessionStoreSetters.appendEvents(taskRunId, newEvents, expectedCount); if (hasSessionPromptEvent(newEvents)) { sessionStoreSetters.clearTailOptimisticItems(taskRunId); } this.updatePromptStateFromEvents(taskRunId, newEvents);```
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
cloud task streams can end while the run is still active. In that state, ph-code could stop watching the run and miss later task updates, making follow-up messages appear stuck or disappear from the conversation.
the be fix in PostHog/posthog#57836 also changes follow-up
user_messageresponses to acknowledge queueing instead of returning the agent turn result synchronously, so the desktop client needs to keep the prompt pending until the streamed prompt echo arrives.Changes
reconnect the cloud task watcher after a clean stream completion when the fetched run state is still non-terminal
start or refresh the cloud watcher before sending a cloud follow-up prompt
treat queued follow-up responses as pending, render the optimistic user message at the tail of the transcript, and clear that optimistic item once a streamed
session/promptevent arrives