DW Recall Eval Digest

_Run 2026-08-09T09:55:18+00:00 • http://localhost:8080/api/v1/memories • queries v1_

Verdict: 🟠 LATENCY

_Baseline: 2026-08-08T06-15-40+00-00.json_

Latency p95: baseline 297.1ms → current 582.6ms (budget 445.7ms)

Per-query status vs baseline

QueryStatusBaseline newestCurrent newestΔ
heartbeat-wideSTABLE6.6min2.5min+4.1min
heartbeat-tightSTABLE6.6min2.5min+4.1min
heartbeat-midSTABLE6.6min2.5min+4.1min
global-no-filterUNMEASURABLE
sort-param-respectedSTABLE6.6min2.5min+4.1min

5 queries • 0 with flags

Aggregate latency (all samples) p50=196.1ms p95=654.8ms max=582.6ms

heartbeat-wide

_The canonical heartbeat-freshness query from CLAUDE.md. limit=200, no sort. Must return cl-pal + codex-pal with fresh ts._

heartbeat-tight

_Catches the 'limit=5 silently returns arbitrary subset' bug. Same query as wide but limit=5 — record what set comes back so we can see set instability across runs._

heartbeat-mid

_Middle-bucket size to triangulate where set instability kicks in._

global-no-filter

_Unfiltered fetch to track corpus size + global latency. Tracks total memory store growth._

sort-param-respected

_Per CLAUDE.md, the endpoint silently ignores sort/order/order_by params. This query passes sort=ts:desc — if behavior ever changes (endpoint starts respecting sort), the first-returned-id should differ vs heartbeat-wide. v1 just records the fact; v2 (with Steward) should pass._

How to read this