From a0d77f5a445d27c49126a6ad542c78ce0511dde5 Mon Sep 17 00:00:00 2001 From: "koalazf.99" Date: Tue, 16 Sep 2025 22:50:30 +0800 Subject: [PATCH] add: remove loop detect in yolo --- packages/core/src/core/client.ts | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/core/src/core/client.ts b/packages/core/src/core/client.ts index a6910984..f8f8b8ce 100644 --- a/packages/core/src/core/client.ts +++ b/packages/core/src/core/client.ts @@ -564,17 +564,25 @@ export class GeminiClient { const turn = new Turn(this.getChat(), prompt_id); - const loopDetected = await this.loopDetector.turnStarted(signal); - if (loopDetected) { - yield { type: GeminiEventType.LoopDetected }; - return turn; + // Disable loop detection entirely in YOLO mode + const loopDetectionDisabled = + this.config.getApprovalMode() === ApprovalMode.YOLO; + + if (!loopDetectionDisabled) { + const loopDetected = await this.loopDetector.turnStarted(signal); + if (loopDetected) { + yield { type: GeminiEventType.LoopDetected }; + return turn; + } } const resultStream = turn.run(request, signal); for await (const event of resultStream) { - if (this.loopDetector.addAndCheck(event)) { - yield { type: GeminiEventType.LoopDetected }; - return turn; + if (!loopDetectionDisabled) { + if (this.loopDetector.addAndCheck(event)) { + yield { type: GeminiEventType.LoopDetected }; + return turn; + } } yield event; if (event.type === GeminiEventType.Error) {