in apps/chat/src/store/conversations/conversations.epics.ts [2153:2194]
isMessageStreaming ? of(ConversationsActions.playbackStop()) : EMPTY,
...selectedConversations.map((conv) => {
if (!conv.playback) {
return EMPTY;
}
const activePlaybackIndex = conv.playback.activePlaybackIndex;
const activeIndex = isMessageStreaming
? activePlaybackIndex - 1
: activePlaybackIndex - 2;
const updatedMessages = conv.messages.slice(0, activeIndex);
const activeAssistantIndex =
activePlaybackIndex > 2 ? activePlaybackIndex - 3 : 0;
const assistantMessage: Message | undefined =
conv.messages[activeAssistantIndex];
const model = assistantMessage?.model
? { ...conv.model, ...assistantMessage.model }
: conv.model;
const { prompt, temperature, selectedAddons, assistantModelId } =
assistantMessage?.settings ? assistantMessage.settings : conv;
return of(
ConversationsActions.updateConversation({
id: conv.id,
values: {
messages: updatedMessages,
isMessageStreaming: false,
model,
prompt,
temperature: temperature,
selectedAddons: selectedAddons,
assistantModelId: assistantModelId,
playback: {
...conv.playback,
activePlaybackIndex: activeIndex,
},
},
}),
);
}),