From e62609ba3cccef2559d129f5d2d62ce67fcd76b7 Mon Sep 17 00:00:00 2001 From: Theo Browne Date: Mon, 6 Jul 2026 03:22:32 -0700 Subject: [PATCH] fix(server): stop surfacing Claude 'task_updated' messages as work-log errors The Claude Agent SDK emits system/task_updated as a task-state sync patch (per its typings, clients merge it into their local task map). The adapter's system-message switch had no case for it, so it fell into the unknown-message default and showed up in the work log as a red-X 'Claude system message' row on every background task status change. Terminal statuses already arrive via task_notification, so absorb the message silently; the raw payload remains in the provider log file. Co-Authored-By: Claude Fable 5 --- apps/server/src/provider/Layers/ClaudeAdapter.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps/server/src/provider/Layers/ClaudeAdapter.ts b/apps/server/src/provider/Layers/ClaudeAdapter.ts index 97a93f85829..46c17e1e137 100644 --- a/apps/server/src/provider/Layers/ClaudeAdapter.ts +++ b/apps/server/src/provider/Layers/ClaudeAdapter.ts @@ -2741,6 +2741,11 @@ export const makeClaudeAdapter = Effect.fn("makeClaudeAdapter")(function* ( return; case "thinking_tokens": return; + // Task-state sync patch for the client's local task map. Terminal + // statuses arrive separately via task_notification, so there is + // nothing to surface; the raw payload stays in the provider log. + case "task_updated": + return; case "permission_denied": yield* offerRuntimeEvent({ ...base,