refactor: remove terminalOutputLineLimit and terminalOutputCharacterLimit settings

These settings were redundant with terminalOutputPreviewSize which controls
the preview shown to the LLM. The line/char limits were for UI truncation
which is now handled with hardcoded defaults (500 lines, 50K chars) since
they don't need to be user-configurable.

- Remove settings from packages/types schemas
- Remove DEFAULT_TERMINAL_OUTPUT_CHARACTER_LIMIT constant
- Update compressTerminalOutput() to use hardcoded limits
- Update ExecuteCommandTool to not pass limit parameters
- Update ClineProvider state handling
- Update webview context and settings
- Update tests to not use removed settings
This commit is contained in:
Hannes Rudolph 2026-01-26 19:52:18 -07:00
parent 47c3f496a0
commit e60d6898df
6 changed files with 1 additions and 22 deletions

View file

@ -99,7 +99,6 @@ export const organizationDefaultSettingsSchema = globalSettingsSchema
maxWorkspaceFiles: true,
showRooIgnoredFiles: true,
terminalCommandDelay: true,
terminalOutputLineLimit: true,
terminalShellIntegrationDisabled: true,
terminalShellIntegrationTimeout: true,
terminalZshClearEolMark: true,

View file

@ -176,8 +176,6 @@ export const globalSettingsSchema = z.object({
maxImageFileSize: z.number().optional(),
maxTotalImageSize: z.number().optional(),
terminalOutputLineLimit: z.number().optional(),
terminalOutputCharacterLimit: z.number().optional(),
terminalOutputPreviewSize: z.enum(["small", "medium", "large"]).optional(),
terminalShellIntegrationTimeout: z.number().optional(),
terminalShellIntegrationDisabled: z.boolean().optional(),

View file

@ -302,8 +302,6 @@ export type ExtensionState = Pick<
| "soundEnabled"
| "soundVolume"
| "maxConcurrentFileReads"
| "terminalOutputLineLimit"
| "terminalOutputCharacterLimit"
| "terminalOutputPreviewSize"
| "terminalShellIntegrationTimeout"
| "terminalShellIntegrationDisabled"

View file

@ -4,12 +4,7 @@ import * as vscode from "vscode"
import delay from "delay"
import {
CommandExecutionStatus,
DEFAULT_TERMINAL_OUTPUT_CHARACTER_LIMIT,
DEFAULT_TERMINAL_OUTPUT_PREVIEW_SIZE,
PersistedCommandOutput,
} from "@roo-code/types"
import { CommandExecutionStatus, DEFAULT_TERMINAL_OUTPUT_PREVIEW_SIZE, PersistedCommandOutput } from "@roo-code/types"
import { TelemetryService } from "@roo-code/telemetry"
import { Task } from "../task/Task"
@ -215,7 +210,6 @@ export async function executeCommandInTerminal(
// Bound accumulated output buffer size to prevent unbounded memory growth for long-running commands.
// The interceptor preserves full output; this buffer is only for UI display (100KB limit).
const maxAccumulatedOutputSize = 100_000
// Track when onCompleted callback finishes to avoid race condition.
// The callback is async but Terminal/ExecaTerminal don't await it, so we track completion
// explicitly to ensure persistedResult is set before we use it.

View file

@ -179,8 +179,6 @@ const SettingsView = forwardRef<SettingsViewRef, SettingsViewProps>(({ onDone, t
ttsSpeed,
soundVolume,
telemetrySetting,
terminalOutputLineLimit,
terminalOutputCharacterLimit,
terminalOutputPreviewSize,
terminalShellIntegrationTimeout,
terminalShellIntegrationDisabled, // Added from upstream

View file

@ -96,10 +96,6 @@ export interface ExtensionStateContextType extends ExtensionState {
setWriteDelayMs: (value: number) => void
screenshotQuality?: number
setScreenshotQuality: (value: number) => void
terminalOutputLineLimit?: number
setTerminalOutputLineLimit: (value: number) => void
terminalOutputCharacterLimit?: number
setTerminalOutputCharacterLimit: (value: number) => void
terminalOutputPreviewSize?: "small" | "medium" | "large"
setTerminalOutputPreviewSize: (value: "small" | "medium" | "large") => void
mcpEnabled: boolean
@ -541,10 +537,6 @@ export const ExtensionStateContextProvider: React.FC<{ children: React.ReactNode
setState((prevState) => ({ ...prevState, browserViewportSize: value })),
setWriteDelayMs: (value) => setState((prevState) => ({ ...prevState, writeDelayMs: value })),
setScreenshotQuality: (value) => setState((prevState) => ({ ...prevState, screenshotQuality: value })),
setTerminalOutputLineLimit: (value) =>
setState((prevState) => ({ ...prevState, terminalOutputLineLimit: value })),
setTerminalOutputCharacterLimit: (value) =>
setState((prevState) => ({ ...prevState, terminalOutputCharacterLimit: value })),
setTerminalOutputPreviewSize: (value) =>
setState((prevState) => ({ ...prevState, terminalOutputPreviewSize: value })),
setTerminalShellIntegrationTimeout: (value) =>