# Storage The DB seam: what it loses quietly, and what it reads more of than it needs. ## Dialogue persistence errors are swallowed [#677] {#dialogue} Costs: restart continuity can vanish with nothing in the log, and a failed delete can bring stale conversation state back. Current-turn dialogue is unaffected, which is why this has never been noticed. Revisit when: a restart is reported as losing context. Sooner if a turn starts reading dialogue rows back to him. Workaround: none. The failure is invisible from outside. ## A recall miss scans two whole tables [#681] {#recall} Costs: every missed recall reads all of `memory_vectors` and then decodes and sorts every note vector. Not an N+1, and the memory scan is cheap per losing row on purpose. The duplicated decode is the legacy notes path alone. Revisit when: the note count makes a miss measurably slow. Also when the two exclusion filters are proven to agree. `QueryNotes` uses `notHisWordsSQL` and `Search` uses `memory.NonRecallPrefix`. The fallback cannot go until they match. Workaround: none needed at today's row counts.