Wallpapercanada

repo: ~/Projects/wallpapercanada · 102 commits · 0 in last 24h, 6 in last 7d · █▂

Search the build

102 commits indexed

  1. 0b439a0 2026-09-23 front-page-steward: ux-primitives bundle (grid) TK-12031
  2. 053e8d9 2026-09-22 revert ux-primitives auto-apply — coordinator gates fan-out (TK-12031)
  3. 847b96c 2026-09-22 front-page-steward: ux-primitives bundle (silent) TK-12031
  4. 34669bb 2026-09-22 wallpapercanada: also hide cards that would fall back to the generic hero
  5. a5322e0 2026-09-22 wallpapercanada: never show non-loading images (hide card/rail/modal on img onerror)
  6. befff70 2026-09-22 wallpapercanada: remove all 'free sample delivery' copy (EN + FR)
  7. b4a65e4 2026-09-10 Add clean /privacy route (AdSense URL consistency)
  8. 749b368 2026-09-10 Standardize privacy policy to /privacy.html + footer link (AdSense)
  9. 8cfbb1d 2026-09-10 Add AdSense-compliant privacy policy page + footer link + /privacy route
  10. aa18305 2026-09-10 wallpapercanada: add read-only cache diagnostic (app-direct vs nginx)
  11. dfac548 2026-09-10 wallpapercanada: add read-only prod diagnostic (find live docroot)
  12. 0f7862f 2026-09-10 wallpapercanada: add self-verifying deploy-index.sh
  13. d640e43 2026-09-09 wallpapercanada: add visible footer link to Designer Wallcoverings (parent site)
  14. ded991f 2026-09-09 TK-11341: add AdSense Auto-Ads loader + ads.txt (revert to remove ads)
  15. 9e61364 2026-08-24 auto-data-snapshot: 2026-08-24T04:13:07 (1 data files) — server.js.ldrbak.1787569812
  16. 2556e2f 2026-08-24 Add p.visible!==false guard to product load filter (cluster5 resid)
  17. 8c49f9d 2026-08-22 auto-data-snapshot: 2026-08-22T11:19:22 (1 data files) — data/products.json
  18. bc6a0eb 2026-08-12 viewer standard: add per-field on/off menu (Fields ▾) to product grid
  19. 96f0a38 2026-08-04 Revert AdSense: DW sister sites stay ad-free (Steve policy 2026-08-04)
  20. 6963f77 2026-08-04 AdSense pilot: loader in head + ads.txt (ca-pub-5278231299883833) — not yet deployed
  21. 9e3ee61 2026-08-04 fix: take infinite-scroll .loading indicator out of flow (kills ~0.3-0.4 CLS scroll-jump)
  22. 4a9ed96 2026-08-04 Wire DW Meta Pixel 1431180262113856 + DW-network ad slot [ads/tracking rollout]
  23. 6640dbd 2026-07-31 wallpapercanada: adopt href-to-deeper-data storefront primitives (TK-10093)
  24. b2560e5 2026-07-30 search: scroll results into view on mobile (grid was below the fold → looked like nothing happened)
  25. 6b47b3e 2026-07-29 corner-nav: block javascript:/data: URIs in search preview (URL-scheme allowlist)
  26. 21e9b26 2026-07-29 search: /api matcher now covers title+tags+description+type+vendor+sku
  27. ded51a1 2026-07-29 corner-nav: live as-you-type search with thumbnail previews (title+tags+description)
  28. 26ec080 2026-07-06 Square product-card images (aspect-ratio 1/1)
  29. 630376a 2026-07-03 corner-nav: move login to its own hamburger in upper-left (panel slides from left)
  30. c3879e4 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.
  31. 0e0c8b6 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)
  32. 713d1d9 2026-06-11 Recompute aesthetic from tags via classifyAesthetic (was degenerate 'all' snapshot)
  33. f3097f2 2026-06-09 step2 vendor-leak fix: dual-key /sample resolver + handle_display hrefs
  34. 7eda669 2026-06-09 snapshot before step2 codemod
  35. af18cf0 2026-06-03 Scrub residual vendor names from products.json (title/vendor/tags); preserve sku/handle
  36. 62c8b44 2026-06-01 admin: add dw-theme-nav 20-theme navigator (upper-right, admin-only)
  37. 3c42a25 2026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch
  38. 1ff66b5 2026-06-01 dw-header: hide ANY pre-existing <header> (not just ns-header); title-case bare-slug names
  39. cc8bd14 2026-06-01 FIX: dw-header was injected inside a doc-comment (never ran); re-inject before the real </body>
  40. 8f952ab 2026-06-01 hero: rotate curated room-setting pool (hero-pool.json), guard >=1400px, no swatch blur
  41. 82697b7 2026-06-01 hero: huge 2520px clean hero from dw_unified (graphic-designer vetted; no header/text/watermark)
  42. fd8ef05 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
  43. c0e0417 2026-06-01 header: remove dw-header.js — fixes overlapping hamburgers (DW-HAMBURGER-NAV v1 sole nav); fleet regression sweep
  44. b6e8157 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
  45. 4e70867 2026-06-01 disable hero-4grid overlay so the unique high-res room/pattern hero shows full-bleed
  46. cbba248 2026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch
  47. 0874f5d 2026-06-01 homepage: collapse duplicated 'Ideas' rail-eyebrows into one section eyebrow
  48. 1783e6d 2026-06-01 Unique hero image (backsync from prod, fleet hero dedup 2026-06-01)
  49. f1a5ceb 2026-06-01 Revert "Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep)"
  50. 8c17f57 2026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local pilot branch
  51. f5e76b8 2026-06-01 Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep)
  52. 42a408e 2026-06-01 facets: filter-aware drill-down counts (shared filterProducts, per-dimension skip)
  53. 03655a1 2026-05-30 fix: remove leaked public/index.html.bak file + harden bak-guard regex to cover .bak-* filenames
  54. b6b9120 2026-05-29 feat(fleet): theme1/theme2 query-param-gated toggle on catalog page
  55. b9c87c8 2026-05-28 scrub vendor name leaks from products.json source (224 products: title/vendor/tags cleaned per sku-redact denylist)
  56. 3cbcb1f 2026-05-26 frontend: cleanSku() strips vendor names from displayed sku (.ven/list/detail) + defer renderRailSections call (fix ReferenceError) — click-through verified
  57. ebf3570 2026-05-26 sku-redact: wire shared vendor-id display scrubber (proof site, local)
  58. 9888676 2026-05-26 rails: tag-aware facet filter (productInRail) so rail drill-down + pills return products (fix regression)
  59. cff90a5 2026-05-26 rails: editorial labels for new tag-derived rail keys (index.html LABELS)
  60. da21eed 2026-05-26 fix package-lock name field (stale hospitalitywallpaper from scaffold copy)
  61. 86eb049 2026-05-26 rails: build from tags via shared rail-match helper (fix degenerate single-rail collapse)
  62. aa91da4 2026-05-26 rails: editorial labels for firing aesthetic buckets
  63. 6783aaa 2026-05-26 rails: wire /api/sliders into horizontal scroll-snap rail sections [rails-degenerate]
  64. a31eac9 2026-05-25 wire api-vendor-redact middleware — strips vendor field + vendors facet + ?vendor= from /api/* responses
  65. 95e6d35 2026-05-25 redact vendor name on customer cards + rail tiles (show Designer Wallcoverings instead)
  66. 1746fa1 2026-05-25 retag aesthetic from PG: 600 rows updated
  67. e5c01e6 2026-05-20 add: pre-stage Meta Pixel snippet (placeholder; flip via _dw-batch set-fb-pixel.sh)
  68. 4763ad3 2026-05-19 make server.js self-contained — gate _shared/admin-catalog behind MICROSITE_ADMIN_ENABLED env flag (kamatera deploy unblock)
  69. 28b62e4 2026-05-19 Phase 2b: harden .card .pat against long-token title clipping (overflow-wrap)
  70. 2ae6d3b 2026-05-19 Phase 2: mobile-ready + tap-to-reveal
  71. 515af19 2026-05-19 fix site.config.json — correct slug/identity (was copy-pasted from hospitalitywallpaper)
  72. e1c084e 2026-05-19 stage2: wire microsite catalog + admin CRUD + grid/list view
  73. 446b34f 2026-05-19 security: add rel=noopener noreferrer to all target=_blank external links
  74. abe9213 2026-05-19 nav: remove dead /about links (3) — no About page or route exists
  75. 2ee110e 2026-05-19 server: 404-guard for snapshot paths + facets total counts the served list
  76. 56a7fe7 2026-05-19 chore: untrack 18 editor snapshot files (*.bak / *.pre-*) and broaden .gitignore
  77. d03187d 2026-05-19 sort: honor sort param — send state.sort to /api/products and hydrate saved value before first grid load
  78. 131605d 2026-05-14 hero-4grid: relocate json from data/ to public/ for Express static
  79. 305f780 2026-05-14 4-grid hero: drop-in script + crop CSS + initial 4 newest products
  80. 2da6733 2026-05-14 favicon: Mag-7-inspired SVG glyph
  81. cdfec99 2026-05-13 corner-nav: title-case the brand name even when .ns-name source is lowercase
  82. d507caf 2026-05-13 corner-nav: title-case brand display (e.g. corkwallcovering → Cork Wallcovering)
  83. 6e9f86d 2026-05-13 fix: contact modal CSS + HTML (was rendering inline as raw emoji/links)
  84. faf1f8b 2026-05-13 embed Big Red customer chat (lower-left, retail mode, vendor-redacted)
  85. 31cab58 2026-05-13 chip-click → product details modal; vendor redacted in card overlay
  86. c190ab0 2026-05-13 add universal corner-nav.js (UR 4-icon: bag/account/search/menu)
  87. 4309314 2026-05-13 remove stray contact modal markup that was rendering inline on the page
  88. 9ea470a 2026-05-11 hamburger nav: apply canonical pattern from sister-site fleet
  89. 1688435 2026-05-11 snapshot before fleet-grid refine
  90. 58615c3 2026-05-10 sort-skill UI: add Light→Dark / Dark→Light / Color Wheel options
  91. a45c0e8 2026-05-10 sort-skill canonical: add light-dark/dark-light/wheel + helpers
  92. 03dbc9d 2026-05-10 add gated figma capture loader (only fires on ?figmacapture= URL param)
  93. 7a79c5d 2026-05-10 brand customization for wallpapercanada
  94. 690b5d6 2026-05-08 fleet UX: novasuede-style hamburger drawer (DW-Websites/_shared/dw-fleet-nav.js)
  95. c969938 2026-05-07 graphic-loop pass 13: real footer brand + Facebook link + OG/Twitter meta tags
  96. f8c4ed7 2026-05-07 graphic-loop pass 12: niche keyword filter (no off-niche products like 'solid' on patterned sites)
  97. 3e4a6bb 2026-05-07 graphic-loop pass 11: add Ideas rails (New this week + Curated picks) above main grid
  98. de6aabe 2026-05-07 graphic-loop pass 10: center-mark to top + readable text-shadow + tighter letter-spacing (no mix-blend-mode)
  99. fb4455f 2026-05-07 graphic-loop pass 9: real site name + 20-image hero rotation + 2400px hero res
  100. 9880dd8 2026-05-07 graphic-loop pass 8: theme-aware font Cormorant Garamond (panel-approved comprehensive 16-bucket assignment)
  101. 2cbfe46 2026-05-06 graphic-loop pass 2: fix .corner-mark contrast + soften hero overlay (qwen3:14b consensus across fleet)
  102. 404c252 2026-05-06 initial scaffold (gitify-all 2026-05-06)

Authors

Agents used

  • none detected

Skills used

  • /claude7
  • /code7
  • /index3
  • /privacy3
  • /products3
  • /body3
  • /sample2
  • /vendor2
  • /tags2
  • /list2
  • /about2
  • /empty1
  • /rail1
  • /modal1
  • /off1
  • /tracking1
  • /data1
  • /handle1
  • /text1
  • /watermark1
  • /ideas1
  • /json1
  • /pattern1
  • /theme21
  • /detail1
  • /sliders1
  • /admin-catalog1
  • /identity1
  • /facets1
  • /links1

Creative ideas + design notes

Commits with substantial prose (≥120 chars) — the rationale behind each move.

34669bb · 2026-09-22 · wallpapercanada: also hide cards that would fall back to the generic hero
cardImg() returns a 404 sentinel for any non-allowlisted/empty image_url so
the onerror->imgFail path hides the card. Grid, list, rail, and detail modal.
0 products affected in the current catalog (all 600 allow-listed) — defensive.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FZB4e67U2DRKnZu3SVFk1m
a5322e0 · 2026-09-22 · wallpapercanada: never show non-loading images (hide card/rail/modal on img onerror)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FZB4e67U2DRKnZu3SVFk1m
befff70 · 2026-09-22 · wallpapercanada: remove all 'free sample delivery' copy (EN + FR)
Removed the free-sample-delivery promotional claim everywhere it appeared in
public/index.html — SEO meta description, slide-out nav subtext, hero subtitle,
section meta, footer lead, and both sample modals (EN), plus heroSub, sectionMeta,
and footerLead (FR). Sample-request functionality (buttons, modals, /sample/
routes, 'Request a Sample' labels) left fully intact.

TK-12005

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L1eGvpEUbxzkKFftiVN4xm
aa18305 · 2026-09-10 · wallpapercanada: add read-only cache diagnostic (app-direct vs nginx)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015acgmNP9spwqQLjfFcf1Qs
dfac548 · 2026-09-10 · wallpapercanada: add read-only prod diagnostic (find live docroot)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015acgmNP9spwqQLjfFcf1Qs
0f7862f · 2026-09-10 · wallpapercanada: add self-verifying deploy-index.sh
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015acgmNP9spwqQLjfFcf1Qs
d640e43 · 2026-09-09 · wallpapercanada: add visible footer link to Designer Wallcoverings (parent site)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015acgmNP9spwqQLjfFcf1Qs
03655a1 · 2026-05-30 · fix: remove leaked public/index.html.bak file + harden bak-guard regex to cover .bak-* filenames
- rm public/index.html.bak-20260526152130 (was returning 200 via static)
- guard regex /(^|\.)bak(\.|$)/ missed .bak-TIMESTAMP pattern; updated to ([.\-]|$)
- .gitignore: add *.bak-* alongside existing *.bak / *.bak.*

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
b6b9120 · 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.
1746fa1 · 2026-05-25 · retag aesthetic from PG: 600 rows updated
before: all=600
after:  architectural=600

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>
446b34f · 2026-05-19 · security: add rel=noopener noreferrer to all target=_blank external links
Facebook footer link and dw-fleet-nav sister-brand links upgraded from noopener to noopener noreferrer; the programmatic window.open fleet-tile handler now passes 'noopener,noreferrer' as windowFeatures.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
abe9213 · 2026-05-19 · nav: remove dead /about links (3) — no About page or route exists
The single-page storefront has no /about page, no about.html, and no server route. Removed the 3 dead links (primary nav, footer, burger panel) rather than scaffold an empty route.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2ee110e · 2026-05-19 · server: 404-guard for snapshot paths + facets total counts the served list
Added middleware that 404s any .bak / .pre-* request before express.static so leftover snapshot files can never serve from the static root. /api/facets total now reports PRODUCTS_NICHE.length (the list actually served) instead of the raw pre-niche-filter PRODUCTS.length.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
56a7fe7 · 2026-05-19 · chore: untrack 18 editor snapshot files (*.bak / *.pre-*) and broaden .gitignore
These index.html / server.js snapshots were committed to the repo (15 under public/, where they served as static files). Removed from the index, broadened .gitignore to *.bak.* and *.pre-*.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
d03187d · 2026-05-19 · sort: honor sort param — send state.sort to /api/products and hydrate saved value before first grid load
loadGridPage never sent the sort param so the server's sort was always 'newest'. The DW-standard wire-up also ran after the initial loadGridPage(), so a saved sort was ignored on first paint. Moved hydration before first load and removed the duplicate change-listener block.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6e9f86d · 2026-05-13 · fix: contact modal CSS + HTML (was rendering inline as raw emoji/links)
Same root cause as the hospitalitywallcoverings fix — .ns-modal /
.ns-action CSS missing, modal rendered inline with default-blue
underlined links. Added the CSS block + the contact HTML block with
the WPC-specific info@wallpapercanada.com mailto.
03dbc9d · 2026-05-10 · add gated figma capture loader (only fires on ?figmacapture= URL param)
The script never loads for normal visitors — only when the URL contains
'figmacapture=' query string or hash, which is required for the figma MCP
generate_figma_design tool to convert the page to a Figma file.
7a79c5d · 2026-05-10 · brand customization for wallpapercanada
- swap Heritage Atelier → site-specific brand
- swap GA G-XM0936TL4N → site-specific measurement_id
- swap palette + typography to match per-site fashion template
- swap port + sitemap/robots domain
690b5d6 · 2026-05-08 · fleet UX: novasuede-style hamburger drawer (DW-Websites/_shared/dw-fleet-nav.js)
This site has 2 </body> (one in a comment block) — script tag goes
before the LAST </body> per the corrected injector logic.

File tree

26 files tracked. Click any to browse the source at HEAD.

Other build journals

← Wallpaper Tour  ·  all 4 projects  ·  Wallpapercontractor →

Export

commits.csv · feed.atom · project.json · commits.json

rendered in 0ms