From 1bbb61b1c2aece97bc2d1e8c0ea3ed4b319d1e9b Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Sun, 11 Jan 2026 12:33:20 +0900 Subject: [PATCH] fix(context-injector): inject via chat.message after claudeCodeHooks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Revert messages.transform-only approach (experimental hook unreliable) - Inject context in chat.message after claudeCodeHooks runs - Order: keywordDetector → claudeCodeHooks → contextInjector - Works independently of claude-code-hooks being enabled/disabled - Ultrawork content now reliably injected to model --- src/index.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index b2ae0d19..218c425c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -33,6 +33,7 @@ import { } from "./hooks"; import { contextCollector, + createContextInjectorHook, createContextInjectorMessagesTransformHook, } from "./features/context-injector"; import { createGoogleAntigravityAuthPlugin } from "./auth/antigravity"; @@ -166,6 +167,7 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => { const keywordDetector = isHookEnabled("keyword-detector") ? createKeywordDetectorHook(ctx, contextCollector) : null; + const contextInjector = createContextInjectorHook(contextCollector); const contextInjectorMessagesTransform = createContextInjectorMessagesTransformHook(contextCollector); const agentUsageReminder = isHookEnabled("agent-usage-reminder") @@ -312,8 +314,8 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => { "chat.message": async (input, output) => { await keywordDetector?.["chat.message"]?.(input, output); - // NOTE: context injection moved to messages.transform to avoid mutating UI await claudeCodeHooks["chat.message"]?.(input, output); + await contextInjector["chat.message"]?.(input, output); await autoSlashCommand?.["chat.message"]?.(input, output); await startWork?.["chat.message"]?.(input, output);