listSessions method
List all sessions for the current project.
Implementation
Future<List<SessionMetadata>> listSessions({int limit = 50}) async {
final projectDir = getProjectDir(cwd);
final dir = Directory(projectDir);
if (!await dir.exists()) return [];
final sessions = <SessionMetadata>[];
await for (final entity in dir.list()) {
if (entity is! File) continue;
if (!entity.path.endsWith('.jsonl')) continue;
final metadata = await readLiteMetadata(entity.path);
if (metadata != null) {
sessions.add(metadata);
}
}
// Sort by last modified, newest first.
sessions.sort((a, b) {
final aTime = a.lastModified ?? DateTime(2000);
final bTime = b.lastModified ?? DateTime(2000);
return bTime.compareTo(aTime);
});
return sessions.take(limit).toList();
}