From 5e8a0b5f6e6985d4c354b6b4546f3454658fb1ab Mon Sep 17 00:00:00 2001 From: Roo Code Date: Tue, 16 Sep 2025 23:40:14 +0000 Subject: [PATCH] fix: increase message size limits to handle browser screenshots properly - Increased MAX_ACCUMULATOR_SIZE from 1MB to 10MB - Increased MAX_PARAM_LENGTH from 100KB to 5MB - Updated tests to reflect new limits This fixes the issue where browser screenshots would display as base64 text blocks instead of images after multiple browser actions due to size limits being exceeded. Fixes #8045 --- src/core/assistant-message/AssistantMessageParser.ts | 4 ++-- .../__tests__/AssistantMessageParser.spec.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/core/assistant-message/AssistantMessageParser.ts b/src/core/assistant-message/AssistantMessageParser.ts index 364ec603f2..1cc7849a2b 100644 --- a/src/core/assistant-message/AssistantMessageParser.ts +++ b/src/core/assistant-message/AssistantMessageParser.ts @@ -14,8 +14,8 @@ export class AssistantMessageParser { private currentToolUseStartIndex = 0 private currentParamName: ToolParamName | undefined = undefined private currentParamValueStartIndex = 0 - private readonly MAX_ACCUMULATOR_SIZE = 1024 * 1024 // 1MB limit - private readonly MAX_PARAM_LENGTH = 1024 * 100 // 100KB per parameter limit + private readonly MAX_ACCUMULATOR_SIZE = 10 * 1024 * 1024 // 10MB limit to accommodate browser screenshots + private readonly MAX_PARAM_LENGTH = 5 * 1024 * 1024 // 5MB per parameter limit for large screenshots private accumulator = "" /** diff --git a/src/core/assistant-message/__tests__/AssistantMessageParser.spec.ts b/src/core/assistant-message/__tests__/AssistantMessageParser.spec.ts index 6b7c3915ee..dc5c913c0e 100644 --- a/src/core/assistant-message/__tests__/AssistantMessageParser.spec.ts +++ b/src/core/assistant-message/__tests__/AssistantMessageParser.spec.ts @@ -325,8 +325,8 @@ describe("AssistantMessageParser (streaming)", () => { describe("size limit handling", () => { it("should throw an error when MAX_ACCUMULATOR_SIZE is exceeded", () => { - // Create a message that exceeds 1MB (MAX_ACCUMULATOR_SIZE) - const largeMessage = "x".repeat(1024 * 1024 + 1) // 1MB + 1 byte + // Create a message that exceeds 10MB (MAX_ACCUMULATOR_SIZE) + const largeMessage = "x".repeat(10 * 1024 * 1024 + 1) // 10MB + 1 byte expect(() => { parser.processChunk(largeMessage)