EverOS/tests/unit/test_core
Dani 4e13f7881e
fix(observability): separate uncalibrated recall scores by name (#368)
Langfuse aggregates scores by name, so one name may only carry values on
one scale. recall_top_score was emitted for every method, mixing HYBRID's
LR-sigmoid probability and AGENTIC's cross-encoder score (both comparable
in [0, 1]) with KEYWORD's unbounded BM25 and single-route VECTOR's cosine.
A chart on that name averaged the two scales, and in practice a keyword
score can read numerically higher than a calibrated one while meaning less.

Uncalibrated methods now report recall_top_score_raw, leaving
recall_top_score comparable across methods and over time. Every recall
score also carries metadata = {method, calibrated}: a structured field
Langfuse persists and can split on, which the free-text comment could not
serve. The comment stays for reading individual scores.

Breaking for anyone charting recall_top_score for keyword search; 1.2.0 is
four days old, so this is the cheapest moment to correct the naming.


Claude-Session: https://claude.ai/code/session_01UyKinsWs1MgoARPoB9R4NW

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-29 10:30:49 +08:00
..
test_lifespan feat(observability): OTel tracing chassis + request-id propagation 2026-07-23 20:47:39 +08:00
test_middleware feat(api): serve endpoints under /api/v2, retain /api/v1 as alias 2026-07-24 13:44:58 +08:00
test_observability fix(observability): separate uncalibrated recall scores by name (#368) 2026-07-29 10:30:49 +08:00
test_persistence fix(lancedb): fix FTS with_position optimize crash + disk bloat (#336) 2026-07-10 16:54:58 +08:00
__init__.py chore: initialize EverOS 1.0.0 2026-06-06 07:33:17 +08:00
test_context.py feat(observability): OTel tracing chassis + request-id propagation 2026-07-23 20:47:39 +08:00
test_errors.py chore(release): update EverOS to 1.1.0 (#307) 2026-06-24 23:17:23 +08:00