fix: contain block reply media failures

This commit is contained in:
Ayaan Zaidi
2026-03-07 10:28:32 +05:30
committed by Ayaan Zaidi
parent 77ef672468
commit 059aedeb08
5 changed files with 160 additions and 4 deletions

View File

@@ -100,6 +100,18 @@ export function subscribeEmbeddedPiSession(params: SubscribeEmbeddedPiSessionPar
const pendingMessagingTargets = state.pendingMessagingTargets;
const replyDirectiveAccumulator = createStreamingDirectiveAccumulator();
const partialReplyDirectiveAccumulator = createStreamingDirectiveAccumulator();
const emitBlockReplySafely = (
payload: Parameters<NonNullable<SubscribeEmbeddedPiSessionParams["onBlockReply"]>>[0],
) => {
if (!params.onBlockReply) {
return;
}
void Promise.resolve()
.then(() => params.onBlockReply?.(payload))
.catch((err) => {
log.warn(`block reply callback failed: ${String(err)}`);
});
};
const resetAssistantMessageState = (nextAssistantTextBaseline: number) => {
state.deltaBuffer = "";
@@ -510,7 +522,7 @@ export function subscribeEmbeddedPiSession(params: SubscribeEmbeddedPiSessionPar
if (!cleanedText && (!mediaUrls || mediaUrls.length === 0) && !audioAsVoice) {
return;
}
void params.onBlockReply({
emitBlockReplySafely({
text: cleanedText,
mediaUrls: mediaUrls?.length ? mediaUrls : undefined,
audioAsVoice,