fix: avoid context-window-too-small misclassification (#1266, thanks @humanwritten)

Co-authored-by: humanwritten <humanwritten@users.noreply.github.com>
This commit is contained in:
Peter Steinberger
2026-01-20 10:06:47 +00:00
parent 93f80894a3
commit d3c2b83f88
5 changed files with 49 additions and 4 deletions

View File

@@ -9,6 +9,7 @@ import { runEmbeddedPiAgent } from "../../agents/pi-embedded.js";
import {
isCompactionFailureError,
isContextOverflowError,
isLikelyContextOverflowError,
sanitizeUserFacingText,
} from "../../agents/pi-embedded-helpers.js";
import {
@@ -419,10 +420,7 @@ export async function runAgentTurnWithFallback(params: {
break;
} catch (err) {
const message = err instanceof Error ? err.message : String(err);
const isContextOverflow =
isContextOverflowError(message) ||
(/context.*overflow|too large|context window/i.test(message) &&
!/too small|minimum is/i.test(message));
const isContextOverflow = isLikelyContextOverflowError(message);
const isCompactionFailure = isCompactionFailureError(message);
const isSessionCorruption = /function call turn comes immediately after/i.test(message);
const isRoleOrderingError = /incorrect role information|roles must alternate/i.test(message);