{"slug":"bleachresistantfabrics","total":37,"limit":100,"offset":0,"since":null,"commits":[{"hash":"7f26832","date":"2026-07-06 17:57:07 -0700","author":"Steve Abrams","subject":"Square product-card images (aspect-ratio 1/1)","body":""},{"hash":"cbcac8e","date":"2026-07-03 09:57:45 -0700","author":"Steve Abrams","subject":"corner-nav: move login to its own hamburger in upper-left (panel slides from left)","body":""},{"hash":"090fa67","date":"2026-06-21 16:57:33 -0700","author":"Steve","subject":"deploy: scaffold .deploy.conf for banner deploy","body":""},{"hash":"5d69c44","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":"81e085b","date":"2026-06-09 13:47:39 -0700","author":"Steve","subject":"step2 vendor-leak fix: dual-key /sample resolver + handle_display hrefs","body":""},{"hash":"b55e6c4","date":"2026-06-03 20:44:26 -0700","author":"Steve","subject":"Scrub residual vendor names from products.json (title/vendor/tags); preserve sku/handle","body":""},{"hash":"4dc82af","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":"f1f6a87","date":"2026-06-01 15:57:42 -0700","author":"Steve Abrams","subject":"fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch","body":""},{"hash":"e2c847f","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":"d83e0ea","date":"2026-06-01 14:49:29 -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":"8108ba1","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":"0e19388","date":"2026-06-01 14:03:59 -0700","author":"Steve Abrams","subject":"fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch","body":""},{"hash":"e8c6b3a","date":"2026-06-01 13:54:58 -0700","author":"Steve Abrams","subject":"gradient hero (unique hue 339deg) — no niche photography available","body":""},{"hash":"03aae85","date":"2026-06-01 13:53:00 -0700","author":"Steve Abrams","subject":"gradient hero (unique hue 339deg) — no niche photography available","body":""},{"hash":"75ada49","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 e21c3128d715ed55ae1b6f0af783ae1af9c4f38a."},{"hash":"b221940","date":"2026-06-01 13:47:35 -0700","author":"Steve Abrams","subject":"fleet rebuild (header-only): dw-header (hamburgers UL + centered name) + accent — local branch","body":""},{"hash":"e21c312","date":"2026-06-01 13:32:15 -0700","author":"Steve Abrams","subject":"Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep)","body":""},{"hash":"e8ec1f4","date":"2026-06-01 07:20:56 -0700","author":"Steve","subject":"fix /api/rails facet counts to honor active q/vendor filters via shared filterProducts() drill-down (was counting whole niche catalog)","body":""},{"hash":"9001c5d","date":"2026-05-30 21:34:19 -0700","author":"Steve Abrams","subject":"fix: wire IntersectionObserver infinite scroll so all 600 products are reachable","body":"#more sentinel div existed but was never observed — users could only see\n36 of 600 products. Added IntersectionObserver on #more, loading/exhausted\nguards, and page increment logic matching the corkwallcovering reference pattern.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>"},{"hash":"90dd291","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":"5943b1a","date":"2026-05-28 07:25:43 -0700","author":"Steve","subject":"scrub vendor name leaks from products.json source (224 products: title/vendor/tags cleaned per sku-redact denylist)","body":""},{"hash":"f1b4caf","date":"2026-05-27 12:01:57 -0700","author":"Steve","subject":"Add corner-nav.js (hard-rule: top-right 4-icon nav on product-grid storefront)","body":""},{"hash":"0db0612","date":"2026-05-26 15:15:58 -0700","author":"Steve Abrams","subject":"sku-redact: wire shared vendor-id display scrubber","body":""},{"hash":"575a927","date":"2026-05-26 07:41:12 -0700","author":"Steve","subject":"wire api-vendor-redact middleware (close vendor leak in /api/products)","body":""},{"hash":"df435be","date":"2026-05-25 20:49:09 -0700","author":"Steve","subject":"remove vendor name render from public product cards","body":"DW standing rule: vendor names NEVER in customer-facing UI. The card\noverlay was rendering `${p.vendor || ''}` directly under the title —\nremoved. Title remains; nothing else changes visually.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"},{"hash":"965b78e","date":"2026-05-25 20:37:34 -0700","author":"Steve Abrams","subject":"retag aesthetic from PG: 598 rows updated","body":"before: all=600\nafter:  all=2, beige=43, contemporary=60, gray=3, textured=448, traditional=26, white=18\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":"df472d1","date":"2026-05-21 20:04:43 -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":"9b4bf07","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":"c2b9060","date":"2026-05-19 15:13:52 -0700","author":"Steve Abrams","subject":"add rel=noreferrer to external product-card link (tabnabbing hardening)","body":"Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"},{"hash":"0315bb3","date":"2026-05-19 15:13:40 -0700","author":"Steve Abrams","subject":"untrack .bak snapshots + .gitignore catch-all + Express 404-guard for .bak/.pre-/.orig paths","body":"Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"},{"hash":"36a208d","date":"2026-05-19 12:14:35 -0700","author":"Steve Abrams","subject":"Phase 2b: harden .card .pat against long-token title clipping (overflow-wrap)","body":""},{"hash":"32fcf2f","date":"2026-05-19 11:27:36 -0700","author":"Steve Abrams","subject":"Phase 2: mobile-ready + tap-to-reveal","body":""},{"hash":"c7101ed","date":"2026-05-19 11:08:24 -0700","author":"Steve","subject":"stage2: wire bleachresistantfabrics onto shared catalog (hand-tailored)","body":""},{"hash":"a47fc71","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":"f4a708f","date":"2026-05-13 12:47:04 -0700","author":"Steve Abrams","subject":"polish: 2-line editorial hero + B2B specifier FAQ accordion","body":"- Hero rewritten from terse 'Bleach. Cleaned. Tested.' to editorial\n  'Fabric that survives the 1:10 bleach test.' with sharpened lede\n  citing CDC-aligned protocol and Wyzenbeek/NFPA spec sheets.\n- Eyebrow rewrites to lead with 'A Designer Wallcoverings Vertical'\n  to anchor the family relationship up-top.\n- New #faq section: 6 specifier questions (1:10 meaning, Crypton vs\n  Type-II, spec sheets, trade pricing, lead times, custom matches).\n  Native <details> accordion with teal-accent plus/minus marker,\n  clinical-cool aesthetic preserved.\n- FAQ link added to header nav, hamburger panel, and footer Catalog\n  column for cross-section discoverability.\n- Footer audited: 15442 Ventura Bl #102, 888-373-4564, info@ mailto,\n  year via JS (2026) — all present."},{"hash":"50e7bc7","date":"2026-05-10 21:40:28 -0700","author":"Steve Abrams","subject":"hamburger nav: apply canonical pattern from sister-site fleet","body":""},{"hash":"108a5fd","date":"2026-05-10 02:15:23 -0700","author":"Steve Abrams","subject":"initial scaffold + GA gtag (G-5XZST5KTQC)","body":""}]}