Skip to content

Commit a4f2eeb

Browse files
Merge remote-tracking branch 'upstream/dev' into dev
2 parents fd1f29c + ee5fd12 commit a4f2eeb

9 files changed

Lines changed: 76 additions & 63 deletions

File tree

backend/open_webui/main.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1375,6 +1375,13 @@ async def check_url(request: Request, call_next):
13751375
request.state.token = get_http_authorization_cred(
13761376
request.headers.get("Authorization")
13771377
)
1378+
# Fallback to cookie token for browser sessions
1379+
if request.state.token is None and request.cookies.get("token"):
1380+
from fastapi.security import HTTPAuthorizationCredentials
1381+
request.state.token = HTTPAuthorizationCredentials(
1382+
scheme="Bearer",
1383+
credentials=request.cookies.get("token")
1384+
)
13781385

13791386
request.state.enable_api_keys = app.state.config.ENABLE_API_KEYS
13801387
response = await call_next(request)

backend/requirements-min.txt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
fastapi==0.128.0
55
uvicorn[standard]==0.40.0
66
pydantic==2.12.5
7-
python-multipart==0.0.21
7+
python-multipart==0.0.22
88
itsdangerous==2.2.0
99

1010
python-socketio==5.16.0
@@ -16,20 +16,20 @@ PyJWT[crypto]==2.10.1
1616
authlib==1.6.6
1717

1818
requests==2.32.5
19-
aiohttp==3.13.2
19+
aiohttp==3.13.2 # do not update to 3.13.3 - broken
2020
async-timeout
2121
aiocache
2222
aiofiles
23-
starlette-compress==1.6.1
23+
starlette-compress==1.7.0
2424
httpx[socks,http2,zstd,cli,brotli]==0.28.1
2525
starsessions[redis]==2.2.1
2626

27-
sqlalchemy==2.0.45
28-
alembic==1.18.1
27+
sqlalchemy==2.0.46
28+
alembic==1.18.3
2929
peewee==3.19.0
3030
peewee-migrate==1.14.3
3131

32-
pycrdt==0.12.44
32+
pycrdt==0.12.45
3333
redis
3434

3535
APScheduler==3.11.2
@@ -38,17 +38,17 @@ RestrictedPython==8.1
3838
loguru==0.7.3
3939
asgiref==3.11.0
4040

41-
mcp==1.25.0
41+
mcp==1.26.0
4242
openai
4343

44-
langchain==1.2.4
44+
langchain==1.2.7
4545
langchain-community==0.4.1
4646
langchain-classic==1.0.1
4747
langchain-text-splitters==1.1.0
4848

4949
fake-useragent==2.2.0
5050

51-
chromadb==1.4.0
52-
black==25.12.0
51+
chromadb==1.4.1
52+
black==26.1.0
5353
pydub
5454
chardet==5.2.0

backend/requirements.txt

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
fastapi==0.128.0
22
uvicorn[standard]==0.40.0
33
pydantic==2.12.5
4-
python-multipart==0.0.21
4+
python-multipart==0.0.22
55
itsdangerous==2.2.0
66

77
python-socketio==5.16.0
@@ -13,21 +13,21 @@ PyJWT[crypto]==2.10.1
1313
authlib==1.6.6
1414

1515
requests==2.32.5
16-
aiohttp==3.13.2
16+
aiohttp==3.13.2 # do not update to 3.13.3 - broken
1717
async-timeout
1818
aiocache
1919
aiofiles
20-
starlette-compress==1.6.1
20+
starlette-compress==1.7.0
2121
httpx[socks,http2,zstd,cli,brotli]==0.28.1
2222
starsessions[redis]==2.2.1
2323
python-mimeparse==2.0.0
2424

25-
sqlalchemy==2.0.45
26-
alembic==1.18.1
25+
sqlalchemy==2.0.46
26+
alembic==1.18.3
2727
peewee==3.19.0
2828
peewee-migrate==1.14.3
2929

30-
pycrdt==0.12.44
30+
pycrdt==0.12.45
3131
redis
3232

3333
APScheduler==3.11.2
@@ -38,13 +38,13 @@ asgiref==3.11.0
3838

3939
# AI libraries
4040
tiktoken
41-
mcp==1.25.0
41+
mcp==1.26.0
4242

4343
openai
4444
anthropic
45-
google-genai==1.59.0
45+
google-genai==1.60.0
4646

47-
langchain==1.2.4
47+
langchain==1.2.7
4848
langchain-community==0.4.1
4949
langchain-classic==1.0.1
5050
langchain-text-splitters==1.1.0
@@ -55,22 +55,22 @@ weaviate-client==4.19.2
5555
opensearch-py==3.1.0
5656

5757
transformers==4.57.6
58-
sentence-transformers==5.2.0
58+
sentence-transformers==5.2.2
5959
accelerate
6060
pyarrow==20.0.0 # fix: pin pyarrow version to 20 for rpi compatibility #15897
61-
einops==0.8.1
61+
einops==0.8.2
6262

