fix: dashboard fidelity chart reads from FidelityManager instead of empty object store

The fidelity distribution chart was always showing 0 for L1-L4
because it queried the ObjectStore (never populated) instead of
the FidelityManager (which actually tracks degradation state).
This commit is contained in:
Joey Yakimowich-Payne 2026-03-15 08:41:50 -06:00
commit 8d8bd03d41

View file

@ -1613,16 +1613,17 @@ def create_app(
session_summaries: dict[str, Any] = {} session_summaries: dict[str, Any] = {}
for sid, sess in all_sessions.items(): for sid, sess in all_sessions.items():
try: try:
objs = await sess.object_store.get_session_objects(sid) fm = sess.fidelity_manager
total_tokens = sum(obj.current_tokens for obj in objs) obj_count = len(fm._objects)
obj_tokens = fm.total_tokens()
fidelity_dist: dict[int, int] = {} fidelity_dist: dict[int, int] = {}
for obj in objs: for obj in fm._objects.values():
fidelity_dist[obj.current_fidelity] = ( fidelity_dist[obj.current_fidelity] = (
fidelity_dist.get(obj.current_fidelity, 0) + 1 fidelity_dist.get(obj.current_fidelity, 0) + 1
) )
session_summaries[sid] = { session_summaries[sid] = {
"total_objects": len(objs), "total_objects": obj_count,
"total_tokens": total_tokens, "total_tokens": obj_tokens,
"fidelity_distribution": fidelity_dist, "fidelity_distribution": fidelity_dist,
} }
except Exception: except Exception: