[object Object]

← back to Designer Wallcoverings

TK-10057: quality floor (non-room single hero needs >=1000px min-side; else mosaic) + --revert; reverted 3 sub-floor onboards

98cce98c2122967ce2282d2dd6ced27581661e8c · 2026-07-30 12:32:45 -0700 · collection-agent

Files touched

Diff

commit 98cce98c2122967ce2282d2dd6ced27581661e8c
Author: collection-agent <steve@designerwallcoverings.com>
Date:   Thu Jul 30 12:32:45 2026 -0700

    TK-10057: quality floor (non-room single hero needs >=1000px min-side; else mosaic) + --revert; reverted 3 sub-floor onboards
---
 .../tk10056-hero-rotate/backups/animal-skin.json      |  1 +
 .../backups/animals-and-insects.json                  |  1 +
 .../tk10056-hero-rotate/backups/art-deco.json         |  1 +
 .../backups/as-seen-in-showrooms.json                 |  1 +
 .../backups/basketweave-paper.json                    |  1 +
 .../tk10056-hero-rotate/backups/birds.json            |  1 +
 .../tk10056-hero-rotate/backups/braid-tape.json       |  1 +
 .../backups/brands-at-designer-wallcoverings-a-c.json |  1 +
 .../tk10056-hero-rotate/backups/british-walls.json    |  1 +
 .../backups/decoglass-wallpaper.json                  |  1 +
 .../backups/elements-ii-naturals.json                 |  1 +
 .../backups/lorenzo-castillo-v.json                   |  1 +
 .../backups/phillipe-romano-enlightenment.json        |  1 +
 .../backups/phillipe-romano-faux-leather.json         |  1 +
 .../phillipe-romano-flocked-velvet-wallpaper.json     |  1 +
 .../backups/phillipe-romano-pattern-upholstery.json   |  1 +
 .../backups/phillipe-romano-print-basecloths.json     |  1 +
 .../tk10056-hero-rotate/hero-rotate.py                | 19 +++++++++++++++++++
 .../tk10056-hero-rotate/launchd.err                   |  0
 .../tk10056-hero-rotate/launchd.out                   |  0
 20 files changed, 36 insertions(+)

diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/backups/animal-skin.json b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/animal-skin.json
new file mode 100644
index 00000000..972a4cbc
--- /dev/null
+++ b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/animal-skin.json
@@ -0,0 +1 @@
+{"smart_collection": {"published_at": "2024-09-19T10:24:44-07:00", "image": {"created_at": "2026-07-05T15:25:02-07:00", "alt": "Animal Skin", "width": 1280, "height": 800, "src": "https://cdn.shopify.com/s/files/1/0015/4117/7456/collections/room-living_room-carlos-cheetah-wallpaper-skn-6807_e552c68e-5a13-4c37-94bd-24913e95837b.jpg?v=1783290303"}}}
\ No newline at end of file
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/backups/animals-and-insects.json b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/animals-and-insects.json
new file mode 100644
index 00000000..a9cb2d26
--- /dev/null
+++ b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/animals-and-insects.json
@@ -0,0 +1 @@
+{"smart_collection": {"published_at": "2024-09-16T16:52:44-07:00", "image": {"created_at": "2026-03-20T13:09:55-07:00", "alt": null, "width": 1000, "height": 1000, "src": "https://cdn.shopify.com/s/files/1/0015/4117/7456/collections/98803-1250a5b948db419c9d9be35796e91929.jpg?v=1776628569"}}}
\ No newline at end of file
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/backups/art-deco.json b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/art-deco.json
new file mode 100644
index 00000000..1d7c10ce
--- /dev/null
+++ b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/art-deco.json
@@ -0,0 +1 @@
+{"smart_collection": {"published_at": "2026-04-09T21:34:28-07:00", "image": {"created_at": "2026-04-17T06:50:22-07:00", "alt": null, "width": 1024, "height": 1024, "src": "https://cdn.shopify.com/s/files/1/0015/4117/7456/collections/20319258.jpg?v=1776433822"}}}
\ No newline at end of file
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/backups/as-seen-in-showrooms.json b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/as-seen-in-showrooms.json
new file mode 100644
index 00000000..f3aa038a
--- /dev/null
+++ b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/as-seen-in-showrooms.json
@@ -0,0 +1 @@
+{"smart_collection": {"published_at": "2026-03-20T13:12:54-07:00", "image": {"created_at": "2026-07-30T10:36:58-07:00", "alt": "As Seen in Showrooms", "width": 1344, "height": 768, "src": "https://cdn.shopify.com/s/files/1/0015/4117/7456/collections/206004af94d3434db03de3bb2dac3751.png?v=1785433018"}}}
\ No newline at end of file
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/backups/basketweave-paper.json b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/basketweave-paper.json
new file mode 100644
index 00000000..53c5d3be
--- /dev/null
+++ b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/basketweave-paper.json
@@ -0,0 +1 @@
+{"smart_collection": {"published_at": "2018-09-29T12:12:29-07:00", "image": {"created_at": "2026-07-30T10:37:03-07:00", "alt": "Basket Weave", "width": 1344, "height": 768, "src": "https://cdn.shopify.com/s/files/1/0015/4117/7456/collections/98300fc550c31ba8195ce437c4fd3325.png?v=1785433023"}}}
\ No newline at end of file
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/backups/birds.json b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/birds.json
new file mode 100644
index 00000000..7b2d014b
--- /dev/null
+++ b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/birds.json
@@ -0,0 +1 @@
+{"smart_collection": {"published_at": "2025-01-06T08:36:38-08:00", "image": {"created_at": "2025-01-13T12:55:27-08:00", "alt": null, "width": 1339, "height": 1000, "src": "https://cdn.shopify.com/s/files/1/0015/4117/7456/collections/768728c53535e9159f8a0d9b0115ec64_d1cbd178-db67-46b4-9c58-6b90b503cd34.jpg?v=1776628313"}}}
\ No newline at end of file
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/backups/braid-tape.json b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/braid-tape.json
new file mode 100644
index 00000000..351bcd61
--- /dev/null
+++ b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/braid-tape.json
@@ -0,0 +1 @@
+{"smart_collection": {"published_at": "2026-03-20T13:13:02-07:00", "image": {"created_at": "2026-07-30T11:25:49-07:00", "alt": null, "width": 2500, "height": 1875, "src": "https://cdn.shopify.com/s/files/1/0015/4117/7456/collections/TL10136_13_lifestyle.png?v=1785435949"}}}
\ No newline at end of file
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/backups/brands-at-designer-wallcoverings-a-c.json b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/brands-at-designer-wallcoverings-a-c.json
new file mode 100644
index 00000000..630e8a5f
--- /dev/null
+++ b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/brands-at-designer-wallcoverings-a-c.json
@@ -0,0 +1 @@
+{"smart_collection": {"published_at": "2025-05-16T15:38:17-07:00", "image": {"created_at": "2026-03-20T13:09:30-07:00", "alt": null, "width": 1000, "height": 1000, "src": "https://cdn.shopify.com/s/files/1/0015/4117/7456/collections/happy-hour-day_24a94341-a00e-46da-a65c-8cfa89f8b06c.webp?v=1776627427"}}}
\ No newline at end of file
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/backups/british-walls.json b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/british-walls.json
new file mode 100644
index 00000000..9af20304
--- /dev/null
+++ b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/british-walls.json
@@ -0,0 +1 @@
+{"smart_collection": {"published_at": "2019-01-08T12:44:17-08:00", "image": {"created_at": "2026-07-30T10:00:08-07:00", "alt": "British Invasion", "width": 1344, "height": 768, "src": "https://cdn.shopify.com/s/files/1/0015/4117/7456/collections/afa15867c8332e30947da963b202f760.png?v=1785430808"}}}
\ No newline at end of file
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/backups/decoglass-wallpaper.json b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/decoglass-wallpaper.json
new file mode 100644
index 00000000..7d6b7f42
--- /dev/null
+++ b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/decoglass-wallpaper.json
@@ -0,0 +1 @@
+{"smart_collection": {"published_at": "2018-09-29T12:02:09-07:00", "image": {"created_at": "2026-03-25T20:11:16-07:00", "alt": null, "width": 1305, "height": 1606, "src": "https://cdn.shopify.com/s/files/1/0015/4117/7456/collections/104299_ROOMSET_01__38109.1769761676.jpg?v=1785429602"}}}
\ No newline at end of file
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/backups/elements-ii-naturals.json b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/elements-ii-naturals.json
new file mode 100644
index 00000000..f9c33fa0
--- /dev/null
+++ b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/elements-ii-naturals.json
@@ -0,0 +1 @@
+{"custom_collection": {"published_at": "2026-03-20T13:26:54-07:00", "image": {"created_at": "2026-03-20T13:59:03-07:00", "alt": "ELEMENTS II NATURALS", "width": 1200, "height": 1200, "src": "https://cdn.shopify.com/s/files/1/0015/4117/7456/collections/W4030_1_6f34e8fa-d309-4354-8817-85a31f7b782c.jpg?v=1774040344"}}}
\ No newline at end of file
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/backups/lorenzo-castillo-v.json b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/lorenzo-castillo-v.json
new file mode 100644
index 00000000..aa184110
--- /dev/null
+++ b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/lorenzo-castillo-v.json
@@ -0,0 +1 @@
+{"custom_collection": {"published_at": "2026-03-20T13:31:09-07:00", "image": {"created_at": "2026-03-20T13:56:51-07:00", "alt": "LORENZO CASTILLO V", "width": 1200, "height": 1200, "src": "https://cdn.shopify.com/s/files/1/0015/4117/7456/collections/LCW1018_002_cee0c2d1-8ef9-41ae-88af-925751a16f6c.jpg?v=1774040212"}}}
\ No newline at end of file
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/backups/phillipe-romano-enlightenment.json b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/phillipe-romano-enlightenment.json
new file mode 100644
index 00000000..c01d94a2
--- /dev/null
+++ b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/phillipe-romano-enlightenment.json
@@ -0,0 +1 @@
+{"custom_collection": {"published_at": "2026-03-20T15:29:48-07:00", "image": {"created_at": "2026-07-30T10:01:14-07:00", "alt": "Phillipe Romano - Enlightenment", "width": 1344, "height": 768, "src": "https://cdn.shopify.com/s/files/1/0015/4117/7456/collections/e5b189a20fdc9035cf1bc5cd1efcd7d3.png?v=1785430874"}}}
\ No newline at end of file
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/backups/phillipe-romano-faux-leather.json b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/phillipe-romano-faux-leather.json
new file mode 100644
index 00000000..cb45b291
--- /dev/null
+++ b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/phillipe-romano-faux-leather.json
@@ -0,0 +1 @@
+{"custom_collection": {"published_at": "2026-03-20T13:53:45-07:00", "image": {"created_at": "2026-07-30T10:01:29-07:00", "alt": "Phillipe Romano - Faux Leather", "width": 1344, "height": 768, "src": "https://cdn.shopify.com/s/files/1/0015/4117/7456/collections/ef087a19c915434c7c6d06fae031b5d3.png?v=1785430889"}}}
\ No newline at end of file
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/backups/phillipe-romano-flocked-velvet-wallpaper.json b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/phillipe-romano-flocked-velvet-wallpaper.json
new file mode 100644
index 00000000..3df68e29
--- /dev/null
+++ b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/phillipe-romano-flocked-velvet-wallpaper.json
@@ -0,0 +1 @@
+{"custom_collection": {"published_at": "2024-12-16T21:54:11-08:00", "image": {"created_at": "2026-03-20T13:59:12-07:00", "alt": "Phillipe Romano Flocked Velvet Wallpaper", "width": 1200, "height": 1200, "src": "https://cdn.shopify.com/s/files/1/0015/4117/7456/collections/VV220_empire_BLACKGOLD_1200x_8e6c32c0-caeb-461d-801b-12683ee8b121.webp?v=1785429807"}}}
\ No newline at end of file
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/backups/phillipe-romano-pattern-upholstery.json b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/phillipe-romano-pattern-upholstery.json
new file mode 100644
index 00000000..1cccef59
--- /dev/null
+++ b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/phillipe-romano-pattern-upholstery.json
@@ -0,0 +1 @@
+{"custom_collection": {"published_at": "2026-03-20T13:53:48-07:00", "image": {"created_at": "2026-07-30T10:01:35-07:00", "alt": "Phillipe Romano - Pattern Upholstery", "width": 1344, "height": 768, "src": "https://cdn.shopify.com/s/files/1/0015/4117/7456/collections/e0e5b05c039cc75e450e0e4b160bdd69.png?v=1785430895"}}}
\ No newline at end of file
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/backups/phillipe-romano-print-basecloths.json b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/phillipe-romano-print-basecloths.json
new file mode 100644
index 00000000..88d85b77
--- /dev/null
+++ b/shopify/collection-hero-fix/tk10056-hero-rotate/backups/phillipe-romano-print-basecloths.json
@@ -0,0 +1 @@
+{"custom_collection": {"published_at": "2026-03-20T13:53:49-07:00", "image": {"created_at": "2026-07-30T10:01:39-07:00", "alt": "Phillipe Romano - Print Basecloths", "width": 1344, "height": 768, "src": "https://cdn.shopify.com/s/files/1/0015/4117/7456/collections/20687d5c646cc04832871607502ca6a8.png?v=1785430899"}}}
\ No newline at end of file
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/hero-rotate.py b/shopify/collection-hero-fix/tk10056-hero-rotate/hero-rotate.py
index cecaae46..40f96339 100644
--- a/shopify/collection-hero-fix/tk10056-hero-rotate/hero-rotate.py
+++ b/shopify/collection-hero-fix/tk10056-hero-rotate/hero-rotate.py
@@ -38,6 +38,9 @@ def score(im):
     w=im.get("width") or 0; h=im.get("height") or 0; mn=min(w,h) if w and h else 0
     if not mn or SKIP.search(fn): return -1,"skip"
     room=bool(ROOM.search(fn) or ROOM.search(str(im.get("alt") or "")))
