Linenwallpaper

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

Search the build

125 commits indexed

  1. 16d72c3 2026-09-23 front-page-steward: ux-primitives bundle (grid) TK-12031
  2. 73ca0a2 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. 6d57cb0 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. f16cc5c 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. 5a96446 2026-09-22 front-page-steward: rework ux-primitives to silent bundle (remove demo-strip+fabricated SKU; no unsafe skeleton) TK-12031
  6. 790ea3f 2026-09-22 front-page-steward: wire ux-primitives Bundle-B (toast+copy demo, idempotent) TK-12031
  7. 42e393d 2026-09-16 TK-11787: restore linenwallpaper site identity (undo retrowalls template flattening from 2026-09-10)
  8. 6ef38dc 2026-09-15 hero: flash-free R4 (flip after cells paint + clear grid) — yoloforever cycle 2
  9. 941bcff 2026-09-15 hero: remove hero-4grid.js collision, R4 alternating block is sole owner (yoloforever cycle 1)
  10. ac1a592 2026-09-14 linenwallpaper: declare helmet + dotenv (undeclared deps crashed prod on npm ci)
  11. d268e5a 2026-09-14 linenwallpaper: fix IG embed showing the wrong account (@retrowalls -> @linenwallpaper)
  12. ec8a243 2026-09-10 Add clean /privacy route (AdSense URL consistency)
  13. 488272f 2026-09-10 Standardize privacy policy to /privacy.html + footer link (AdSense)
  14. 7d6a896 2026-09-10 Add AdSense-compliant privacy policy page + footer link + /privacy route
  15. cb4c6d7 2026-09-09 Add Instagram embed of latest live posts to homepage (TK-11322)
  16. 4855284 2026-09-09 TK-11341: add AdSense Auto-Ads loader + ads.txt (revert to remove ads)
  17. 53963f7 2026-08-24 auto-data-snapshot: 2026-08-24T04:13:07 (1 data files) — server.js.ldrbak.1787569812
  18. b9efced 2026-08-24 Add p.visible!==false guard to product load filter (cluster5 resid)
  19. 36b9a49 2026-08-22 auto-data-snapshot: 2026-08-22T11:19:22 (1 data files) — data/products.json
  20. ea0eb7a 2026-08-12 auto-data-snapshot: 2026-08-12T10:57:24 (1 data files) — package-lock.json
  21. 589d0fb 2026-08-12 chore: version bump v0.1.1 (session close — niche-filter fix)
  22. b99182c 2026-08-12 add gated IG post script: genuine-linen Sag Harbor post for @linenwallpaper
  23. c3c76d8 2026-08-12 linenwallpaper: tighten linen filter — require linen/flax in title, drop vinyl/grasscloth/novelty (Steve: 'it is not linen')
  24. c565a51 2026-08-12 viewer standard: add per-field on/off menu (Fields ▾) to product grid
  25. fb89df3 2026-08-08 corner-nav: install fleet-ready two-hamburger accordion nav (manifest-driven, brand palette, clean-URL aware) (TK-10318)
  26. 2aa6b1b 2026-08-04 Revert AdSense: DW sister sites stay ad-free (Steve policy 2026-08-04)
  27. 121ad35 2026-08-04 AdSense pilot: loader in head + ads.txt (ca-pub-5278231299883833) — not yet deployed
  28. 0e27502 2026-08-04 fix: take infinite-scroll .loading indicator out of flow (kills ~0.3-0.4 CLS scroll-jump)
  29. 21fbdd8 2026-08-04 Wire DW Meta Pixel 1431180262113856 + DW-network ad slot [ads/tracking rollout]
  30. 186388a 2026-08-03 GA4: propagate site gtag to untagged pages (fleet coverage)
  31. 474d182 2026-08-01 Reapply "linenwallpaper: adopt href-to-deeper-data storefront primitives (TK-10093)"
  32. 9609e46 2026-08-01 Revert "linenwallpaper: adopt href-to-deeper-data storefront primitives (TK-10093)"
  33. a70c3c6 2026-08-01 linenwallpaper: adopt href-to-deeper-data storefront primitives (TK-10093)
  34. 9b4140f 2026-07-30 search: scroll results into view on mobile (grid was below the fold → looked like nothing happened)
  35. 2d0d574 2026-07-29 corner-nav: block javascript:/data: URIs in search preview (URL-scheme allowlist)
  36. 80c2e22 2026-07-29 search: /api matcher now covers title+tags+description+type+vendor+sku
  37. c6077a6 2026-07-29 corner-nav: live as-you-type search with thumbnail previews (title+tags+description)
  38. bf73c4e 2026-07-06 Square product-card images (aspect-ratio 1/1)
  39. 06536ba 2026-07-03 corner-nav: move login to its own hamburger in upper-left (panel slides from left)
  40. 7eb0e7f 2026-06-23 Update grid density slider to desktop-only (3-12 columns)
  41. b222993 2026-06-22 auto-save: 2026-06-22T21:48:03 (1 files) — public/index.html
  42. 20149d6 2026-06-22 fix: improve sort dropdown positioning with overflow handling
  43. 2e98843 2026-06-22 fix: prevent sort dropdown cutoff on left edge
  44. 769b483 2026-06-22 feat: add pill-style sort control styling to match grid slider
  45. 9e649c5 2026-06-22 fix: improve grid density slider CSS to prevent overlap with sort controls
  46. b4da2f9 2026-06-22 enhance: smart product name hiding on 6-column grids
  47. 2914d00 2026-06-22 upgrade: mobile-optimized grid density slider with touch buttons
  48. b9d5fe0 2026-06-22 feat: add grid density slider (DW standard) — adjustable columns 2–6, persistent localStorage
  49. 1f0e5ee 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.
  50. f7a60cb 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)
  51. c5c2b32 2026-06-11 linenwallpaper: rails fire again — wire sliders + grid filter to aesthetic-OR-tags matcher (prod-safe try-require + inline fallback)
  52. 8fad5a5 2026-06-09 step2 vendor-leak fix: dual-key /sample resolver + handle_display hrefs
  53. bf0eeda 2026-06-09 snapshot before step2 codemod
  54. beae4ee 2026-06-03 Scrub residual vendor names from products.json (title/vendor/tags); preserve sku/handle
  55. 1e9e65b 2026-06-03 a11y: add aria-label to contact/sample form inputs (zero visual; screen-reader association)
  56. bae076f 2026-06-01 admin: add dw-theme-nav 20-theme navigator (upper-right, admin-only)
  57. a2a5414 2026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch
  58. e89c124 2026-06-01 dw-header: hide ANY pre-existing <header> (not just ns-header); title-case bare-slug names
  59. 55c35a8 2026-06-01 FIX: dw-header was injected inside a doc-comment (never ran); re-inject before the real </body>
  60. 89a8729 2026-06-01 hero: rotate curated room-setting pool (hero-pool.json), guard >=1400px, no swatch blur
  61. decc743 2026-06-01 header name → domain name 'linenwallpaper' (remove odd brand name)
  62. 1c3f847 2026-06-01 hero: huge 2520px clean hero from dw_unified (graphic-designer vetted; no header/text/watermark)
  63. 59e3191 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
  64. eea55af 2026-06-01 disable hero-4grid overlay so the unique high-res room/pattern hero shows full-bleed
  65. 6c5b25e 2026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch
  66. c82faec 2026-06-01 homepage: collapse duplicated 'Ideas' rail-eyebrows into one section eyebrow
  67. 4aa7da0 2026-06-01 Unique hero image (backsync from prod, fleet hero dedup 2026-06-01)
  68. 170ef24 2026-06-01 Re-add Big Red embed (revert conflicted; re-injected)
  69. 3a95f83 2026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local pilot branch
  70. 832ff37 2026-06-01 hero: activate self-contained 2x2 hero-4grid (fleet sweep, local)
  71. afad948 2026-06-01 Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep)
  72. b3f1755 2026-06-01 301 redirect legacy /(history|vocabulary|sourcing|care|trade|index).html -> clean URLs before express.static
  73. a31c934 2026-06-01 /api/facets drill-down: count each dimension over the active filtered set (q/aesthetic/vendor) via shared filterProducts(); /api/products reuses helper
  74. 8c441a9 2026-06-01 noopener,noreferrer on sister-site window.open popup
  75. 63a4065 2026-05-30 fix: remove served .bak file, patch 404 guard regex, add *.bak-* to .gitignore
  76. 4bf5032 2026-05-29 feat(fleet): theme1/theme2 query-param-gated toggle on catalog page
  77. 5561263 2026-05-28 scrub vendor name leaks from products.json source (54 products: title/vendor/tags cleaned per sku-redact denylist)
  78. 6e64434 2026-05-26 frontend: cleanSku() strips vendor names from displayed sku (.ven/list/detail) + defer renderRailSections call (fix ReferenceError) — click-through verified
  79. b01c3cb 2026-05-26 sku-redact: wire shared vendor-id display scrubber
  80. a0b0344 2026-05-26 linenwallpaper: editorial rail/facet labels — linen-flavored display map (Linen Weaves, Modern Linen, Classic Linen, Natural Flax) over real aesthetic buckets; behavior unchanged
  81. 228f637 2026-05-26 linenwallpaper: commit config-rails fix — aspirational weave/fine/bouclé (0 hydrate) → real aesthetic buckets textured/contemporary/beige/traditional (4 rails fire)
  82. 48365f9 2026-05-26 homepage: add retrowalls-canonical rail-sections (id=rails + renderRailSections)
  83. 822b5f3 2026-05-25 remove p.vendor render from Ideas rail card — replace with Designer Wallcoverings (customer-facing redaction)
  84. ded12ab 2026-05-25 add clean-URL routes for nav links — /history /vocabulary /sourcing /care /trade
  85. e13d761 2026-05-25 add 404-guard for .bak/.pre-* files — defense-in-depth against accidental serve
  86. bda38a4 2026-05-25 fix /api/facets total — reflect filtered (niche) list count, not raw PRODUCTS
  87. 5ac690b 2026-05-25 wire api-vendor-redact middleware FIRST in app.use chain — strips vendor field + vendors facet + ?vendor= from all /api/* responses
  88. fb65b1e 2026-05-25 retag aesthetic from PG: 230 rows updated
  89. 11b7cad 2026-05-20 add: pre-stage Meta Pixel snippet (placeholder; flip via _dw-batch set-fb-pixel.sh)
  90. 7caf54e 2026-05-20 fix: /about → history.html alias (was 404)
  91. ae2afdd 2026-05-19 make server.js self-contained — gate _shared/admin-catalog behind MICROSITE_ADMIN_ENABLED env flag (kamatera deploy unblock)
  92. dd434eb 2026-05-19 wire state.sort into loadGridPage /api/products URL (fleet sort fanout)
  93. 782a1de 2026-05-19 Phase 2b: harden .card .pat against long-token title clipping (overflow-wrap)
  94. c8fd59e 2026-05-19 Phase 2: mobile-ready + tap-to-reveal
  95. ef56740 2026-05-19 stage2: wire microsite catalog + admin CRUD + grid/list view
  96. 6b04d01 2026-05-18 Untrack 19 stale backup files from git and broaden .gitignore to catch .bak.* and .pre-* (they were served publicly from public/)
  97. 290b077 2026-05-18 Remove dead pass-12 leftovers from server.js (unused PRODUCTS_ORIG, pointless global, stale comment)
  98. 5ac29df 2026-05-14 hero-4grid: relocate json from data/ to public/ for Express static
  99. b27fd57 2026-05-14 4-grid hero: drop-in script + crop CSS + initial 4 newest products
  100. 1d0045a 2026-05-14 favicon: Mag-7-inspired SVG glyph
  101. ae19bc2 2026-05-13 fix env wiring — add __dirname-anchored dotenv + dotenv dep so ADMIN_PASS / GEORGE_AUTH actually load
  102. 5393593 2026-05-13 corner-nav: title-case the brand name even when .ns-name source is lowercase
  103. 17ec367 2026-05-13 corner-nav: title-case brand display (e.g. corkwallcovering → Cork Wallcovering)
  104. 2b565d0 2026-05-13 corner-nav: fix injection — script tag was landing inside HTML comment, now anchored to real </body>
  105. 9a28840 2026-05-13 fix: contact modal CSS+HTML (was rendering inline as raw emoji/links)
  106. 1bac6c5 2026-05-13 embed Big Red customer chat (lower-left, retail mode, vendor-redacted)
  107. 4e217dc 2026-05-13 chip-click → product details modal; vendor redacted in card overlay
  108. a1af580 2026-05-13 add universal corner-nav.js (UR 4-icon: bag/account/search/menu)
  109. c47d641 2026-05-13 remove stray contact modal markup that was rendering inline on the page
  110. 1ccc818 2026-05-13 snapshot: 1 file(s) changed, +1 new
  111. 6bac45f 2026-05-11 fleet-grid refine: chip_uniform_aspect (linenwallpaper)
  112. 5d525ef 2026-05-11 snapshot before fleet-grid refine
  113. a483e2a 2026-05-10 sort-skill UI: add Light→Dark / Dark→Light / Color Wheel options
  114. f16a1d4 2026-05-10 sort-skill canonical: add light-dark/dark-light/wheel + helpers
  115. b827970 2026-05-10 apply R1+R2+R4 hero standing rules — strip Loma Studio, lowercase serif wordmark below photo, add data-hero-mode huge default + four-square hydration
  116. 6b7d7bb 2026-05-07 graphic-loop pass 13: real footer brand + Facebook link + OG/Twitter meta tags
  117. 9a42e59 2026-05-07 graphic-loop pass 12: niche keyword filter (no off-niche products like 'solid' on patterned sites)
  118. d4ec01a 2026-05-07 graphic-loop pass 11: add Ideas rails (New this week + Curated picks) above main grid
  119. 9ed2b53 2026-05-07 graphic-loop pass 10: center-mark to top + readable text-shadow + tighter letter-spacing (no mix-blend-mode)
  120. c331bdd 2026-05-07 graphic-loop pass 9: real site name + 20-image hero rotation + 2400px hero res
  121. 6d596d2 2026-05-07 graphic-loop pass 8 fix: divergent template — swap heading font to Libre Baskerville
  122. 1ecfc66 2026-05-07 graphic-loop pass 8: theme-aware font Libre Baskerville (panel-approved comprehensive 16-bucket assignment)
  123. 93f743a 2026-05-06 graphic-loop pass 2: fix .corner-mark contrast + soften hero overlay (qwen3:14b consensus across fleet)
  124. 0e19d74 2026-05-06 Rebrand: LINEN WALLPAPER → Loma Studio (Loewe template)
  125. e257a68 2026-05-06 initial scaffold (gitify-all 2026-05-06)

Authors

Agents used

  • none detected

Skills used

  • /claude8
  • /code8
  • /products5
  • /privacy3
  • /vendor3
  • /index2
  • /sample2
  • /tags2
  • /body2
  • /facets2
  • /list2
  • /sort1
  • /density1
  • /flax1
  • /grasscloth1
  • /novelty1
  • /off1
  • /tracking1
  • /data1
  • /handle1
  • /text1
  • /watermark1
  • /ideas1
  • /json1
  • /pattern1
  • /aesthetic1
  • /theme21
  • /detail1
  • /facet1
  • /fine1

Creative ideas + design notes

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

73ca0a2 · 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
f16cc5c · 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
5a96446 · 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
790ea3f · 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
6ef38dc · 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
941bcff · 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
ac1a592 · 2026-09-14 · linenwallpaper: declare helmet + dotenv (undeclared deps crashed prod on npm ci)
server.js hard-requires helmet (line 7) and uses dotenv (line 5), but
package.json declared only express. The site survived on a stale
node_modules; the moment a deploy ran `npm ci --production` it pruned to
express-only and the app crash-looped (MODULE_NOT_FOUND 'helmet', 502).
Add both to dependencies so npm ci installs them. Local boot verified.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X7mfnaSD5EB3DGZcaamU8A
d268e5a · 2026-09-14 · linenwallpaper: fix IG embed showing the wrong account (@retrowalls -> @linenwallpaper)
The homepage IG-EMBED block carried @retrowalls' handle and 3 retrowalls
permalinks. Regenerated from ig-embed-data.json via inject-ig-embed.mjs
--apply, correcting it to @linenwallpaper's own handle + 3 real posts.
Local only; not yet deployed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X7mfnaSD5EB3DGZcaamU8A
7eb0e7f · 2026-06-23 · Update grid density slider to desktop-only (3-12 columns)
- Hidden entirely on mobile (< 769px)
- Desktop only: full 3-12 column slider
- Smart name hiding: product titles hide at 6+ columns
- localStorage persistence of user preference

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2e98843 · 2026-06-22 · fix: prevent sort dropdown cutoff on left edge
- Add position: relative and z-index: 100
- Add min-width: 120px for adequate button sizing
- Add overflow: visible to prevent parent clipping
- Fixes dropdown menu visibility when sort control is near left side of page
63a4065 · 2026-05-30 · fix: remove served .bak file, patch 404 guard regex, add *.bak-* to .gitignore
public/index.html.bak-20260526152130 was being served by express.static (HTTP 200)
because the 404-guard regex only blocked .bak followed by . or EOL, not .bak-TIMESTAMP
suffixes. Removed the file, fixed the guard to match .bak- patterns, and added
*.bak-* to .gitignore so timestamped backups can never slip in again.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4bf5032 · 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.
48365f9 · 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).
fb65b1e · 2026-05-25 · retag aesthetic from PG: 230 rows updated
before: all=236
after:  all=6, beige=13, contemporary=9, textured=198, traditional=10

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>
0e19d74 · 2026-05-06 · Rebrand: LINEN WALLPAPER → Loma Studio (Loewe template)
First proof-of-concept of the per-site brand-identity rollout from the
dw-fashion-templates skill. Linen had 94% product overlap with cork — worst
duplicate-content offender. New brand identity makes it visually + textually
distinct from any sister site.

Changes:
- Title/meta/JSON-LD: 'LINEN WALLPAPER' → 'Loma Studio'
- Tagline: 'Quiet texture' → 'Soft as linen. Made slowly.'
- Palette: dark gold theme → soft cream/sienna (Loewe tokens)
- Headline font: Playfair Display → Cormorant Garamond
- Removed: cross-network 'DW Universe' link, mini-constellation viewer,
  'designer wallcoverings family vertical' footer text, parentOrganization
  schema. Steve's directive: no DW visible except About Us.
- Footer text rewritten as standalone Loma Studio voice
- Verified live: 7 'Loma Studio' mentions, 0 legacy DW touchpoints

File tree

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

Other build journals

← Lifestyle Asset Intel  ·  all 4 projects  ·  Linkedin Agent →

Export

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

rendered in 2ms