@@ -165,7 +165,7 @@ export class CodexCommands {
165165 return { handled : true } ;
166166 }
167167 case "goal" : {
168- return await this . runGoalCommand ( sessionState , command . rest ) ;
168+ return await this . runGoalCommand ( sessionState , command . rest , options ) ;
169169 }
170170 case "review" : {
171171 const target = this . buildReviewTarget ( command . rest ) ;
@@ -266,16 +266,16 @@ export class CodexCommands {
266266 sessionState . sessionId ,
267267 target ,
268268 ( turnId , threadId ) => {
269- if ( options . onTurnStarted ) {
270- options . onTurnStarted ( turnId , threadId ) ;
271- } else {
272- sessionState . currentTurnId = turnId ;
273- }
269+ this . handleCommandTurnStarted ( sessionState , options , turnId , threadId ) ;
274270 } ,
275271 ) ) ;
276272 }
277273
278- private async runGoalCommand ( sessionState : SessionState , rest : string ) : Promise < CommandHandleResult > {
274+ private async runGoalCommand (
275+ sessionState : SessionState ,
276+ rest : string ,
277+ options : CommandHandleOptions ,
278+ ) : Promise < CommandHandleResult > {
279279 const sessionId = sessionState . sessionId ;
280280 const argument = rest . trim ( ) ;
281281 if ( argument . length === 0 ) {
@@ -291,7 +291,7 @@ export class CodexCommands {
291291 return this . createGoalCommandResult ( await this . runWithProcessCheck ( ( ) => this . codexAcpClient . resumeGoal (
292292 sessionId ,
293293 ( turnId ) => {
294- sessionState . currentTurnId = turnId ;
294+ this . handleCommandTurnStarted ( sessionState , options , turnId , sessionId ) ;
295295 } ,
296296 ) ) ) ;
297297 case "clear" :
@@ -315,11 +315,24 @@ export class CodexCommands {
315315 sessionId ,
316316 argument ,
317317 ( turnId ) => {
318- sessionState . currentTurnId = turnId ;
318+ this . handleCommandTurnStarted ( sessionState , options , turnId , sessionId ) ;
319319 } ,
320320 ) ) ) ;
321321 }
322322
323+ private handleCommandTurnStarted (
324+ sessionState : SessionState ,
325+ options : CommandHandleOptions ,
326+ turnId : string ,
327+ threadId : string ,
328+ ) : void {
329+ if ( options . onTurnStarted ) {
330+ options . onTurnStarted ( turnId , threadId ) ;
331+ } else {
332+ sessionState . currentTurnId = turnId ;
333+ }
334+ }
335+
323336 private createGoalCommandResult ( turnCompleted : TurnCompletedNotification | null ) : CommandHandleResult {
324337 if ( turnCompleted === null ) {
325338 return { handled : true } ;
0 commit comments