pub fn read_rows(path: &str, since_ms: i64) -> Result<Vec<Row>, String>Expand description
Every OpenCode-owned assistant row at or after since_ms, oldest first.
Reads v2’s session_message when the store has it, and the legacy message
table otherwise, so an upgraded opencode does not read as “no usage” — v2
stopped appending to message at the migration, and every report was zero
until this branch existed. time_created >= ? keeps either scan bounded;
rows are filtered by provider in Rust because the JSON payload is not
indexed.