open-webui/backend/open_webui/utils
Classic298 88720c6928
fix: tool calls get mixed up between rounds when the model reuses tool call ids (#31887)
Some providers, like Kimi K3 on OpenRouter, number their tool calls from zero again each time the model calls tools within the same reply. A later batch of calls then overwrote the earlier calls with the same id, so the saved chat showed the earlier calls with the later arguments, and the model was sent its earlier results next to the wrong arguments. A new tool call whose id is already used in the same reply now gets a fresh id, so every call keeps its own arguments and result, and providers that send unique ids are untouched. Tested before and after against a mock provider that reuses ids on every round.

Fixes #28305
2026-10-05 11:19:45 +04:00
..
access_control chore: format 2026-09-21 11:35:30 -04:00
images fix: show ComfyUI images saved by the Save Image (Advanced) node (#30420) 2026-09-23 23:54:58 -04:00
mcp fix: MCP tool calls ignore AIOHTTP_CLIENT_TIMEOUT_TOOL_SERVER (#31641) 2026-09-30 19:00:20 +04:00
telemetry fix: every log line is exported twice to the OpenTelemetry collector when traces and logs are both on (#31528) 2026-09-30 19:36:43 +04:00
actions.py refac 2026-10-01 03:31:20 +04:00
anthropic.py fix: Anthropic API streams report a failed response as a finished one (#31405) 2026-09-27 23:20:50 +04:00
asgi_middleware.py refac 2026-08-24 18:29:36 -04:00
ask_user.py fix: a rejected ask_user call ending the turn with no reply (#29252) 2026-08-31 00:17:21 -04:00
audit.py fix: audit log shows passwords that contain a double quote (#31659) 2026-10-01 07:21:58 +04:00
auth.py refac 2026-09-19 17:54:09 -04:00
automations.py fix: check the Channels permission when a channel automation runs (#31577) 2026-09-30 19:02:37 +04:00
calendar.py fix: Scheduled Tasks calendar shows extra runs for automations with a run count (#31604) 2026-09-30 19:43:41 +04:00
channels.py refac 2026-03-17 17:58:01 -05:00
chat.py fix: keep the model system prompt on Ollama tool-call follow-ups (#30375) 2026-09-22 16:47:20 -04:00
chat_fork.py refac 2026-07-23 02:54:56 -04:00
chat_id.py refac 2026-07-26 21:12:14 -04:00
chat_variables.py fix: non-English text is missed by searches and counted six times against size limits (#31615) 2026-09-30 19:19:29 +04:00
code_interpreter.py refac 2026-07-31 17:41:14 -04:00
context_compaction.py fix: images stored inside a chat trigger needless context compaction (#31915) 2026-10-05 06:41:50 +04:00
embeddings.py refac: modernize type annotations (PEP 604 / PEP 585) 2026-05-12 17:10:15 +09:00
files.py refac(images): request an unencoded body when fetching remote chat images (#29623) 2026-09-21 08:53:06 -04:00
filter.py refac 2026-10-01 03:31:20 +04:00
groups.py refac: modernize type annotations (PEP 604 / PEP 585) 2026-05-12 17:10:15 +09:00
headers.py refac 2026-09-27 23:29:38 +04:00
json_codec.py perf: write task payloads to Redis as bytes (#28833) 2026-08-20 12:58:52 -07:00
json_response.py perf: optional orjson JSON codec behind ENABLE_ORJSON (#27583) 2026-07-27 03:45:37 -04:00
logger.py perf: stop formatting every exported log record twice under OTEL log export (#27840) 2026-08-10 23:13:52 -06:00
memory.py fix: stop the background memory review when memory is switched off (#30309) 2026-09-21 11:22:21 -04:00
middleware.py fix: tool calls get mixed up between rounds when the model reuses tool call ids (#31887) 2026-10-05 11:19:45 +04:00
misc.py refac 2026-10-01 08:38:21 +04:00
model_ids.py refac 2026-07-26 23:09:22 -04:00
models.py fix: keep private arena models with no access grants visible to admins without the admin bypass (#31858) 2026-10-05 06:42:55 +04:00
notifications.py fix: chat links in finished and failed webhook notifications open a 404 (#31572) 2026-09-30 19:05:45 +04:00
oauth.py refac 2026-10-05 11:11:42 +04:00
payload.py fix: max_tokens sent through the API is ignored for Ollama models (#31437) 2026-09-26 07:18:43 +04:00
plugin.py refac 2026-10-01 03:31:20 +04:00
rate_limit.py fix: stop the sign-in rate limiter blocking the loop and leaking memory (#29977) 2026-09-13 20:28:41 -05:00
recurrence.py fix: Scheduled Tasks calendar shows extra runs for automations with a run count (#31604) 2026-09-30 19:43:41 +04:00
redis.py fix: refresh an expiring OAuth token once across workers and replicas (#30450) 2026-09-23 23:33:09 -04:00
response.py refac 2026-08-17 00:57:57 -07:00
sanitize.py refac 2026-03-17 17:58:01 -05:00
security_headers.py refac 2026-08-24 18:29:36 -04:00
session_pool.py fix: long streamed lines no longer abort the response (#28114) 2026-08-25 12:16:37 -04:00
skills.py chore: format 2026-09-21 11:35:30 -04:00
subagents.py fix: server memory grows with every chat until a restart (#31534) 2026-10-01 08:14:33 +04:00
task.py refac 2026-06-19 00:16:06 +02:00
terminals.py refac 2026-10-01 03:31:20 +04:00
timers.py fix: background sub-agent and timer replies only show in the open chat after a page reload (#31576) 2026-09-30 19:03:01 +04:00
tool_approval.py fix: system prompt and compacted context are lost after approving a tool call (#31501) 2026-09-28 07:59:43 +04:00
tools.py refac 2026-10-05 10:56:06 +04:00
validate.py refac 2026-09-15 22:47:03 -04:00
valves.py refac 2026-07-31 17:41:14 -04:00
webhook.py perf: build debug log messages lazily so disabled debug logs cost nothing (#27834) 2026-07-31 19:09:01 -05:00