listSessions method

Future<List<String>> listSessions()

List all saved session IDs, newest first.

Implementation

Future<List<String>> listSessions() async {
  final dir = Directory(baseDir);
  if (!await dir.exists()) return const [];

  final sessions = <_SessionEntry>[];

  await for (final entity in dir.list()) {
    if (entity is! File) continue;
    if (!entity.path.endsWith('.json')) continue;

    final name = entity.path.split('/').last;
    final sessionId = name.replaceAll('.json', '');
    final stat = await entity.stat();
    sessions.add(_SessionEntry(sessionId, stat.modified));
  }

  sessions.sort((a, b) => b.modified.compareTo(a.modified));
  return sessions.map((s) => s.id).toList();
}