Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
776 commits
Select commit Hold shift + click to select a range
1824e69
refac
tjbck Apr 20, 2026
5162755
refac
tjbck Apr 20, 2026
b645b0d
refac
tjbck Apr 20, 2026
7ddb970
refac
tjbck Apr 21, 2026
e88e565
refac
tjbck Apr 21, 2026
4790fab
fix(ui): add shift+click to bypass message deletion confirmation (#23…
silentoplayz Apr 21, 2026
81383a7
fix: always rAF-throttle markdown parsing during streaming (#23868)
Algorithm5838 Apr 21, 2026
a2875f1
refac
tjbck Apr 21, 2026
46d73c9
refac
tjbck Apr 21, 2026
6583443
refac
tjbck Apr 21, 2026
f485309
refac
tjbck Apr 21, 2026
a27916d
refac
tjbck Apr 21, 2026
c4aac04
refac
tjbck Apr 21, 2026
7fd94b0
refac
tjbck Apr 21, 2026
0e3135f
chore: changelog (#23187)
Classic298 Apr 21, 2026
5f76c25
refac
tjbck Apr 21, 2026
c7b6de6
refac
tjbck Apr 21, 2026
b9fc3f3
refac
tjbck Apr 21, 2026
6cc799b
chore: format
tjbck Apr 21, 2026
0542df1
refac
tjbck Apr 21, 2026
65f5584
refac
tjbck Apr 21, 2026
116eb7f
refac
tjbck Apr 21, 2026
085d3cb
refac
tjbck Apr 21, 2026
3b821e1
refac
tjbck Apr 21, 2026
493f238
refac
tjbck Apr 21, 2026
f31768e
Merge pull request #23318 from open-webui/dev
tjbck Apr 21, 2026
9f61a6f
fix
tjbck Apr 21, 2026
f162d4d
doc
tjbck Apr 21, 2026
0a8a620
Merge pull request #23925 from open-webui/dev
tjbck Apr 21, 2026
d56d74b
refac
tjbck Apr 23, 2026
83f3a9c
fix: remove reactive label from onDestroy in Markdown
Algorithm5838 Apr 23, 2026
ef77c3d
Merge pull request #24048 from Algorithm5838/fix/markdown-ondestroy-r…
tjbck Apr 24, 2026
a4eb102
Update fi-FI translation.json (#24010)
Kylapaallikko Apr 24, 2026
d479933
refac
tjbck Apr 24, 2026
91d9870
i18n: update ko-KR translations (conflict solved) (#23949)
PythonToGo Apr 24, 2026
9b57786
i18n: add pt-BR translations for newly added UI items and consistency…
joaoback Apr 24, 2026
f6bd08c
fix(utils): Switch throttle decorator to async (#23979)
tcx4c70 Apr 24, 2026
89669f3
refac
tjbck Apr 24, 2026
4dc5c1e
refac
tjbck Apr 24, 2026
d0e51bd
refac
tjbck Apr 24, 2026
0e311a9
refac
tjbck Apr 24, 2026
58bc254
feat: add PaddleOCR-vl loader support and implement retrieval router …
goodbey857 Apr 24, 2026
90584ab
refac
tjbck Apr 24, 2026
6ecba19
refac
tjbck Apr 24, 2026
258e9f9
Enhance image loading performance by adding preload links and setting…
jmleksan Apr 24, 2026
b73538e
feat(ui): add citation source overflow badge (#23918)
RomualdYT Apr 24, 2026
b87c755
refac
tjbck Apr 24, 2026
6089de0
i18n: enhance and expand Dutch language translations (#23944)
lukaas33 Apr 24, 2026
7da6b82
refac
tjbck Apr 24, 2026
a766521
refac
tjbck Apr 24, 2026
a76a779
refac
tjbck Apr 24, 2026
f2cb631
perf: redirect default model profile image to canonical static URL (#…
jmleksan Apr 24, 2026
26711c1
refac
tjbck Apr 24, 2026
5cc55e2
refac
tjbck Apr 24, 2026
678c44c
refac
tjbck Apr 24, 2026
d740b54
refac
tjbck Apr 24, 2026
db05fda
refac
tjbck Apr 24, 2026
5774ab4
refac
tjbck Apr 24, 2026
d6b73ea
refac
tjbck Apr 24, 2026
465d6fe
feat: enhance RichTextInput configuration to prevent duplicate extens…
jmleksan Apr 24, 2026
6269393
refac
tjbck Apr 24, 2026
d8b55af
refac
tjbck Apr 24, 2026
3e14524
refac
tjbck Apr 24, 2026
7522382
refac
tjbck Apr 24, 2026
9771898
refac
tjbck Apr 24, 2026
34a55d4
refac
tjbck Apr 24, 2026
60f67c7
refac
tjbck Apr 24, 2026
2419899
refac
tjbck Apr 24, 2026
a7a92d2
refac
tjbck Apr 24, 2026
1cea8ec
refac
tjbck Apr 24, 2026
7102a63
refac
tjbck Apr 24, 2026
3d1e355
refac
tjbck Apr 24, 2026
70b28b6
refac
tjbck Apr 24, 2026
b1bd308
changelog (#24072)
Classic298 Apr 24, 2026
e0d6074
refactor(firecrawl): use v2 API directly (#23934)
RomualdYT Apr 24, 2026
3aeb691
chore: bump
tjbck Apr 24, 2026
3560d2f
perf(chats): drop redundant db.refresh after commit in update_chat_by…
runixer Apr 24, 2026
f48b8ff
refac
tjbck Apr 24, 2026
8ff7ff4
chore: format
tjbck Apr 24, 2026
f93d20a
chore: i18n
tjbck Apr 24, 2026
4e2240a
refac
tjbck Apr 24, 2026
8dae237
0.9.2 (#24081)
tjbck Apr 24, 2026
5bc80b1
refac
tjbck May 4, 2026
86df8bf
refac
tjbck May 4, 2026
cde21b9
refac
tjbck May 4, 2026
4e6a7ba
Merge pull request #24356 from Classic298/patch-1
Classic298 May 4, 2026
989d5fd
refac
tjbck May 4, 2026
a32d26e
refac
tjbck May 4, 2026
4fe2de7
refac
tjbck May 8, 2026
5c3edc2
refac
tjbck May 8, 2026
4754ece
refac
tjbck May 8, 2026
1f977d0
chore: Update SECURITY.md (#24363)
Classic298 May 8, 2026
2a18dc9
Implement asynchronous database ping for health checks (#24380)
jmleksan May 8, 2026
1dee67b
refac
tjbck May 8, 2026
f39f4a8
refac
tjbck May 8, 2026
2977910
refac
tjbck May 8, 2026
b72019d
refac
tjbck May 8, 2026
6bdc2ff
refac
tjbck May 8, 2026
ef6d4f2
refac
tjbck May 8, 2026
fd3368c
refac
tjbck May 8, 2026
9adc0c4
refac
tjbck May 8, 2026
55a572c
refac
tjbck May 8, 2026
1c1c8b1
refac
tjbck May 8, 2026
7e275c1
fix: prevent STT from blocking the uvicorn event loop (#24338)
Classic298 May 8, 2026
6dff85b
refac
tjbck May 8, 2026
e451f8f
fix: open file content in new window when clicking file name in FileI…
athoik May 8, 2026
3309f5d
refac
tjbck May 8, 2026
0103d7e
refac
tjbck May 8, 2026
7eaecba
refac
tjbck May 8, 2026
ff791b4
refac
tjbck May 8, 2026
cde72da
refac
tjbck May 8, 2026
bc4d6ee
refac
tjbck May 8, 2026
60ea421
refac
tjbck May 8, 2026
f152ad3
refac
tjbck May 8, 2026
552bbce
refac
tjbck May 8, 2026
8b78821
Refactor file processing to use asyncio for transcribing, improving c…
jmleksan May 8, 2026
d06e6d6
Apply validate_profile_image_url to ChannelWebhookForm.profile_image_…
Classic298 May 8, 2026
4d766a3
refac
tjbck May 8, 2026
cdfcbc4
refac
tjbck May 8, 2026
7c398a6
refac
tjbck May 8, 2026
c676352
refac
tjbck May 8, 2026
6082e1a
refac
tjbck May 8, 2026
55d1db1
fix: stream GET /chats/all to prevent OOM on large chat histories (#2…
Classic298 May 8, 2026
c1202a2
refac
tjbck May 8, 2026
8ffc3d7
refac
tjbck May 8, 2026
1b4cd70
refac
tjbck May 8, 2026
005df57
refac
tjbck May 8, 2026
33e588c
refac
tjbck May 8, 2026
23ff994
refac
tjbck May 8, 2026
b63da90
Enhance CommitSessionMiddleware to allow health probes to bypass sess…
jmleksan May 8, 2026
9386fc8
refac
tjbck May 8, 2026
072d200
refac
tjbck May 8, 2026
3d48596
refac
tjbck May 8, 2026
c978a78
refac
tjbck May 8, 2026
55e7c78
refac
tjbck May 8, 2026
7eeff2f
refac
tjbck May 8, 2026
3746339
refac: apply DOMPurify to excel and office HTML render assignments (#…
Classic298 May 8, 2026
114c99a
I18n/improve chinese translation (#24194)
ShirasawaSama May 8, 2026
41107a3
perf(prompts): filter prompt list in SQL instead of N+1 has_access lo…
Classic298 May 8, 2026
1789303
refac
tjbck May 8, 2026
3ab7b77
refac
tjbck May 8, 2026
26b1a3d
Update catalan translation.json (#24174)
aleixdorca May 8, 2026
1a3e5ef
perf(prompts): make /tags fetch only the tags column with SQL access …
Classic298 May 8, 2026
1369355
refac
tjbck May 8, 2026
ae43562
refac
tjbck May 8, 2026
aff78e4
i18n: Add Tagalog (Filipino) translation (#24254)
VincentDev007 May 8, 2026
212bb68
refac
tjbck May 8, 2026
bf4f44e
refac
tjbck May 8, 2026
064fdec
refac
tjbck May 8, 2026
ae0827c
style(env): satisfy ruff (datetime alias, line length, identity check…
ashm-dev May 8, 2026
d78c247
Korean Translation Update (#24087)
Cyp9715 May 8, 2026
9907c0a
refac
tjbck May 8, 2026
af5628f
refac
tjbck May 8, 2026
f70b0da
refac
tjbck May 8, 2026
34146ab
refac
tjbck May 8, 2026
38a382e
refac
tjbck May 8, 2026
ee3b829
refac
tjbck May 8, 2026
794b970
refac
tjbck May 8, 2026
1d892ce
refac
tjbck May 8, 2026
1baf73b
refac
tjbck May 8, 2026
6700f7b
feat: brave search llm context
tjbck May 8, 2026
bb0e6cb
refac
tjbck May 8, 2026
29f6c72
refac
tjbck May 8, 2026
02f9fe7
refac
tjbck May 8, 2026
2ba6b42
refac
tjbck May 8, 2026
5b80932
refac
tjbck May 8, 2026
a938c8a
refac
tjbck May 8, 2026
e1dce99
refac
tjbck May 8, 2026
adda205
fix(mcp): remove asyncio.wait_for/shield from MCP cleanup in chat han…
looselyhuman May 8, 2026
cfd2888
fix:image url validation and signout post (#24420)
Classic298 May 8, 2026
11e0768
refac
tjbck May 8, 2026
85c7373
refac
tjbck May 8, 2026
485d689
refac
tjbck May 8, 2026
04bd042
refac
tjbck May 8, 2026
3fcad2f
refac
tjbck May 8, 2026
4d99baa
refac
tjbck May 9, 2026
251b80e
refac
tjbck May 9, 2026
aa51ce4
refac
tjbck May 9, 2026
46ff3ab
refac
tjbck May 9, 2026
7bcc0e2
chore: format
tjbck May 9, 2026
b94aad2
chore: changelog (#24358)
Classic298 May 9, 2026
75e72ea
doc: changelog
tjbck May 9, 2026
3ccf263
refac
tjbck May 9, 2026
93931ef
refac
tjbck May 9, 2026
6116c6d
refac
tjbck May 9, 2026
d34d429
chore: format
tjbck May 9, 2026
413dcae
refac
tjbck May 9, 2026
adc9076
0.9.3 (#24482)
tjbck May 9, 2026
7d3efb8
refac
tjbck May 9, 2026
0f07af1
fix: bump to 0.9.4, changelog for scroll fix
tjbck May 9, 2026
f51d2b0
Merge pull request #24483 from open-webui/dev
tjbck May 9, 2026
a0268e5
Merge pull request #24486 from Classic298/fix/notes-is-pinned-typeerror
Classic298 May 9, 2026
793e628
refac
tjbck May 9, 2026
8854541
fix: prevent redirect-based SSRF in web-fetch and image-load call sit…
Classic298 May 9, 2026
2fa3b84
chore: bump
tjbck May 9, 2026
df42d96
refac
tjbck May 9, 2026
2e71b3f
chore: format
tjbck May 9, 2026
69270e1
doc: changelog
tjbck May 9, 2026
8a0018c
fix: gate public sharing of calendars behind sharing.public_calendars…
Classic298 May 9, 2026
9918ab6
fix: gate public sharing of skills behind sharing.public_skills on cr…
Classic298 May 9, 2026
203ec29
chore: remove unauthenticated dead-code GET /api/v1/retrieval/ status…
Classic298 May 9, 2026
55535a8
doc: changelog
tjbck May 9, 2026
8689f70
chore: format
tjbck May 9, 2026
b0a5637
chore
tjbck May 9, 2026
5b13e3e
i18n: add pt-BR translations for newly added UI items and consistency…
joaoback May 10, 2026
e7ba897
fix: reject parser-confusing chars in validate_url to close SSRF bypa…
Classic298 May 10, 2026
c66c273
fix: strip model params for read-only callers on per-id endpoint (#24…
Classic298 May 10, 2026
2d9939e
chore: add validate_url() to get_image_data() for cohort consistency …
Classic298 May 10, 2026
d373717
fix: require write permission for pin_channel_message on standard cha…
Classic298 May 10, 2026
e8e9141
refac
tjbck May 10, 2026
f5e110f
fix: enforce message ownership in group/DM channel update + delete en…
Classic298 May 10, 2026
841c904
fix: gate tool content updates behind workspace.tools to match create…
Classic298 May 10, 2026
d11e06f
fix: prevent redirect-based SSRF and enforce collecton write access (…
Classic298 May 10, 2026
8d3133f
refac
tjbck May 10, 2026
fc94118
fix: prevent mass-assignment user_id spoofing in POST /api/v1/evaluat…
Classic298 May 10, 2026
d1ef538
refac
tjbck May 10, 2026
1388f45
refac
tjbck May 10, 2026
3bba1c2
feat: add IFRAME_CSP env var for srcdoc iframe content security policy
tjbck May 10, 2026
3155660
refac
tjbck May 10, 2026
4a1064c
refac
tjbck May 10, 2026
2dbf7b6
refac
tjbck May 10, 2026
3a21b33
refac
tjbck May 10, 2026
15e6966
refac
tjbck May 10, 2026
39777e3
doc: changelog
tjbck May 10, 2026
c951b4f
chore: format
tjbck May 10, 2026
0037bae
enh: channels streaming agent
tjbck May 10, 2026
4856ce4
chore: format
tjbck May 10, 2026
41b48b5
doc: changelog
tjbck May 10, 2026
3660bc0
Merge pull request #24492 from open-webui/dev
tjbck May 10, 2026
f79f99d
feat: rebase Flexion customizations onto v0.8.10
lgarceau768 Mar 9, 2026
f6c8929
chore: enable bedrock-usage-watcher and update repos
lgarceau768 Apr 16, 2026
a515055
feat: add model selector modal and enhance OAuth prompt (#21)
lgarceau768 Apr 20, 2026
e156747
fix: update Flexion customizations for v0.9.5 compatibility
lgarceau768 May 18, 2026
6743680
docs: expand upstream sync runbook and CI workflow guide in README_FL…
lgarceau768 May 18, 2026
29299e7
fix: add FileResponse import and strip IPv6 CIDR from no_proxy in Doc…
lgarceau768 May 18, 2026
589578d
docs: add session notes for v0.8.10 → v0.9.5 upstream sync and produc…
lgarceau768 May 19, 2026
4ac8ca3
docs: update session notes — OAUTH_ALLOWED_ROLES set to flexion-deliv…
lgarceau768 May 19, 2026
d9590cb
chore(ci): disable inherited upstream workflows on flex
bdruth May 19, 2026
9930240
feat(ci): add publish-flex-image workflow for ECR publishes
bdruth May 19, 2026
83be98b
Merge pull request #24 from flexion/chore/flex-ci-setup
bdruth May 19, 2026
e4d002a
feat(ci): add upstream-sync workflow with deterministic conflict rules
bdruth May 19, 2026
f8f3bdc
refactor(ci): trigger upstream sync on schedule + new release tag
bdruth May 19, 2026
0bb2a3d
Merge pull request #25 from flexion/feat/upstream-sync-workflow
bdruth May 19, 2026
99f4b4b
chore(ci): bump actions to latest majors (Node 24 LTS)
bdruth May 19, 2026
5423ccb
Merge pull request #26 from flexion/chore/bump-actions-to-node24
bdruth May 19, 2026
aad216e
fix(ci): use GITHUB_TOKEN instead of SYNC_PAT for upstream-sync
bdruth May 20, 2026
6f730f4
Merge pull request #29 from flexion/fix/upstream-sync-use-github-token
bdruth May 20, 2026
edfb2ed
fix(ci): force-fetch upstream tags in Upstream Sync
bdruth May 20, 2026
ca7284c
Merge pull request #30 from flexion/fix/upstream-sync-force-tags
bdruth May 20, 2026
d290077
feat(config): read OPENAI_API_CONFIGS from env var as JSON (#31)
bdruth May 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,15 @@

This is to ensure large feature PRs are discussed with the community first, before starting work on it. If the community does not want this feature or it is not relevant for Open WebUI as a project, it can be identified in the discussion before working on the feature and submitting the PR.

<!--
### ⚠️ Important: Your PR is a contribution, not a guarantee of merge.

The most impactful way to contribute to Open WebUI is through well-written bug reports, detailed feature discussions, and thoughtful ideas. These directly shape the project. If you do open a pull request, please know that Open WebUI is held to the highest standard of code quality, consistency, and architectural coherence, and every line merged becomes something the core team must own, maintain, and support indefinitely. Submitted code may be refactored, rewritten, or used as inspiration for a different implementation. This is not a reflection of your work's quality. It is how we ensure that a small team can deeply understand and evolve every part of the codebase.
-->

**Before submitting, make sure you've checked the following:**

- [ ] **Linked Issue/Discussion:** This PR references an existing [Issue](https://github.com/open-webui/open-webui/issues) or [Discussion](https://github.com/open-webui/open-webui/discussions) — `Closes #___` / `Relates to #___`. If one does not exist, create one first. PRs without a linked issue or discussion may be closed without review.
- [ ] **Target branch:** Verify that the pull request targets the `dev` branch. **PRs targeting `main` will be immediately closed.**
- [ ] **Description:** Provide a concise description of the changes made in this pull request down below.
- [ ] **Changelog:** Ensure a changelog entry following the format of [Keep a Changelog](https://keepachangelog.com/) is added at the bottom of the PR description.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,7 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install black
pip install "ruff>=0.15.5"

- name: Format backend
run: npm run format:backend

- name: Check for changes after format
run: git diff --exit-code
- name: Ruff format check
run: ruff format --check . --exclude .venv --exclude venv
83 changes: 83 additions & 0 deletions .github/workflows/publish-flex-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: Publish flex image to ECR

on:
workflow_dispatch:
inputs:
version:
description: 'Version tag for ECR (e.g. v0.9.6). Use the upstream release tag verbatim — keep the 0. prefix.'
required: true
type: string
environment:
description: 'Target environment'
required: true
type: choice
options:
- dev
- prod
default: dev

permissions:
id-token: write
contents: read

jobs:
publish:
name: Build flex@${{ github.sha }} → open-webui-${{ inputs.environment }}:${{ inputs.version }}
# ARM-native runner — matches Fargate ARM target, no QEMU emulation needed.
runs-on: ubuntu-24.04-arm
env:
AWS_REGION: ${{ secrets.AWS_REGION }}
REPOSITORY: open-webui-${{ inputs.environment }}
steps:
- uses: actions/checkout@v6

- uses: aws-actions/configure-aws-credentials@v6
with:
role-to-assume: ${{ inputs.environment == 'prod' && secrets.AWS_ROLE_ARN_PROD || secrets.AWS_ROLE_ARN_DEV }}
aws-region: ${{ env.AWS_REGION }}

- uses: docker/setup-buildx-action@v4

- id: ecr
uses: aws-actions/amazon-ecr-login@v2

- name: Refuse to overwrite an existing tag
run: |
if aws ecr describe-images \
--repository-name "$REPOSITORY" \
--region "$AWS_REGION" \
--image-ids imageTag="${{ inputs.version }}" \
>/dev/null 2>&1; then
echo "::error title=Tag exists::${REPOSITORY}:${{ inputs.version }} already exists in ECR. Promotion is intentionally not idempotent — delete the existing tag manually or pick a different version."
exit 1
fi

- name: Build and push (linux/arm64)
uses: docker/build-push-action@v7
with:
context: .
platforms: linux/arm64
push: true
tags: ${{ steps.ecr.outputs.registry }}/${{ env.REPOSITORY }}:${{ inputs.version }}
build-args: |
BUILD_HASH=${{ github.sha }}
USE_PERMISSION_HARDENING=false

- name: Show pushed image
run: |
aws ecr describe-images \
--repository-name "$REPOSITORY" \
--region "$AWS_REGION" \
--image-ids imageTag="${{ inputs.version }}" \
--query 'imageDetails[0].{Digest:imageDigest,Tags:imageTags,Pushed:imagePushedAt,SizeBytes:imageSizeInBytes}' \
--output table

- name: Next-step reminder
run: |
cat <<EOF
::notice title=Next step::Image is in ECR but not deployed yet. Open a PR
in flexion/flexion-open-webui-infra changing imageTag in
cdk-infra/lib/cdk-infra-stack.ts to '${{ inputs.version }}' (and update
the matching assertion in cdk-infra/test/cdk-infra.test.ts). Merge to deploy.
See docs/UPGRADING.md in the infra repo.
EOF
49 changes: 0 additions & 49 deletions .github/workflows/ruff.yml

This file was deleted.

Loading
Loading