← back to Dw Pairs Well
auto-save: 2026-07-12T23:21:12 (1 files) — server.js
399cce5e962d35aed2122981047b865c2bca3475 · 2026-07-12 23:21:16 -0700 · Steve Abrams
Files touched
Diff
commit 399cce5e962d35aed2122981047b865c2bca3475
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Sun Jul 12 23:21:16 2026 -0700
auto-save: 2026-07-12T23:21:12 (1 files) — server.js
---
server.js | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/server.js b/server.js
index ce8ce94..98f69b9 100644
--- a/server.js
+++ b/server.js
@@ -632,6 +632,17 @@ function bestPatternLabel(row, computed) {
return row.dw_sku || 'Pattern';
}
+// Sanitize a product TITLE for recommendation lists (/api/pairs, /api/similar),
+// which pass shopify `title` through verbatim. A junk title whose pattern segment
+// is empty ("| DW Bespoke Studios") otherwise renders as a bare-pipe tile. ONLY
+// degenerate titles are rewritten (via the bestPatternLabel fallback → handle /
+// mfr_root / dw_sku); a normal "Name | Vendor" title is returned unchanged.
+function safeTitle(row) {
+ const raw = String(row.title || '').trim();
+ const degenerate = !raw || raw.startsWith('|') || /^[\s|·—–-]+$/.test(raw);
+ return degenerate ? bestPatternLabel(row, '') : row.title;
+}
+
// Resolve a single product to its group key (used when caller passes handle/dw_sku).
async function resolveGroupKey({ dw_sku, handle, pattern_id }) {
if (pattern_id) return pattern_id;
@@ -965,7 +976,7 @@ app.get('/api/similar', async (req, res) => {
vendor: source.vendor, image_url: source.image_url, palette: paletteWithPaints(sourcePalette)
},
similar: top.map(p => ({
- dw_sku: p.dw_sku, handle: p.handle, title: p.title, vendor: p.vendor,
+ dw_sku: p.dw_sku, handle: p.handle, title: safeTitle(p), vendor: p.vendor,
image_url: p.image_url, url: `/products/${p.handle}`,
score: p._score, why: p._why, delta_e: p._dE, palette: paletteWithPaints(p._palette)
}))
@@ -1063,7 +1074,7 @@ app.get('/api/pairs', async (req, res) => {
pairs: top.map(p => ({
dw_sku: p.dw_sku,
handle: p.handle,
- title: p.title,
+ title: safeTitle(p),
vendor: p.vendor,
image_url: p.image_url,
url: `/products/${p.handle}`,
← 52301ea CLIP-1: /api/similar?engine=clip — image-embedding nearest-n
·
back to Dw Pairs Well
·
auto-save: 2026-07-12T23:51:20 (1 files) — server.js f189739 →