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]
## [1.9.2] - 2026-08-16
### Fixed
- `/health`'s five dependency probes (neo4j, qdrant, wikijs, searxng, ollama)
now run concurrently under `asyncio.gather`, each bounded at 2s via
`asyncio.wait_for`, instead of serially with no bound on neo4j or qdrant.
A hung (not failing) dependency previously blocked the whole chain past the
container healthcheck's 10s timeout, marking the container unhealthy for a
reason unrelated to its own liveness. A probe that times out now reports
that service unhealthy, the same as one that raises; the others are
unaffected.
- The three remaining probes in `check_service_health()` (paperless,
system_settings, scheduler — computed internally but not currently read by
`/health`) are now bounded and joined into the same `asyncio.gather` as the
five above, rather than running serially and unbounded after it. paperless
and system_settings keep their three-state result (`None` not configured,
`False` configured but unhealthy/timed out, `True` healthy)an
unconfigured service's probe is never run, so "not configured" cannot be
collapsed into "unhealthy".
- `/health` no longer reports the whole service unhealthy because one
dependency is merely slow. Its five probes (neo4j, qdrant, wikijs, searxng,
ollama) previously ran one after another with no timeout on neo4j or
qdrant, so a single hung dependency could block the response past the
container healthcheck's 10s timeout and get the container marked
unhealthy for a reason unrelated to its own liveness. Each probe is now
bounded at 2s and all five run concurrently, so one hanging dependency is
reported unhealthy on its own without holding up the others or the
response.
- Internal-only: the three probes `check_service_health()` also computes
(paperless, system_settings, scheduler) received the same bounding and
concurrency, for consistency and because they carried the identical
unbounded-hang risk internally. This has no visible effect today — none
of the three is currently returned by `/health`but protects a future
caller that does read them.
## [1.9.1] - 2026-08-08
+1 -1
View File
@@ -1,6 +1,6 @@
[project]
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"
readme = "README.md"
requires-python = ">=3.12"