From 7735a0478393285d0f887ebfe4438a327df8694f Mon Sep 17 00:00:00 2001 From: Shirasawa <764798966@qq.com> Date: Thu, 18 Sep 2025 11:50:00 +0800 Subject: [PATCH 01/11] feat: do not initiate requests when the ChangelogModal is not open --- src/lib/components/ChangelogModal.svelte | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/lib/components/ChangelogModal.svelte b/src/lib/components/ChangelogModal.svelte index 6f94604889..c8270b0241 100644 --- a/src/lib/components/ChangelogModal.svelte +++ b/src/lib/components/ChangelogModal.svelte @@ -19,10 +19,11 @@ let changelog = null; - onMount(async () => { - const res = await getChangelog(); - changelog = res; - }); + const init = async () => { + changelog = await getChangelog(); + }; + + $: show && init(); From f188d570f7497c742b68a5ebef46995150be2879 Mon Sep 17 00:00:00 2001 From: Shirasawa <764798966@qq.com> Date: Thu, 18 Sep 2025 07:48:19 +0000 Subject: [PATCH 02/11] feat: improve Chinese translation --- src/lib/i18n/locales/zh-CN/translation.json | 6 +++--- src/lib/i18n/locales/zh-TW/translation.json | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/lib/i18n/locales/zh-CN/translation.json b/src/lib/i18n/locales/zh-CN/translation.json index f65dc8dd0f..c71d9ec378 100644 --- a/src/lib/i18n/locales/zh-CN/translation.json +++ b/src/lib/i18n/locales/zh-CN/translation.json @@ -487,7 +487,7 @@ "Edit Memory": "编辑记忆", "Edit User": "编辑用户", "Edit User Group": "编辑用户组", - "edited": "", + "edited": "已编辑", "Edited": "已编辑", "Editing": "编辑中", "Eject": "弹出", @@ -630,7 +630,7 @@ "Enter Your Role": "输入您的权限组", "Enter Your Username": "输入您的用户名", "Enter your webhook URL": "输入您的 Webhook URL", - "Entra ID": "", + "Entra ID": "Entra ID", "Error": "错误", "ERROR": "错误", "Error accessing directory": "访问目录时出错", @@ -1608,7 +1608,7 @@ "User Webhooks": "用户 Webhook", "Username": "用户名", "Users": "用户", - "Uses DefaultAzureCredential to authenticate": "", + "Uses DefaultAzureCredential to authenticate": "使用 DefaultAzureCredential 进行身份验证", "Using Entire Document": "使用完整文档", "Using Focused Retrieval": "使用聚焦检索", "Using the default arena model with all models. Click the plus button to add custom models.": "竞技场模型默认使用所有模型。点击上方的“+”按钮以添加自定义模型", diff --git a/src/lib/i18n/locales/zh-TW/translation.json b/src/lib/i18n/locales/zh-TW/translation.json index 0360dc9ce6..0f04434e0f 100644 --- a/src/lib/i18n/locales/zh-TW/translation.json +++ b/src/lib/i18n/locales/zh-TW/translation.json @@ -487,7 +487,7 @@ "Edit Memory": "編輯記憶", "Edit User": "編輯使用者", "Edit User Group": "編輯使用者群組", - "edited": "", + "edited": "已編輯", "Edited": "已編輯", "Editing": "編輯中", "Eject": "卸載", @@ -630,7 +630,7 @@ "Enter Your Role": "輸入您的角色", "Enter Your Username": "輸入您的使用者名稱", "Enter your webhook URL": "輸入您的 webhook URL", - "Entra ID": "", + "Entra ID": "Entra ID", "Error": "錯誤", "ERROR": "錯誤", "Error accessing directory": "存取目錄時發生錯誤", @@ -1608,7 +1608,7 @@ "User Webhooks": "使用者 Webhooks", "Username": "使用者名稱", "Users": "使用者", - "Uses DefaultAzureCredential to authenticate": "", + "Uses DefaultAzureCredential to authenticate": "使用 DefaultAzureCredential 進行身份驗證", "Using Entire Document": "使用完整檔案", "Using Focused Retrieval": "使用聚焦檢索", "Using the default arena model with all models. Click the plus button to add custom models.": "正在使用預設競技場模型與所有模型。點選加號按鈕以新增自訂模型。", From da7610f6cb7a95f3ffe0de10e9b988e90d248d40 Mon Sep 17 00:00:00 2001 From: _00_ <131402327+rgaricano@users.noreply.github.com> Date: Thu, 18 Sep 2025 13:18:07 +0200 Subject: [PATCH 03/11] FIX: Inconsistency in the description of BM25 - Update Documents.svelte FIX: Inconsistency in the description of BM25 Fix issue: https://github.com/open-webui/open-webui/discussions/17553 --- src/lib/components/admin/Settings/Documents.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/components/admin/Settings/Documents.svelte b/src/lib/components/admin/Settings/Documents.svelte index 7e4f8735a3..78235648d6 100644 --- a/src/lib/components/admin/Settings/Documents.svelte +++ b/src/lib/components/admin/Settings/Documents.svelte @@ -1143,7 +1143,7 @@
Date: Thu, 18 Sep 2025 09:39:40 -0500 Subject: [PATCH 04/11] fix: isdangerous dep --- backend/requirements.txt | 1 + pyproject.toml | 1 + 2 files changed, 2 insertions(+) diff --git a/backend/requirements.txt b/backend/requirements.txt index 5871015075..1ea3128cb8 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -2,6 +2,7 @@ fastapi==0.115.7 uvicorn[standard]==0.35.0 pydantic==2.11.7 python-multipart==0.0.20 +isdangerous==2.2.0 python-socketio==5.13.0 python-jose==3.4.0 diff --git a/pyproject.toml b/pyproject.toml index 4bbaf85b6b..267d8a7c60 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,6 +10,7 @@ dependencies = [ "uvicorn[standard]==0.35.0", "pydantic==2.11.7", "python-multipart==0.0.20", + "isdangerous==2.2.0", "python-socketio==5.13.0", "python-jose==3.4.0", From d4f21c7e84d35986fc809168cc4194da584fbdd1 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Thu, 18 Sep 2025 10:43:59 -0500 Subject: [PATCH 05/11] refac --- backend/requirements.txt | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/requirements.txt b/backend/requirements.txt index 1ea3128cb8..81fc0beb45 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -2,7 +2,7 @@ fastapi==0.115.7 uvicorn[standard]==0.35.0 pydantic==2.11.7 python-multipart==0.0.20 -isdangerous==2.2.0 +itsdangerous==2.2.0 python-socketio==5.13.0 python-jose==3.4.0 diff --git a/pyproject.toml b/pyproject.toml index 267d8a7c60..bed62ee4e7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ dependencies = [ "uvicorn[standard]==0.35.0", "pydantic==2.11.7", "python-multipart==0.0.20", - "isdangerous==2.2.0", + "itsdangerous==2.2.0", "python-socketio==5.13.0", "python-jose==3.4.0", From bfc8f744774c1a0ee74fc78245f23fc1cee37f9c Mon Sep 17 00:00:00 2001 From: joaoback <156559121+joaoback@users.noreply.github.com> Date: Thu, 18 Sep 2025 13:53:41 -0300 Subject: [PATCH 06/11] Update translation.json (pt-BR) translation of newly added items. --- src/lib/i18n/locales/pt-BR/translation.json | 30 ++++++++++----------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/lib/i18n/locales/pt-BR/translation.json b/src/lib/i18n/locales/pt-BR/translation.json index 63105c090e..c4c893f0df 100644 --- a/src/lib/i18n/locales/pt-BR/translation.json +++ b/src/lib/i18n/locales/pt-BR/translation.json @@ -212,7 +212,7 @@ "Capture Audio": "Capturar Audio", "Certificate Path": "Caminho do Certificado", "Change Password": "Alterar Senha", - "Channel": "", + "Channel": "Canal", "Channel deleted successfully": "Canal apagado com sucesso", "Channel Name": "Nome do canal", "Channel updated successfully": "Canal atualizado com sucesso", @@ -358,7 +358,7 @@ "Custom Parameter Value": "Valor do parâmetro personalizado", "Danger Zone": "Zona de perigo", "Dark": "Escuro", - "Data Controls": "", + "Data Controls": "Controle de Dados", "Database": "Banco de Dados", "Datalab Marker API": "API do Marcador do Datalab", "Datalab Marker API Key required.": "Chave de API do Datalab Marker necessária.", @@ -370,8 +370,8 @@ "Default (SentenceTransformers)": "Padrão (SentenceTransformers)", "Default action buttons will be used.": "Botões de ação padrão serão usados.", "Default description enabled": "Descrição padrão habilitada", - "Default Features": "", - "Default Filters": "", + "Default Features": "Recursos padrão", + "Default Filters": "Filtros padrão", "Default mode works with a wider range of models by calling tools once before execution. Native mode leverages the model's built-in tool-calling capabilities, but requires the model to inherently support this feature.": "O modo padrão funciona com uma gama mais ampla de modelos, chamando as ferramentas uma vez antes da execução. O modo nativo aproveita os recursos integrados de chamada de ferramentas do modelo, mas exige que o modelo suporte esse recurso inerentemente.", "Default Model": "Modelo Padrão", "Default model updated": "Modelo padrão atualizado", @@ -487,7 +487,7 @@ "Edit Memory": "Editar Memória", "Edit User": "Editar Usuário", "Edit User Group": "Editar Grupo de Usuários", - "edited": "", + "edited": "editado", "Edited": "Editado", "Editing": "Editando", "Eject": "Ejetar", @@ -630,7 +630,7 @@ "Enter Your Role": "Digite Sua Função", "Enter Your Username": "Digite seu usuário", "Enter your webhook URL": "Insira a URL do seu webhook", - "Entra ID": "", + "Entra ID": "ID Entra", "Error": "Erro", "ERROR": "ERRO", "Error accessing directory": "Erro ao acessar o diretório", @@ -726,13 +726,13 @@ "Firecrawl API Key": "Chave de API do Firecrawl", "Floating Quick Actions": "Ações rápidas flutuantes", "Focus chat input": "Focar entrada de chat", - "Folder Background Image": "", + "Folder Background Image": "Imagem de fundo da pasta", "Folder deleted successfully": "Pasta excluída com sucesso", "Folder Name": "Nome da Pasta", "Folder name cannot be empty.": "Nome da pasta não pode estar vazio.", "Folder name updated successfully": "Nome da pasta atualizado com sucesso", "Folder updated successfully": "Pasta atualizada com sucesso", - "Folders": "", + "Folders": "Pastas", "Follow up": "Acompanhamento", "Follow Up Generation": "Geração de Acompanhamento", "Follow Up Generation Prompt": "Prompt para Geração dos Acompanhamentos", @@ -744,7 +744,7 @@ "Form": "Formulário", "Format Lines": "Formatar linhas", "Format the lines in the output. Defaults to False. If set to True, the lines will be formatted to detect inline math and styles.": "Formata as linhas na saída. O padrão é Falso. Se definido como Verdadeiro, as linhas serão formatadas para detectar matemática e estilos embutidos.", - "Format your variables using brackets like this:": "Formate suas variáveis usando colchetes como este:", + "Format your variables using brackets like this:": "Formate suas variáveis usando duplas chaves como este:", "Formatting may be inconsistent from source.": "A formatação pode ser inconsistente em relação à fonte.", "Forwards system user OAuth access token to authenticate": "Encaminha o token de acesso OAuth do usuário do sistema para autenticação", "Forwards system user session credentials to authenticate": "Encaminha as credenciais da sessão do usuário do sistema para autenticação", @@ -1048,7 +1048,7 @@ "No models found": "Nenhum modelo encontrado", "No models selected": "Nenhum modelo selecionado", "No Notes": "Sem Notas", - "No notes found": "", + "No notes found": "Notas não encontradas", "No results": "Nenhum resultado encontrado", "No results found": "Nenhum resultado encontrado", "No search query generated": "Nenhuma consulta de pesquisa gerada", @@ -1062,7 +1062,7 @@ "None": "Nenhum", "Not factually correct": "Não está factualmente correto", "Not helpful": "Não é útil", - "Note": "", + "Note": "Nota", "Note deleted successfully": "Nota excluída com sucesso", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Nota: Se você definir uma pontuação mínima, a pesquisa retornará apenas documentos com pontuação igual ou superior à pontuação mínima.", "Notes": "Notas", @@ -1095,10 +1095,10 @@ "Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "Ops! Você está usando um método não suportado (somente frontend). Por favor, sirva a WebUI a partir do backend.", "Open file": "Abrir arquivo", "Open in full screen": "Abrir em tela cheia", - "Open link": "", + "Open link": "Abrir link", "Open modal to configure connection": "Abra o modal para configurar a conexão", "Open Modal To Manage Floating Quick Actions": "Abra o Modal para gerenciar ações rápidas flutuantes", - "Open Modal To Manage Image Compression": "", + "Open Modal To Manage Image Compression": "Abrir o Modal para gerenciar a compressão de imagens", "Open new chat": "Abrir novo chat", "Open Sidebar": "Abrir barra lateral", "Open User Profile Menu": "Abrir menu de perfil do usuário", @@ -1218,7 +1218,7 @@ "Redirecting you to Open WebUI Community": "Redirecionando você para a Comunidade OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "Reduz a probabilidade de gerar respostas sem sentido. Um valor mais alto (por exemplo, 100) resultará em respostas mais diversas, enquanto um valor mais baixo (por exemplo, 10) será mais conservador.", "Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "Refira-se como \"Usuário\" (por exemplo, \"Usuário está aprendendo espanhol\")", - "Reference Chats": "", + "Reference Chats": "Chats Anteriores", "Refused when it shouldn't have": "Recusado quando não deveria", "Regenerate": "Gerar novamente", "Regenerate Menu": "Regenerar Menu", @@ -1568,7 +1568,7 @@ "Unarchive All Archived Chats": "Desarquivar Todos os Chats Arquivados", "Unarchive Chat": "Desarquivar Chat", "Underline": "Sublinhado", - "Unknown": "", + "Unknown": "Desconhecido", "Unloads {{FROM_NOW}}": "Descarrega {{FROM_NOW}}", "Unlock mysteries": "Desvendar mistérios", "Unpin": "Desfixar", From c07086401eaf13efbb2eebd02ffe19af49df1044 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Thu, 18 Sep 2025 17:47:32 -0500 Subject: [PATCH 07/11] refac --- src/lib/components/admin/Users/UserList/UserChatsModal.svelte | 4 ++++ src/lib/components/layout/ArchivedChatsModal.svelte | 4 ++++ src/lib/components/layout/SearchModal.svelte | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/src/lib/components/admin/Users/UserList/UserChatsModal.svelte b/src/lib/components/admin/Users/UserList/UserChatsModal.svelte index fa95088933..1e17dfa3ad 100644 --- a/src/lib/components/admin/Users/UserList/UserChatsModal.svelte +++ b/src/lib/components/admin/Users/UserList/UserChatsModal.svelte @@ -43,6 +43,10 @@ let searchDebounceTimeout; const searchHandler = async () => { + if (!show) { + return; + } + if (searchDebounceTimeout) { clearTimeout(searchDebounceTimeout); } diff --git a/src/lib/components/layout/ArchivedChatsModal.svelte b/src/lib/components/layout/ArchivedChatsModal.svelte index 3251e9531f..93a73b394b 100644 --- a/src/lib/components/layout/ArchivedChatsModal.svelte +++ b/src/lib/components/layout/ArchivedChatsModal.svelte @@ -39,6 +39,10 @@ } const searchHandler = async () => { + if (!show) { + return; + } + if (searchDebounceTimeout) { clearTimeout(searchDebounceTimeout); } diff --git a/src/lib/components/layout/SearchModal.svelte b/src/lib/components/layout/SearchModal.svelte index f68e9aa731..3eb6687e41 100644 --- a/src/lib/components/layout/SearchModal.svelte +++ b/src/lib/components/layout/SearchModal.svelte @@ -91,6 +91,10 @@ }; const searchHandler = async () => { + if (!show) { + return; + } + if (searchDebounceTimeout) { clearTimeout(searchDebounceTimeout); } From 04251b7bfffa617591458c9b4ea37bb59aedfd19 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Thu, 18 Sep 2025 17:50:39 -0500 Subject: [PATCH 08/11] refac --- src/lib/components/ChangelogModal.svelte | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/components/ChangelogModal.svelte b/src/lib/components/ChangelogModal.svelte index c8270b0241..dec152b21b 100644 --- a/src/lib/components/ChangelogModal.svelte +++ b/src/lib/components/ChangelogModal.svelte @@ -23,7 +23,9 @@ changelog = await getChangelog(); }; - $: show && init(); + $: if (show) { + init(); + } From 48cd72fab02a63c51a7e542044af73547bf503a9 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Thu, 18 Sep 2025 17:51:00 -0500 Subject: [PATCH 09/11] refac --- src/lib/components/layout/Sidebar/RecursiveFolder.svelte | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/components/layout/Sidebar/RecursiveFolder.svelte b/src/lib/components/layout/Sidebar/RecursiveFolder.svelte index 8e64fc71aa..8a168cb845 100644 --- a/src/lib/components/layout/Sidebar/RecursiveFolder.svelte +++ b/src/lib/components/layout/Sidebar/RecursiveFolder.svelte @@ -332,14 +332,16 @@ let isExpandedUpdateTimeout; - const isExpandedUpdateDebounceHandler = (open) => { + const isExpandedUpdateDebounceHandler = () => { clearTimeout(isExpandedUpdateTimeout); isExpandedUpdateTimeout = setTimeout(() => { isExpandedUpdateHandler(); }, 500); }; - $: isExpandedUpdateDebounceHandler(open); + $: if (open) { + isExpandedUpdateDebounceHandler(); + } const renameHandler = async () => { console.log('Edit'); From 1c7859437916bf6589ad49b4ea651f892c64fec0 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Thu, 18 Sep 2025 17:53:11 -0500 Subject: [PATCH 10/11] refac --- src/lib/components/chat/ModelSelector/Selector.svelte | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lib/components/chat/ModelSelector/Selector.svelte b/src/lib/components/chat/ModelSelector/Selector.svelte index 1e98a81a5a..29eb85eb40 100644 --- a/src/lib/components/chat/ModelSelector/Selector.svelte +++ b/src/lib/components/chat/ModelSelector/Selector.svelte @@ -286,9 +286,11 @@ } }; - onMount(async () => { + const setOllamaVersion = async () => { ollamaVersion = await getOllamaVersion(localStorage.token).catch((error) => false); + }; + onMount(async () => { if (items) { tags = items .filter((item) => !(item.model?.info?.meta?.hidden ?? false)) @@ -300,6 +302,10 @@ } }); + $: if (show) { + setOllamaVersion(); + } + const cancelModelPullHandler = async (model: string) => { const { reader, abortController } = $MODEL_DOWNLOAD_POOL[model]; if (abortController) { From 700894a13d243b129632190316d1cabf713be033 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Thu, 18 Sep 2025 18:02:35 -0500 Subject: [PATCH 11/11] refac: channel modal --- .../components/layout/Sidebar/ChannelModal.svelte | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/lib/components/layout/Sidebar/ChannelModal.svelte b/src/lib/components/layout/Sidebar/ChannelModal.svelte index e59b3e42cc..ff54511214 100644 --- a/src/lib/components/layout/Sidebar/ChannelModal.svelte +++ b/src/lib/components/layout/Sidebar/ChannelModal.svelte @@ -44,8 +44,12 @@ accessControl = channel.access_control; }; - $: if (channel) { - init(); + $: if (show) { + if (channel) { + init(); + } + } else { + resetHandler(); } let showDeleteConfirmDialog = false; @@ -68,6 +72,12 @@ show = false; }; + + const resetHandler = () => { + name = ''; + accessControl = {}; + loading = false; + };