← back to Wallco Ai
fix(ghost-detector): vendor-category filter on PG source path + scrub poisoned flagged set
67eac7447094e7ec5c0e252b3352d15a1e854114 · 2026-05-24 08:33:50 -0700 · Steve Abrams
scripts/scan-ghost-layer.js:
- fetchPgTargets() now applies VENDOR_CATS filter (same set used by fetchJsonTargets).
Previously only the JSON-source path skipped vendor SKUs; the PG path scanned
every is_published=TRUE row with a local_path, which fed Gemini Vision a bunch
of real vendor catalog images. The detector flagged 8 of them as ghost-layer
false positives. A downstream cleanup unpublished those 8 vendor SKUs on prod
(Maya Romanoff, Ralph Lauren, Phillipe Romano, Koroseal, Coordonné, Malibu,
Glitter Walls, Graduate Collection). Restored manually 2026-05-24.
data/ghost-scan-flagged.jsonl:
- scrubbed 3 vendor-category entries from the local flagged set so the bulk-delete
UI on prod can't pick them up by accident. Prod copy scrubbed too.
Files touched
M scripts/scan-ghost-layer.js
Diff
commit 67eac7447094e7ec5c0e252b3352d15a1e854114
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Sun May 24 08:33:50 2026 -0700
fix(ghost-detector): vendor-category filter on PG source path + scrub poisoned flagged set
scripts/scan-ghost-layer.js:
- fetchPgTargets() now applies VENDOR_CATS filter (same set used by fetchJsonTargets).
Previously only the JSON-source path skipped vendor SKUs; the PG path scanned
every is_published=TRUE row with a local_path, which fed Gemini Vision a bunch
of real vendor catalog images. The detector flagged 8 of them as ghost-layer
false positives. A downstream cleanup unpublished those 8 vendor SKUs on prod
(Maya Romanoff, Ralph Lauren, Phillipe Romano, Koroseal, Coordonné, Malibu,
Glitter Walls, Graduate Collection). Restored manually 2026-05-24.
data/ghost-scan-flagged.jsonl:
- scrubbed 3 vendor-category entries from the local flagged set so the bulk-delete
UI on prod can't pick them up by accident. Prod copy scrubbed too.
---
scripts/scan-ghost-layer.js | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/scripts/scan-ghost-layer.js b/scripts/scan-ghost-layer.js
index 74e9e7b..fb32691 100644
--- a/scripts/scan-ghost-layer.js
+++ b/scripts/scan-ghost-layer.js
@@ -85,6 +85,14 @@ function fetchPgTargets() {
for (const line of raw.split('\n')) {
if (!line.trim()) continue;
const [id, category, local_path] = line.split('|');
+ // Steve's standing rule — wallco-AI generations only. The JSON-source
+ // path filters VENDOR_CATS but the PG path previously did not — a
+ // full-corpus scan flagged 8 real vendor SKUs (Maya Romanoff, Ralph
+ // Lauren, Phillipe Romano, Koroseal, Coordonné, Malibu, Glitter Walls,
+ // Graduate Collection) as false positives, and a downstream cleanup
+ // unpublished them on prod (2026-05-24). Restored manually; added this
+ // filter so it can't recur.
+ if (VENDOR_CATS.has((category || '').toLowerCase())) continue;
rows.push({ id: parseInt(id, 10), category, local_path, source: 'pg' });
}
return rows;
← 631a8c5 feat(regenerate-whole): create sibling design instead of rep
·
back to Wallco Ai
·
bg-tester: real DW texture library + recent-designs sidebar 80466f6 →