Jutewallpaper

repo: ~/Projects/jutewallpaper · 106 commits · 0 in last 24h, 6 in last 7d · █▄

Search the build

106 commits indexed

  1. bc6efe1 2026-09-23 front-page-steward: ux-primitives bundle (grid) TK-12031
  2. 714c7a5 2026-09-23 TK-12031: bump ux-primitives bundle to canonical v1.1.1#7d74cd3b4123 (finish() clearSkel guard) — pilot parity with the 41-site fleet
  3. 7d76a7f 2026-09-22 front-page-steward: ux-primitives v1.1.1 — Cody slow-load fix (empty-state retracts on late products; never strands over a populated grid) TK-12031
  4. 1244f5b 2026-09-22 front-page-steward: ux-primitives v1.1.0 lifecycle grid activation (data-ux-grid: safe skeleton auto-clear + zero-detect empty-state) TK-12031
  5. 2fc4e86 2026-09-22 front-page-steward: rework ux-primitives to silent bundle (remove demo-strip+fabricated SKU; no unsafe skeleton) TK-12031
  6. a7e9db4 2026-09-22 front-page-steward: wire ux-primitives Bundle-B (toast+copy demo, idempotent) TK-12031
  7. 6336905 2026-09-16 TK-11787: restore jutewallpaper site identity (undo retrowalls template flattening from 2026-09-10)
  8. fe0264d 2026-09-15 hero: flash-free R4 (flip after cells paint + clear grid) — yoloforever cycle 2
  9. 18ccd66 2026-09-15 hero: remove hero-4grid.js collision, R4 alternating block is sole owner (yoloforever cycle 1)
  10. a11b722 2026-09-14 jutewallpaper: declare helmet + dotenv (undeclared deps would crash prod on npm ci --production)
  11. 07fa1e9 2026-09-10 Add clean /privacy route (AdSense URL consistency)
  12. f7297d3 2026-09-10 auto-data-snapshot: 2026-09-10T11:43:04 (2 data files) — data/products.json package.json
  13. a411213 2026-09-10 Standardize privacy policy to /privacy.html + footer link (AdSense)
  14. 90eab73 2026-09-10 Add AdSense-compliant privacy policy page + footer link + /privacy route
  15. eabe55a 2026-09-09 TK-11341: add AdSense Auto-Ads loader + ads.txt (revert to remove ads)
  16. 027ca54 2026-08-12 auto-data-snapshot: 2026-08-12T11:28:02 (1 data files) — package-lock.json
  17. b6d9858 2026-08-12 chore: version bump v0.1.1 (session close — niche-filter fix)
  18. 0139e0d 2026-08-12 jutewallpaper: pin port 9886 (prod bring-up — was orphaned/colliding on 9911)
  19. fa31d15 2026-08-12 jutewallpaper: resync package-lock (dotenv) so npm ci deploys
  20. 54581a9 2026-08-12 jutewallpaper: tighten niche filter — exclude competing-fiber products (fleet fix, 'it is not {niche}')
  21. 9987430 2026-08-12 viewer standard: add per-field on/off menu (Fields ▾) to product grid
  22. 492dac5 2026-08-04 fix: take infinite-scroll .loading indicator out of flow (kills ~0.3-0.4 CLS scroll-jump)
  23. ac7746c 2026-08-04 Wire DW Meta Pixel 1431180262113856 + DW-network ad slot [ads/tracking rollout]
  24. f59a2c4 2026-08-01 jutewallpaper: adopt href-to-deeper-data storefront primitives (TK-10093)
  25. 3662595 2026-07-30 catalog: scope to real on-domain products only
  26. ba153e7 2026-07-30 search: scroll results into view on mobile (grid was below the fold → looked like nothing happened)
  27. fbe0924 2026-07-29 corner-nav: block javascript:/data: URIs in search preview (URL-scheme allowlist)
  28. 87afb9d 2026-07-29 search: /api matcher now covers title+tags+description+type+vendor+sku
  29. 07846f2 2026-07-29 corner-nav: live as-you-type search with thumbnail previews (title+tags+description)
  30. d03d802 2026-07-06 Square product-card images (aspect-ratio 1/1)
  31. dbc3ef9 2026-07-03 corner-nav: move login to its own hamburger in upper-left (panel slides from left)
  32. 3c292a4 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.
  33. 1b4bfae 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)
  34. 8ea58e3 2026-06-11 jutewallpaper: rails fire again — wire to matcher + per-site railSynonyms mapping curated rail names to real tag vocab
  35. f9139b9 2026-06-11 Recompute aesthetic from tags via classifyAesthetic (was degenerate 'all' snapshot)
  36. faeeb76 2026-06-09 step2 vendor-leak fix: dual-key /sample resolver (raw + redacted handle_display) + client hrefs use scrubbed slug
  37. 9883827 2026-06-09 snapshot before step2 handle-leak canary (untracked hero-pool.json)
  38. f04af0e 2026-06-03 Scrub residual vendor names from products.json (title/vendor/tags); preserve sku/handle
  39. 0a0ef45 2026-06-03 seo/a11y: add visually-hidden <h1> (site name) for heading semantics — zero visual change
  40. 493720b 2026-06-03 a11y: add aria-label to contact/sample form inputs (zero visual; screen-reader association)
  41. 3ed1cdd 2026-06-01 admin: add dw-theme-nav 20-theme navigator (upper-right, admin-only)
  42. 738552d 2026-06-01 catalog: fill from Shopify (jutewallpaper niche)
  43. 3bf8939 2026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch
  44. c68d24b 2026-06-01 dw-header: hide ANY pre-existing <header> (not just ns-header); title-case bare-slug names
  45. dd95b4c 2026-06-01 FIX: dw-header was injected inside a doc-comment (never ran); re-inject before the real </body>
  46. 2751d8f 2026-06-01 hero: rotate curated room-setting pool (hero-pool.json), guard >=1400px, no swatch blur
  47. cedf41b 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
  48. 64a05c2 2026-06-01 disable hero-4grid overlay so the unique high-res room/pattern hero shows full-bleed
  49. d845a62 2026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch
  50. e584aff 2026-06-01 homepage: collapse duplicated 'Ideas' rail-eyebrows into one section eyebrow
  51. b9613c9 2026-06-01 Revert "Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep)"
  52. ff9f618 2026-06-01 hero: activate self-contained 2x2 hero-4grid (fleet sweep, local)
  53. 4bdc0aa 2026-06-01 Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep)
  54. ce6497e 2026-06-01 pilot: unique high-res niche hero (Mandalay Sisal 2400px) replacing shared image
  55. 49e6d3b 2026-06-01 pilot: header rebuild (hamburgers UL: nav + admin-tools / name centered) + Loewe accent #9B7B4F (was Bottega green drift); disable upper-right corner-nav
  56. 8caa5f0 2026-06-01 add noopener,noreferrer to sister-site constellation window.open popup (FB target=_blank <a> already carried rel)
  57. c6b56a2 2026-06-01 /api/facets now drill-down counts over the active filtered set via shared filterProducts() (was counting whole niche catalog regardless of q/aesthetic/vendor; /api/products reuses helper) + 301 redirect legacy /*.html -> clean URLs (before express.static) + 404-guard for stray .bak/.pre-*/.orig backup files
  58. 489d715 2026-05-30 remove leaked backup file from public/ and fix .gitignore to cover *.bak-* pattern
  59. 934b57b 2026-05-29 feat(fleet): theme1/theme2 query-param-gated toggle on catalog page
  60. 6a0e718 2026-05-28 scrub vendor name leaks from products.json source (18 products: title/vendor/tags cleaned per sku-redact denylist)
  61. 71048be 2026-05-26 frontend: cleanSku() strips vendor names from displayed sku (.ven/list/detail) + defer renderRailSections call (fix ReferenceError) — click-through verified
  62. e6cdbab 2026-05-26 sku-redact: wire shared vendor-id display scrubber
  63. 3f8097c 2026-05-26 Revert "rails: tag-aware via shared rail-match helper + editorial LABELS (rescue flat grid)"
  64. f8940a5 2026-05-26 rails: tag-aware via shared rail-match helper + editorial LABELS (rescue flat grid)
  65. 82d5cac 2026-05-26 rails: editorial labels for firing aesthetic buckets
  66. 0a68934 2026-05-26 homepage: add retrowalls-canonical rail-sections (id=rails + renderRailSections)
  67. 4e2dc09 2026-05-25 hydrate sort from localStorage pre-grid-load + noreferrer on Facebook target=_blank
  68. 9191fe7 2026-05-25 wire api-vendor-redact middleware + scrub p.vendor from rail-card render
  69. 2c844cb 2026-05-25 retag aesthetic from PG: 59 rows updated
  70. c63a722 2026-05-20 add: pre-stage Meta Pixel snippet (placeholder; flip via _dw-batch set-fb-pixel.sh)
  71. 9a05e52 2026-05-20 fix: /about → history.html alias (was 404)
  72. c282a5c 2026-05-19 make server.js self-contained — gate _shared/admin-catalog behind MICROSITE_ADMIN_ENABLED env flag (kamatera deploy unblock)
  73. 7264fa1 2026-05-19 Phase 2b: harden .card .pat against long-token title clipping (overflow-wrap)
  74. 503ce09 2026-05-19 fix: null-guard dead #theme-toggle reference (clean console + immediate grid render)
  75. 5ae88cc 2026-05-19 Phase 2: mobile-ready + tap-to-reveal
  76. 1e3fab4 2026-05-19 stage2: wire microsite catalog + admin CRUD + grid/list view
  77. c5901ed 2026-05-18 fix: add /about and clean-URL routes so dead nav link resolves to content pages
  78. 9f560c1 2026-05-18 untrack stale .bak/.pre-* snapshot files and ignore the patterns
  79. f03c520 2026-05-18 fix: /api/facets total reports niche-filtered count not pre-niche count
  80. 1216c56 2026-05-18 fix: product grid sort select now actually passes sort to /api/products
  81. 9abd8c0 2026-05-14 hero-4grid: relocate json from data/ to public/ for Express static
  82. 4ed6b23 2026-05-14 4-grid hero: drop-in script + crop CSS + initial 4 newest products
  83. 00c26b9 2026-05-14 favicon: Mag-7-inspired SVG glyph
  84. 4d202da 2026-05-13 fix env wiring — add __dirname-anchored dotenv + dotenv dep so ADMIN_PASS / GEORGE_AUTH actually load
  85. 0880ccd 2026-05-13 corner-nav: title-case the brand name even when .ns-name source is lowercase
  86. 6d7c29e 2026-05-13 corner-nav: title-case brand display (e.g. corkwallcovering → Cork Wallcovering)
  87. 0bff1c8 2026-05-13 corner-nav: fix injection — script tag was landing inside HTML comment, now anchored to real </body>
  88. cbb61a4 2026-05-13 embed Big Red customer chat (lower-left, retail mode, vendor-redacted)
  89. e179e94 2026-05-13 chip-click → product details modal; vendor redacted in card overlay
  90. c56301b 2026-05-13 add universal corner-nav.js (UR 4-icon: bag/account/search/menu)
  91. 9bac129 2026-05-13 remove stray contact modal markup that was rendering inline on the page
  92. ae446c9 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.
  93. c445f0f 2026-05-13 brand: replace remaining fake brand globally → 'jutewallpaper' across head/meta/wordmark/footer — enforces MEMORY brand-stem rule
  94. 276d4c6 2026-05-11 fleet-grid refine: chip_uniform_aspect (jutewallpaper)
  95. cec0790 2026-05-11 snapshot before fleet-grid refine
  96. 5fb1363 2026-05-10 sort-skill UI: add Light→Dark / Dark→Light / Color Wheel options
  97. ca31569 2026-05-10 sort-skill canonical: add light-dark/dark-light/wheel + helpers
  98. 820ae6d 2026-05-07 graphic-loop pass 13: real footer brand + Facebook link + OG/Twitter meta tags
  99. f4aa267 2026-05-07 graphic-loop pass 12: niche keyword filter (no off-niche products like 'solid' on patterned sites)
  100. 2db3499 2026-05-07 graphic-loop pass 11: add Ideas rails (New this week + Curated picks) above main grid
  101. 6f6c723 2026-05-07 graphic-loop pass 10: center-mark to top + readable text-shadow + tighter letter-spacing (no mix-blend-mode)
  102. 178ed84 2026-05-07 graphic-loop pass 9: real site name + 20-image hero rotation + 2400px hero res
  103. 2d88225 2026-05-07 graphic-loop pass 8: theme-aware font Libre Baskerville (panel-approved comprehensive 16-bucket assignment)
  104. 8951fa3 2026-05-06 graphic-loop pass 5: serif hero typography (Cormorant Garamond) + nav legibility (qwen3 unanimous)
  105. 932218a 2026-05-06 graphic-loop pass 2: fix .corner-mark contrast + soften hero overlay (qwen3:14b consensus across fleet)
  106. 3638f96 2026-05-06 initial scaffold (gitify-all 2026-05-06)

