flush method
Flush pending writes to disk.
Implementation
Future<void> flush() async {
if (_pendingWrites.isEmpty) return;
final toWrite = List<HistoryEntry>.from(_pendingWrites);
_pendingWrites.clear();
// Group by session.
final bySession = <String, List<HistoryEntry>>{};
for (final entry in toWrite) {
bySession.putIfAbsent(entry.sessionId, () => []).add(entry);
}
// Append to session files.
for (final entry in bySession.entries) {
final file = File('$_baseDir/${entry.key}.jsonl');
final lines = entry.value.map((e) => jsonEncode(e.toJson())).join('\n');
await file.writeAsString('$lines\n', mode: FileMode.append);
}
}