@@ -784,10 +784,33 @@ async function cancelQueuedSteeringMessage(
784784
785785export const testing = {
786786 cancelQueuedSteeringMessage,
787+ reconcileAssistantTranscriptAndPreserveLastAssistant,
787788 resolveAttemptStreamAuthProfileId,
788789 steerAndWaitForTranscriptCommit,
789790} ;
790791
792+ function reconcileAssistantTranscriptAndPreserveLastAssistant ( params : {
793+ sessionManager : Pick < SessionManager , "appendMessage" > ;
794+ mutableMessagesSnapshot : AgentMessage [ ] ;
795+ prePromptMessageCount : number ;
796+ assistantTexts : readonly string [ ] ;
797+ api : AssistantMessage [ "api" ] ;
798+ provider : string ;
799+ modelId : string ;
800+ lastAssistant : AssistantMessage | undefined ;
801+ } ) : AssistantMessage | undefined {
802+ reconcileAssistantTextsWithTranscript ( {
803+ sessionManager : params . sessionManager ,
804+ mutableMessagesSnapshot : params . mutableMessagesSnapshot ,
805+ prePromptMessageCount : params . prePromptMessageCount ,
806+ assistantTexts : params . assistantTexts ,
807+ api : params . api ,
808+ provider : params . provider ,
809+ modelId : params . modelId ,
810+ } ) ;
811+ return params . lastAssistant ;
812+ }
813+
791814function resolveAttemptStreamAuthProfileId (
792815 params : Pick < EmbeddedRunAttemptParams , "authProfileId" | "runtimePlan" > ,
793816) : string | undefined {
@@ -3190,9 +3213,8 @@ export async function runEmbeddedAttempt(
31903213 prompt : string ,
31913214 options ?: Parameters < typeof activeSession . prompt > [ 1 ] ,
31923215 ) : Promise < void > =>
3193- withOwnedSessionTranscriptWrites (
3194- ownedTranscriptWriteContext ,
3195- async ( ) => abortable ( trackPromptSettlePromise ( activeSession . prompt ( prompt , options ) ) ) ,
3216+ withOwnedSessionTranscriptWrites ( ownedTranscriptWriteContext , async ( ) =>
3217+ abortable ( trackPromptSettlePromise ( activeSession . prompt ( prompt , options ) ) ) ,
31963218 ) ;
31973219 const onBlockReply = params . onBlockReply
31983220 ? bindOwnedSessionTranscriptWrites ( ownedTranscriptWriteContext , params . onBlockReply )
@@ -4322,18 +4344,16 @@ export async function runEmbeddedAttempt(
43224344 ! timedOutDuringCompaction &&
43234345 ! compactionOccurredThisAttempt
43244346 ) {
4325- const reconciledAssistant = reconcileAssistantTextsWithTranscript ( {
4326- sessionManager,
4347+ lastAssistant = reconcileAssistantTranscriptAndPreserveLastAssistant ( {
4348+ sessionManager : activeSessionManager ,
43274349 mutableMessagesSnapshot : messagesSnapshot ,
43284350 prePromptMessageCount,
43294351 assistantTexts,
43304352 api : params . model . api ,
43314353 provider : params . provider ,
43324354 modelId : params . modelId ,
4355+ lastAssistant,
43334356 } ) ;
4334- if ( reconciledAssistant ) {
4335- lastAssistant = reconciledAssistant ;
4336- }
43374357 }
43384358 cacheBreak = cacheObservabilityEnabled
43394359 ? completePromptCacheObservation ( {
0 commit comments