[object Object]

← back to Dw Activation Calendar

Never-activate guard for Et Cie (rights revoked) — whole-word title match

4b7d2d8d04fc2084e312f005eb1b50541cdc0926 · 2026-08-13 08:15:24 -0700 · Steve

Et Cie rights revoked 2026-08-13; all 25 ACTIVE panels archived on the live store.
Add a title-based never-activate guard so a future re-import can't auto-publish as
'new'. Keyed on the whole-word phrase 'et cie' (Postgres \y boundaries) so it catches
BOTH title forms ('Et Cie <name>' and '<name> by Et Cie Wall Panels') while excluding
'Anet Ciel | Pierre Frey'. Vendor filter can't catch these (vendor='Designer
Wallcoverings'). Deliberately NOT keyed on the PANEL- SKU prefix — that scheme is
shared with Paul Montgomery Studios (434+ live) and would wrongly freeze them.
Symlinked into dw-rotation-activator, so both consumers get it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit 4b7d2d8d04fc2084e312f005eb1b50541cdc0926
Author: Steve <steve@designerwallcoverings.com>
Date:   Thu Aug 13 08:15:24 2026 -0700

    Never-activate guard for Et Cie (rights revoked) — whole-word title match
    
    Et Cie rights revoked 2026-08-13; all 25 ACTIVE panels archived on the live store.
    Add a title-based never-activate guard so a future re-import can't auto-publish as
    'new'. Keyed on the whole-word phrase 'et cie' (Postgres \y boundaries) so it catches
    BOTH title forms ('Et Cie <name>' and '<name> by Et Cie Wall Panels') while excluding
    'Anet Ciel | Pierre Frey'. Vendor filter can't catch these (vendor='Designer
    Wallcoverings'). Deliberately NOT keyed on the PANEL- SKU prefix — that scheme is
    shared with Paul Montgomery Studios (434+ live) and would wrongly freeze them.
    Symlinked into dw-rotation-activator, so both consumers get it.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
 lib/rotation-order.js | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/lib/rotation-order.js b/lib/rotation-order.js
index d65ad0b..ecf7bdc 100644
--- a/lib/rotation-order.js
+++ b/lib/rotation-order.js
@@ -59,6 +59,17 @@ const NOISE_REGEX =
 // NOT Phillip Jeffries); Phillip Jeffries = DWJP-/DWPJ-. Matched by vendor NAME, not SKU prefix.
 const NEVER_ACTIVATE_VENDORS = "gracie|fromental|zuber|de gournay|astek|jeffrey stevens|phillip jeffries";
 
+// NEVER-ACTIVATE brand matched by TITLE, not vendor (2026-08-13, Et Cie rights revoked).
+// Et Cie panels carry vendor "Designer Wallcoverings" — the brand lives ONLY in the TITLE, so the
+// vendor filter above can NOT catch them. Steve: "we do not have rights to show any more" (all Et
+// Cie were ARCHIVED 2026-08-13; this stops a NEW import from auto-activating as "new").
+// Et Cie ships in TWO title forms — "Et Cie <name>" AND "<name> by Et Cie Wall Panels" — so the
+// match is the whole-word phrase "et cie" ANYWHERE in the title (Postgres \y word boundaries):
+// catches both forms yet EXCLUDES "Anet Ciel | Pierre Frey" (the et/cie there sit inside anet/ciel,
+// no word boundary). Do NOT guard on the PANEL- SKU prefix — it is SHARED with Paul Montgomery
+// Studios (434+ live) and others, so a SKU-prefix block would wrongly freeze them.
+const NEVER_ACTIVATE_TITLE = "\\yet cie\\y";
+
 // SAMPLE-SKU filter (2026-08-10, TK-10446). ~90% of the DRAFT pool are memo/sample
 // SKUs (…-Sample, …-S). Activating one publishes a standalone $4.25 memo listing
 // (Google-Merchant $4.25-leak / disapproval risk). Samples must NEVER activate as
@@ -94,6 +105,7 @@ WITH pool AS (
   WHERE status = 'DRAFT'
     AND vendor NOT ILIKE '%schumacher%'                     -- internal-only, never storefront
     AND lower(coalesce(vendor,'')) !~ '${NEVER_ACTIVATE_VENDORS}' -- Gracie/Fromental/Zuber/De Gournay/Astek: bespoke/quote-only/internal, never auto-publish
+    AND lower(coalesce(title,'')) !~ '${NEVER_ACTIVATE_TITLE}'         -- Et Cie (rights revoked 2026-08-13): brand in TITLE, both "Et Cie …" and "… by Et Cie" forms; vendor is "Designer Wallcoverings"
     AND lower(coalesce(title,'')) !~ '${NOISE_REGEX}'       -- drop help-doc noise rows
     AND lower(coalesce(sku, dw_sku, '')) !~ '${SAMPLE_SKU_REGEX}' -- exclude memo/sample SKUs (…-Sample / …-S): never a standalone live listing
     AND NOT EXISTS (                                        -- re-introduction guard (TITLE): skip a DRAFT whose title was EVER on the store

← 601f67f auto-data-snapshot: 2026-08-13T00:12:07 (1 data files) — dat  ·  back to Dw Activation Calendar  ·  chore: version bump vpatch (session close — Et Cie guard) e193aa5 →