diff --git a/src/hooks/preemptive-compaction.test.ts b/src/hooks/preemptive-compaction.test.ts index 0f2275da3..12912b3a8 100644 --- a/src/hooks/preemptive-compaction.test.ts +++ b/src/hooks/preemptive-compaction.test.ts @@ -269,7 +269,7 @@ describe("preemptive-compaction", () => { it("should use 1M limit when model cache flag is enabled", async () => { //#given - const hook = createPreemptiveCompactionHook(ctx as never, { + const hook = createPreemptiveCompactionHook(ctx as never, {}, { anthropicContext1MEnabled: true, }) const sessionID = "ses_1m_flag" @@ -308,7 +308,7 @@ describe("preemptive-compaction", () => { it("should keep env var fallback when model cache flag is disabled", async () => { //#given process.env[ANTHROPIC_CONTEXT_ENV_KEY] = "true" - const hook = createPreemptiveCompactionHook(ctx as never, { + const hook = createPreemptiveCompactionHook(ctx as never, {}, { anthropicContext1MEnabled: false, }) const sessionID = "ses_env_fallback" diff --git a/src/hooks/preemptive-compaction.ts b/src/hooks/preemptive-compaction.ts index 3e60e2a8d..e2ac74718 100644 --- a/src/hooks/preemptive-compaction.ts +++ b/src/hooks/preemptive-compaction.ts @@ -1,5 +1,7 @@ import { log } from "../shared/logger" +import type { OhMyOpenCodeConfig } from "../config" +import { resolveCompactionModel } from "./shared/compaction-model-resolver" const DEFAULT_ACTUAL_LIMIT = 200_000 type ModelCacheStateLike = { @@ -51,6 +53,7 @@ type PluginInput = { export function createPreemptiveCompactionHook( ctx: PluginInput, + pluginConfig: OhMyOpenCodeConfig, modelCacheState?: ModelCacheStateLike, ) { const compactionInProgress = new Set() @@ -84,9 +87,16 @@ export function createPreemptiveCompactionHook( compactionInProgress.add(sessionID) try { + const { providerID: targetProviderID, modelID: targetModelID } = resolveCompactionModel( + pluginConfig, + sessionID, + cached.providerID, + modelID + ) + await ctx.client.session.summarize({ path: { id: sessionID }, - body: { providerID: cached.providerID, modelID, auto: true } as never, + body: { providerID: targetProviderID, modelID: targetModelID, auto: true } as never, query: { directory: ctx.directory }, })