fix(assets): validate sibling dimensions before backfilling

Per CodeRabbit review on #13991: the previous loop accepted any sibling
with `kind == "image"` and copied whichever dimension keys happened to
be present, then returned. A partial sibling (kind set but missing or
invalid width/height) could persist incomplete metadata onto the new
reference even when a later sibling had valid dimensions.

Now we validate that the sibling has both width and height as positive
integers before adopting its dimensions, and continue scanning to the
next sibling otherwise.
This commit is contained in:
Matt Miller 2026-05-19 13:36:42 -07:00
parent c5b55bab64
commit f2c7330800

View File

@ -411,10 +411,19 @@ def _backfill_image_dimensions_from_siblings(
meta = sibling.system_metadata or {}
if meta.get("kind") != "image":
continue
width = meta.get("width")
height = meta.get("height")
if (
not isinstance(width, int)
or not isinstance(height, int)
or width <= 0
or height <= 0
):
continue
merged = dict(current)
for key in _IMAGE_DIMENSION_KEYS:
if key in meta:
merged[key] = meta[key]
merged["kind"] = "image"
merged["width"] = width
merged["height"] = height
if merged != current:
set_reference_system_metadata(
session,