getSessionHistory method

Future<List<HistoryEntry>> getSessionHistory(
  1. String sessionId
)

Get all entries for a session.

Implementation

Future<List<HistoryEntry>> getSessionHistory(String sessionId) async {
  // Check cache first.
  if (_sessionCache.containsKey(sessionId)) {
    return List.unmodifiable(_sessionCache[sessionId]!);
  }

  // Load from disk.
  final file = File('$_baseDir/$sessionId.jsonl');
  if (!await file.exists()) return [];

  final lines = await file.readAsLines();
  final entries = <HistoryEntry>[];
  for (final line in lines) {
    if (line.trim().isEmpty) continue;
    try {
      entries.add(
        HistoryEntry.fromJson(jsonDecode(line) as Map<String, dynamic>),
      );
    } catch (_) {
      // Skip malformed entries.
    }
  }

  _sessionCache[sessionId] = entries;
  return List.unmodifiable(entries);
}