From b1589be4ba03fb35ecf204ee17e9ecc16a83fb94 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Sat, 13 Sep 2025 05:55:04 -0400 Subject: [PATCH] add disable OPENCODE_DISABLE_AUTOCOMPACT --- packages/opencode/src/flag/flag.ts | 1 + packages/opencode/src/session/compaction.ts | 2 ++ 2 files changed, 3 insertions(+) diff --git a/packages/opencode/src/flag/flag.ts b/packages/opencode/src/flag/flag.ts index 4af827d8..418f3228 100644 --- a/packages/opencode/src/flag/flag.ts +++ b/packages/opencode/src/flag/flag.ts @@ -8,6 +8,7 @@ export namespace Flag { export const OPENCODE_DISABLE_DEFAULT_PLUGINS = truthy("OPENCODE_DISABLE_DEFAULT_PLUGINS") export const OPENCODE_DISABLE_LSP_DOWNLOAD = truthy("OPENCODE_DISABLE_LSP_DOWNLOAD") export const OPENCODE_ENABLE_EXPERIMENTAL_MODELS = truthy("OPENCODE_ENABLE_EXPERIMENTAL_MODELS") + export const OPENCODE_DISABLE_AUTOCOMPACT = truthy("OPENCODE_DISABLE_AUTOCOMPACT") function truthy(key: string) { const value = process.env[key]?.toLowerCase() diff --git a/packages/opencode/src/session/compaction.ts b/packages/opencode/src/session/compaction.ts index 6039ed26..e5b42469 100644 --- a/packages/opencode/src/session/compaction.ts +++ b/packages/opencode/src/session/compaction.ts @@ -10,6 +10,7 @@ import { Bus } from "../bus" import z from "zod" import type { ModelsDev } from "../provider/models" import { SessionPrompt } from "./prompt" +import { Flag } from "../flag/flag" export namespace SessionCompaction { export const Event = { @@ -22,6 +23,7 @@ export namespace SessionCompaction { } export function isOverflow(input: { tokens: MessageV2.Assistant["tokens"]; model: ModelsDev.Model }) { + if (Flag.OPENCODE_DISABLE_AUTOCOMPACT) return false const count = input.tokens.input + input.tokens.cache.read + input.tokens.output const output = Math.min(input.model.limit.output, SessionPrompt.OUTPUT_TOKEN_MAX) || SessionPrompt.OUTPUT_TOKEN_MAX const usable = input.model.limit.context - output