The rewritten cst_agent_store_info() counted a transcript line that ran past a
whole 64 KiB read block a second time, when the newline ending its tail
arrived: a session with one very long line (a tool that read a file back)
reported one message too many -- exactly what the sidebar shows the person.
- src/agent_store.c: the tail's newline ends a line that was already counted.
- tests/test_store.c: test_info_scan() holds the scan down -- a 70 KiB line is
one line, the first user message comes from the head of the file, and a user
line past the window is not called the first one.
- tests/test_tools_ext.c: a byte budget stops the session_search walk, says so
in the result, and never reports a match it did not reach; the same query
without a budget finds it.
make check and make asan are green.