From 8979f5ce6441a2958719b76de185313d272074c9 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Sat, 17 Jan 2026 16:18:22 +0700 Subject: [PATCH] chore: upgrade claude-agent-sdk to 0.2.11 and improve task judge feedback --- package-lock.json | 138 +++++++++++++++++---------- package.json | 2 +- packages/server/src/server/logger.ts | 2 +- packages/server/src/tasks/cli.ts | 26 ++++- 4 files changed, 109 insertions(+), 59 deletions(-) diff --git a/package-lock.json b/package-lock.json index 42e127cc8..d37d15f25 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "packages/website" ], "dependencies": { - "@anthropic-ai/claude-agent-sdk": "^0.1.75" + "@anthropic-ai/claude-agent-sdk": "^0.2.11" }, "devDependencies": { "patch-package": "^8.0.1", @@ -100,9 +100,9 @@ } }, "node_modules/@anthropic-ai/claude-agent-sdk": { - "version": "0.1.75", - "resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk/-/claude-agent-sdk-0.1.75.tgz", - "integrity": "sha512-8iYosqTq98pm6Z1IJ0OY50mpkSZ7fdSO8cJJjFHXiKHCwfmiPZ05vLYUed2p2an9GPLpXtJhcGDfrgseenrgPw==", + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@anthropic-ai/claude-agent-sdk/-/claude-agent-sdk-0.2.11.tgz", + "integrity": "sha512-50q4vfh57HYTUrwukULp3gvSaOZfRF5zukxhWvW6mmUHuD8+Xwhqn59sZhoDz9ZUw6Um+1lUCgWpJw5/TTMn5w==", "license": "SEE LICENSE IN README.md", "engines": { "node": ">=18.0.0" @@ -118,7 +118,7 @@ "@img/sharp-win32-x64": "^0.33.5" }, "peerDependencies": { - "zod": "^3.24.1 || ^4.0.0" + "zod": "^4.0.0" } }, "node_modules/@babel/code-frame": { @@ -3292,16 +3292,6 @@ "node": ">=10" } }, - "node_modules/@expo/eas-build-job/node_modules/zod": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz", - "integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, "node_modules/@expo/eas-json": { "version": "16.23.0", "resolved": "https://registry.npmjs.org/@expo/eas-json/-/eas-json-16.23.0.tgz", @@ -3500,16 +3490,6 @@ "dev": true, "license": "ISC" }, - "node_modules/@expo/eas-json/node_modules/zod": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz", - "integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, "node_modules/@expo/env": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/@expo/env/-/env-2.0.8.tgz", @@ -3695,6 +3675,15 @@ } } }, + "node_modules/@expo/mcp-tunnel/node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/@expo/metro": { "version": "54.1.0", "resolved": "https://registry.npmjs.org/@expo/metro/-/metro-54.1.0.tgz", @@ -4581,16 +4570,6 @@ "node": ">=10" } }, - "node_modules/@expo/steps/node_modules/zod": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz", - "integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, "node_modules/@expo/sudo-prompt": { "version": "9.3.2", "resolved": "https://registry.npmjs.org/@expo/sudo-prompt/-/sudo-prompt-9.3.2.tgz", @@ -6008,6 +5987,17 @@ "node": ">= 0.6" } }, + "node_modules/@modelcontextprotocol/sdk/node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "optional": true, + "peer": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/@napi-rs/wasm-runtime": { "version": "0.2.12", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", @@ -8185,6 +8175,15 @@ "node": ">= 12" } }, + "node_modules/@tanstack/router-generator/node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/@tanstack/router-plugin": { "version": "1.149.3", "resolved": "https://registry.npmjs.org/@tanstack/router-plugin/-/router-plugin-1.149.3.tgz", @@ -8238,6 +8237,15 @@ } } }, + "node_modules/@tanstack/router-plugin/node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/@tanstack/router-utils": { "version": "1.143.11", "resolved": "https://registry.npmjs.org/@tanstack/router-utils/-/router-utils-1.143.11.tgz", @@ -8332,6 +8340,15 @@ "vite": ">=7.0.0" } }, + "node_modules/@tanstack/start-plugin-core/node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/@tanstack/start-server-core": { "version": "1.149.3", "resolved": "https://registry.npmjs.org/@tanstack/start-server-core/-/start-server-core-1.149.3.tgz", @@ -12316,16 +12333,6 @@ "dev": true, "license": "ISC" }, - "node_modules/eas-cli/node_modules/zod": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz", - "integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -17751,6 +17758,15 @@ } } }, + "node_modules/miniflare/node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -24514,21 +24530,21 @@ } }, "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.5.tgz", + "integrity": "sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } }, "node_modules/zod-to-json-schema": { - "version": "3.24.6", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.6.tgz", - "integrity": "sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==", + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz", + "integrity": "sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==", "license": "ISC", "peerDependencies": { - "zod": "^3.24.1" + "zod": "^3.25 || ^4" } }, "node_modules/zustand": { @@ -24650,6 +24666,15 @@ "react-native": "*" } }, + "packages/app/node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "packages/relay": { "name": "@paseo/relay", "version": "0.1.0", @@ -24972,6 +24997,15 @@ "node": ">= 0.6" } }, + "packages/server/node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "packages/website": { "name": "@paseo/website", "version": "1.0.0", diff --git a/package.json b/package.json index c0058238c..342728ad9 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,6 @@ "lightningcss": "1.30.1" }, "dependencies": { - "@anthropic-ai/claude-agent-sdk": "^0.1.75" + "@anthropic-ai/claude-agent-sdk": "^0.2.11" } } diff --git a/packages/server/src/server/logger.ts b/packages/server/src/server/logger.ts index 92865f543..f9171badf 100644 --- a/packages/server/src/server/logger.ts +++ b/packages/server/src/server/logger.ts @@ -16,7 +16,7 @@ export function resolveLogConfig( const envFormat = process.env.PASEO_LOG_FORMAT as LogFormat | undefined; const level: LogLevel = - envLevel ?? persistedConfig?.log?.level ?? "info"; + envLevel ?? persistedConfig?.log?.level ?? "debug"; const format: LogFormat = envFormat ?? persistedConfig?.log?.format ?? "pretty"; diff --git a/packages/server/src/tasks/cli.ts b/packages/server/src/tasks/cli.ts index a0d85ea14..04e0c56b3 100644 --- a/packages/server/src/tasks/cli.ts +++ b/packages/server/src/tasks/cli.ts @@ -971,9 +971,28 @@ The ONLY question: Does the acceptance criterion pass when verified? Yes or No. If an agent left notes explaining why something couldn't be done, IGNORE THE EXPLANATION. Just check: is the criterion met? +## REQUIRED: Provide Feedback to the Worker + +After verifying, you MUST leave feedback for the worker by adding a note. The worker will read +this note in the next iteration - it's their ONLY way to know what went wrong and what's missing. + +\`\`\` +task note ${task.id} "JUDGE: [verdict] - [specific feedback for the worker]" +\`\`\` + +Your feedback should tell the worker exactly what to fix: +- Which specific tests failed and with what error messages +- Which files or commands still need attention +- What's missing from the acceptance criteria + +BAD: "tests failed" (useless - worker doesn't know which ones) +GOOD: "3 tests fail: codex-mcp-agent.test.ts 'Session not found', opencode-agent.test.ts timeout after 60s, tool-calls.e2e.test.ts shell assertion" + +The worker cannot see your output - only the notes you leave. + ## Output Format - CRITICAL -You MUST output one of these XML tags at the END of your response. This is REQUIRED for the system to parse your verdict: +You MUST output one of these XML tags at the END of your response: If ALL criteria pass: DONE @@ -981,10 +1000,7 @@ If ALL criteria pass: If ANY criterion fails: NOT_DONE -If you do not include this exact XML tag, your verdict will not be recorded and the task will retry. - -Then add a note to the task with your findings: -\`task note ${task.id} "JUDGE: [DONE/NOT_DONE] - details..."\` +If you do not include this exact XML tag, your verdict will not be recorded. `; }