6363
ftfy==6.3.1
6464
chardet==5.2.0
65-
pypdf==6.6.0
65+
pypdf==6.6.2
6666
fpdf2==2.8.5
67-
pymdown-extensions==10.20
67+
pymdown-extensions==10.20.1
6868
docx2txt==0.9
6969
python-pptx==1.0.2
70-
unstructured==0.18.27
70+
unstructured==0.18.31
7171
msoffcrypto-tool==5.4.2
7272
nltk==3.9.2
73-
Markdown==3.10
73+
Markdown==3.10.1
7474
pypandoc==1.16.2
7575
pandas==2.3.3
7676
openpyxl==3.1.5
@@ -82,15 +82,15 @@ sentencepiece
8282
soundfile==0.13.1
8383

8484
pillow==12.1.0
85-
opencv-python-headless==4.12.0.88
85+
opencv-python-headless==4.13.0.90
8686
rapidocr-onnxruntime==1.4.4
8787
rank-bm25==0.2.2
8888

8989
onnxruntime==1.23.2
9090
faster-whisper==1.2.1
9191

92-
black==25.12.0
93-
youtube-transcript-api==1.2.3
92+
black==26.1.0
93+
youtube-transcript-api==1.2.4
9494
pytube==15.0.0
9595

9696
pydub
@@ -115,14 +115,14 @@ psycopg2-binary==2.9.11
115115
pgvector==0.4.2
116116

117117
PyMySQL==1.1.2
118-
boto3==1.42.29
118+
boto3==1.42.38
119119

120-
pymilvus==2.6.6
120+
pymilvus==2.6.8
121121
qdrant-client==1.16.2
122-
playwright==1.57.0 # Caution: version must match docker-compose.playwright.yaml - Update the docker-compose.yaml if necessary
122+
playwright==1.58.0 # Caution: version must match docker-compose.playwright.yaml - Update the docker-compose.yaml if necessary
123123
elasticsearch==9.2.1
124124
pinecone==6.0.2
125-
oracledb==3.4.1
125+
oracledb==3.4.2
126126

127127
av==14.0.1 # Caution: Set due to FATAL FIPS SELFTEST FAILURE, see discussion https://github.com/open-webui/open-webui/discussions/15720
128128

@@ -138,7 +138,7 @@ pytest-docker~=3.2.5
138138
ldap3==2.9.1
139139

140140
## Firecrawl
141-
firecrawl-py==4.13.0
141+
firecrawl-py==4.14.0
142142

143143
## Trace
144144
opentelemetry-api==1.39.1

docker-compose.playwright.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
services:
22
playwright:
3-
image: mcr.microsoft.com/playwright:v1.57.0-noble # Version must match requirements.txt
3+
image: mcr.microsoft.com/playwright:v1.58.0-noble # Version must match requirements.txt
44
container_name: playwright
5-
command: npx -y playwright@1.57.0 run-server --port 3000 --host 0.0.0.0
5+
command: npx -y playwright@1.58.0 run-server --port 3000 --host 0.0.0.0
66

77
open-webui:
88
environment:

