{"slug":"chinoiseriewallpaper","total":51,"limit":100,"offset":0,"since":null,"commits":[{"hash":"19c7026","date":"2026-07-27 20:04:55 -0700","author":"Steve Abrams","subject":"migrate GoDaddy auth → Bearer PAT (TK-10 key rotation); sso-key fallback retained","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"4243238","date":"2026-07-03 09:57:42 -0700","author":"Steve Abrams","subject":"corner-nav: move login to its own hamburger in upper-left (panel slides from left)","body":""},{"hash":"b6ee33c","date":"2026-06-21 17:04:14 -0700","author":"Steve","subject":"deploy: scaffold .deploy.conf for banner deploy","body":""},{"hash":"58a57ae","date":"2026-06-21 16:48:55 -0700","author":"Steve","subject":"banner: wire universal promo-banner require above express.static (officer-approved; deploy gated)","body":""},{"hash":"140fac5","date":"2026-06-11 09:23:35 -0700","author":"Steve Abrams","subject":"chinoiseriewallpaper: rails fire again — wire sliders + grid filter to aesthetic-OR-tags matcher (prod-safe try-require + inline fallback)","body":""},{"hash":"c4fe98a","date":"2026-06-09 13:49:32 -0700","author":"Steve","subject":"step2 vendor-leak fix: dual-key /sample resolver + handle_display hrefs","body":""},{"hash":"d041e41","date":"2026-06-09 13:48:32 -0700","author":"Steve","subject":"snapshot before step2 codemod","body":""},{"hash":"a70ffc2","date":"2026-06-03 21:36:16 -0700","author":"Steve Abrams","subject":"seo: add og:image + twitter card + canonical (social-share preview) — zero visual","body":""},{"hash":"979a940","date":"2026-06-03 20:44:28 -0700","author":"Steve","subject":"Scrub residual vendor names from products.json (title/vendor/tags); preserve sku/handle","body":""},{"hash":"d31eaa5","date":"2026-06-01 16:38:37 -0700","author":"Steve Abrams","subject":"admin: add dw-theme-nav 20-theme navigator (upper-right, admin-only)","body":""},{"hash":"f1faecc","date":"2026-06-01 15:57:44 -0700","author":"Steve Abrams","subject":"fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch","body":""},{"hash":"11f43cc","date":"2026-06-01 15:55:59 -0700","author":"Steve Abrams","subject":"index.html: interpolate un-rendered DwHeaderConfig template ({{...{name}...}} -> valid JS) so a deploy won't ship a syntax error that blanks the page","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"831b2d7","date":"2026-06-01 15:47:41 -0700","author":"Steve Abrams","subject":"dw-header: hide ANY pre-existing <header> (not just ns-header); title-case bare-slug names","body":""},{"hash":"293d215","date":"2026-06-01 14:49:48 -0700","author":"Steve Abrams","subject":"header A-rebuild: dw-header.js wins fleet — patched to hide original header + corner-nav + v1, fix centered site-name (title fallback), add theme toggle; v1 removed from index","body":""},{"hash":"6c0ac9e","date":"2026-06-01 14:47:38 -0700","author":"Steve Abrams","subject":"header: complete dw-header rebuild — remove old DW-HAMBURGER-NAV v1, keep dw-header.js (UL burgers + centered name); finishes pilot a8a49f7, single hamburger","body":""},{"hash":"5146ca0","date":"2026-06-01 14:31:33 -0700","author":"Steve Abrams","subject":"Revert \"header: complete dw-header rebuild — remove old DW-HAMBURGER-NAV v1, keep dw-header.js (UL burgers + centered name); finishes pilot a8a49f7, single hamburger\"","body":"This reverts commit 3b47bf8b5441ca10bcca178dc95bbd0353d782f1."},{"hash":"3b47bf8","date":"2026-06-01 14:28:52 -0700","author":"Steve Abrams","subject":"header: complete dw-header rebuild — remove old DW-HAMBURGER-NAV v1, keep dw-header.js (UL burgers + centered name); finishes pilot a8a49f7, single hamburger","body":""},{"hash":"58791ad","date":"2026-06-01 14:22:17 -0700","author":"Steve Abrams","subject":"header: remove dw-header.js — fixes overlapping hamburgers (DW-HAMBURGER-NAV v1 sole nav); fleet regression sweep","body":""},{"hash":"08b665e","date":"2026-06-01 14:11:47 -0700","author":"Steve Abrams","subject":"Unique clean image hero (fleet hero dedup 2026-06-01)","body":""},{"hash":"301f03a","date":"2026-06-01 14:04:00 -0700","author":"Steve Abrams","subject":"fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch","body":""},{"hash":"015eaee","date":"2026-06-01 13:48:38 -0700","author":"Steve Abrams","subject":"Revert \"Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep)\"","body":"This reverts commit a3ba7a89a5431325c5f244be4824a0cff95c887e."},{"hash":"a8a49f7","date":"2026-06-01 13:40:31 -0700","author":"Steve Abrams","subject":"fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local pilot branch","body":""},{"hash":"a3ba7a8","date":"2026-06-01 13:32:19 -0700","author":"Steve Abrams","subject":"Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep)","body":""},{"hash":"d1bbc00","date":"2026-06-01 07:24:36 -0700","author":"Steve","subject":"/api/facets honors q + aesthetic filters (counts reflect filtered result set, not raw catalog)","body":""},{"hash":"586ac8c","date":"2026-05-30 21:39:59 -0700","author":"Steve","subject":"scrub residual 3rd-party vendor names from products.json source (per sku-redact denylist; sku/handle + DW house brands preserved)","body":""},{"hash":"95d5884","date":"2026-05-29 13:20:41 -0700","author":"Steve Abrams","subject":"feat(fleet): theme1/theme2 query-param-gated toggle on catalog page","body":"Default: theme1, toggle hidden. Opt-in via ?theme=2 or localStorage\n('wallco-page-theme' key shared across the fleet). Same gate pattern\nas dw-domain-fleet productPage."},{"hash":"946948e","date":"2026-05-28 07:25:47 -0700","author":"Steve","subject":"scrub vendor name leaks from products.json source (901 products: title/vendor/tags cleaned per sku-redact denylist)","body":""},{"hash":"d89307d","date":"2026-05-26 15:15:58 -0700","author":"Steve Abrams","subject":"sku-redact: wire shared vendor-id display scrubber","body":""},{"hash":"bd45b5d","date":"2026-05-26 09:45:03 -0700","author":"Steve","subject":"redact vendor names from customer-facing /api (close fleet leak)","body":""},{"hash":"3e1bbcd","date":"2026-05-26 08:11:05 -0700","author":"Steve","subject":"homepage rails: motif rail sections + pills strip wired to /api/sliders","body":"Adds 4 motif rail sections (green/commercial/architectural/white, 8 cards each\nwith View all →) above the collection grid + a horizontal pill strip wired to\nthe existing aestheticFilter <select>. Fetches /api/sliders + /api/facets at\nload. Replaces stale Motif dropdown options (chinoiserie/imperial/scenic/...)\nwith the actual aesthetics present in data/products.json (green 93, commercial\n100, white 7, architectural 25, botanical 2, floral, all). Same pattern as\nhollywood-wallcoverings 3a7da85 + blockprintedwallpaper rails."},{"hash":"b78efdd","date":"2026-05-25 20:55:29 -0700","author":"Steve Abrams","subject":"add 404-guard middleware","body":"Final catch-all returns JSON for /api/* misses and a lightweight branded\nHTML page for everything else. Sits after the catalog mount so it only\nfires when nothing upstream matched.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"},{"hash":"e041ec6","date":"2026-05-25 20:54:51 -0700","author":"Steve Abrams","subject":"add noreferrer to every target=_blank link","body":"Tabnabbing + referrer-leak hardening across both static HTML and JS-built\nproduct cards. 8 links upgraded from rel=\"noopener\" to\nrel=\"noopener noreferrer\".\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"},{"hash":"f031da9","date":"2026-05-25 20:54:07 -0700","author":"Steve Abrams","subject":"remove DW vendor leaks from customer UI","body":"- drop .card-vendor render in site.js (was exposing p.vendor on every card)\n- drop \"By Vendor\" + \"vendor-desc\" sort options\n- drop p.vendor from search filter (title + tags only)\n- drop unused .card-vendor CSS rule\n- drop \"vendor\" from search-input placeholder\n\nStanding rule (MEMORY.md 2026-05-20): DW vendor names never in\ncustomer-facing UI.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"},{"hash":"78c4d98","date":"2026-05-25 20:46:11 -0700","author":"Steve Abrams","subject":"pull-from-shopify: use shared classifier with rails primary, local aestheticOf as fallback","body":""},{"hash":"4901605","date":"2026-05-25 20:37:35 -0700","author":"Steve Abrams","subject":"retag aesthetic from PG: 1193 rows updated","body":"before: avian=13, botanica=34, chinoiserie=808, garden=20, handpainted=2, imperial=180, scenic=136\nafter:  all=6, architectural=93, botanical=44, commercial=444, floral=10, green=492, white=104\n\nBackfills correct multi-bucket aesthetic tagging from dw_unified.microsite_products\n(DTD verdict B, 2026-05-25 fleet retag run).\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"},{"hash":"f8ab913","date":"2026-05-21 20:05:24 -0700","author":"Steve Abrams","subject":"make server.js self-contained — gate _shared/admin-catalog behind MICROSITE_ADMIN_ENABLED env flag (kamatera deploy unblock)","body":""},{"hash":"3fcbcd6","date":"2026-05-20 00:27:38 -0700","author":"Steve","subject":"add: pre-stage Meta Pixel snippet (placeholder; flip via _dw-batch set-fb-pixel.sh)","body":"Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"},{"hash":"ba95598","date":"2026-05-19 22:10:24 -0700","author":"Steve Abrams","subject":"add ns-contact modal (CSS + HTML + JS) — info@chinoiseriewallpaper.com","body":"Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"},{"hash":"254dff1","date":"2026-05-19 22:10:24 -0700","author":"Steve Abrams","subject":"add corner-nav.js — universal top-right nav per _shared/corner-nav.js","body":"Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"},{"hash":"965f59f","date":"2026-05-19 11:23:43 -0700","author":"Steve Abrams","subject":"Phase 2: mobile-ready + tap-to-reveal","body":""},{"hash":"2fb17f4","date":"2026-05-19 10:00:56 -0700","author":"Steve Abrams","subject":"stage2: wire microsite catalog + admin CRUD + /api/sliders","body":""},{"hash":"8b1e9bd","date":"2026-05-18 20:49:30 -0700","author":"Steve Abrams","subject":"block .bak/.pre-* snapshot files from being served as static assets","body":""},{"hash":"31c7dd2","date":"2026-05-18 20:49:04 -0700","author":"Steve Abrams","subject":"untrack stale snapshot files; gitignore .bak/.pre-* patterns","body":""},{"hash":"ff1ccaa","date":"2026-05-13 14:00:53 -0700","author":"Steve Abrams","subject":"embed Big Red customer chat (lower-left, retail mode, vendor-redacted)","body":""},{"hash":"2c1d4d8","date":"2026-05-11 03:35:49 -0700","author":"Steve","subject":"fleet-grid refine: all-pass tick 6 (chinoiseriewallpaper)","body":""},{"hash":"b10554f","date":"2026-05-11 00:48:44 -0700","author":"Steve Abrams","subject":"sort-skill canonical + strict chinoiserie filter — drop textures + non-Asian","body":"server.js — 10-mode sort dispatcher (newest/sku/title/color/style/light-dark/\ndark-light/wheel/price-asc/price-desc/vendor). Previously only title/price/\nvendor worked; light-dark/dark-light/wheel silently fell through (the \"Sort\nBROKEN\" Steve hit). Adds COLOR_HEX + dominantHex/colorDots/hue/luminance\nhelpers per ~/.claude/skills/sort-skill.\n\nStrict chinoiserie filter: REJECT_TEXTURE on title (paintable, supaglypta,\ngrasscloth, sisal, cork, raffia, herringbone, sandstone, woven/weave,\npaperweave, foil, linen, leather, suede, anaglypta) + REJECT_NONASIAN on\ntitle (BH 90210, Erotic, Highland, Versace, Agra, etc) + STRICT_CHINOIS must\nmatch in title or tags. 1,193 raw → 230 chinois patterns served.\n\ndecorateColors() on every /api/products response.\npublic/index.html — sort select extended with Color/Style/SKU/Title A-Z.\npublic/js/site.js — sort+aesthetic+cols persist via localStorage + render\nup to 4 color dots per card.\npublic/css/site.css — .dots/.dot with dark-theme variant."},{"hash":"107f670","date":"2026-05-10 21:40:30 -0700","author":"Steve Abrams","subject":"hamburger nav: apply canonical pattern from sister-site fleet","body":""},{"hash":"11735ae","date":"2026-05-10 21:39:47 -0700","author":"Steve Abrams","subject":"snapshot before hamburger nav rollout","body":""},{"hash":"50b77f9","date":"2026-05-10 12:43:23 -0700","author":"Steve","subject":"sort-skill UI: add Light→Dark / Dark→Light / Color Wheel options","body":""},{"hash":"65cb772","date":"2026-05-07 15:12:04 -0700","author":"Steve Abrams","subject":"add finish_dns.sh + deploy artifacts: nginx vhost, pm2 live at :9853","body":""},{"hash":"0b9b258","date":"2026-05-07 15:03:50 -0700","author":"Steve Abrams","subject":"initial scaffold: 1193-product chinoiserie microsite","body":""}]}