Commit graph

5415 commits

Author SHA1 Message Date
Timothy Jaeryang Baek
f4e99c80f6 refac: "tool_calls" finish reason support 2026-02-16 00:53:01 -06:00
Timothy Jaeryang Baek
09dc28df1e chore: format 2026-02-16 00:43:32 -06:00
Timothy Jaeryang Baek
c748c3ede7 refac 2026-02-16 00:41:36 -06:00
Timothy Jaeryang Baek
33308022f0 refac 2026-02-15 23:57:40 -06:00
Timothy Jaeryang Baek
88401e91c7 refac 2026-02-15 23:28:47 -06:00
Timothy Jaeryang Baek
7a7d902238 refac 2026-02-15 19:32:22 -06:00
Timothy Jaeryang Baek
3ae4c618e1 refac 2026-02-15 19:07:53 -06:00
Timothy Jaeryang Baek
4a0d893995 refac 2026-02-15 19:03:08 -06:00
Timothy Jaeryang Baek
b780d5c556 refac 2026-02-15 18:41:16 -06:00
Timothy Jaeryang Baek
911eecac85 fix: disabled mcp display issue
Co-Authored-By: Dario Ruellan <6965667+druellan@users.noreply.github.com>
2026-02-15 18:10:18 -06:00
Timothy Jaeryang Baek
319d3e8856 refac 2026-02-15 17:55:59 -06:00
Timothy Jaeryang Baek
f20cc6d7e6 refac
Co-Authored-By: SpootyMcSpoot <6732450+spootymcspoot@users.noreply.github.com>
2026-02-15 17:29:55 -06:00
Timothy Jaeryang Baek
f1a1e64d2e refac: explicit toggle builtin tools 2026-02-15 17:20:49 -06:00
Timothy Jaeryang Baek
f2aca781c8 refac: tool message handling 2026-02-15 16:14:47 -06:00
Timothy Jaeryang Baek
393c0071dc refac: manual skill invocation 2026-02-14 19:22:17 -06:00
Timothy Jaeryang Baek
7e224e4a53 refac 2026-02-13 18:26:03 -06:00
Timothy Jaeryang Baek
5de60dc922 refac 2026-02-13 17:44:52 -06:00
Taylor Wilsdon
a30b106ea3
fix issues/21399 (#21400) 2026-02-13 17:42:34 -06:00
Timothy Jaeryang Baek
d33ad462aa refac 2026-02-13 17:38:57 -06:00
Timothy Jaeryang Baek
3b61562c82 refac 2026-02-13 17:26:54 -06:00
Timothy Jaeryang Baek
b36f8d9314 chore: format 2026-02-13 15:00:47 -06:00
Timothy Jaeryang Baek
626d236d13 chore: format 2026-02-13 15:00:39 -06:00
Timothy Jaeryang Baek
79ecbfc757 refac 2026-02-13 14:59:20 -06:00
Timothy Jaeryang Baek
a9b8677cc0 refac 2026-02-13 14:59:05 -06:00
Classic298
0f3f68b0c4
enh (#21362) 2026-02-13 14:56:53 -06:00
Timothy Jaeryang Baek
abc9b63093 refac
Co-Authored-By: Juan Calderon-Perez <835733+gaby@users.noreply.github.com>
2026-02-13 14:55:13 -06:00
Timothy Jaeryang Baek
f027a01ab2 fix: direct model access control 2026-02-13 14:39:01 -06:00
Timothy Jaeryang Baek
d1d1efe212 refac: scim 2026-02-13 14:27:11 -06:00
Timothy Jaeryang Baek
b7549d2f6c refac: defer profile 2026-02-13 14:08:07 -06:00
Timothy Jaeryang Baek
589c4e64c1 refac 2026-02-13 13:56:29 -06:00
Timothy Jaeryang Baek
20de5a87da refac 2026-02-13 13:43:43 -06:00
Timothy Jaeryang Baek
ca6b18ab5c refac: is_user_active 2026-02-13 13:40:59 -06:00
Classic298
97a3b1528d
Update utils.py (#21105) 2026-02-13 13:37:12 -06:00
Classic298
d01b1d4880
enh: apply admin default to builtin web search (#21373) 2026-02-13 13:32:48 -06:00
Timothy Jaeryang Baek
df6e38039f refac 2026-02-13 13:29:22 -06:00
Timothy Jaeryang Baek
b4c3f54f96 fix: skills postgres issue 2026-02-13 11:24:08 -06:00
Classic298
73776d54b8
fix: enforce public sharing permission checks across all resource types (#21358)
The sharePublic prop in editor components (Knowledge, Tools, Skills,
Prompts, Models) incorrectly included an "|| edit" / "|| write_access"
condition, allowing users with write access to see and use the "Public"
sharing option regardless of their actual public sharing permission.
Additionally, all backend access/update endpoints only verified write
authorization but did not check the corresponding sharing.public_*
permission, allowing direct API calls to bypass frontend restrictions
entirely.
Frontend: removed the edit/write_access bypass from sharePublic in all
five editor components so visibility is gated solely by the user's
sharing.public_* permission or admin role.
Backend: added has_public_read_access_grant checks to the access/update
endpoints in knowledge.py, tools.py, prompts.py, skills.py, models.py,
and notes.py. Public grants are silently stripped when the user lacks
the corresponding permission.
Fixes #21356
2026-02-13 11:22:32 -06:00
Timothy Jaeryang Baek
7bda6bf767 fix: PostgreSQL cannot use get_chat_ids_by_model_id
Co-Authored-By: EntropyYue <164553692+EntropyYue@users.noreply.github.com>
2026-02-13 11:20:26 -06:00
Timothy Jaeryang Baek
5297dceb2a chore: format 2026-02-12 17:36:19 -06:00
Timothy Jaeryang Baek
59afbd6f92 refac 2026-02-12 17:35:22 -06:00
Timothy Jaeryang Baek
850a864b02 refac 2026-02-12 16:54:32 -06:00
Timothy Jaeryang Baek
2a11175f22 chore: format 2026-02-12 16:13:48 -06:00
Timothy Jaeryang Baek
3238d94a0e refac 2026-02-12 15:57:27 -06:00
Timothy Jaeryang Baek
8919d8a82a refac 2026-02-12 15:52:50 -06:00
Classic298
ea4ef28da5
init (#20883)
Co-authored-by: Tim Baek <tim@openwebui.com>
2026-02-12 15:50:13 -06:00
Classic298
e8499ccdd1
fix: pass chat_id to internal task calls for consistent function context (#20585)
Ensure chat_id is reliably passed to function pipelines/manifolds during internal task invocations (web search query generation, RAG query generation, image prompt generation).

This allows stateful functions to maintain per-chat state without fragmentation, as they will now receive a consistent chat_id for all chat-scoped invocations including internal tasks.

Backend changes:
- Pass chat_id in generate_queries call for web search
- Pass chat_id in generate_queries call for RAG/retrieval
- Pass chat_id in generate_image_prompt call

Frontend changes:
- Add optional chat_id parameter to generateQueries API function
- Add optional chat_id parameter to generateAutoCompletion API function

Fixes #20563
2026-02-12 15:36:42 -06:00
Timothy Jaeryang Baek
0dcbd05e24 refac 2026-02-12 15:29:34 -06:00
Timothy Jaeryang Baek
c653e4ec54 refac 2026-02-12 15:25:24 -06:00
Classic298
8cf32ae2a7
fix: prevent worker death during document upload by using run_coroutine_threadsafe (#21158)
* fix: prevent worker death during document upload by using run_coroutine_threadsafe

Replace asyncio.run() with asyncio.run_coroutine_threadsafe() in
save_docs_to_vector_db() to prevent uvicorn worker health check failures.

The issue: asyncio.run() creates a new event loop and blocks the thread
completely, preventing the worker from responding to health checks during
long-running embedding operations (>5 seconds default timeout).

The fix: Schedule the async embedding work on the main event loop using
run_coroutine_threadsafe(). This keeps the main loop responsive to health
check pings while the sync caller waits for the result.

Changes:
- main.py: Store main event loop reference in app.state.main_loop at startup
- retrieval.py: Use run_coroutine_threadsafe() instead of asyncio.run()

https://claude.ai/code/session_01UQSYvSTkXb57sFb7M85Kcw

* add env var

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-02-12 15:22:57 -06:00
Classic298
c6af296b60
add message id (#21214) 2026-02-12 15:04:27 -06:00