feat(preemptive-compaction): apply compaction model override from agent config

This commit is contained in:
YeonGyu-Kim
2026-02-22 17:19:39 +09:00
parent 09314dba1a
commit 2d069ce4cc
2 changed files with 13 additions and 3 deletions

View File

@@ -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"

View File

@@ -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<string>()
@@ -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 },
})