diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 75bd3c9dfac..c8b428acdec 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -538,12 +538,13 @@ export namespace SessionPrompt { continue } - // context overflow, needs compaction + // proactive context management: prune + compact before overflow if ( lastFinished && lastFinished.summary !== true && (await SessionCompaction.isOverflow({ tokens: lastFinished.tokens, model })) ) { + await SessionCompaction.prune({ sessionID }) await SessionCompaction.create({ sessionID, agent: lastUser.agent, @@ -702,6 +703,7 @@ export namespace SessionPrompt { if (result === "stop") break if (result === "compact") { + await SessionCompaction.prune({ sessionID }) await SessionCompaction.create({ sessionID, agent: lastUser.agent,