fix: address 10 codebase audit findings — API guards, reconcile, merge fallback, tracker guards
- immich_api: guard resp.json() with isinstance(dict) check in get_people and fetch_all_assets so AttributeError doesn't escape on proxy/CDN non-dict responses - executor: move actually_uploaded.append outside try/else so Frigate filename→asset_id mapping is created via reconcile even when the tracker write fails - cli: fall back to pre-merge people list when re-fetch after merge returns empty (transient error) instead of silently dropping all people - cli: treat ENABLE_FRIGATE_SCORES=false / BLUR_THRESHOLD=0 as not-set in the unsupported-vars warning (falsy string check replaces raw truthiness) - upload_tracker: guard set(data[flat_key]) with isinstance(list) check in reset_person so a corrupted non-iterable legacy field doesn't crash mid-reset - upload_tracker: guard dims[0]/dims[1] in find_by_crop_dimension with a length check so a truncated crop_dims entry doesn't raise IndexError - cache: wrap os.remove() in clear() with try/except OSError to handle TOCTOU race with concurrent put() calls - diversity: default conf_array to 0.5 (was 1.0) for faces with missing confidence so they receive a moderate diversity boost instead of being treated as high-confidence - diversity: sort assets in the fast path (len <= limit) so return order is consistent with the sorted-by-fileCreatedAt path
This commit is contained in:
+5
-2
@@ -103,8 +103,11 @@ class EmbeddingCache:
|
||||
count = 0
|
||||
for f in os.listdir(self.cache_dir):
|
||||
if f.endswith(".npy"):
|
||||
os.remove(os.path.join(self.cache_dir, f))
|
||||
count += 1
|
||||
try:
|
||||
os.remove(os.path.join(self.cache_dir, f))
|
||||
count += 1
|
||||
except OSError:
|
||||
pass
|
||||
logger.info("Cleared %s cached embeddings.", count)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user