[object Object]

← back to Wallco Ai

backfill-rooms: skip re-composite when room PNG already on disk → fast $0 re-link (heals deploy-reverted room_mockups + makes nightly cron cheaper)

fc5c3d3a1429c6a3ca1eb2aa19d406f8a6bdfa1b · 2026-06-03 15:13:11 -0700 · Steve Abrams

Files touched

Diff

commit fc5c3d3a1429c6a3ca1eb2aa19d406f8a6bdfa1b
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Jun 3 15:13:11 2026 -0700

    backfill-rooms: skip re-composite when room PNG already on disk → fast $0 re-link (heals deploy-reverted room_mockups + makes nightly cron cheaper)
---
 scripts/backfill-rooms.py | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/scripts/backfill-rooms.py b/scripts/backfill-rooms.py
index 2abc23b..6839a04 100644
--- a/scripts/backfill-rooms.py
+++ b/scripts/backfill-rooms.py
@@ -54,15 +54,25 @@ def main():
         return
 
     done = 0
+    relinked = 0
     for r in todo[:args.limit]:
         rid = r.get('id')
         try:
-            prc.composite_one(rid)               # writes data/rooms/design_<id>_living_room.png
-            r['room_mockups'] = ['living_room']  # patch the in-memory row
-            done += 1
-            print(f'  #{rid} rendered')
+            room_png = ROOT / 'data' / 'rooms' / f'design_{rid}_living_room.png'
+            if room_png.exists():
+                # PNG already rendered (e.g. a prior run, or a deploy reverted only
+                # the designs.json field) — just re-link it. $0, instant, no re-render.
+                r['room_mockups'] = ['living_room']
+                done += 1; relinked += 1
+            else:
+                prc.composite_one(rid)               # writes data/rooms/design_<id>_living_room.png
+                r['room_mockups'] = ['living_room']  # patch the in-memory row
+                done += 1
+                print(f'  #{rid} rendered')
         except Exception as e:
             print(f'  #{rid} FAIL {e}')
+    if relinked:
+        print(f'  ({relinked} re-linked from existing PNG, no re-render)')
     if done:
         json.dump(d, open(DESIGNS_JSON, 'w'))
         print(f'patched designs.json: {done} rows now have room_mockups')

← ab10041 docs: mural-pipeline.md — Replicate gotchas playbook + revie  ·  back to Wallco Ai  ·  YOLO ledger: T2 re-link 2845 rooms (31%→99%) + root-cause (d 13396d1 →