Files
lakehouse/crates
ClawandClaude Opus 5 dd74a1ef74
lakehouse/auditor 11 blocking issues: cloud: claim not backed — "Verified live after deploy: tool_calls returned (finish_reason tool_calls); plain request"
fix(gateway/v1): pass OpenAI tool calling through on the openrouter lane; reject tools loudly elsewhere
/v1/chat/completions deserialized into a struct without tools/tool_choice and messages without
tool_calls/tool_call_id, so serde silently DROPPED them. Tool-using agents routed through :3100
(openclaw, 2026-09-18) never saw their tools and fabricated tool output as text.

- ChatRequest: tools + tool_choice (serde default). Message: tool_calls, tool_call_id, name
  (skip_serializing_if none -> plain-text JSON is byte-identical; test pins it).
- openrouter lane forwards them and returns the model's tool_calls (content null on a
  tool-call-only turn, finish_reason passed through).
- every other provider: HTTP 400 when a request uses tools, instead of silent stripping.

Verified live after deploy: tool_calls returned (finish_reason tool_calls); plain request
unchanged; ollama + tools -> 400; multi-turn tool result round-trip answered from the tool.
cargo test -p gateway --lib: 111 passed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-19 09:08:29 -05:00
..
2026-04-22 02:41:15 -05:00