diff --git a/codeflash/version.py b/codeflash/version.py index ca6d7615e..6225467e3 100644 --- a/codeflash/version.py +++ b/codeflash/version.py @@ -1,2 +1,2 @@ # These version placeholders will be replaced by uv-dynamic-versioning during build. -__version__ = "0.20.0.post634.dev0+2d73cf88" +__version__ = "0.20.0" diff --git a/packages/codeflash/runtime/capture.js b/packages/codeflash/runtime/capture.js index 4ff9623fc..d5489aa37 100644 --- a/packages/codeflash/runtime/capture.js +++ b/packages/codeflash/runtime/capture.js @@ -713,12 +713,12 @@ function capturePerf(funcName, lineId, fn, ...args) { for (let batchIndex = 0; batchIndex < batchSize; batchIndex++) { // Check shared time limit BEFORE each iteration - if (shouldLoop && checkSharedTimeLimit()) { + if (!hasExternalLoopRunner && shouldLoop && checkSharedTimeLimit()) { break; } // Check if this invocation has already reached stability - if (getPerfStabilityCheck() && sharedPerfState.stableInvocations[invocationKey]) { + if (!hasExternalLoopRunner && getPerfStabilityCheck() && sharedPerfState.stableInvocations[invocationKey]) { break; } @@ -727,7 +727,7 @@ function capturePerf(funcName, lineId, fn, ...args) { // Check if we've exceeded max loops for this invocation const totalIterations = getTotalIterations(invocationKey); - if (totalIterations > getPerfLoopCount()) { + if (!hasExternalLoopRunner && totalIterations > getPerfLoopCount()) { break; } @@ -779,7 +779,7 @@ function capturePerf(funcName, lineId, fn, ...args) { } // Check stability after accumulating enough samples - if (getPerfStabilityCheck() && runtimes.length >= getPerfMinLoops()) { + if (!hasExternalLoopRunner && getPerfStabilityCheck() && runtimes.length >= getPerfMinLoops()) { const window = getStabilityWindow(); if (shouldStopStability(runtimes, window, getPerfMinLoops())) { sharedPerfState.stableInvocations[invocationKey] = true; @@ -788,7 +788,7 @@ function capturePerf(funcName, lineId, fn, ...args) { } // If we had an error, stop looping - if (lastError) { + if (!hasExternalLoopRunner && lastError) { break; } }