feat: render metadata from render_log for past renderings

find_product_renders now reads actual render metadata from the
render_log JSONB (stored at render time) via COALESCE fallback:
- engine: render_log.engine_used > render_log.engine > output_type setting
- width/height: render_log > output_type.render_settings
- samples: render_log > output_type.render_settings
- render_type: still/turntable/cinematic from render_log.type
- has_template: whether a .blend template was used

All past renderings now have correct metadata without re-processing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-16 10:35:19 +01:00
parent 86921bacbd
commit 54522a63d4
+8 -4
View File
@@ -731,10 +731,12 @@ async def _tool_find_product_renders(
ot.name AS output_type, ot.transparent_bg,
ot.output_format, ot.is_animation,
ot.material_override AS ot_material_override,
ot.render_settings->>'width' AS ot_width,
ot.render_settings->>'height' AS ot_height,
ot.render_settings->>'engine' AS ot_engine,
ot.render_settings->>'samples' AS ot_samples,
COALESCE(ol.render_log->>'width', ot.render_settings->>'width') AS ot_width,
COALESCE(ol.render_log->>'height', ot.render_settings->>'height') AS ot_height,
COALESCE(ol.render_log->>'engine_used', ol.render_log->>'engine', ot.render_settings->>'engine') AS ot_engine,
COALESCE(ol.render_log->>'samples', ot.render_settings->>'samples') AS ot_samples,
ol.render_log->>'type' AS render_type,
ol.render_log->>'template' AS template_used,
ol.material_override AS line_material_override,
ol.render_overrides,
ol.result_path, ol.id AS line_id,
@@ -775,6 +777,7 @@ async def _tool_find_product_renders(
"order_number": r["order_number"],
"order_id": str(r["order_id"]),
"output_type": r["output_type"],
"render_type": r.get("render_type") or ("animation" if r["is_animation"] else "still"),
"output_format": overrides.get("output_format") or r["output_format"],
"transparent_bg": r["transparent_bg"],
"is_animation": r["is_animation"],
@@ -782,6 +785,7 @@ async def _tool_find_product_renders(
"engine": overrides.get("engine") or r["ot_engine"],
"samples": overrides.get("samples") or r["ot_samples"],
"material_override": material,
"has_template": bool(r.get("template_used")),
"image_url": url,
"line_id": str(r["line_id"]),
"rendered_at": str(r["render_completed_at"]),