fix(pi): retain ownership for uncertain mutations
This commit is contained in:
@@ -163,9 +163,13 @@ function withoutReconciledRequests(
|
||||
snapshot: ConversationSnapshot,
|
||||
): Record<string, CodingPromptRequestState> {
|
||||
const reconciled = requestIdsInSnapshot(snapshot);
|
||||
if (!requests || reconciled.size === 0) return requests ?? {};
|
||||
const requestUncertaintySettled = snapshot.run.status === 'idle' || snapshot.run.status === 'error';
|
||||
if (!requests || (reconciled.size === 0 && !requestUncertaintySettled)) return requests ?? {};
|
||||
return Object.fromEntries(
|
||||
Object.entries(requests).filter(([clientRequestId]) => !reconciled.has(clientRequestId)),
|
||||
Object.entries(requests).filter(([clientRequestId, request]) => (
|
||||
!reconciled.has(clientRequestId)
|
||||
&& !(request.status === 'uncertain' && requestUncertaintySettled)
|
||||
)),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -962,21 +966,17 @@ export function createCodingConversationStore(
|
||||
unread,
|
||||
};
|
||||
const requests = state.requestsByConversationId[event.conversationId] ?? {};
|
||||
const reconciledRequestIds = new Set(incomingMessages.flatMap((message) => (
|
||||
message.clientRequestId ? [message.clientRequestId] : []
|
||||
)));
|
||||
const nextRequests = reconciledRequestIds.size > 0
|
||||
? Object.fromEntries(
|
||||
Object.entries(requests).filter(([id]) => !reconciledRequestIds.has(id)),
|
||||
)
|
||||
const nextRequests = reducer.snapshot
|
||||
? withoutReconciledRequests(requests, reducer.snapshot)
|
||||
: requests;
|
||||
const requestsChanged = Object.keys(nextRequests).length !== Object.keys(requests).length;
|
||||
return {
|
||||
entriesByConversationId: {
|
||||
...state.entriesByConversationId,
|
||||
[event.conversationId]: entry,
|
||||
},
|
||||
summariesByConversationId: summariesWithEntry(state.summariesByConversationId, entry),
|
||||
requestsByConversationId: nextRequests === requests
|
||||
requestsByConversationId: !requestsChanged
|
||||
? state.requestsByConversationId
|
||||
: {
|
||||
...state.requestsByConversationId,
|
||||
|
||||
Reference in New Issue
Block a user