summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-09-13 05:55:04 -0400
committerDax Raad <[email protected]>2025-09-13 05:55:04 -0400
commitb1589be4ba03fb35ecf204ee17e9ecc16a83fb94 (patch)
treedbab2ecf65e9d9d913cc8fa8d62dbb0e11f702fb
parenteb24d2f8474c22ee3cb4d02ea40df8132728d8ca (diff)
downloadopencode-b1589be4ba03fb35ecf204ee17e9ecc16a83fb94.tar.gz
opencode-b1589be4ba03fb35ecf204ee17e9ecc16a83fb94.zip
add disable OPENCODE_DISABLE_AUTOCOMPACT
-rw-r--r--packages/opencode/src/flag/flag.ts1
-rw-r--r--packages/opencode/src/session/compaction.ts2
2 files changed, 3 insertions, 0 deletions
diff --git a/packages/opencode/src/flag/flag.ts b/packages/opencode/src/flag/flag.ts
index 4af827d8b..418f32283 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 6039ed263..e5b42469d 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