[object Object]

← back to CelebritySignatures

Cody-gate fix (verified, proportionate): server art-occupation gate now excludes fashion/costume/game/sound/web 'designer' matches (Christian Dior no longer sits in Artists next to Van Gogh). Kept genuinely art-occupied figures famous for other things (Pasteur=portrait painter, Andersen=papercut artist, Mercator=engraver) — defensible. VERIFIED Cody overstated '33 non-artists live': the server gate already excludes Darwin/Tolstoy/Galileo; only 4 designer/adjacent leaked, Dior the sole indefensible one. Artists 1372→1368 (TK-10181)

681aafe9b1dd83025a669a40b76004ff73ee694a · 2026-08-03 21:00:40 -0700 · Steve Abrams

Files touched

Diff

commit 681aafe9b1dd83025a669a40b76004ff73ee694a
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Mon Aug 3 21:00:40 2026 -0700

    Cody-gate fix (verified, proportionate): server art-occupation gate now excludes fashion/costume/game/sound/web 'designer' matches (Christian Dior no longer sits in Artists next to Van Gogh). Kept genuinely art-occupied figures famous for other things (Pasteur=portrait painter, Andersen=papercut artist, Mercator=engraver) — defensible. VERIFIED Cody overstated '33 non-artists live': the server gate already excludes Darwin/Tolstoy/Galileo; only 4 designer/adjacent leaked, Dior the sole indefensible one. Artists 1372→1368 (TK-10181)
---
 server.js | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/server.js b/server.js
index ccfe15d..792f6a5 100644
--- a/server.js
+++ b/server.js
@@ -319,9 +319,14 @@ createServer(async (req, res) => {
       // genuine artists — museum portrait SUBJECTS (Shakespeare, Newton, Lincoln)
       // and donors get dropped. Falls back to raw as-is if raw is unavailable.
       const ART_OCC = /(paint|sculpt|printmak|draughts|illustrat|photograph|architect|designer|engrav|\bartist\b|animat|ceramic|etcher|watercolo|muralist|lithograph|graphic|calligraph|craft|goldsmith|jewel|potter|weav|textile|cartoonist)/;
+      // "designer" legitimately matches fashion/costume designers (Dior) who read
+      // as odd next to Van Gogh — a matched occ in this EXCLUDE set doesn't count
+      // as a visual-art occupation (they still appear if they ALSO have a real one).
+      const ART_OCC_EXCLUDE = /(fashion designer|costume designer|couturier|game designer|sound designer|web designer)/;
+      const isArtOcc = o => { const s = String(o).toLowerCase(); return ART_OCC.test(s) && !ART_OCC_EXCLUDE.test(s); };
       const qid = r => (r.wikidata || '').split('/').pop();
       const artistQids = new Set(raw
-        .filter(r => (r.occupations || []).some(o => ART_OCC.test(String(o).toLowerCase())))
+        .filter(r => (r.occupations || []).some(isArtOcc))
         .map(qid));
       const cleanArtists = raw.length ? artists.filter(a => artistQids.has(qid(a))) : artists;
       // Authors: same single-authority rule; artists win cross-category ties.

← b394599 auto-save: 2026-08-03T20:57:17 (5 files) — output/collage-de  ·  back to CelebritySignatures  ·  auto-save: 2026-08-03T21:27:28 (4 files) — output/collage-ar db2d9d9 →