From 963082f731dda7a05ca6280e7bafdbbe92d2dfe5 Mon Sep 17 00:00:00 2001 From: Roo Code Date: Thu, 12 Feb 2026 08:24:02 +0000 Subject: [PATCH] fix: use stripAppendedEnvironmentDetails to prevent env details accumulation Replace removeEnvironmentDetailsBlocks with stripAppendedEnvironmentDetails at both call sites in Task.ts. Since appendEnvironmentDetails now embeds env details into existing blocks rather than standalone blocks, removeEnvironmentDetailsBlocks cannot find them on subsequent calls (e.g., task resume), causing accumulation. stripAppendedEnvironmentDetails handles both standalone and appended env details. --- src/core/task/Task.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/task/Task.ts b/src/core/task/Task.ts index 6e91f4f11f..03486b42be 100644 --- a/src/core/task/Task.ts +++ b/src/core/task/Task.ts @@ -158,7 +158,7 @@ import { AutoApprovalHandler, checkAutoApproval } from "../auto-approval" import { MessageManager } from "../message-manager" import { validateAndFixToolResultIds } from "./validateToolResultIds" import { mergeConsecutiveApiMessages } from "./mergeConsecutiveApiMessages" -import { appendEnvironmentDetails, removeEnvironmentDetailsBlocks } from "./appendEnvironmentDetails" +import { appendEnvironmentDetails, stripAppendedEnvironmentDetails } from "./appendEnvironmentDetails" const MAX_EXPONENTIAL_BACKOFF_SECONDS = 600 // 10 minutes const DEFAULT_USAGE_COLLECTION_TIMEOUT_MS = 5000 // 5 seconds @@ -2628,7 +2628,7 @@ export class Task extends EventEmitter implements TaskLike { // then append env details to the last text or tool_result block. // This avoids creating standalone trailing text blocks which can break // interleaved-thinking models like DeepSeek reasoner. - const contentWithoutEnvDetails = removeEnvironmentDetailsBlocks(lastUserMsg.content) + const contentWithoutEnvDetails = stripAppendedEnvironmentDetails(lastUserMsg.content) lastUserMsg.content = appendEnvironmentDetails(contentWithoutEnvDetails, environmentDetails) } } @@ -2799,7 +2799,7 @@ export class Task extends EventEmitter implements TaskLike { // Remove any existing environment_details blocks before adding fresh ones. // This prevents duplicate environment details when resuming tasks, // where the old user message content may already contain environment details from the previous session. - const contentWithoutEnvDetails = removeEnvironmentDetailsBlocks(parsedUserContent) + const contentWithoutEnvDetails = stripAppendedEnvironmentDetails(parsedUserContent) // Append environment details to the last text or tool_result block. // This avoids creating standalone trailing text blocks which can break