Authors

Agents used

  • none detected

Skills used

  • /products7
  • /claude6
  • /code6
  • /facets4
  • /privacy3
  • /vendor3
  • /sample2
  • /tags2
  • /body2
  • /index2
  • /list2
  • /sliders2
  • /about2
  • /sort1
  • /density1
  • /colliding1
  • /off1
  • /tracking1
  • /data1
  • /handle1
  • /a11y1
  • /ideas1
  • /json1
  • /pattern1
  • /aesthetic1
  • /theme21
  • /detail1
  • /rail-match1
  • /heavy1
  • /dyed1

Creative ideas + design notes

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

714c7a5 · 2026-09-23 · TK-12031: bump ux-primitives bundle to canonical v1.1.1#7d74cd3b4123 (finish() clearSkel guard) — pilot parity with the 41-site fleet
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KDmDMpwuKtwpXZnhec7bTP
1244f5b · 2026-09-22 · front-page-steward: ux-primitives v1.1.0 lifecycle grid activation (data-ux-grid: safe skeleton auto-clear + zero-detect empty-state) TK-12031
Real-activation neg-control proven both engines: skeleton appears-then-auto-clears, products render, sort re-render 0 ghost skeletons, true-zero empty-state only, no new bundle errors.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bjud9yhkmyLh365yZodCdn
2fc4e86 · 2026-09-22 · front-page-steward: rework ux-primitives to silent bundle (remove demo-strip+fabricated SKU; no unsafe skeleton) TK-12031
Negative-control proven: bundle introduces no new errors, grid/sort/density intact.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bjud9yhkmyLh365yZodCdn
a7e9db4 · 2026-09-22 · front-page-steward: wire ux-primitives Bundle-B (toast+copy demo, idempotent) TK-12031
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bjud9yhkmyLh365yZodCdn
fe0264d · 2026-09-15 · hero: flash-free R4 (flip after cells paint + clear grid) — yoloforever cycle 2
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UxvvaJ7p6VRZ4RzKDaBXqK
18ccd66 · 2026-09-15 · hero: remove hero-4grid.js collision, R4 alternating block is sole owner (yoloforever cycle 1)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UxvvaJ7p6VRZ4RzKDaBXqK
a11b722 · 2026-09-14 · jutewallpaper: declare helmet + dotenv (undeclared deps would crash prod on npm ci --production)
server.js hard-requires helmet but package.json declared only express; a
clean npm ci --production prunes to express-only and the app crash-loops
(MODULE_NOT_FOUND helmet, 502) — same latent bug that took linenwallpaper
down. Declare both so a clean install is safe. Local only; not deployed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
489d715 · 2026-05-30 · remove leaked backup file from public/ and fix .gitignore to cover *.bak-* pattern
public/index.html.bak-20260526152130 was being served by express.static — removed.
Added *.bak-* and *.orig patterns to .gitignore (existing *.bak.* missed hyphen-dated backups).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
934b57b · 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.
f8940a5 · 2026-05-26 · rails: tag-aware via shared rail-match helper + editorial LABELS (rescue flat grid)
- Wired buildRails/railFacets from ../_shared/rail-match.js into /api/sliders + /api/facets
- Replaced aspirational aesthetic-only rails (fine/heavy/dyed/metallic/blended) with 6 tag-matched buckets: grasscloth, sisal, beige, woven, natural texture, textured (54–82% hit rates)
- Added editorial LABELS for all 6 new keys in public/index.html
- Result: 6 rails fire (was 0), each capped at 12 items

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0a68934 · 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).
4e2dc09 · 2026-05-25 · hydrate sort from localStorage pre-grid-load + noreferrer on Facebook target=_blank
- move sort restore into the pre-load view-hydration IIFE so the initial
  /api/products fetch fires with the user's saved sort instead of 'newest'
  (was racing with the post-DOM sort-select wire-up at line 1049)
- add noreferrer to the Facebook footer link (tab-nabbing + referer-leak
  defense; pairs with existing rel=noopener)
9191fe7 · 2026-05-25 · wire api-vendor-redact middleware + scrub p.vendor from rail-card render
- mount _shared/api-vendor-redact before /api/* routes so /api/facets stops
  emitting vendors map and /api/products stops accepting ?vendor= filter
- replace p.vendor literal in hydrateIdeas rail-card with 'Designer Wallcoverings'
  to match the rest of the storefront (defense-in-depth alongside the middleware)
2c844cb · 2026-05-25 · retag aesthetic from PG: 59 rows updated
before: all=72
after:  all=13, fine=2, natural=57

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

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

Other build journals

← Justin David Pricing 2026  ·  all 4 projects  ·  Kamatera Nginx →

Export

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

rendered in 9ms