$ the-wire · showcase
Streaming fixes for tool calls and duplicate keys
By RepoJournal · Filed · About Open WebUI
Three fixes land in Open WebUI: streaming no longer breaks on duplicate output keys or tool-call thinking, and user text resembling skill mentions is no longer deleted.
Open WebUI shipped fixes for three streaming and parsing bugs that broke real chat flows. One [1] stopped the chat from silently deleting user text that looks like a skill mention: any `<$...>` run was treated as an inline skill mention and removed before the request reached the model, so snippets like `<$(=MonthStart($(vMaxMonthEndINC)))` disappeared mid-message. The mention regexes accepted any character except `|` and `>` as the skill id; they now match only validated skill ids.
Streaming with reasoning-capable models froze mid-stream [2] when a stream event addressed an output slot past the end of the array; missing slots were filled with the event's value, causing a Svelte each_key_duplicate error. The chat now shows the first chunk and continues instead of waiting for generation to finish. Separately, post-tool-call thinking was streamed into the main chat area and only jumped to the collapsed Thoughts section once the turn finished [3]. Each tool round appended an empty placeholder that the browser held onto, misaligning subsequent output indices; thinking now streams into Thoughts immediately.
Meanwhile, translations continue: German (de-DE) [4] and Catalan [5] were updated with new strings and typo fixes. No user-facing config or version changes accompany these patches.
A primary-source description of the skill mention bug says: "the mention regexes accepted any character except `|` and `>` as the skill id" [1].
Action items
- → Pull the latest main to pick up streaming fixes for tool-call thinking and duplicate output keys open-webui/open-webui [plan]
- → Check your chat logs for silently-vanished text containing angle-bracket patterns open-webui/open-webui [monitor]
References
- [1] fix: stop deleting user text that looks like a skill mention (#29051) ↗ open-webui/open-webui
- [2] fix: stop streaming responses breaking on a duplicate output key (#29053) ↗ open-webui/open-webui
- [3] fix: stream post-tool-call thinking into the Thoughts section (#29052) ↗ open-webui/open-webui
- [4] i18n: complete the German (de-DE) translation ↗ open-webui/open-webui
- [5] i18n: Update catalan translation.json (new strings and typos) ↗ open-webui/open-webui