[object Object]

← back to Designerwallcoverings

chore: lint, refactor, v0.1.12 (session close) — TK-11307

6e51d272015f740b1d06dffebcb17a38932dee5c · 2026-09-10 09:46:03 -0700 · Steve Abrams

Render-skip is now genuinely case-insensitive (downcase the tag list, then
exact-match 'showroomonly') — the previous 3-literal-casing check silently
missed e.g. SHOWROOMONLY. Extracted SHOWROOM_TAG in the JS backstop.
10/10 consumer-agreement suite green. Theme PUSH remains Steve-gated.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Files touched

Diff

commit 6e51d272015f740b1d06dffebcb17a38932dee5c
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Sep 10 09:46:03 2026 -0700

    chore: lint, refactor, v0.1.12 (session close) — TK-11307
    
    Render-skip is now genuinely case-insensitive (downcase the tag list, then
    exact-match 'showroomonly') — the previous 3-literal-casing check silently
    missed e.g. SHOWROOMONLY. Extracted SHOWROOM_TAG in the JS backstop.
    10/10 consumer-agreement suite green. Theme PUSH remains Steve-gated.
    
    Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
---
 package-lock.json                                                | 4 ++--
 package.json                                                     | 2 +-
 .../tk11186-showroom-hide/theme-deploy/hide-browse-hidden.liquid | 3 ++-
 .../tk11186-showroom-hide/theme-deploy/product-list-item.liquid  | 9 +++++++--
 4 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 718b5f2..744d758 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "designerwallcoverings-ai",
-  "version": "0.1.11",
+  "version": "0.1.12",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "designerwallcoverings-ai",
-      "version": "0.1.11",
+      "version": "0.1.12",
       "dependencies": {
         "express": "^4.19.2",
         "multer": "^2.0.1"
diff --git a/package.json b/package.json
index 7d84c5d..ae35b5c 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "designerwallcoverings-ai",
-  "version": "0.1.11",
+  "version": "0.1.12",
   "private": true,
   "description": "designerwallcoverings.ai — AI room-render landing. Upload a room photo, get matching wallcoverings.",
   "main": "server.js",
diff --git a/scripts/tk11186-showroom-hide/theme-deploy/hide-browse-hidden.liquid b/scripts/tk11186-showroom-hide/theme-deploy/hide-browse-hidden.liquid
index 46fe421..16ced71 100644
--- a/scripts/tk11186-showroom-hide/theme-deploy/hide-browse-hidden.liquid
+++ b/scripts/tk11186-showroom-hide/theme-deploy/hide-browse-hidden.liquid
@@ -40,6 +40,7 @@
 </style>
 <script>
 (function(){
+  var SHOWROOM_TAG = 'showroomonly'; // TK-11307 — mirrors fix-live-board/config/showroom-vendor.cjs SHOWROOM_TAG
   var HIDDEN = [{%- for v in showroom_vendors -%}{%- assign vt = v | strip -%}{%- if vt != blank -%}{{ vt | json }}{%- unless forloop.last -%},{%- endunless -%}{%- endif -%}{%- endfor -%}].map(function(s){return String(s).trim().toLowerCase();});
   if (!HIDDEN.length) return;
   var CARD_SEL = '.product-list-item, .boost-sd__product-item, [class*="product-item"], [class*="product-card"], article, .boost-sd__product';
@@ -64,7 +65,7 @@
     // NOTE: no card currently emits data-tags, so this backstop selects nothing today;
     // Boost/AJAX coverage is NOT delivered by this hook (see the gated deploy note).
     document.querySelectorAll('[data-tags]').forEach(function(el){
-      if (String(el.getAttribute('data-tags')||'').split(',').map(function(t){ return t.trim().toLowerCase(); }).indexOf('showroomonly') > -1){
+      if (String(el.getAttribute('data-tags')||'').split(',').map(function(t){ return t.trim().toLowerCase(); }).indexOf(SHOWROOM_TAG) > -1){
         var c = el.closest(CARD_SEL) || el; if (c && c.style.display !== 'none') c.style.display = 'none';
       }
     });
diff --git a/scripts/tk11186-showroom-hide/theme-deploy/product-list-item.liquid b/scripts/tk11186-showroom-hide/theme-deploy/product-list-item.liquid
index c771b5a..e5a99ee 100644
--- a/scripts/tk11186-showroom-hide/theme-deploy/product-list-item.liquid
+++ b/scripts/tk11186-showroom-hide/theme-deploy/product-list-item.liquid
@@ -31,8 +31,13 @@
   # A showroom line under a SHARED private label (MDC under 'Phillipe Romano', which also
   # carries sellable lines) is suppressed by its own tag WITHOUT hiding the vendor. The
   # tag applier stamps 'ShowroomOnly' on exactly the showroom products; sellable siblings keep
-  # rendering. Case-insensitive: check both 'Showroom' and 'showroom'.
-  if product.tags contains 'ShowroomOnly' or product.tags contains 'showroomonly' or product.tags contains 'Showroomonly'
+  # rendering. Fully case-insensitive (downcase the whole tag list, then exact-match
+  # 'showroomonly') — mirrors the canonical hasShowroomTag() in fix-live-board's
+  # showroom-vendor.cjs. Checking only 3 literal casings ('ShowroomOnly'/'showroomonly'/
+  # 'Showroomonly') was NOT actually case-insensitive: any other casing (e.g. 'SHOWROOMONLY',
+  # 'ShowroomONLY') would silently fail to match.
+  assign showroom_tags_downcased = product.tags | join: ',' | downcase | split: ','
+  if showroom_tags_downcased contains 'showroomonly'
     assign is_showroom_vendor = true
   endif
 -%}

← 077ac09 guard TK-11357 Fix D: don't stock a $0 Roll in osborne roll-  ·  back to Designerwallcoverings  ·  auto-data-snapshot: 2026-09-10T10:01:38 (3 data files) — scr c825f58 →