--- # claudbg-76fy title: Implement JSONL session file reader status: completed type: task priority: normal created_at: 2026-03-27T19:39:15Z updated_at: 2026-03-28T17:30:25Z parent: claudbg-mztt --- Async function that reads a .jsonl file line by line using tokio, deserializes each line into SessionEntry, and skips/logs malformed lines gracefully. Must handle partial last lines (live session writes). ## Summary of Changes\n\nCreated src/parser/reader.rs with async read_session_file(path: &Path) -> Result>. Uses tokio::fs::File and tokio::io::BufReader with lines() iterator. Skips empty lines, skips unparseable lines with eprintln\! warning, returns Err(AppError::Io) for missing files. All 4 required unit tests pass (two valid lines, one valid + one invalid, empty file, nonexistent path).