diff --git a/packages/cli/src/nonInteractiveCli.ts b/packages/cli/src/nonInteractiveCli.ts index 4b6fe6bb..d3cb41aa 100644 --- a/packages/cli/src/nonInteractiveCli.ts +++ b/packages/cli/src/nonInteractiveCli.ts @@ -12,6 +12,7 @@ import { isTelemetrySdkInitialized, GeminiEventType, parseAndFormatApiError, + ApprovalMode, } from '@qwen-code/qwen-code-core'; import { Content, Part, FunctionCall } from '@google/genai'; @@ -39,6 +40,12 @@ export async function runNonInteractive( const geminiClient = config.getGeminiClient(); + // In YOLO mode, disable next_speaker check to avoid auto-continue. + if (config.getApprovalMode && config.getApprovalMode() === ApprovalMode.YOLO) { + (config as unknown as { getSkipNextSpeakerCheck: () => boolean }).getSkipNextSpeakerCheck = + () => true; + } + const abortController = new AbortController(); let currentMessages: Content[] = [ { role: 'user', parts: [{ text: input }] },