@@ -70,7 +70,11 @@ import {
7070 sessionContextDir ,
7171 sessionDir ,
7272} from "../session/index.js" ;
73- import { setActiveRun } from "../session/active-run.js" ;
73+ import {
74+ setActiveRun ,
75+ syncRunStateHandle ,
76+ type RunStateHandle ,
77+ } from "../session/active-run.js" ;
7478import {
7579 setActiveDisposeHost ,
7680 clearActiveDisposeHost ,
@@ -377,19 +381,35 @@ export async function runExec(config: Config): Promise<ExecResult> {
377381 let providerFailureObserved = false ;
378382 let providerError : InferenceErrorLike | undefined ;
379383 let result : ExecResult | undefined ;
384+ const activeRunHandle : RunStateHandle = {
385+ sessionId,
386+ cwd : config . cwd ,
387+ task,
388+ startedAt,
389+ turnsUsed : 0 ,
390+ model : `${ config . providerName } :${ config . model } ` ,
391+ } ;
380392
381393 const persist = async (
382394 status : "running" | "done" | "failed" | "cancelled" ,
383395 extra ?: { error ?: string } ,
384396 ) : Promise < void > => {
385397 if ( finalized && status === "running" ) return ;
386398 if ( status !== "running" ) finalized = true ;
399+ const model = `${ config . providerName } :${ config . model } ` ;
400+ const nextTurnsUsed = runSink ?. getTurnCount ( ) ?? turnsUsed ;
401+ syncRunStateHandle ( activeRunHandle , {
402+ turnsUsed : nextTurnsUsed ,
403+ task,
404+ startedAt,
405+ model,
406+ } ) ;
387407 const snapshot = {
388408 status,
389- turnsUsed : runSink ?. getTurnCount ( ) ?? turnsUsed ,
409+ turnsUsed : nextTurnsUsed ,
390410 task,
391411 startedAt,
392- model : ` ${ config . providerName } : ${ config . model } ` ,
412+ model,
393413 mcpServers : connectedMcp ,
394414 ...( status !== "running" ? { finishedAt : Date . now ( ) } : { } ) ,
395415 ...( extra ?. error !== undefined ? { error : extra . error } : { } ) ,
@@ -398,13 +418,7 @@ export async function runExec(config: Config): Promise<ExecResult> {
398418 status === "running"
399419 ? saveState ( config . cwd , sessionId , snapshot ) . then ( ( ) => {
400420 if ( ! finalized ) {
401- setActiveRun ( {
402- sessionId,
403- cwd : config . cwd ,
404- task,
405- startedAt,
406- model : `${ config . providerName } :${ config . model } ` ,
407- } ) ;
421+ setActiveRun ( activeRunHandle ) ;
408422 }
409423 } )
410424 : finalizeRunState ( config . cwd , sessionId , snapshot ) ;
0 commit comments