mirror of
https://github.com/open-webui/oikb.git
synced 2026-11-05 01:27:25 +00:00
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
open-webui/oikb#119
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/open-webui/oikb/pull/110
Author: @julianlucks
Created: 8/24/2026
Status: 🔄 Open
Base:
main← Head:fix/permanent-upload-failure-skip📝 Commits (4)
b81b7b4fix: skip files permanently rejected by the server until they change (#106)13e0e7cfix: track async uploads, verify status instead of re-uploading (#106)266af51docs: changelog + guide entries for permanent-failure skip (#106)3d03e5bMerge origin/main (v0.5.0) into fix/permanent-upload-failure-skip📊 Changes
8 files changed (+403 additions, -4 deletions)
View changed files
📝
CHANGELOG.md(+10 -0)📝
docs/guide.md(+18 -0)📝
src/oikb/cli.py(+47 -0)📝
src/oikb/client.py(+26 -0)📝
src/oikb/daemon.py(+3 -0)📝
src/oikb/history.py(+158 -1)📝
src/oikb/kb_sync.py(+3 -0)📝
src/oikb/sync.py(+138 -3)📄 Description
Fixes #106.
When Open WebUI rejects a file during ingestion, it is never linked to the KB, so
/sync/diffreports it as "added" on every subsequent sync and oikb re-uploads it on every cycle. Every upload creates a new file record and physical copy server-side, which accumulates unboundedly (orphaned records, disk growth).There are two rejection channels, both handled:
failed, or processed but never linked). Accepted uploads are now tracked (checksum + file id). When the diff reports a tracked file again, oikb checksGET /files/{id}/process/statusinstead of re-uploading:failed→ recorded as permanent failure, skippedcompletedbut unlinked → the existing file is re-linked in place (no second copy)pending/processing→ skipped for that run, checked again next runNotes:
oikb failurescommand (--kb-id,--clear,--json) to inspect/reset recorded rejections.skipped_failed/skipped_pendingcounters (CLI summary + daemon dry-run response).Test plan
failed, pending→linked, completed-unlinked→re-link, re-link rejected→permanent)🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.