pyproject.toml

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ dependencies = [
99
"fastapi==0.128.0",
1010
"uvicorn[standard]==0.40.0",
1111
"pydantic==2.12.5",
12-
"python-multipart==0.0.21",
12+
"python-multipart==0.0.22",
1313
"itsdangerous==2.2.0",
1414

1515
"python-socketio==5.16.0",
@@ -21,21 +21,21 @@ dependencies = [
2121
"authlib==1.6.6",
2222

2323
"requests==2.32.5",
24-
"aiohttp==3.13.2",
24+
"aiohttp==3.13.2" # do not update to 3.13.3 - broken,
2525
"async-timeout",
2626
"aiocache",
2727
"aiofiles",
28-
"starlette-compress==1.6.1",
28+
"starlette-compress==1.7.0",
2929
"httpx[socks,http2,zstd,cli,brotli]==0.28.1",
3030
"starsessions[redis]==2.2.1",
3131
"python-mimeparse==2.0.0",
3232

33-
"sqlalchemy==2.0.45",
34-
"alembic==1.18.1",
33+
"sqlalchemy==2.0.46",
34+
"alembic==1.18.3",
3535
"peewee==3.19.0",
3636
"peewee-migrate==1.14.3",
3737

38-
"pycrdt==0.12.44",
38+
"pycrdt==0.12.45",
3939
"redis",
4040

4141
"APScheduler==3.11.2",
@@ -45,13 +45,13 @@ dependencies = [
4545
"asgiref==3.11.0",
4646

4747
"tiktoken",
48-
"mcp==1.25.0",
48+
"mcp==1.26.0",
4949

5050
"openai",
5151
"anthropic",
52-
"google-genai==1.59.0",
52+
"google-genai==1.60.0",
5353

54-
"langchain==1.2.4",
54+
"langchain==1.2.7",
5555
"langchain-community==0.4.1",
5656
"langchain-classic==1.0.1",
5757
"langchain-text-splitters==1.1.0",
@@ -60,25 +60,25 @@ dependencies = [
6060
"chromadb==1.4.1",
6161
"opensearch-py==3.1.0",
6262
"PyMySQL==1.1.2",
63-
"boto3==1.42.29",
63+
"boto3==1.42.38",
6464

6565
"transformers==4.57.6",
66-
"sentence-transformers==5.2.0",
66+
"sentence-transformers==5.2.2",
6767
"accelerate",
6868
"pyarrow==20.0.0", # fix: pin pyarrow version to 20 for rpi compatibility #15897
69-
"einops==0.8.1",
69+
"einops==0.8.2",
7070

7171
"ftfy==6.3.1",
7272
"chardet==5.2.0",
73-
"pypdf==6.6.0",
73+
"pypdf==6.6.2",
7474
"fpdf2==2.8.5",
75-
"pymdown-extensions==10.20",
75+
"pymdown-extensions==10.20.1",
7676
"docx2txt==0.9",
7777
"python-pptx==1.0.2",
78-
"unstructured==0.18.27",
78+
"unstructured==0.18.31",
7979
"msoffcrypto-tool==5.4.2",
8080
"nltk==3.9.2",
81-
"Markdown==3.10",
81+
"Markdown==3.10.1",
8282
"pypandoc==1.16.2",
8383
"pandas==2.3.3",
8484
"openpyxl==3.1.5",
@@ -91,15 +91,15 @@ dependencies = [
9191
"azure-ai-documentintelligence==1.0.2",
9292

9393
"pillow==12.1.0",
94-
"opencv-python-headless==4.12.0.88",
94+
"opencv-python-headless==4.13.0.90",
9595
"rapidocr-onnxruntime==1.4.4",
9696
"rank-bm25==0.2.2",
9797

9898
"onnxruntime==1.23.2",
9999
"faster-whisper==1.2.1",
100100

101-
"black==25.12.0",
102-
"youtube-transcript-api==1.2.3",
101+
"black==26.1.0",
102+
"youtube-transcript-api==1.2.4",
103103
"pytube==15.0.0",
104104

105105
"pydub",
@@ -145,18 +145,18 @@ all = [
145145
"docker~=7.1.0",
146146
"pytest~=8.3.2",
147147
"pytest-docker~=3.2.5",
148-
"playwright==1.57.0", # Caution: version must match docker-compose.playwright.yaml - Update the docker-compose.yaml if necessary
148+
"playwright==1.58.0", # Caution: version must match docker-compose.playwright.yaml - Update the docker-compose.yaml if necessary
149149
"elasticsearch==9.2.1",
150150

151151
"qdrant-client==1.16.2",
152152

153153
"weaviate-client==4.19.2",
154-
"pymilvus==2.6.6",
154+
"pymilvus==2.6.8",
155155
"pinecone==6.0.2",
156-
"oracledb==3.4.1",
156+
"oracledb==3.4.2",
157157
"colbert-ai==0.2.22",
158158

159-
"firecrawl-py==4.13.0",
159+
"firecrawl-py==4.14.0",
160160
"azure-search-documents==11.6.0",
161161
]
162162

src/lib/components/common/SensitiveInput.svelte

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,15 @@
1111
export let outerClassName = 'flex flex-1 bg-transparent';
1212
export let inputClassName = 'w-full text-sm py-0.5 bg-transparent';
1313
export let showButtonClassName = 'pl-1.5 transition bg-transparent';
14+
export let screenReader = true;
1415
1516
let show = false;
1617
</script>
1718

1819
<div class={outerClassName}>
19-
<label class="sr-only" for={id}>{placeholder || $i18n.t('Password')}</label>
20+
{#if screenReader}
21+
<label class="sr-only" for={id}>{placeholder || $i18n.t('Password')}</label>
22+
{/if}
2023
<input
2124
{id}
2225
class={`${inputClassName} ${show ? '' : 'password'} ${($settings?.highContrastMode ?? false) ? 'placeholder:text-gray-700 dark:placeholder:text-gray-100' : ' outline-hidden placeholder:text-gray-300 dark:placeholder:text-gray-600'}`}

src/lib/components/workspace/Knowledge.svelte

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,15 @@
4848
$: if (query !== undefined) {
4949
clearTimeout(searchDebounceTimer);
5050
searchDebounceTimer = setTimeout(() => {
51-
if (loaded) {
52-
init();
53-
}
51+
init();
5452
}, 300);
5553
}
5654
5755
onDestroy(() => {
5856
clearTimeout(searchDebounceTimer);
5957
});
6058
61-
$: if (loaded && viewOption !== undefined) {
59+
$: if (viewOption !== undefined) {
6260
init();
6361
}
6462
@@ -77,6 +75,8 @@
7775
};
7876
7977
const init = async () => {
78+
if (!loaded) return;
79+
8080
reset();
8181
await getItemsPage();
8282
};

src/lib/components/workspace/Models.svelte

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@
8585
}
8686
8787
const getModelList = async () => {
88+
if (!loaded) return;
89+
8890
try {
8991
const res = await getWorkspaceModels(
9092
localStorage.token,

0 commit comments

Comments
 (0)