Skip to content
Merged

Dev #214

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
bc0da24
0.6.33 (#18118) (#18137)
tjbck Oct 8, 2025
0127ac3
i18n: improve Chinese translation
ShirasawaSama Oct 8, 2025
38a39b5
Update fi-FI translation.json
Kylapaallikko Oct 8, 2025
3512904
Update translation.json (pt-BR)
joaoback Oct 8, 2025
62456a6
Update translation.json (pt-BR)
joaoback Oct 8, 2025
3f030ef
UPD: i18n: es-ES Translation v0.6.34
rgaricano Oct 8, 2025
17ad6f8
Merge pull request #18141 from ShirasawaSama/i18n/improve-chinese-tra…
tjbck Oct 8, 2025
bc29e75
Merge pull request #18152 from joaoback/patch-12
tjbck Oct 8, 2025
40f7e17
Merge pull request #18153 from rgaricano/dev-es_ES
tjbck Oct 8, 2025
86cb105
Merge pull request #18151 from Kylapaallikko/dev
tjbck Oct 8, 2025
fbfbc29
fix: search action i18n (#18162)
EntropyYue Oct 8, 2025
5043e7f
refac: introduce model id length limit
tjbck Oct 8, 2025
8ca4596
Update SECURITY.md
Classic298 Oct 9, 2025
f1b50fb
fix: fix incorrect display of undefined tool ID
ShirasawaSama Oct 9, 2025
ccfb0f5
feat: do not initiate requests when the RecursiveFolder is not open t…
ShirasawaSama Oct 9, 2025
cce20f8
i18n: improve Chinese translation
ShirasawaSama Oct 9, 2025
c4832fd
fix: full context issue
tjbck Oct 9, 2025
8ac3095
fix: Artifacts duplicate matching
EntropyYue Oct 9, 2025
f1113d2
Merge pull request #18181 from ShirasawaSama/i18n/improve-chinese-tra…
tjbck Oct 9, 2025
b37eb3d
Merge pull request #18178 from ShirasawaSama/patch-34
tjbck Oct 9, 2025
de72239
Merge pull request #18176 from Classic298/patch-1
tjbck Oct 9, 2025
b93e9b1
Merge pull request #18195 from EventHorizon-AI/fix/artifacts-duplicat…
tjbck Oct 9, 2025
f9ff780
Update translation.json
Classic298 Oct 9, 2025
4e763e8
refac
tjbck Oct 9, 2025
a65b78f
Merge pull request #18198 from Classic298/patch-1
tjbck Oct 9, 2025
43a2881
Merge pull request #18179 from ShirasawaSama/patch-35
tjbck Oct 9, 2025
95e3717
fix(sidebar): prevent click on Chats from going to new chat
silentoplayz Oct 11, 2025
7b3bd58
Update Czech translations in translation.json
petrkrapek Oct 11, 2025
74576b8
refac/fix
tjbck Oct 11, 2025
8c84501
Merge pull request #18232 from silentoplayz/fix-chats-button-navigation
tjbck Oct 11, 2025
e14430d
Merge pull request #18248 from petrkrapek/community
tjbck Oct 11, 2025
5064506
refac/fix: inherit request form data
tjbck Oct 11, 2025
ffad1f1
refac
tjbck Oct 11, 2025
6e78f85
Update Czech translations for various terms
petrkrapek Oct 12, 2025
1e6426e
fix: allow toast notifications to be closed when a modal is open
silentoplayz Oct 12, 2025
31f6520
enh: lower JWT expiration default value and add warn message
Classic298 Oct 12, 2025
e747635
fix: reword misleading knowledge base warning
silentoplayz Oct 12, 2025
3fc29b2
chore: expand SECURITY.MD once again
Classic298 Oct 12, 2025
2f8685d
Update catalan translation.json
aleixdorca Oct 12, 2025
0417a45
Update SECURITY.md
Classic298 Oct 12, 2025
e41836f
Update SECURITY.md
Classic298 Oct 12, 2025
cf76922
Korean translation updated
Cyp9715 Oct 13, 2025
f0dfdb3
Extend FileMetadataResponse to have hash field
Oct 13, 2025
43d64b3
Merge pull request #18267 from aleixdorca/dev
tjbck Oct 13, 2025
f373784
Merge pull request #18266 from Classic298/patch-4
tjbck Oct 13, 2025
40e9d9c
feat: add mineru as document parser support with both local and manag…
palazski Oct 13, 2025
a730a27
refac
tjbck Oct 13, 2025
4b160d8
fix: prevent integrations menu from closing when valves modal is open
silentoplayz Oct 13, 2025
2b3b2e4
Merge pull request #18310 from silentoplayz/fix-integrations-menu-clo…
tjbck Oct 14, 2025
7ba752e
Update translation.json
Oct 14, 2025
f0689b2
fix: Fix missing model auto-pull when user settings are unmodified
ShirasawaSama Oct 14, 2025
9971919
Merge pull request #18320 from BoFFire/patch-2
tjbck Oct 14, 2025
5fe56a8
fix: pinned chats in ref chat
tjbck Oct 14, 2025
515e136
Merge pull request #18324 from ShirasawaSama/patch-37
tjbck Oct 14, 2025
8039cc4
refac/fix: support delete method for openapi tool servers
tjbck Oct 14, 2025
7031708
Merge pull request #18284 from Stoyan-Zlatev/feature/knowledge-respon…
tjbck Oct 14, 2025
fcc2bb5
refac: oracle23ai
tjbck Oct 14, 2025
2a34a0a
Merge pull request #18273 from Cyp9715/dev
tjbck Oct 14, 2025
91a4384
enh: jwt_expires_in security warning
tjbck Oct 14, 2025
ad61460
fix: tool server connection ui
tjbck Oct 14, 2025
7a68f06
Merge pull request #18260 from silentoplayz/fix-toast-click-issue
tjbck Oct 14, 2025
9480655
Merge pull request #18261 from Classic298/patch-1
tjbck Oct 14, 2025
dd51808
Merge pull request #18258 from petrkrapek/community
tjbck Oct 14, 2025
bcb7b65
chore: authlib bump
tjbck Oct 14, 2025
ffe127e
remove "Note:"
silentoplayz Oct 14, 2025
c46ea40
refac
tjbck Oct 15, 2025
aa5de4c
chore
Classic298 Oct 15, 2025
9dc7889
update Turkish translations
cubukcum Oct 15, 2025
62e57fe
Merge pull request #18346 from cubukcum/main
tjbck Oct 15, 2025
29d4148
Merge pull request #18344 from Classic298/patch-1
tjbck Oct 15, 2025
288b323
feat: use MINERU_PARAMS json field for mineru settings
palazski Oct 15, 2025
0dc04fd
Fix Thai translations for consistency
teephopdisawas Oct 16, 2025
fbeff47
restore visible scrollbar
taylorwilsdon Oct 16, 2025
9b79486
Merge pull request #18369 from taylorwilsdon/issues/11782
tjbck Oct 16, 2025
2bd9723
Merge pull request #18361 from teephopdisawas/dev
tjbck Oct 16, 2025
e8c1dbb
Merge pull request #18306 from palazski/main
tjbck Oct 16, 2025
417c9d9
Merge pull request #18263 from silentoplayz/chat-deletion-bug
tjbck Oct 16, 2025
b48c790
chore: bump
tjbck Oct 16, 2025
d0da1d7
chore: i18n
tjbck Oct 16, 2025
fd0e965
chore: format
tjbck Oct 16, 2025
efed0e3
fix: system prompt perm
tjbck Oct 16, 2025
2783e0e
chore: Update CHANGELOG.md (#18199)
Classic298 Oct 16, 2025
9ae06a3
Merge pull request #18138 from open-webui/dev
tjbck Oct 16, 2025
84602ff
Merge remote-tracking branch 'oui/main' into dev
OrenZhang Oct 17, 2025
5fbaf3a
chore(repo): merge from remote
OrenZhang Oct 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,34 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.6.34] - 2025-10-16

### Added

- 📄 MinerU is now supported as a document parser backend, with support for both local and managed API deployments. [#18306](https://github.com/open-webui/open-webui/pull/18306)
- 🔒 JWT token expiration default is now set to 4 weeks instead of never expiring, with security warnings displayed in backend logs and admin UI when set to unlimited. [#18261](https://github.com/open-webui/open-webui/pull/18261), [#18262](https://github.com/open-webui/open-webui/pull/18262)
- ⚡ Page loading performance is improved by preventing unnecessary API requests when sidebar folders are not expanded. [#18179](https://github.com/open-webui/open-webui/pull/18179), [#17476](https://github.com/open-webui/open-webui/issues/17476)
- 📁 File hash values are now included in the knowledge endpoint response, enabling efficient file synchronization through hash comparison. [#18284](https://github.com/open-webui/open-webui/pull/18284), [#18283](https://github.com/open-webui/open-webui/issues/18283)
- 🎨 Chat dialog scrollbar visibility is improved by increasing its width, making it easier to use for navigation. [#18369](https://github.com/open-webui/open-webui/pull/18369), [#11782](https://github.com/open-webui/open-webui/issues/11782)
- 🔄 Various improvements were implemented across the frontend and backend to enhance performance, stability, and security.
- 🌐 Translations for Catalan, Chinese, Czech, Finnish, German, Kabyle, Korean, Portuguese (Brazil), Spanish, Thai, and Turkish were enhanced and expanded.

### Fixed

- 📚 Focused retrieval mode now works correctly, preventing the system from forcing full context mode and loading all documents in a knowledge base regardless of settings. [#18133](https://github.com/open-webui/open-webui/issues/18133)
- 🔧 Filter inlet functions now correctly execute on tool call continuations, ensuring parameter persistence throughout tool interactions. [#18222](https://github.com/open-webui/open-webui/issues/18222)
- 🛠️ External tool servers now properly support DELETE requests with body data. [#18289](https://github.com/open-webui/open-webui/pull/18289), [#18287](https://github.com/open-webui/open-webui/issues/18287)
- 🗄️ Oracle23ai vector database client now correctly handles variable initialization, resolving UnboundLocalError when retrieving items from collections. [#18356](https://github.com/open-webui/open-webui/issues/18356)
- 🔧 Model auto-pull functionality now works correctly even when user settings remain unmodified. [#18324](https://github.com/open-webui/open-webui/pull/18324)
- 🎨 Duplicate HTML content in artifacts is now prevented by improving code block detection logic. [#18195](https://github.com/open-webui/open-webui/pull/18195), [#6154](https://github.com/open-webui/open-webui/issues/6154)
- 💬 Pinned chats now appear in the Reference Chats list and can be referenced in conversations. [#18288](https://github.com/open-webui/open-webui/issues/18288)
- 📝 Misleading knowledge base warning text in documents settings is clarified to correctly instruct users about reindexing vectors. [#18263](https://github.com/open-webui/open-webui/pull/18263)
- 🔔 Toast notifications can now be dismissed even when a modal is open. [#18260](https://github.com/open-webui/open-webui/pull/18260)
- 🔘 The "Chats" button in the sidebar now correctly toggles chat list visibility without navigating away from the current page. [#18232](https://github.com/open-webui/open-webui/pull/18232)
- 🎯 The Integrations menu no longer closes prematurely when clicking outside the Valves modal. [#18310](https://github.com/open-webui/open-webui/pull/18310)
- 🛠️ Tool ID display issues where "undefined" was incorrectly shown in the interface are now resolved. [#18178](https://github.com/open-webui/open-webui/pull/18178)
- 🛠️ Model management issues caused by excessively long model IDs are now prevented through validation that limits model IDs to 256 characters. [#18125](https://github.com/open-webui/open-webui/issues/18125)

## [0.6.33] - 2025-10-08

### Added
Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG_EXTRA.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.6.34.1] - 2025.10.17

### Changed

- 合并官方 0.6.34 改动

## [0.6.33.1] - 2025.10.08

### Changed
Expand Down
38 changes: 37 additions & 1 deletion backend/open_webui/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -362,9 +362,15 @@ def __getattr__(self, key):
)

JWT_EXPIRES_IN = PersistentConfig(
"JWT_EXPIRES_IN", "auth.jwt_expiry", os.environ.get("JWT_EXPIRES_IN", "-1")
"JWT_EXPIRES_IN", "auth.jwt_expiry", os.environ.get("JWT_EXPIRES_IN", "4w")
)

if JWT_EXPIRES_IN.value == "-1":
log.warning(
"⚠️ SECURITY WARNING: JWT_EXPIRES_IN is set to '-1'\n"
" See: https://docs.openwebui.com/getting-started/env-configuration\n"
)

####################################
# OAuth config
####################################
Expand Down Expand Up @@ -2310,6 +2316,36 @@ class BannerModel(BaseModel):
os.environ.get("DATALAB_MARKER_OUTPUT_FORMAT", "markdown"),
)

MINERU_API_MODE = PersistentConfig(
"MINERU_API_MODE",
"rag.mineru_api_mode",
os.environ.get("MINERU_API_MODE", "local"), # "local" or "cloud"
)

MINERU_API_URL = PersistentConfig(
"MINERU_API_URL",
"rag.mineru_api_url",
os.environ.get("MINERU_API_URL", "http://localhost:8000"),
)

MINERU_API_KEY = PersistentConfig(
"MINERU_API_KEY",
"rag.mineru_api_key",
os.environ.get("MINERU_API_KEY", ""),
)

mineru_params = os.getenv("MINERU_PARAMS", "")
try:
mineru_params = json.loads(mineru_params)
except json.JSONDecodeError:
mineru_params = {}

MINERU_PARAMS = PersistentConfig(
"MINERU_PARAMS",
"rag.mineru_params",
mineru_params,
)

EXTERNAL_DOCUMENT_LOADER_URL = PersistentConfig(
"EXTERNAL_DOCUMENT_LOADER_URL",
"rag.external_document_loader_url",
Expand Down
1 change: 1 addition & 0 deletions backend/open_webui/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ def __str__(self) -> str:
ID_TAKEN = "Uh-oh! This id is already registered. Please choose another id string."
MODEL_ID_TAKEN = "Uh-oh! This model id is already registered. Please choose another model id string."
NAME_TAG_TAKEN = "Uh-oh! This name tag is already registered. Please choose another name tag string."
MODEL_ID_TOO_LONG = "The model id is too long. Please make sure your model id is less than 256 characters long."

INVALID_TOKEN = (
"Your session has expired or the token is invalid. Please sign in again."
Expand Down
8 changes: 8 additions & 0 deletions backend/open_webui/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,10 @@
DATALAB_MARKER_DISABLE_IMAGE_EXTRACTION,
DATALAB_MARKER_FORMAT_LINES,
DATALAB_MARKER_OUTPUT_FORMAT,
MINERU_API_MODE,
MINERU_API_URL,
MINERU_API_KEY,
MINERU_PARAMS,
DATALAB_MARKER_USE_LLM,
EXTERNAL_DOCUMENT_LOADER_URL,
EXTERNAL_DOCUMENT_LOADER_API_KEY,
Expand Down Expand Up @@ -874,6 +878,10 @@ async def lifespan(app: FastAPI):
app.state.config.DOCUMENT_INTELLIGENCE_ENDPOINT = DOCUMENT_INTELLIGENCE_ENDPOINT
app.state.config.DOCUMENT_INTELLIGENCE_KEY = DOCUMENT_INTELLIGENCE_KEY
app.state.config.MISTRAL_OCR_API_KEY = MISTRAL_OCR_API_KEY
app.state.config.MINERU_API_MODE = MINERU_API_MODE
app.state.config.MINERU_API_URL = MINERU_API_URL
app.state.config.MINERU_API_KEY = MINERU_API_KEY
app.state.config.MINERU_PARAMS = MINERU_PARAMS

app.state.config.TEXT_SPLITTER = RAG_TEXT_SPLITTER
app.state.config.TIKTOKEN_ENCODING_NAME = TIKTOKEN_ENCODING_NAME
Expand Down
4 changes: 3 additions & 1 deletion backend/open_webui/models/chats.py
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,7 @@ def get_chat_title_id_list_by_user_id(
user_id: str,
include_archived: bool = False,
include_folders: bool = False,
include_pinned: bool = False,
skip: Optional[int] = None,
limit: Optional[int] = None,
) -> list[ChatTitleIdResponse]:
Expand All @@ -511,7 +512,8 @@ def get_chat_title_id_list_by_user_id(
if not include_folders:
query = query.filter_by(folder_id=None)

query = query.filter(or_(Chat.pinned == False, Chat.pinned == None))
if not include_pinned:
query = query.filter(or_(Chat.pinned == False, Chat.pinned == None))

if not include_archived:
query = query.filter_by(archived=False)
Expand Down
5 changes: 4 additions & 1 deletion backend/open_webui/models/files.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ class FileModelResponse(BaseModel):

class FileMetadataResponse(BaseModel):
id: str
hash: Optional[str] = None
meta: dict
created_at: int # timestamp in epoch
updated_at: int # timestamp in epoch
Expand Down Expand Up @@ -147,6 +148,7 @@ def get_file_metadata_by_id(self, id: str) -> Optional[FileMetadataResponse]:
file = db.get(File, id)
return FileMetadataResponse(
id=file.id,
hash=file.hash,
meta=file.meta,
created_at=file.created_at,
updated_at=file.updated_at,
Expand Down Expand Up @@ -182,12 +184,13 @@ def get_file_metadatas_by_ids(self, ids: list[str]) -> list[FileMetadataResponse
return [
FileMetadataResponse(
id=file.id,
hash=file.hash,
meta=file.meta,
created_at=file.created_at,
updated_at=file.updated_at,
)
for file in db.query(
File.id, File.meta, File.created_at, File.updated_at
File.id, File.hash, File.meta, File.created_at, File.updated_at
)
.filter(File.id.in_(ids))
.order_by(File.updated_at.desc())
Expand Down
17 changes: 17 additions & 0 deletions backend/open_webui/retrieval/loaders/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

from open_webui.retrieval.loaders.mistral import MistralLoader
from open_webui.retrieval.loaders.datalab_marker import DatalabMarkerLoader
from open_webui.retrieval.loaders.mineru import MinerULoader


from open_webui.env import SRC_LOG_LEVELS, GLOBAL_LOG_LEVEL
Expand Down Expand Up @@ -367,6 +368,22 @@ def _get_loader(self, filename: str, file_content_type: str, file_path: str):
api_endpoint=self.kwargs.get("DOCUMENT_INTELLIGENCE_ENDPOINT"),
azure_credential=DefaultAzureCredential(),
)
elif self.engine == "mineru" and file_ext in [
"pdf",
"doc",
"docx",
"ppt",
"pptx",
"xls",
"xlsx",
]:
loader = MinerULoader(
file_path=file_path,
api_mode=self.kwargs.get("MINERU_API_MODE", "local"),
api_url=self.kwargs.get("MINERU_API_URL", "http://localhost:8000"),
api_key=self.kwargs.get("MINERU_API_KEY", ""),
params=self.kwargs.get("MINERU_PARAMS", {}),
)
elif (
self.engine == "mistral_ocr"
and self.kwargs.get("MISTRAL_OCR_API_KEY") != ""
Expand Down
Loading
Loading