35c6ff5a71
Persist reminder presentations and retry state, atomically complete collapsed deliveries, fall back across away reaches, and block permanent failures visibly (V-715, V-678). Fail closed when enabled integrations lack credentials and keep remote arms explicitly dark (V-691). Give mavweb one sanitized, request-correlated error contract (V-689). Owner explicitly requested direct commits to master.
23 lines
1.1 KiB
Markdown
23 lines
1.1 KiB
Markdown
# 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.
|