From 1287e660b0710bc439d7bdd4b36db5f7f970fc05 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Fri, 17 Jul 2026 15:56:22 -0400 Subject: [PATCH] refac --- CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ pyproject.toml | 2 +- src/oikb/__init__.py | 2 +- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c2ca60..911863c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,38 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). +## [0.4.0] - 2026-07-17 + +### Added + +- **Nextcloud**: sync folders from Nextcloud using app-password login. Empty or missing folders are handled cleanly instead of stopping the run. +- **Zotero**: sync Zotero PDF attachment text into Knowledge Bases. Supports whole libraries, nested collections, unfiled items, optional notes, optional annotations, collection excludes, content checksums, and WebDAV fallback for stored PDFs. +- **BookStack**: choose exactly what to sync from BookStack. You can sync selected pages, selected books, selected shelves, chapters, whole-book exports, Markdown, plain text, HTML, or PDF, with flat or folder-style paths. +- **GitLab wikis**: sync project wiki pages with `gitlab:group/project?wiki=true`, including subgroup projects and older GitLab installs that do not return page content in the list response. +- **Automatic publishing**: pushing a version bump and changelog entry to the `release` branch now creates the GitHub release, publishes to PyPI, attaches release files, and publishes versioned Docker images. + +### Fixed + +- **SharePoint**: file downloads now follow Microsoft Graph redirects, so SharePoint files no longer fail with `302 Found`. +- **Google Drive**: Shared Drives are now included when listing, finding, exporting, and downloading files. +- **Jira**: large issue lists now keep paging until all matching issues are found. +- **GitLab**: subgroup project paths are resolved more reliably, including sources that also include a folder path. +- **Filesystem**: local sync now blocks paths that escape the configured source folder. +- **Docker Compose**: the sample service now starts in `/app`, so the mounted `.oikb.yaml` is found where the container expects it. +- **Docker health checks**: the bundled compose health check now works in the Alpine-based image. +- **Sync warnings**: source files that are listed but unavailable can now show as warnings instead of failing the entire sync. +- **CLI output**: multi-source syncs now print upload errors and warnings instead of only exiting with a failure code. +- **Daemon status**: scheduled syncs now report partial success, warnings, and upload errors in health, history, dry-run, and notification output. +- **Daemon shutdown**: Docker shutdown now asks running syncs to stop and waits briefly, instead of leaving background work loose. +- **History storage**: concurrent daemon syncs now use separate SQLite connections, avoiding cross-thread database failures. +- **Release version output**: `oikb --version` now matches the package version. + +### Changed + +- Docker images now use a smaller Alpine-based runtime and run as a non-root user. +- The connector count is now 46 in the README and guide. +- The guide now includes BookStack, Nextcloud, and Zotero examples. + ## [0.3.6] - 2026-05-28 ### Added diff --git a/pyproject.toml b/pyproject.toml index c24a3c0..3f6057e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "oikb" -version = "0.3.6" +version = "0.4.0" description = "Sync anything to Open WebUI Knowledge Bases" readme = "README.md" authors = [ diff --git a/src/oikb/__init__.py b/src/oikb/__init__.py index 28c108d..3087736 100644 --- a/src/oikb/__init__.py +++ b/src/oikb/__init__.py @@ -1,3 +1,3 @@ """oikb — Open WebUI Knowledge Base CLI.""" -__version__ = "0.3.5" +__version__ = "0.4.0"