fix(tool): external tool execution now correctly produces suspended result (#2071)
## Summary - `ToolExecutor.executeCore` and `ReflectiveFunctionTool.callAsync` used `Mono.error(ToolSuspendException)` for external tools (`@Tool(externalTool=true)` and `SchemaOnlyTool`), but the downstream `onErrorResume(ToolSuspendException.class)` handler in `executeWithInfrastructure` never received the error because `executeCore` short-circuits before reaching that path - Changed both sites to return `Mono.just(ToolResultBlock.suspended(...))` so the suspended result propagates correctly through the reactive chain - Added two tests covering both `SchemaOnlyTool` and `@Tool(externalTool=true)` execution paths
K
Ken Liu committed
7dad6e5ca17b26c12aa3567b872f2a4596c43b5f
Parent: 325b7fe
Committed by GitHub <noreply@github.com>
on 7/9/2026, 8:07:30 AM