[object Object]

← back to Wallco Ai

curator: fix bgswap matcher (gen name is 'gemini-…-bg-swap', includes('bgswap') missed it) — bgswap now wins character-sort + shows blue badge

fd807528d5a7c876c08ef71d1504c92337b30510 · 2026-05-28 06:36:47 -0700 · Steve Abrams

Files touched

Diff

commit fd807528d5a7c876c08ef71d1504c92337b30510
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu May 28 06:36:47 2026 -0700

    curator: fix bgswap matcher (gen name is 'gemini-…-bg-swap', includes('bgswap') missed it) — bgswap now wins character-sort + shows blue badge
---
 public/admin/drunk-curator.html | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/public/admin/drunk-curator.html b/public/admin/drunk-curator.html
index 8975cc6..fef5d12 100644
--- a/public/admin/drunk-curator.html
+++ b/public/admin/drunk-curator.html
@@ -173,7 +173,7 @@ function characterScore(d){
   const g = String(d.generator||'').toLowerCase();
   const c = String(d.category||'').toLowerCase();
   let s = 0;
-  if (g.includes('bgswap')) s += 100;             // raffia/textile-bg family wins
+  if ((g.includes('bgswap') || g.includes('bg-swap'))) s += 100;             // raffia/textile-bg family wins
   if (g.includes('gemini')) s += 70;              // gemini edits (high-aesthetic)
   if (g.includes('comfy')) s += 40;               // fresh comfy dense
   if (g.includes('replicate-fast')) s += 30;
@@ -186,7 +186,13 @@ function characterScore(d){
 function rebuildQueue(){
   let items = RAW_ITEMS.slice();
   if (FILTER_GEN){
-    items = items.filter(d => String(d.generator||'').toLowerCase().includes(FILTER_GEN));
+    items = items.filter(d => {
+      const g = String(d.generator||'').toLowerCase();
+      if (FILTER_GEN === 'bgswap') return g.includes('bgswap') || g.includes('bg-swap');
+      if (FILTER_GEN === 'comfy')  return g.includes('comfy');
+      if (FILTER_GEN === 'gemini') return g.includes('gemini') && !g.includes('bg-swap'); // bgswap has its own bucket
+      return g.includes(FILTER_GEN);
+    });
   }
   if (SORT_MODE === 'density'){
     items.sort((a,b)=>(b.auto_hot_n??-1)-(a.auto_hot_n??-1) || b.id-a.id);
@@ -456,22 +462,27 @@ function splitCategory(cat){
 }
 function genClass(gen){
   const g = String(gen||'').toLowerCase();
+  // Check bgswap BEFORE gemini — the bgswap generator name (gemini-2.5-flash-image-bg-swap)
+  // also contains "gemini", and bgswap is the more specific signal Steve cares about.
+  if((g.includes('bgswap') || g.includes('bg-swap'))) return 'gen-bgswap';
   if(g.includes('comfy')) return 'gen-comfy';
   if(g.includes('replicate')) return 'gen-replicate';
-  if(g.includes('bgswap')) return 'gen-bgswap';
   if(g.includes('smartfix')||g.includes('midheal')||g.includes('edgeheal')) return 'gen-smartfix';
+  if(g.includes('luxe')) return 'gen-gemini';
   if(g.includes('gemini')) return 'gen-gemini';
   return 'gen-other';
 }
 function genLabel(gen){
   const g = String(gen||'').toLowerCase();
+  // bgswap first — same precedence trap as genClass
+  if((g.includes('bgswap') || g.includes('bg-swap'))) return 'bgswap';
   if(g.includes('comfy')) return 'comfy';
   if(g.includes('replicate-fast')) return 'repl·fast';
   if(g.includes('replicate')) return 'repl';
-  if(g.includes('bgswap')) return 'bgswap';
   if(g.includes('smartfix')) return 'smartfix';
   if(g.includes('midheal')) return 'mid-heal';
   if(g.includes('edgeheal')) return 'edge-heal';
+  if(g.includes('luxe')) return 'luxe';
   if(g.includes('gemini')) return 'gemini';
   return (gen||'?').slice(0,12);
 }

← 581d6a2 etsy export: scripts/export-etsy-digital.js writes per-desig  ·  back to Wallco Ai  ·  seam-debug: click boxes to select + 'Heal selected' button ( c9af59b →