load method

Future<void> load()

Loads cache from disk if it exists.

Implementation

Future<void> load() async {
  final file = File(_cachePath);
  if (!file.existsSync()) return;

  try {
    final content = await file.readAsString();
    final json = jsonDecode(content) as Map<String, dynamic>;
    final entries = json['entries'] as List<dynamic>;

    _cache.clear();

    // ADR-016 1.1: LinkedHashMap maintains insertion order
    for (final entry in entries) {
      final map = entry as Map<String, dynamic>;
      final id = map['id'] as String;
      _cache[id] = _CacheEntry.fromJson(map);
    }
  } on FormatException {
    // Invalid cache file, ignore and start fresh
    _cache.clear();
  }
}