diff --git a/src/server/core/claude-code/services/ClaudeCodeLifeCycleService.ts b/src/server/core/claude-code/services/ClaudeCodeLifeCycleService.ts index e435d28..c87707e 100644 --- a/src/server/core/claude-code/services/ClaudeCodeLifeCycleService.ts +++ b/src/server/core/claude-code/services/ClaudeCodeLifeCycleService.ts @@ -283,8 +283,29 @@ const LayerImpl = Effect.gen(function* () { try { for await (const message of messageIter) { + if ( + message.type === "system" && + message.subtype === "hook_response" + ) { + continue; + } + + if ( + message.type === "system" && + message.subtype === "compact_boundary" + ) { + continue; + } + const result = await Runtime.runPromise(runtime)( - handleMessage(message), + handleMessage( + message.type === "system" + ? { + ...message, + plugins: [], + } + : message, + ), ).catch((error) => { // iter 自体が落ちてなければ継続したいので握りつぶす Effect.runFork( diff --git a/src/server/core/claude-code/services/ClaudeCodeSessionProcessService.test.ts b/src/server/core/claude-code/services/ClaudeCodeSessionProcessService.test.ts index 38a09bb..c667503 100644 --- a/src/server/core/claude-code/services/ClaudeCodeSessionProcessService.test.ts +++ b/src/server/core/claude-code/services/ClaudeCodeSessionProcessService.test.ts @@ -1,7 +1,7 @@ import type { SDKResultMessage, SDKSystemMessage, -} from "@anthropic-ai/claude-code"; +} from "@anthropic-ai/claude-agent-sdk"; import { Effect } from "effect"; import { describe, expect, it } from "vitest"; import { testPlatformLayer } from "../../../../testing/layers/testPlatformLayer";