← back to Dw Pairs Well
auto-save: 2026-07-13T12:24:56 (1 files) — server.js
2fd335ed2069fa4f10f2e6570cfad63d4e3921f4 · 2026-07-13 12:25:00 -0700 · Steve Abrams
Files touched
Diff
commit 2fd335ed2069fa4f10f2e6570cfad63d4e3921f4
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Mon Jul 13 12:25:00 2026 -0700
auto-save: 2026-07-13T12:24:56 (1 files) — server.js
---
server.js | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/server.js b/server.js
index 34820af..245c61f 100644
--- a/server.js
+++ b/server.js
@@ -1068,6 +1068,7 @@ app.get('/api/similar', async (req, res) => {
if (!source) return res.status(404).json({ ok: false, error: 'source not found' });
const requestedK = Math.max(1, Math.min(24, parseInt(req.query.limit, 10) || 12));
+ const sourceArchived = source.status !== 'ACTIVE';
// CLIP when explicitly requested (?engine=clip) OR when SIMILAR_CLIP_DEFAULT is on
// and the caller didn't force ?engine=tag. Same one-switch pattern as pairs.
const engine = (req.query.engine === 'clip' || (SIMILAR_CLIP_DEFAULT && req.query.engine !== 'tag'))
@@ -1085,9 +1086,9 @@ app.get('/api/similar', async (req, res) => {
if (!source.tags || parseTags(source.tags).length === 0) {
return res.json({
ok: true, engine: 'tag',
- source: { dw_sku: source.dw_sku, handle: source.handle, title: source.title, image_url: source.image_url, vendor: source.vendor, archived: source.status !== 'ACTIVE' },
+ source: { dw_sku: source.dw_sku, handle: source.handle, title: source.title, image_url: source.image_url, vendor: source.vendor, archived: sourceArchived },
similar: [],
- reason: source.status !== 'ACTIVE'
+ reason: sourceArchived
? `source is ${source.status} (not a live product) — no similar designs`
: 'no tags on source — cannot compute similar designs'
});
@@ -1109,11 +1110,11 @@ app.get('/api/similar', async (req, res) => {
engine: usedEngine,
source: {
dw_sku: source.dw_sku, handle: source.handle, title: source.title,
- vendor: source.vendor, image_url: source.image_url, archived: source.status !== 'ACTIVE',
+ vendor: source.vendor, image_url: source.image_url, archived: sourceArchived,
palette: paletteWithPaints(sourcePalette, paintMap)
},
// an empty strip on an archived/unpublished source is expected, not a fault
- ...(top.length === 0 && source.status !== 'ACTIVE'
+ ...(top.length === 0 && sourceArchived
? { reason: `source is ${source.status} (not a live product) — no similar designs` } : {}),
similar: top.map(p => ({
dw_sku: p.dw_sku, handle: p.handle, title: safeTitle(p), vendor: p.vendor,
← 73d4393 pipe-title-backfill: apply 2 genuine-name draft rows (Dig-54
·
back to Dw Pairs Well
·
chore: lint, refactor (DRY sourceArchived + null-status guar 2fc0641 →