miroir/crates
jedarden a7e345d28e P2.1: Fix session_pinning blocking read and verify acceptance criteria
Fixed a runtime panic in SessionManager::update_metrics() caused by
calling blocking_read() within an async context. Changed to use
try_read() to avoid blocking the tokio runtime.

Verified all P2.1 acceptance criteria:
- GET /health returns 200 immediately (Meilisearch-compatible)
- GET /_miroir/ready returns 503 until covering quorum exists
- GET /_miroir/topology returns plan §10 JSON shape
- Two listeners: :7700 (client API) and :9090 (metrics)
- SIGTERM triggers graceful shutdown with request draining

All endpoints already implemented:
- /health (unauthenticated liveness probe)
- /version (Meilisearch version from healthy node)
- /_miroir/ready (readiness probe)
- /_miroir/topology (cluster state)
- /_miroir/shards (shard→node mapping)
- /_miroir/metrics (admin-key-gated Prometheus metrics)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 12:19:10 -04:00
..
miroir-core P2.1: Fix session_pinning blocking read and verify acceptance criteria 2026-05-23 12:19:10 -04:00
miroir-ctl P3: Phase 3 Task Registry + Persistence — COMPLETE 2026-05-02 16:50:42 -04:00
miroir-proxy P2.1: Fix session_pinning blocking read and verify acceptance criteria 2026-05-23 12:19:10 -04:00