Refactor cache access to use cache_manager consistently
- Remove symlink hack from cache_file() - no longer needed - Add get_cache_path() helper for content_hash lookups - Update all CACHE_DIR / content_hash patterns to use cache_manager - Fix cache_manager.get_by_content_hash() to check path.exists() - Fix legacy path lookup (cache_dir not legacy_dir) - Update upload endpoint to use cache_manager.put() This ensures cache lookups work correctly for both legacy files (stored directly in CACHE_DIR) and new files (stored in nodes/). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -243,25 +243,25 @@ class L1CacheManager:
|
||||
|
||||
def get_by_content_hash(self, content_hash: str) -> Optional[Path]:
|
||||
"""Get cached file path by content_hash."""
|
||||
# Check index first
|
||||
# Check index first (new cache structure)
|
||||
node_id = self._content_index.get(content_hash)
|
||||
if node_id:
|
||||
path = self.cache.get(node_id)
|
||||
if path:
|
||||
if path and path.exists():
|
||||
return path
|
||||
|
||||
# Check legacy directory
|
||||
legacy_path = self.legacy_dir / content_hash
|
||||
if legacy_path.exists():
|
||||
return legacy_path
|
||||
|
||||
# Scan cache entries (fallback)
|
||||
# Scan cache entries (fallback for new structure)
|
||||
entry = self.cache.find_by_content_hash(content_hash)
|
||||
if entry:
|
||||
if entry and entry.output_path.exists():
|
||||
self._content_index[content_hash] = entry.node_id
|
||||
self._save_content_index()
|
||||
return entry.output_path
|
||||
|
||||
# Check legacy location (files stored directly as CACHE_DIR/{content_hash})
|
||||
legacy_path = self.cache_dir / content_hash
|
||||
if legacy_path.exists() and legacy_path.is_file():
|
||||
return legacy_path
|
||||
|
||||
return None
|
||||
|
||||
def has_content(self, content_hash: str) -> bool:
|
||||
|
||||
Reference in New Issue
Block a user