fix(context-injector): inject only via messages.transform to preserve UI

- Remove contextInjector call from chat.message hook chain
- Context injection now only happens in messages.transform hook
- This ensures UI displays original user message while model receives prepended context
- Fixes bug where commit message promised clone behavior but implementation mutated directly
This commit is contained in:
YeonGyu-Kim 2026-01-11 12:22:59 +09:00
parent 307d583ad6
commit 2a95c91cab

View File

@ -33,7 +33,6 @@ import {
} from "./hooks"; } from "./hooks";
import { import {
contextCollector, contextCollector,
createContextInjectorHook,
createContextInjectorMessagesTransformHook, createContextInjectorMessagesTransformHook,
} from "./features/context-injector"; } from "./features/context-injector";
import { createGoogleAntigravityAuthPlugin } from "./auth/antigravity"; import { createGoogleAntigravityAuthPlugin } from "./auth/antigravity";
@ -167,7 +166,6 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => {
const keywordDetector = isHookEnabled("keyword-detector") const keywordDetector = isHookEnabled("keyword-detector")
? createKeywordDetectorHook(ctx, contextCollector) ? createKeywordDetectorHook(ctx, contextCollector)
: null; : null;
const contextInjector = createContextInjectorHook(contextCollector);
const contextInjectorMessagesTransform = const contextInjectorMessagesTransform =
createContextInjectorMessagesTransformHook(contextCollector); createContextInjectorMessagesTransformHook(contextCollector);
const agentUsageReminder = isHookEnabled("agent-usage-reminder") const agentUsageReminder = isHookEnabled("agent-usage-reminder")
@ -314,7 +312,7 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => {
"chat.message": async (input, output) => { "chat.message": async (input, output) => {
await keywordDetector?.["chat.message"]?.(input, output); await keywordDetector?.["chat.message"]?.(input, output);
await contextInjector["chat.message"]?.(input, output); // NOTE: context injection moved to messages.transform to avoid mutating UI
await claudeCodeHooks["chat.message"]?.(input, output); await claudeCodeHooks["chat.message"]?.(input, output);
await autoSlashCommand?.["chat.message"]?.(input, output); await autoSlashCommand?.["chat.message"]?.(input, output);
await startWork?.["chat.message"]?.(input, output); await startWork?.["chat.message"]?.(input, output);