This repository was archived by the owner on Oct 12, 2026. It is now read-only.
Repository navigation
v1.2.1
[v1.2.1] - 2026-06-02
Compatible with Open WebUI v0.9.6
⚠️ Breaking changes
- Pinned-chat exemption is now a separate flag. Previously
--exempt-chats-in-foldersalso preserved pinned chats. It now preserves foldered chats only, and pinned chats are kept by the new--exempt-pinned-chatsflag (off by default).- Impact: this changes behaviour silently for non-interactive runs (cron,
docker exec, systemd). If a command relied on--exempt-chats-in-foldersto keep pinned chats, add--exempt-pinned-chats, otherwise old pinned chats will be deleted on the next run. Interactive mode is unaffected in practice: it now asks about pinned and foldered chats as two separate prompts.
- Impact: this changes behaviour silently for non-interactive runs (cron,
Added
- Age-based knowledge base retention (destructive, opt-in). New
--delete-knowledge-bases-older-than-days N, with--knowledge-bases-age-field {created_at,updated_at}(defaultcreated_at). This deletes knowledge bases purely by age, even when the owner is active and the KB is in use. It mirrors Open WebUI's own KB deletion: it removes the KB's vector collection, deletes the KB record, removes the KB's search-metadata embedding, and de-references the KB from any model that points at it (so referencing models keep working). The KB's now-unreferenced files, uploads, and per-file vector collections are reclaimed by the orphan sweep. Interactive mode adds a dedicated Knowledge Base Retention (DANGEROUS) configuration section. - Orphaned KB metadata cleanup. New
--delete-orphaned-kb-metadata(default on,--no-to disable). Removes leftover entries in the sharedknowledge-basessearch collection whose knowledge base no longer exists (e.g. KBs deleted outside the tool or by an older version). The same removal is folded into both the age-based and orphaned KB deletion paths so no ghost is left behind. - Orphaned memories cleanup. New
--delete-orphaned-memories(default on,--no-to disable). Reconciles each active user'suser-memory-{id}collection against thememorytable and removes memories left in the vector store after a user deleted them, fixing leftover memories that keep getting injected into chat context via RAG. On Qdrant this relies on the companion Open WebUI fix that deletes memories by point id (see Compatibility); Chroma and PGVector were already correct. --exempt-pinned-chatsflag to preserve pinned chats during age-based deletion, wired through interactive config, the settings summary, preview counts, deletion, and CSV export.- New CSV export categories:
old_knowledge_base,orphaned_kb_metadata,orphaned_memory, so every new deletion type is visible in--export-previewbefore you execute.
Changed
- Documentation regrouped by deletion philosophy. Configuration Options is now split into three categories, ordered safest to most destructive: Orphaned Data Cleanup (owner no longer exists), Age-Based Deletion (bounded blast radius), and Retention Policy (deletes live, owned, in-use data), plus an Execution & Output group.
--run-vacuumnow reflects that it covers the main and vector databases. Help text, the interactive VACUUM warning, and the README warning were updated accordingly.count_old_chatsgained a defensiveexempt_pinned=Falsedefault so existing/external callers do not break.
Fixed
- VACUUM no longer runs unconditionally during routine prunes. The PGVector cleaner previously executed
VACUUM ANALYZE document_chunkon every--executerun as part of orphan-chunk cleanup, locking that table even when--run-vacuumwas not set. Vector-database VACUUM now happens only when--run-vacuumis enabled, where it already vacuums the whole vector database. Routine prunes are faster and no longer lock the table; reclaiming dead space is deferred to your maintenance window, as intended.
Compatibility
- The orphaned-memories cleanup on Qdrant requires the Open WebUI release that deletes memories by point id (Chroma and PGVector need no change). Other features work against current Open WebUI; see
COMPATIBILITY.md.
Upgrade notes
- Review the breaking change above and add
--exempt-pinned-chatsto any scripted command that was relying on--exempt-chats-in-foldersto keep pinned chats. - The new retention flag (
--delete-knowledge-bases-older-than-days) deletes live data and has no undo. Always run with--dry-run(optionally--export-preview) first.