77ff4e12026-05-13remove stray contact modal markup that was rendering inline on the page
64b449b2026-05-13header: 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.
- Delete public/index.html.bak-20260526152130 (leaked 200 via express.static)
- Fix 404-guard regex: \.(bak|orig)(\.|$) missed bak-TIMESTAMP filenames; updated to \.(bak(-[^/]*)?|orig)(\.|$)
- Add *.bak-* pattern to .gitignore to prevent future timestamped bak files from being committed
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.
Added noreferrer to the Facebook link rel and passed noopener,noreferrer
as the window.open feature string for the cross-site DW-universe nav.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
a55000d · 2026-05-19 · fix: remove dead /vocabulary nav link — no such page exists
The footer in care/history/sourcing/trade linked to /vocabulary which
has no backing page and 404s. Removed the dead link from all four.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
48127d8 · 2026-05-19 · chore: untrack .bak/.pre- snapshot files + 404-guard against serving them
Removed 30 committed snapshot files (server.js.bak.*, public/index.html.bak.*,
data/products.json.bak.*, *.pre-* etc), broadened .gitignore to cover
*.bak/*.pre-*/*.orig, and added an Express middleware that 404s any
.bak/.pre-/.orig path before express.static can serve it.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
c57ed2b · 2026-05-19 · fix: /api/facets total counts niche-filtered list, not raw catalog
total used PRODUCTS.length (113) while the API actually serves
PRODUCTS_NICHE — facet counts and total were inconsistent.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
81662dd · 2026-05-19 · fix: wire sort select to server — send sort param + hydrate before first grid load
The sort <select> was decorative: loadGridPage() never appended the sort
param, and the hydration IIFE ran after the initial loadGridPage() call.
Now state.sort is added to the API params and hydrated from localStorage
before the first load.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
9105f38 · 2026-05-07 · Scrub Designer Wallcoverings from products.json (vendor/imageAlt/tags)
Replaced literal 'Designer Wallcoverings' (vendor field, imageAlt suffix,
and tag arrays) with site brand_name. The static HTML was already clean,
but Browserbase rendered-page check found these JS-injected strings.
Now: 0 DW leaks rendered.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
File tree
23 files tracked. Click any to browse the source at HEAD.