docs: update changelog for v0.12.0-library-desk-enhancements

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-10 21:44:20 +01:00
co-authored by Claude Opus 4.5
parent 4b9092d631
commit 40aafb0331
+62
View File
@@ -12,6 +12,68 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Authentik SSO Milestones 4-5: Protect remaining services (deferred)
- Disaster recovery and offsite backup strategy
## [0.12.0-library-desk-enhancements] - 2025-12-10
### Added
- **Wiki Change Detection** - Real-time page change notifications via PostgreSQL LISTEN/NOTIFY
- WikiChangeListener service connects to Wiki.js database
- Automatic re-ingestion when pages are created/updated/deleted
- Debouncing and loop prevention for automated updates
- Webhook router as HTTP fallback mechanism
- Setup scripts and documentation for PostgreSQL triggers
- **Taxonomy-Aware Classification** - LLM uses existing wiki structure when classifying content
- `get_taxonomy_structure()` extracts category/subcategory paths from wiki
- Consolidation prompts include existing paths to prefer over creating new ones
- Prevents duplicate category creation (e.g., reuses `reference/political-entities/` instead of creating `reference/military-alliances/`)
- **WikiJS Client Methods**
- `list_all_pages()` - Fetch all pages with path prefix filter (replaces stale search index)
- `get_taxonomy_structure()` - Extract category hierarchy for a user namespace
- **Test Coverage** - New test files for recent features
- `test_graph_service.py` - Document node tags, entity-stub skipping
- `test_ingestion.py` - list_all_pages usage, batch ingestion
- `test_wiki_change_listener.py` - PostgreSQL notification handling
- Updated `test_consolidation.py` with taxonomy and ingestion_service tests
- Updated `test_integration.py` with list_all_pages and taxonomy tests
### Fixed
- **Ingestion Pipeline** - Pages created during consolidation now properly indexed
- `ingestion_service` was not passed to ConsolidationService in router
- Added ingestion call to `_update_page_with_facts()` (was only in create path)
- **Bulk Re-index** - `/ingest/all` endpoint now works reliably
- Changed from `search_pages("")` (stale index) to `list_all_pages()`
- Successfully re-indexed 95 pages
- **Document Node Tags** - Neo4j Document nodes now include `tags` property
- Prevents warnings in related documents query
- Set via `d.tags = $tags` in MERGE query
- **WikiJS Integration Script** - Page ID fetched via GraphQL
- Uses `pages.singleByPath(path, locale)` query during initialization
- Replaces unreliable page list search method
### Changed
- **Entity Linking** - Improved matching with fuzzy logic
- Confidence scoring for containment and token overlap matches
- Self-referential link filtering (entities don't link to current page)
- Path preservation (keeps full `/users/username/path` format)
- Longest-first matching to prevent partial matches
- **Consolidation Processing** - Searches marked processed even when skipped/errored
- Prevents unprocessed searches from accumulating indefinitely
- **Stack Configuration** - Updated library-desk environment variables
- Replaced `WIKIJS_API_KEY` with `WIKIJS_USERNAME`/`WIKIJS_PASSWORD`
- Added `WIKIJS_DB_PASSWORD` for PostgreSQL connection
### Technical Details
- **Dependencies:** Added `asyncpg~=0.29.0` for PostgreSQL async driver
- **New Files:** 10 files added (services, routers, tests, documentation)
- **Commits:** 10 logical commits covering all changes
## [0.11.0-pydantic-ai-cleanup] - 2025-12-03
### Major Changes