9ff0e6d2026-06-01Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep)
14ab3bd2026-06-01fix: add noopener,noreferrer to sister-site window.open popup
6ad19352026-06-01fix: /api/facets counts the active filtered set (drill-down) not whole niche catalog; 301 legacy .html paths to clean URLs; sitemap lists canonical clean URLs
eec3b222026-05-13remove stray contact modal markup that was rendering inline on the page
7bead112026-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.
The defense-in-depth middleware regex `\.(bak)(\.|$)` only blocked `.bak.`
or `.bak` at end-of-string, so timestamped snapshots like
`index.html.bak-20260526152130` were served with HTTP 200. Fixed regex to
also match `.bak-` delimiter. Removed the leaked backup file from public/.
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.
d70c8be · 2026-05-25 · chore: add noreferrer to Facebook external link
target=_blank external link was missing the noreferrer half of the
rel attribute (had noopener only).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2c79e24 · 2026-05-25 · feat: add .bak/.pre- 404 guard + clean-URL routes for nav
- Express middleware now returns 404 for any path matching *.bak,
*.bak.*, or *.pre-* so untracked snapshot files in public/ (or
accidentally tracked ones in the future) never serve.
- Adds clean-URL routes /care, /history, /vocabulary, /sourcing, /trade
that sendFile the matching .html. Every interior nav already links
to these extensionless paths but Express static was 404-ing them.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5a7d21b · 2026-05-25 · fix: /api/facets total now reflects niche-filtered list served
Previously reported the raw PRODUCTS.length (600), but only the niche-
filtered 518 are actually returned to the grid via /api/products. The
total now matches what users see and what the per-aesthetic counts sum to.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
before: all=600
after: all=5, beige=60, contemporary=68, textured=409, traditional=44, white=14
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>
55146be · 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
21 files tracked. Click any to browse the source at HEAD.