Round 17 reviewer consensus on two extensions of the round 16 cap: 1. Direct GGUF stop forwarding (3/10 + sibling findings) — every llama_cpp.py payload builder and routes/inference.py direct-GGUF call site pass `stop` through unfiltered, while the external provider helper and `_build_passthrough_payload` already strip empty / non-string entries. Add a shared `_clean_local_stop_list` helper in the route layer for the two callers, mirror the same inline filter in `llama_cpp.py`'s three payload builders. Stops `stop=["", "END"]` from a stale client 400'ing llama-server. 2. Responses bridge tool-call cap (3/10 streaming + 1/10 non-streaming) — `_responses_stream` iterated every streamed `delta.tool_calls` index and `_responses_non_streaming` translated every returned `message.tool_calls` entry, even when `parallel_tool_calls=false`. Latch the first tool-call index in the streaming bridge and drop subsequent siblings; cap to one in the non-streaming bridge. Matches the GGUF agentic-loop / Anthropic-passthrough caps. Local-passthrough OpenAI paths (verbatim SSE / verbatim JSON) are left alone because the contract is "raw upstream forwarding"; clients calling /v1/chat/completions through Studio directly should still see llama-server's native output. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| _html_to_md.py | ||
| anthropic_compat.py | ||
| audio_codecs.py | ||
| chat_template_helpers.py | ||
| defaults.py | ||
| external_provider.py | ||
| inference.py | ||
| key_exchange.py | ||
| llama_cpp.py | ||
| llama_server_args.py | ||
| mlx_inference.py | ||
| orchestrator.py | ||
| pricing.py | ||
| providers.py | ||
| safetensors_agentic.py | ||
| tool_call_parser.py | ||
| tools.py | ||
| worker.py | ||