Silkwallcoverings
Search the build
-
f4bea452026-07-06 Square product-card images (aspect-ratio 1/1) -
cd740f72026-07-03 corner-nav: move login to its own hamburger in upper-left (panel slides from left) -
8da692f2026-06-19 Mount new-arrivals promo strip (Tier B): require ../_shared/_universal-promo-banner before express.static — text-only rotating 'New · <product> →' banner from /api/products?sort=newest. Local only; deploy gated. -
a3742cf2026-06-18 fix: safeImg allow same-origin /img/ proxy urls (vendor-neutral image proxy 2026-06-03) — product cards were falling back to hero-bg (images all wrong) -
a7b539d2026-06-11 Recompute aesthetic from tags via classifyAesthetic (was degenerate 'all' snapshot) -
6b9d6ca2026-06-09 step2 vendor-leak fix: dual-key /sample resolver + handle_display hrefs -
bf3cda42026-06-09 snapshot before step2 codemod -
bd4b4a42026-06-03 seo: add og:image + twitter card (social-share preview) — zero visual -
58a6f4b2026-06-03 Scrub residual vendor names from products.json (title/vendor/tags); preserve sku/handle -
558d0c02026-06-03 seo/a11y: add visually-hidden <h1> (site name) for heading semantics — zero visual change -
0cb5f6c2026-06-03 a11y: add aria-label to contact/sample form inputs (zero visual; screen-reader association) -
9e427472026-06-01 admin: add dw-theme-nav 20-theme navigator (upper-right, admin-only) -
96ca9a02026-06-01 catalog: fill from Shopify (silkwallcoverings niche) -
0dc24642026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch -
368fb302026-06-01 dw-header: hide ANY pre-existing <header> (not just ns-header); title-case bare-slug names -
be568b72026-06-01 FIX: dw-header was injected inside a doc-comment (never ran); re-inject before the real </body> -
9bf197f2026-06-01 header name → domain name 'Silk Wallcoverings' (remove odd brand name) -
018c2902026-06-01 hero: huge 2520px clean hero from dw_unified (graphic-designer vetted; no header/text/watermark) -
89013872026-06-01 hero/ideas: single big full-bleed hero (remove 2x2 four-square grid + hero-4grid.js/json + inert CSS), collapse Ideas to one rail -
ac7d72b2026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch -
fdc91132026-06-01 Re-add Big Red embed (revert conflicted; re-injected) -
946c02a2026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local pilot branch -
d8a3db82026-06-01 Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep) -
a11fb5a2026-06-01 301-redirect legacy .html pages to clean URLs (kill duplicate-content from static dir) -
02575fa2026-05-30 fix: remove leaked bak file from public/ and patch 404-guard regex to block bak-TIMESTAMP filenames -
03913442026-05-29 feat(fleet): theme1/theme2 query-param-gated toggle on catalog page -
b9b9cac2026-05-28 scrub vendor name leaks from products.json source (4 products: title/vendor/tags cleaned per sku-redact denylist) -
43f849b2026-05-26 frontend: cleanSku() strips vendor names from displayed sku (.ven/list/detail) + defer renderRailSections call (fix ReferenceError) — click-through verified -
3b37b512026-05-26 sku-redact: wire shared vendor-id display scrubber -
9abb9ab2026-05-26 rails: tag-aware facet filter (productInRail) so rail drill-down + pills return products (fix regression) -
1ec7c632026-05-26 rails: tag-aware via shared rail-match helper + editorial LABELS (fix degenerate single-rail) -
d8868552026-05-26 rails: editorial labels for firing aesthetic buckets -
30c767e2026-05-26 rails: wire /api/sliders into horizontal scroll-snap rail sections [fixed] -
ae0ab5a2026-05-25 wire api-vendor-redact middleware as first app.use so /api/* responses strip vendor field + vendors facet and drop ?vendor= query -
a5f0ebe2026-05-25 add noopener,noreferrer to window.open(_blank) sister-site links to prevent opener tampering -
dd4f28a2026-05-25 add clean-URL routes for /care /history /sourcing /trade /vocabulary so nav links resolve without .html (matches existing href values) -
4f69bb52026-05-25 add 404-guard middleware so backup files (.bak/.pre-*) never leak via express.static even if accidentally copied into public/ -
04ede702026-05-25 /api/facets total now reflects FILTERED count (honors q/aesthetic/vendor query) instead of full PRODUCTS.length -
e81c98e2026-05-25 hydrate saved sort before first grid load so initial /api/products request honors persisted choice -
02548e72026-05-25 retag aesthetic from PG: 47 rows updated -
471afe42026-05-20 add: pre-stage Meta Pixel snippet (placeholder; flip via _dw-batch set-fb-pixel.sh) -
b6386d92026-05-20 fix: /about → history.html alias (was 404) -
b3c8bd52026-05-19 make server.js self-contained — gate _shared/admin-catalog behind MICROSITE_ADMIN_ENABLED env flag (kamatera deploy unblock) -
7ab1bf72026-05-19 wire state.sort into loadGridPage /api/products URL (fleet sort fanout) -
8ab97ef2026-05-19 Phase 2b: harden .card .pat against long-token title clipping (overflow-wrap) -
c590d8c2026-05-19 fix: null-guard dead #theme-toggle reference (clean console + immediate grid render) -
a6d8e702026-05-19 Phase 2: mobile-ready + tap-to-reveal -
01213fc2026-05-19 stage2: wire microsite catalog + admin CRUD + grid/list view; repair dead facets -
18d5db82026-05-18 remove dead leftover comment in /api/products handler -
99f8d322026-05-18 untrack 18 stale .bak/.pre-* snapshot files (16 served publicly from public/) + extend .gitignore to cover them -
6f5c4ff2026-05-14 hero-4grid: relocate json from data/ to public/ for Express static -
c17f8d62026-05-14 4-grid hero: drop-in script + crop CSS + initial 4 newest products -
31cda232026-05-14 favicon: Mag-7-inspired SVG glyph -
60197fd2026-05-13 fix env wiring — anchor dotenv to __dirname so .env loads even when pm2 cwd is wrong -
ad249802026-05-13 corner-nav: title-case the brand name even when .ns-name source is lowercase -
6c4ffad2026-05-13 corner-nav: title-case brand display (e.g. corkwallcovering → Cork Wallcovering) -
45ecb7e2026-05-13 corner-nav: fix injection — script tag was landing inside HTML comment, now anchored to real </body> -
ac95fa52026-05-13 embed Big Red customer chat (lower-left, retail mode, vendor-redacted) -
d181ecf2026-05-13 chip-click → product details modal; vendor redacted in card overlay -
00013262026-05-13 add universal corner-nav.js (UR 4-icon: bag/account/search/menu) -
baf65b62026-05-13 remove stray contact modal markup that was rendering inline on the page -
65d666b2026-05-13 header: remove duplicate <header> with dwmOpen-contact (was overlapping ns-header) + add display:none default to .ns-modal so How-can-we-help only opens on click. Restores canonical logo-UL + hamburger-UR layout per MEMORY rule. -
6b5e4ac2026-05-13 brand: replace remaining fake brand globally → 'silkwallcoverings' across head/meta/wordmark/footer — enforces MEMORY brand-stem rule -
45e1c022026-05-13 brand: <title> uses domain stem 'silkwallcoverings' (was 'Noir Maison') — enforces MEMORY brand-stem rule -
47a83ea2026-05-11 snapshot before fleet-grid refine -
194bae32026-05-10 sort-skill UI: add Light→Dark / Dark→Light / Color Wheel options -
1fa2a052026-05-10 sort-skill canonical: add light-dark/dark-light/wheel + helpers -
76632122026-05-08 Hamburger always visible on right — propagated from novasuede a815690 -
a4a75112026-05-06 initial scaffold (gitify-all 2026-05-06)
Authors
- Steve69
Agents used
Skills used
- /products4
- /vendor3
- /sample2
- /tags2
- /body2
- /list2
- /handle1
- /a11y1
- /text1
- /watermark1
- /ideas1
- /json1
- /index1
- /theme21
- /detail1
- /sliders1
- /care1
- /history1
- /sourcing1
- /trade1
- /vocabulary1
- /facets1
- /aesthetic1
- /about1
- /admin-catalog1
- /account1
- /search1
- /menu1
- /meta1
- /wordmark1
Creative ideas + design notes
02575fa · 2026-05-30 · fix: remove leaked bak file from public/ and patch 404-guard regex to block bak-TIMESTAMP filenames
public/index.html.bak-20260526152130 was being served via express.static because the 404-guard regex only matched .bak and .bak.\d+ (dot-separated) patterns, not the bak-TIMESTAMP (hyphen) variant produced by the deploy script. Deleted the file and updated the guard to /\.bak([.-]|$)/ which catches all variants. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0391344 · 2026-05-29 · feat(fleet): theme1/theme2 query-param-gated toggle on catalog page
Default: theme1, toggle hidden. Opt-in via ?theme=2 or localStorage
('wallco-page-theme' key shared across the fleet). Same gate pattern
as dw-domain-fleet productPage.
02548e7 · 2026-05-25 · retag aesthetic from PG: 47 rows updated
before: all=50 after: all=3, architectural=15, durable=32 Backfills correct multi-bucket aesthetic tagging from dw_unified.microsite_products (DTD verdict B, 2026-05-25 fleet retag run). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
7663212 · 2026-05-08 · Hamburger always visible on right — propagated from novasuede a815690
Standing rule in ~/.claude/skills/dw-site-build/SKILL.md (added today): every DW-family site ships with hamburger ALWAYS visible on the right, inline nav collapses into drop-panel at all viewports. Premium-minimal pattern (Aesop / Hermès / Apple Music). Same edit as novasuede: - ns-header media-query collapse rules unwrapped to apply at all widths - second .mobile-toggle block (legacy 'header .mobile-toggle' selector) also unwrapped from the <760px gate Reversible: re-wrap both blocks in @media (max-width: 760px) and restore the @media (min-width: 761px) display:none override. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
File tree
- .gitignore
- _universal-auth.js
- _universal-contact.js
- data/products.json
- package-lock.json
- package.json
- public/care.html
- public/corner-nav.js
- public/dw-header.js
- public/dw-theme-nav.js
- public/favicon.svg
- public/hero-bg.jpg
- public/hero-pool.json
- public/history.html
- public/index.html
- public/sku-redact.js
- public/sourcing.html
- public/trade.html
- public/vocabulary.html
- server.js
- site.config.json