release v1.9.2
Build and Push / release (push) Successful in 3s
Build and Push / build (push) Successful in 1m32s

This commit is contained in:
2026-08-16 19:32:13 +02:00
parent ab07fa9565
commit bf4e8849c0
2 changed files with 18 additions and 17 deletions
+17 -16
View File
@@ -7,24 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [1.9.2] - 2026-08-16
### Fixed ### Fixed
- `/health`'s five dependency probes (neo4j, qdrant, wikijs, searxng, ollama) - `/health` no longer reports the whole service unhealthy because one
now run concurrently under `asyncio.gather`, each bounded at 2s via dependency is merely slow. Its five probes (neo4j, qdrant, wikijs, searxng,
`asyncio.wait_for`, instead of serially with no bound on neo4j or qdrant. ollama) previously ran one after another with no timeout on neo4j or
A hung (not failing) dependency previously blocked the whole chain past the qdrant, so a single hung dependency could block the response past the
container healthcheck's 10s timeout, marking the container unhealthy for a container healthcheck's 10s timeout and get the container marked
reason unrelated to its own liveness. A probe that times out now reports unhealthy for a reason unrelated to its own liveness. Each probe is now
that service unhealthy, the same as one that raises; the others are bounded at 2s and all five run concurrently, so one hanging dependency is
unaffected. reported unhealthy on its own without holding up the others or the
- The three remaining probes in `check_service_health()` (paperless, response.
system_settings, scheduler — computed internally but not currently read by - Internal-only: the three probes `check_service_health()` also computes
`/health`) are now bounded and joined into the same `asyncio.gather` as the (paperless, system_settings, scheduler) received the same bounding and
five above, rather than running serially and unbounded after it. paperless concurrency, for consistency and because they carried the identical
and system_settings keep their three-state result (`None` not configured, unbounded-hang risk internally. This has no visible effect today — none
`False` configured but unhealthy/timed out, `True` healthy) — an of the three is currently returned by `/health` — but protects a future
unconfigured service's probe is never run, so "not configured" cannot be caller that does read them.
collapsed into "unhealthy".
## [1.9.1] - 2026-08-08 ## [1.9.1] - 2026-08-08
+1 -1
View File
@@ -1,6 +1,6 @@
[project] [project]
name = "library-desk" name = "library-desk"
version = "1.9.1" version = "1.9.2"
description = "Coordination service for The Library system - HybridRAG queries, document ingestion, entity extraction, and knowledge consolidation" description = "Coordination service for The Library system - HybridRAG queries, document ingestion, entity extraction, and knowledge consolidation"
readme = "README.md" readme = "README.md"
requires-python = ">=3.12" requires-python = ">=3.12"