Hotelwallcoverings
repo: ~/Projects/hotelwallcoverings · 81 commits · 0 in last 24h, 0 in last 7d ·
Search the build
81 commits indexed
aef95ae
2026-07-06
Square product-card images (aspect-ratio 1/1)
5739765
2026-07-03
corner-nav: move login to its own hamburger in upper-left (panel slides from left)
1bdcbf7
2026-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.
e483ed9
2026-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)
8948433
2026-06-11
hotelwallcoverings: rails fire again — wire sliders + grid filter to aesthetic-OR-tags matcher (prod-safe try-require + inline fallback)
d4e1506
2026-06-09
step2 vendor-leak fix: dual-key /sample resolver + handle_display hrefs
553cacb
2026-06-09
snapshot before step2 codemod
1e93b78
2026-06-03
Scrub residual vendor names from products.json (title/vendor/tags); preserve sku/handle
ccb5a8a
2026-06-03
seo/a11y: add visually-hidden <h1> (site name) for heading semantics — zero visual change
66c27e4
2026-06-03
a11y: add aria-label to contact/sample form inputs (zero visual; screen-reader association)
5e0d361
2026-06-01
admin: add dw-theme-nav 20-theme navigator (upper-right, admin-only)
18ff764
2026-06-01
fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch
7d2ebb6
2026-06-01
dw-header: hide ANY pre-existing <header> (not just ns-header); title-case bare-slug names
e5389b4
2026-06-01
FIX: dw-header was injected inside a doc-comment (never ran); re-inject before the real </body>
b11c9ca
2026-06-01
hero: rotate curated room-setting pool (hero-pool.json), guard >=1400px, no swatch blur
36c39d2
2026-06-01
header name → domain name 'Hotel Wallcoverings' (remove odd brand name)
d08a46f
2026-06-01
hero: huge 2520px clean hero from dw_unified (graphic-designer vetted; no header/text/watermark)
b1b0931
2026-06-01
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
99a6720
2026-06-01
hero: graphic-designer-vetted clean replacement (no baked text/watermark/vendor logo)
3dacb82
2026-06-01
header: remove dw-header.js — fixes overlapping hamburgers (DW-HAMBURGER-NAV v1 sole nav); fleet regression sweep
04b5e36
2026-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
b177cf8
2026-06-01
disable hero-4grid overlay so the unique high-res room/pattern hero shows full-bleed
7933a4d
2026-06-01
fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch
83c6d2c
2026-06-01
homepage: collapse duplicated 'Ideas' rail-eyebrows into one section eyebrow
854257e
2026-06-01
Unique hero image (backsync from prod, fleet hero dedup 2026-06-01)
2f8eb81
2026-06-01
Re-add Big Red embed (revert conflicted; re-injected)
271883d
2026-06-01
fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local pilot branch
4abb741
2026-06-01
hero: activate self-contained 2x2 hero-4grid (fleet sweep, local)
1d3e7a7
2026-06-01
Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep)
9f5acd1
2026-06-01
Pass noopener,noreferrer to sister-site window.open popup
0e2ca52
2026-06-01
Add 301 redirect from legacy .html URLs to clean-URL form
e801b38
2026-05-30
fix: remove public backup file leak + add *.bak-* to .gitignore
c419af9
2026-05-29
feat(fleet): theme1/theme2 query-param-gated toggle on catalog page
febabdd
2026-05-28
scrub vendor name leaks from products.json source (230 products: title/vendor/tags cleaned per sku-redact denylist)
fcf1776
2026-05-26
frontend: cleanSku() strips vendor names from displayed sku (.ven/list/detail) + defer renderRailSections call (fix ReferenceError) — click-through verified
fe5e749
2026-05-26
sku-redact: wire shared vendor-id display scrubber
48f554c
2026-05-26
hotelwallcoverings: editorial rail/facet labels — contract-hospitality neutrals (Textured & Tactile, Warm Neutrals, Cool Grays, Rich Earth Tones) over real buckets
760fb82
2026-05-26
hotelwallcoverings: commit config-rails fix — aspirational lobby/guestroom (0 hydrate) → real buckets (6 rails fire)
45b6997
2026-05-26
homepage: add retrowalls-canonical rail-sections (id=rails + renderRailSections)
3fbdcc8
2026-05-25
remove p.vendor render from Ideas rail card (replace with Designer Wallcoverings)
9487acf
2026-05-25
hydrate saved sort from localStorage BEFORE first /api/products fetch
5d2389b
2026-05-25
add rel=noopener noreferrer to Facebook target=_blank link
b0ef967
2026-05-25
add clean-URL routes for /care /history /sourcing /trade /vocabulary nav links
d292928
2026-05-25
/api/facets: count from filtered list (q/aesthetic/vendor), not raw catalog
998d748
2026-05-25
404-guard: block .bak / .pre-* requests at HTTP surface (defense-in-depth)
302cec3
2026-05-25
wire api-vendor-redact middleware as first app.use (fleet-wide vendor redaction at /api/*)
5221241
2026-05-25
retag aesthetic from PG: 585 rows updated
2e74b3e
2026-05-20
add: pre-stage Meta Pixel snippet (placeholder; flip via _dw-batch set-fb-pixel.sh)
7d20c63
2026-05-20
fix: /about → history.html alias (was 404)
5692d59
2026-05-19
make server.js self-contained — gate _shared/admin-catalog behind MICROSITE_ADMIN_ENABLED env flag (kamatera deploy unblock)
e606673
2026-05-19
Phase 2b: harden .card .pat against long-token title clipping (overflow-wrap)
c3f1e89
2026-05-19
fix: null-guard dead #theme-toggle reference (clean console + immediate grid render)
da39ada
2026-05-19
Phase 2: mobile-ready + tap-to-reveal
7821279
2026-05-19
stage2: wire microsite catalog + admin CRUD + grid/list view
63c4b4f
2026-05-18
untrack 20 stale .bak/.pre snapshot files (18 in public/ — served-file leak); gitignore *.bak.* and *.pre-*
4b37eda
2026-05-18
fix non-functional sort select — pass state.sort to /api/products
614017e
2026-05-18
fix /api/facets total to report niche-filtered count, not pre-filter count
bed9c08
2026-05-14
hero-4grid: relocate json from data/ to public/ for Express static
fa558dd
2026-05-14
4-grid hero: drop-in script + crop CSS + initial 4 newest products
a859a6b
2026-05-14
favicon: Mag-7-inspired SVG glyph
c680df9
2026-05-13
fix env wiring — add __dirname-anchored dotenv + dotenv dep so ADMIN_PASS / GEORGE_AUTH actually load
fe7810b
2026-05-13
corner-nav: title-case the brand name even when .ns-name source is lowercase
323e211
2026-05-13
corner-nav: title-case brand display (e.g. corkwallcovering → Cork Wallcovering)
59c3695
2026-05-13
embed Big Red customer chat (lower-left, retail mode, vendor-redacted)
76a783a
2026-05-13
chip-click → product details modal; vendor redacted in card overlay
d0d7430
2026-05-13
add universal corner-nav.js (UR 4-icon: bag/account/search/menu)
a25c2f5
2026-05-13
remove stray contact modal markup that was rendering inline on the page
4475529
2026-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.
ebc4551
2026-05-13
brand: replace remaining fake brand globally → 'hotelwallcoverings' across head/meta/wordmark/footer — enforces MEMORY brand-stem rule
64d0efe
2026-05-11
hamburger nav: apply canonical pattern from sister-site fleet
5fec8a3
2026-05-11
snapshot before fleet-grid refine
49d4765
2026-05-10
sort-skill UI: add Light→Dark / Dark→Light / Color Wheel options
8536ff8
2026-05-10
sort-skill canonical: add light-dark/dark-light/wheel + helpers
a6a9a09
2026-05-07
graphic-loop pass 13: real footer brand + Facebook link + OG/Twitter meta tags
714453e
2026-05-07
graphic-loop pass 12: niche keyword filter (no off-niche products like 'solid' on patterned sites)
1a54a53
2026-05-07
graphic-loop pass 11: add Ideas rails (New this week + Curated picks) above main grid
f126669
2026-05-07
graphic-loop pass 10: center-mark to top + readable text-shadow + tighter letter-spacing (no mix-blend-mode)
3441b95
2026-05-07
graphic-loop pass 9: real site name + 20-image hero rotation + 2400px hero res
b41dfe2
2026-05-07
graphic-loop pass 8: theme-aware font Cormorant Garamond (panel-approved comprehensive 16-bucket assignment)
58da5e9
2026-05-06
graphic-loop pass 2: fix .corner-mark contrast + soften hero overlay (qwen3:14b consensus across fleet)
8b4d8e1
2026-05-06
initial scaffold (gitify-all 2026-05-06)
Skills used
/products 4 /vendor 4 /sample 2 /tags 2 /watermark 2 /list 2 /facets 2 /handle 1 /a11y 1 /body 1 /text 1 /ideas 1 /json 1 /pattern 1 /index 1 /theme2 1 /detail 1 /facet 1 /guestroom 1 /sliders 1 /div 1 /care 1 /history 1 /sourcing 1 /trade 1 /vocabulary 1 /aesthetic 1 /about 1 /admin-catalog 1 /account 1
Creative ideas + design notes
Commits with substantial prose (≥120 chars) — the rationale behind each move.
e801b38 · 2026-05-30 · fix: remove public backup file leak + add *.bak-* to .gitignore
public/index.html.bak-20260526152130 was present in the webroot and served
by express.static (HTTP guard blocked it at the route level but file existed
on disk). Deleted the file. Also added *.bak-* pattern to .gitignore since
the existing *.bak.* pattern uses dot-separator and would not catch
dash-separated backup filenames like this one.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
c419af9 · 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.
45b6997 · 2026-05-26 · homepage: add retrowalls-canonical rail-sections (id=rails + renderRailSections)
Fleet rails sweep A3 — adds the canonical DW rail-sections pattern from
retrowalls (per LEDGER 2026-05-26 correction note). Renders rails from
/api/sliders ABOVE the flat grid on the unfiltered '/' home view; hides
itself when state.q or state.facet !== 'all'. Clicking 'View all -> on a
rail title calls state.facet=aes + resetGrid + scrollIntoView('#shop')
which is the canonical jumpToFacet behavior. Patch is 3 pieces:
(1) <div id='rails' style='display:none'></div> before <div id='grid'>
(2) .rail-section/.rail-head/.rail-all/.grid.rail-grid CSS
(3) async renderRailSections() fn + startup call right after loadGridPage().
Coexists cleanly with the existing 2-rail Ideas block above (which renders
'New this week' + 'Curated picks' from /api/products and survives in any
filter state).
5221241 · 2026-05-25 · retag aesthetic from PG: 585 rows updated
before: all=600
after: all=15, beige=45, brown=4, contemporary=60, gray=21, textured=441, traditional=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>
File tree
21 files tracked. Click any to browse the source at HEAD.
rendered in 1ms