v1.0.26
v1.0.26
Prune v0.10.7
Important
NEW:
The Prune Event Function
New plugin. Automatic, throttled database and storage cleanup driven by system events. Old chats, inactive accounts, orphaned records, uploads and vector collections are cleaned up in the background, slowly on purpose, so a live instance never feels it. Requires Open WebUI 0.10.2. Automated deletions. On demand deletions. Both. Full UI inside Open WebUI. Whatever you prefer!
Added
- Event-driven cleanup, no cron. Startup triggers a full sweep, chat activity ages out old chats, logins and signups catch dead accounts, and destruction events (
user.deleted,knowledge.deleted,file.deleted_all) trigger a reconciliation. Deletion stays off until you flip the master switch; dry-run Preview is always safe. - Purposefully slow deletion. A
deletion_rows_per_secondthrottle (default 50) trickles deletes with the write path free between rows and commits each batch before sleeping; it applies live to a running pass. Optionalscan_rows_per_secondcaps the read side. - Fast, resource-bounded scans. JSON columns are scanned as raw text with one compiled regex instead of json-decoding every chat (an order of magnitude faster on large databases), yielding the event loop between batches.
- Live progress. Preview, Execute and automatic passes report a stage plus a counted percentage.
- Multi-worker safe. Redis
SET NX EXclaims plus a heartbeat-renewed global run lock (in-process fallback without Redis; Valkey works) mean exactly one worker prunes fleet-wide and passes never overlap. - Reference-based file safety. A file is deleted only when nothing references it (no chat, KB, note, folder, channel or model);
orphan_file_grace_hours(default 24) protects fresh uploads. - Shared data of departed users survives. Orphaned knowledge bases, models, prompts, tools, notes and skills are kept when a living user, an existing group or a public grant can still reach them (per-category exempt toggles, on by default).
- Complete account cleanup. Inactive-user deletion removes the account and its login credentials through Open WebUI's own admin-delete path, plus automations and stored memories; admins and pending users are exempt by default.
- Manual admin page at
/prune. Session-gated Preview (per-category counts) and Execute (typedDELETEconfirm) with a live run log, resumable if the page is closed, plus an explicit VACUUM checkbox. - Vector database coverage: ChromaDB, PGVector, Milvus and Qdrant, including both multitenancy modes; other stores are skipped safely.
- Orphaned-memory cleanup is opt-in. Off by default: per-user vector probing is slow without dedicated DB indexes (roughly 1 minute per user on a constrained database), so it stays off with an in-UI warning until you enable it deliberately.
Interface Defaults v1.1.0
Added
- Floating Quick Action Buttons (JSON) valve: set the text-selection popup actions (the Ask/Explain style buttons) instance-wide from a JSON array of
{id, label, input, prompt}, with{{SELECTED_CONTENT}},{{CONTENT}}and{{INPUT_CONTENT}}placeholders. Invalid JSON is ignored. Includes a copy-paste README tutorial and admin ideas. - Manage only what you set. Only options switched to Custom are written; anything left on Default is never pushed, so each user keeps their own choice for it.
Fixed
- Factory reset no longer wipes unrelated settings.
settings.uiholds a user's whole store (system prompt, default model, audio, notification webhook, pinned models), so reset now clears only the interface keys this function manages instead of the entire store. - Image-compression pixel inputs no longer crash on
0, non-numeric junk or non-ASCII digits. - A trigger ticked while the function is disabled, or left ticked by a crash before it ran, is discarded on the next enable or startup instead of firing late.
Changed
- Writes deep-merge into each user's existing
settings.uiinstead of replacing it, and the shared snapshot is deep-copied per user so one user's write can't reach another's. - Apply to all and Reset all walk users in keyset-paginated chunks, so no user is skipped or double-processed when accounts are created or deleted mid-run; no-op writes are skipped.
- New-user seeding now also covers LDAP and admin-created accounts (alongside signup, OAuth and SCIM).
- Raised the minimum supported Open WebUI version to 0.10.2 (README previously stated 0.10.0).
Email Composer v1.0.2
Fixed
- The interactive email card now renders inline under Open WebUI 0.10 native tool calling (#54). The card is delivered on the message-level
embedschannel instead of only appearing inside the collapsed tool-call details, with a fallback to the previous return on older Open WebUI. Existing users must re-pastetool.pyto pick up the fix.
Documentation
Changed
- Corrected the function-calling setup wording for Open WebUI 0.10+ (#58) in Email Composer, Inline Visualizer and Inline Visualizer v2:
DefaultandNativeboth work andDefaulthas been native since0.10.0, onlyLegacyis legacy. - Inline Visualizer v2: corrected the skill install path to Workspace → Knowledge → Create Skill.