# Changelog All notable changes to Library Desk will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [1.2.1] - 2025-12-15 ### Fixed - HybridRAG router missing `content_extractor` dependency causing 500 errors on `/query/hybrid` endpoint ## [1.2.0] - 2025-12-15 ### Added - **RAG Search Endpoint** (`POST /rag/search`) - Web, news, and image search via SearXNG - Full content extraction using Trafilatura (F1 score 0.958) - Redis caching with configurable TTL - Markdown sources summary for LLM consumption - Returns both extracted content and original snippets - **Content Extraction Endpoints** (`/content/*`) - `POST /content/extract` - Extract content from a single URL - `POST /content/extract/batch` - Batch extraction (up to 20 URLs) - Reusable ContentExtractor client for use across the codebase - **HybridRAG Content Extraction Enhancement** - Web search results now include full extracted content via Trafilatura - Falls back to original snippets if extraction fails - Improves context quality for LLM re-ranking and consumption ### Changed - Added new configuration options: - `SEARCH_CACHE_TTL` - Search cache TTL in seconds (default: 300) - `SEARCH_TIMEOUT` - SearXNG timeout (default: 10s) - `CONTENT_EXTRACTION_TIMEOUT` - Per-URL extraction timeout (default: 5s) - `CONTENT_MAX_LENGTH` - Max extracted content length (default: 2000) - `SEARCH_DEFAULT_LIMIT` - Default search results (default: 10) ### Dependencies - Added `trafilatura~=1.12.0` for content extraction ## [1.1.3] - 2025-12-14 ### Added - Watchtower update trigger in Gitea workflow after successful build ## [1.1.2] - 2025-12-14 ### Fixed - Updated registry login URL in Gitea workflow (git.schweitz.net → git.schweitz.internal) ## [1.1.1] - 2025-12-14 ### Fixed - Updated container registry tag URLs in Gitea workflow (git.schweitz.net → git.schweitz.internal) ### Added - Tests for Smart Page Creation feature (`test_smart_create.py`) - Model validation tests for WikiSmartCreateRequest/Response - WikiService.smart_create_page method tests - Bidirectional entity linking utility tests - Endpoint validation tests ## [1.1.0] - 2025-12-11 ### Added - **Smart Page Creation Endpoint** (`POST /wiki/pages/smart-create`) - Combines HybridRAG research with LLM content generation - Searches existing wiki, knowledge graph, and web for topic context - Uses WikiPageWriter to synthesize findings into structured wiki content - Auto-generates page path from topic if not provided - Returns research summary with source counts - **Bidirectional Entity Linking** - New shared utility (`entity_linking_utils.py`) for reusable entity linking - Forward links: Links entities mentioned in new pages to existing entity pages - Backward links: Updates existing pages that mention the new entity - Runs automatically in background after smart page creation - **Version Management** - Added `pyproject.toml` with project metadata and version - Version is now read from `pyproject.toml` (single source of truth) - Health check endpoint returns current version - FastAPI docs show current version ### Changed - Updated `config.py` to read version from `pyproject.toml` - Updated `main.py` to use centralized version ## [1.0.0] - 2025-12-10 ### Added - Initial release extracted from portainer-core - Wiki page management (`/wiki/pages` CRUD endpoints) - HybridRAG search (`/query/hybrid`) with vector, graph, and web search - Knowledge graph operations (`/graph/*`) - Vector search operations (`/vector/*`) - Knowledge consolidation from search results (`/consolidate/knowledge`) - Entity linking and extraction - Wiki.js change listener for auto-processing user edits - Multi-tenant architecture with user namespace isolation