+    # quality floor: a NON-room single hero must be big enough that full-bleed isn't softer
+    # than the 2x2 mosaic (~640px cells). Below 1000px min-side, leave it on the mosaic.
+    if not room and mn<1000: return -1,"toosmall"
     ratio=(max(w,h)/min(w,h)) if mn else 1
     s=mn/100.0
     kind="swatch"
@@ -135,10 +138,26 @@ def apply(handle=None, include_new=False):
         done+=1; print(f"set {c['handle']} -> {best[1]} {best[2]}x{best[3]}")
         time.sleep(0.6)
     print(f"applied {done} changed, {unchanged} already-current (no write)")
+def _resolve(handle):
+    for res in ("custom_collections","smart_collections"):
+        r=req("GET",f"{res}.json?handle={handle}&fields=id")
+        arr=r.get(res) or []
+        if arr: return res, arr[0]["id"]
+    return None,None
+def revert(handles):
+    """Clear collection.image for specific handles -> falls back to the mosaic (sharper than a sub-floor hero)."""
+    for h in handles:
+        res,cid=_resolve(h)
+        if not cid: print(f"not found: {h}"); continue
+        key,path=endpoint(res)
+        req("PUT",f"{path}/{cid}.json",{key:{"id":cid,"image":None}})
+        print(f"reverted {h} -> mosaic (image cleared)")
+        time.sleep(0.5)
 if __name__=="__main__":
     a=sys.argv[1:]; hd=a[a.index("--handle")+1] if "--handle" in a else None
     new="--new" in a
     if not a or a[0]=="--dryrun": dryrun(hd, include_new=new)
     elif a[0]=="--apply": apply(hd, include_new=new)
     elif a[0]=="--rotate": apply(hd, include_new=True)   # daily job: rotate managed + onboard new
+    elif a[0]=="--revert": revert(a[1:])
     else: print(__doc__)
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/launchd.err b/shopify/collection-hero-fix/tk10056-hero-rotate/launchd.err
new file mode 100644
index 00000000..e69de29b
diff --git a/shopify/collection-hero-fix/tk10056-hero-rotate/launchd.out b/shopify/collection-hero-fix/tk10056-hero-rotate/launchd.out
new file mode 100644
index 00000000..e69de29b

← 743f36cc TK-10057: fix braid-tape (wider scan + recency bonus); auto-  ·  back to Designer Wallcoverings  ·  5x: verify live collection hero — build clean (M1/M2/B4 + se 48277542 →