[object Object]

← back to Silkwallpaper

silkwallpaper: title-required silk filter — drop tag-only non-silk (bamboo/paper-weave) per Cody gate

4d53f67bd6b4c918da4a55d15155c12579fc50f7 · 2026-08-12 10:08:10 -0700 · steve

Files touched

Diff

commit 4d53f67bd6b4c918da4a55d15155c12579fc50f7
Author: steve <steve@designerwallcoverings.com>
Date:   Wed Aug 12 10:08:10 2026 -0700

    silkwallpaper: title-required silk filter — drop tag-only non-silk (bamboo/paper-weave) per Cody gate
---
 server.js | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/server.js b/server.js
index 37db93d..33233e2 100644
--- a/server.js
+++ b/server.js
@@ -91,7 +91,11 @@ const NICHE_NEG = ["solid","blank","plain","grasscloth","grass cloth","sisal","s
 function nicheFit(p) {
   const blob = ((p.title || '') + ' ' + (p.tags || []).join(' ')).toLowerCase();
   if (NICHE_NEG.some(n => blob.includes(n.toLowerCase()))) return false;
-  return NICHE_POS.length === 0 || NICHE_POS.some(k => blob.includes(k.toLowerCase()));
+  // Title-required (matches linenwallpaper): silk signal must be in the product's NAME,
+  // not a stray tag — else a "silk"-tagged bamboo/paper-weave leaks onto a SILK site
+  // (Cody gate, verified 2026-08-12). Both silk sites stay healthy at 331.
+  const title = (p.title || '').toLowerCase();
+  return NICHE_POS.some(k => title.includes(k));
 }
 // Niche-filtered view of PRODUCTS — recomputed after the async catalog load.
 let PRODUCTS_NICHE = [];

← 9672356 silkwallpaper: tighten niche filter — exclude competing-fibe  ·  back to Silkwallpaper  ·  chore: version bump v0.1.1 (session close — niche-filter fix 45ba155 →