Fill the 463 empty strings in the ar and ar-BH locales.
Placeholders and Arabic plural forms follow the existing file conventions;
technical parameter names (top_k, max_tokens, ...) are kept as-is.
Co-authored-by: Omar Albarghouthi <ThisisOmar-here@users.noreply.github.com>
Chat search checks the whole query and each word in it separately. With a single word those are the same check, so every chat got searched twice. It is now searched once, with the same results. On PostgreSQL with 2164 chats (533 MB of chat data) a one-word search is about 40% faster:
| search | before | after |
|---|---|---|
| proxy | 6.0 s | 3.6 s |
| opnsense | 6.1 s | 3.8 s |
| no match | 5.4 s | 3.0 s |
Refs #32266
Automations scheduled with the Daily, Weekly or Monthly picker ran a few seconds after the chosen time, taking the seconds from whenever the previous run was handled. Now and then that left the next run due again within the same minute, and the automation ran twice. Users whose timezone is behind the server's could also have their first run moved to the next day. These schedules now run at the exact minute chosen, in the user's own timezone.
Fixes#32263
A tool picked from the Integrations menu before the first message of a new chat stayed on only until the user left that chat. Coming back, the chat fell back to the model's default tools, so the tool was no longer offered to the model and the changed tool list broke prompt caching. The Web Search toggle was dropped the same way, and a picked skill was lost on reload. The picks are now kept for the chat from its first message on, like picks made later in the chat.
Clicking the title of a citation from an external knowledge base (Qdrant, Milvus, pgvector), or its Content link, opened a link to a file inside Open WebUI that does not exist, so the browser showed a not found error. These results are no longer treated as uploaded files, so when the citation's source is a web address both links open that page, and otherwise the title is plain text. This works whether or not the model uses native tool calling.
Fixes https://github.com/open-webui/open-webui/issues/32231
When the Redis Sentinels are protected with a password, every Redis operation failed with "No master found", because the password in REDIS_URL was used for the Redis server itself but never for the Sentinels. The Sentinels now get the same credentials, both for REDIS_URL and for WEBSOCKET_REDIS_URL. Sentinels without a password keep working, and Sentinel credentials set by hand in WEBSOCKET_REDIS_OPTIONS still take precedence.
Fixes#32240