mirror of
https://github.com/open-webui/oikb.git
synced 2026-11-05 01:27:25 +00:00
[GH-ISSUE #33] Bug: Root-level files not uploaded during sync of local directory #19
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#19
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?
Originally created by @bubgigant on GitHub (Jun 6, 2026).
Original GitHub issue: https://github.com/open-webui/oikb/issues/33
Description
When syncing a local directory to an Open WebUI Knowledge Base, files at the source root (i.e. not inside any subdirectory) are silently skipped. Only files within subdirectories are uploaded.
Repro
.oikb.yaml:oikb daemonoroikb syncExpected
All
.mdfiles are uploaded, including those at the root of/vault/.Observed
Only files inside subdirectories (Clippings, Templates, Excalidraw) are uploaded. Root-level files are silently skipped.
Sync history confirms the discrepancy:
.mdfiles (excluding hidden dirs): 282Analysis from source code
In
sync.py, the upload logic resolves the target directory like this:For root-level files,
pathis an empty string"", sodirectory_idresolves toNone. The question is whether:connector.build_manifest()) correctly includes root-level files withpath="", or/sync/diffendpoint properly returns root-level files in its diff response, ordirectory_id=Nonesilently fails or is rejected by the OWUI APIThe
directory_mapfrom the diff response likely only contains mappings for subdirectories (populated fromdirs/createcalls). Root-level files hitdirectory_map.get("") → None, which may cause the upload to be skipped or rejected without error logging.Environment
ghcr.io/open-webui/oikb:latest)/vault, mounted from host)Additional context
oikb resetcommand was used between sync attempts to clear the KB, confirming this is not an incremental diff issue