From d5f75138ddb6a9d3aaa65e1d1e11324049493204 Mon Sep 17 00:00:00 2001 From: Oussama Douhou Date: Thu, 8 Jan 2026 20:42:56 +0100 Subject: [PATCH] fix: integrate todo-codebase-compaction hook properly - Import PreemptiveCompactionOptions type - Export hook from hooks/index.ts - Add todo-codebase-compaction to HookNameSchema - Use todoCodebaseCompactionInjector when hook is enabled --- assets/oh-my-opencode.schema.json | 3 ++- src/config/schema.ts | 1 + src/hooks/index.ts | 1 + src/hooks/todo-codebase-compaction/index.ts | 2 +- src/index.ts | 5 ++++- 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/assets/oh-my-opencode.schema.json b/assets/oh-my-opencode.schema.json index 6ae62f2..9b39d48 100644 --- a/assets/oh-my-opencode.schema.json +++ b/assets/oh-my-opencode.schema.json @@ -77,7 +77,8 @@ "edit-error-recovery", "prometheus-md-only", "start-work", - "sisyphus-orchestrator" + "sisyphus-orchestrator", + "todo-codebase-compaction" ] } }, diff --git a/src/config/schema.ts b/src/config/schema.ts index 5a3aec5..4b707d7 100644 --- a/src/config/schema.ts +++ b/src/config/schema.ts @@ -82,6 +82,7 @@ export const HookNameSchema = z.enum([ "prometheus-md-only", "start-work", "sisyphus-orchestrator", + "todo-codebase-compaction", ]) export const BuiltinCommandNameSchema = z.enum([ diff --git a/src/hooks/index.ts b/src/hooks/index.ts index 821c190..617670c 100644 --- a/src/hooks/index.ts +++ b/src/hooks/index.ts @@ -29,3 +29,4 @@ export { createPrometheusMdOnlyHook } from "./prometheus-md-only"; export { createTaskResumeInfoHook } from "./task-resume-info"; export { createStartWorkHook } from "./start-work"; export { createSisyphusOrchestratorHook } from "./sisyphus-orchestrator"; +export { createTodoCodebaseCompactionInjector, createCustomCompactionHook } from "./todo-codebase-compaction"; diff --git a/src/hooks/todo-codebase-compaction/index.ts b/src/hooks/todo-codebase-compaction/index.ts index b4cc509..666b52f 100644 --- a/src/hooks/todo-codebase-compaction/index.ts +++ b/src/hooks/todo-codebase-compaction/index.ts @@ -1,4 +1,4 @@ -import type { SummarizeContext } from "../preemptive-compaction" +import type { SummarizeContext, PreemptiveCompactionOptions } from "../preemptive-compaction" import { injectHookMessage } from "../../features/hook-message-injector" import { log } from "../../shared/logger" import { createPreemptiveCompactionHook } from "../preemptive-compaction" diff --git a/src/index.ts b/src/index.ts index 047a946..e908bfd 100644 --- a/src/index.ts +++ b/src/index.ts @@ -146,10 +146,13 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => { const compactionContextInjector = isHookEnabled("compaction-context-injector") ? createCompactionContextInjector() : undefined; + const todoCodebaseCompactionInjector = isHookEnabled("todo-codebase-compaction") + ? createTodoCodebaseCompactionInjector() + : undefined; const preemptiveCompaction = isHookEnabled("preemptive-compaction") ? createPreemptiveCompactionHook(ctx, { experimental: pluginConfig.experimental, - onBeforeSummarize: compactionContextInjector, + onBeforeSummarize: todoCodebaseCompactionInjector ?? compactionContextInjector, getModelLimit: (providerID, modelID) => getModelLimit(modelCacheState, providerID, modelID), })