EverOS/src/everos
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
..
component fix: backfill missing 1.1.4 fixes into main (#366) 2026-07-28 14:57:53 +08:00
config fix(observability): separate uncalibrated recall scores by name (#368) 2026-07-29 10:30:49 +08:00
core fix(observability): separate uncalibrated recall scores by name (#368) 2026-07-29 10:30:49 +08:00
entrypoints feat(api): serve endpoints under /api/v2, retain /api/v1 as alias 2026-07-24 13:44:58 +08:00
infra fix: backfill missing 1.1.4 fixes into main (#366) 2026-07-28 14:57:53 +08:00
memory fix(observability): separate uncalibrated recall scores by name (#368) 2026-07-29 10:30:49 +08:00
service fix: backfill missing 1.1.4 fixes into main (#366) 2026-07-28 14:57:53 +08:00
templates chore(release): update EverOS to 1.1.1 (#327) 2026-07-07 18:30:03 +08:00
README.md chore: initialize EverOS 1.0.0 2026-06-06 07:33:17 +08:00
__init__.py chore: initialize EverOS 1.0.0 2026-06-06 07:33:17 +08:00
py.typed chore: initialize EverOS 1.0.0 2026-06-06 07:33:17 +08:00

README.md

everos package

Source layout for the everos Python package. This README is a quick orientation; full architectural detail lives elsewhere.

Layout

everos/
├── entrypoints/    Presentation: cli + api
├── service/        Application: use case orchestration
├── memory/         Domain: extract + search + cascade + prompt_slots + models
├── infra/          Infrastructure: persistence/{markdown, sqlite, lancedb}
├── component/      Cross-cutting providers: llm / embedding / config / utils
├── core/           Runtime base: observability / lifespan / context
└── config/         Data: Settings + default.toml + prompt_slots templates

Each subpackage has a top-level __init__.py describing its responsibility and public API.

Dependency rule

entrypoints → service → memory → infra
                          ↓
                    component / core / config

Single-direction; enforced by import-linter in CI.

Further reading