Silkwallpaper
Search the build
-
e13d82f2026-09-23 front-page-steward: ux-primitives bundle (grid) TK-12031 -
ac0cdd72026-09-23 TK-12031: bump ux-primitives bundle to canonical v1.1.1#7d74cd3b4123 (finish() clearSkel guard) — pilot parity with the 41-site fleet -
124fdb32026-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 -
b57bdb12026-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 -
727d3332026-09-22 front-page-steward: rework ux-primitives to silent bundle (remove demo-strip+fabricated SKU; no unsafe skeleton) TK-12031 -
0457b642026-09-22 front-page-steward: wire ux-primitives Bundle-B (toast+copy demo, idempotent) TK-12031 -
8b0a9542026-09-16 TK-11787: restore silkwallpaper site identity (undo retrowalls template flattening from 2026-09-10) -
a4417302026-09-15 hero: flash-free R4 (flip after cells paint + clear grid) — yoloforever cycle 2 -
562c03e2026-09-15 hero: remove hero-4grid.js collision, R4 alternating block is sole owner (yoloforever cycle 1) -
2358b772026-09-14 silkwallpaper: declare helmet + dotenv (undeclared deps would crash prod on npm ci --production) -
923e8112026-09-10 Add clean /privacy route (AdSense URL consistency) -
c8f78792026-09-10 auto-data-snapshot: 2026-09-10T11:43:04 (2 data files) — data/products.json package.json -
f31b9302026-09-10 Standardize privacy policy to /privacy.html + footer link (AdSense) -
6010b792026-09-10 Add AdSense-compliant privacy policy page + footer link + /privacy route -
d93b90a2026-09-09 TK-11341: add AdSense Auto-Ads loader + ads.txt (revert to remove ads) -
266b1d92026-09-09 snapshot before AdSense: pre-existing hero-probe edit -
80da9142026-08-17 auto-data-snapshot: 2026-08-17T09:25:02 (9 data files) — public/hero-pool.json public/hero-silk/abolina-bathroom.jpg public/hero-silk/abolina-bedroom.jpg public/hero-silk/abolina-dining_room.jpg public/hero-silk/abolina-office.jpg -
10308c82026-08-17 feat(silk hero): rotate 4 room settings (silk wallcovering on walls — living/bedroom/dining/sitting), brand-free -
ce63e252026-08-17 fix(catalog): show ALL real silk wallpaper (331->747) — title-silk always kept; drop over-aggressive blob-NEG that dropped 416 genuine silk products -
af1233c2026-08-17 feat(silk hero): rotate 4 clean AI-generated silk heroes (sapphire/champagne/emerald/blush, brand-free) + strengthen top scrim for wordmark legibility -
532ebe52026-08-17 fix(silk hero): remove dead /rooms 404s + empty hero-pool (catalog silk imgs are vendor-branded lookbook cards — leak risk); keep clean static silk mural + wordmark fix -
acae8392026-08-17 auto-data-snapshot: 2026-08-17T08:33:50 (1 data files) — public/hero-pool.json -
17bfa322026-08-17 snapshot before restart: preserve in-flight work -
610f3f62026-08-17 fix(hero): stop silkwallpaper wordmark/corner-mark overlap — move .corner-mark to top-right -
9f1d4012026-08-12 auto-data-snapshot: 2026-08-12T11:28:02 (1 data files) — package-lock.json -
45ba1552026-08-12 chore: version bump v0.1.1 (session close — niche-filter fix) -
4d53f672026-08-12 silkwallpaper: title-required silk filter — drop tag-only non-silk (bamboo/paper-weave) per Cody gate -
96723562026-08-12 silkwallpaper: tighten niche filter — exclude competing-fiber products (fleet fix, 'it is not {niche}') -
de6753c2026-08-12 viewer standard: add per-field on/off menu (Fields ▾) to product grid -
ed8d7092026-08-08 corner-nav: install fleet-ready two-hamburger accordion nav (manifest-driven, brand palette, clean-URL aware) (TK-10318) -
3cd23df2026-08-04 fix: take infinite-scroll .loading indicator out of flow (kills ~0.3-0.4 CLS scroll-jump) -
6aee8cf2026-08-04 Wire DW Meta Pixel (1431180262113856) + DW-network ad slot (footer-strip) [ads/tracking rollout pilot] -
80952c02026-08-03 GA4: propagate site gtag to untagged pages (fleet coverage) -
3fef4122026-08-01 silkwallpaper: adopt href-to-deeper-data storefront primitives (TK-10093) -
3ee46562026-07-30 catalog: scope to real on-domain products only (remove off-material leaks) -
cdc21332026-07-30 search: scroll results into view on mobile (grid was below the fold → looked like nothing happened) -
c485f222026-07-29 corner-nav: block javascript:/data: URIs in search preview (URL-scheme allowlist) -
6f169e72026-07-29 search: /api matcher now covers title+tags+description+type+vendor+sku -
e4b7f822026-07-29 corner-nav: live as-you-type search with thumbnail previews (title+tags+description) -
eead7c12026-07-06 Square product-card images (aspect-ratio 1/1) -
ad70a882026-07-03 corner-nav: move login to its own hamburger in upper-left (panel slides from left) -
64a79de2026-06-23 Update grid density slider to desktop-only (3-12 columns) -
c3b6e752026-06-22 auto-save: 2026-06-22T21:48:03 (1 files) — public/index.html -
0689dd12026-06-22 fix: improve sort dropdown positioning with overflow handling -
4530fed2026-06-22 fix: prevent sort dropdown cutoff on left edge -
aeee1ec2026-06-22 feat: add pill-style sort control styling to match grid slider -
65e31b22026-06-22 fix: improve grid density slider CSS to prevent overlap with sort controls -
31aaa0f2026-06-22 enhance: smart product name hiding on 6-column grids -
00785eb2026-06-22 upgrade: mobile-optimized grid density slider with touch buttons -
0e42c432026-06-22 feat: add grid density slider (DW standard) — adjustable columns 2–6, persistent localStorage -
74d5c3b2026-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. -
91b70e42026-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) -
8f300652026-06-11 Recompute aesthetic from tags via classifyAesthetic (was degenerate 'all' snapshot) -
e7199162026-06-11 silkwallpaper: rails fire again — wire sliders/grid/facets to aesthetic-OR-tags matcher -
cc780242026-06-09 step2 vendor-leak fix: dual-key /sample resolver + handle_display hrefs -
2d4e8922026-06-09 snapshot before step2 codemod -
524d5e02026-06-03 Scrub residual vendor names from products.json (title/vendor/tags); preserve sku/handle -
d3eb4862026-06-03 a11y: add aria-label to contact/sample form inputs (zero visual; screen-reader association) -
324ca0b2026-06-01 admin: add dw-theme-nav 20-theme navigator (upper-right, admin-only) -
2c15dfe2026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch -
f5164242026-06-01 dw-header: hide ANY pre-existing <header> (not just ns-header); title-case bare-slug names -
95a55542026-06-01 FIX: dw-header was injected inside a doc-comment (never ran); re-inject before the real </body> -
c63d17a2026-06-01 catalog: add all 986 active silk/satin/jacquard/sheen wallcoverings from Shopify (was 242 live) -
3e9f6c02026-06-01 hero: rotate curated room-setting pool (hero-pool.json), guard >=1400px, no swatch blur -
fcc90bb2026-06-01 header name → domain name 'silkwallpaper' (remove odd brand name) -
70d1b362026-06-01 hero: huge 2520px clean hero from dw_unified (graphic-designer vetted; no header/text/watermark) -
3e1a5852026-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 -
0a32c4d2026-06-01 disable hero-4grid overlay so the unique high-res room/pattern hero shows full-bleed -
e635b602026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch -
8d58d052026-06-01 homepage: collapse duplicated 'Ideas' rail-eyebrows into one section eyebrow -
8138cdb2026-06-01 Unique hero image (backsync from prod, fleet hero dedup 2026-06-01) -
4539a982026-06-01 fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch -
f1533ef2026-06-01 fleet rebuild (header-only): dw-header (hamburgers UL + centered name) + accent — local branch -
6a54f892026-06-01 Revert "Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep)" -
e666e372026-06-01 hero: activate self-contained 2x2 hero-4grid (fleet sweep, local) -
69016e62026-06-01 Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep) -
1f4aa212026-06-01 gitignore: broaden *.pre-*.bak to *.pre-* to catch pre-fix snapshot files -
412c2dd2026-06-01 301 redirect legacy .html nav pages to clean URLs (kill duplicate-content served by static) -
f2a3aef2026-06-01 noopener,noreferrer on sister-site constellation window.open(_blank) -
b71454b2026-05-30 fix: remove leaked public backup file and tighten bak-guard regex + .gitignore -
5ed48412026-05-29 feat(fleet): theme1/theme2 query-param-gated toggle on catalog page -
547ecd52026-05-28 scrub vendor name leaks from products.json source (328 products: title/vendor/tags cleaned per sku-redact denylist) -
165bdac2026-05-26 frontend: cleanSku() strips vendor names from displayed sku (.ven/list/detail) + defer renderRailSections call (fix ReferenceError) — click-through verified -
152e54e2026-05-26 sku-redact: wire shared vendor-id display scrubber -
8a54f672026-05-26 rails: editorial labels for firing aesthetic buckets -
96ecbc32026-05-26 rails: wire /api/sliders into horizontal scroll-snap rail sections [fixed] -
49000cf2026-05-25 remove p.vendor render on rails + add noreferrer to facebook target=_blank -
e11ce0d2026-05-25 /api/facets total + counts respect q/aesthetic filters -
3bb8b982026-05-25 add clean-URL routes for history/vocabulary/sourcing/care/trade nav -
b9f92f02026-05-25 wire api-vendor-redact middleware + 404-guard for .bak/.pre-* files -
604360a2026-05-25 untrack server.js.pre-sort-skill (covered by .gitignore + 404-guard incoming) -
88870152026-05-25 retag aesthetic from PG: 508 rows updated -
727bae12026-05-20 add: pre-stage Meta Pixel snippet (placeholder; flip via _dw-batch set-fb-pixel.sh) -
0f8930d2026-05-20 fix: /about → history.html alias (was 404) -
1c8d0132026-05-20 make server.js self-contained — gate _shared/admin-catalog behind MICROSITE_ADMIN_ENABLED env flag (kamatera deploy unblock) -
6ad2ce22026-05-20 silkwallpaper: untrack public/index.html.pre-sort-frontend (deleted by fleet .bak cleanup 2026-05-20) -
fea16c92026-05-19 wire state.sort into loadGridPage /api/products URL (fleet sort fanout) -
bef91582026-05-19 Phase 2b: harden .card .pat against long-token title clipping (overflow-wrap) -
330d7972026-05-19 Phase 2: mobile-ready + tap-to-reveal -
480a0ed2026-05-19 stage2: wire microsite catalog + admin CRUD + grid/list view; repair dead facets -
86131022026-05-18 gitignore: also exclude timestamped .bak.* and .pre-*.bak backup files -
b7e9ef92026-05-18 untrack stale .bak files (already gitignored, kept on disk) -
899e1e32026-05-18 server.js: remove dead code (unused PRODUCTS_ORIG, no-op global marker, stale comment) -
a7af65a2026-05-14 hero-4grid: relocate json from data/ to public/ for Express static -
5f1cbf72026-05-14 4-grid hero: drop-in script + crop CSS + initial 4 newest products -
678caaf2026-05-14 favicon: Mag-7-inspired SVG glyph -
5e2d1a32026-05-13 fix env wiring — anchor dotenv to __dirname so .env loads even when pm2 cwd is wrong -
d7aedb92026-05-13 corner-nav: title-case the brand name even when .ns-name source is lowercase -
ff1ebcd2026-05-13 corner-nav: title-case brand display (e.g. corkwallcovering → Cork Wallcovering) -
4a371db2026-05-13 corner-nav: fix injection — script tag was landing inside HTML comment, now anchored to real </body> -
81a8d9c2026-05-13 fix: contact modal CSS+HTML (was rendering inline as raw emoji/links) -
5771e782026-05-13 embed Big Red customer chat (lower-left, retail mode, vendor-redacted) -
4b7ca142026-05-13 chip-click → product details modal; vendor redacted in card overlay -
aeb94522026-05-13 add universal corner-nav.js (UR 4-icon: bag/account/search/menu) -
a107e6c2026-05-13 remove stray contact modal markup that was rendering inline on the page -
c58afd92026-05-11 fleet-grid refine: chip_uniform_aspect (silkwallpaper) -
11cdfa72026-05-11 snapshot before fleet-grid refine tick 6 -
50605092026-05-10 sort-skill UI: add Light→Dark / Dark→Light / Color Wheel options -
2bd54e02026-05-10 sort-skill canonical: add light-dark/dark-light/wheel + helpers (canary) -
8d6a8f42026-05-10 apply R1+R2+R4 hero standing rules — strip Atelier Couture, lowercase serif wordmark below photo, add data-hero-mode huge default + four-square hydration -
11a77242026-05-07 graphic-loop pass 13: real footer brand + Facebook link + OG/Twitter meta tags -
4be9e8a2026-05-07 graphic-loop pass 12: niche keyword filter (no off-niche products like 'solid' on patterned sites) -
0b1968f2026-05-07 graphic-loop pass 11: add Ideas rails (New this week + Curated picks) above main grid -
ad59c602026-05-07 graphic-loop pass 10: center-mark to top + readable text-shadow + tighter letter-spacing (no mix-blend-mode) -
4b8488c2026-05-07 graphic-loop pass 9: real site name + 20-image hero rotation + 2400px hero res -
a56a78a2026-05-06 graphic-loop pass 5: serif hero typography (Cormorant Garamond) + nav legibility (qwen3 unanimous) -
bdeb7a72026-05-06 graphic-loop pass 2: fix .corner-mark contrast + soften hero overlay (qwen3:14b consensus across fleet) -
fb256952026-05-06 initial scaffold (gitify-all 2026-05-06)
Authors
- Steve115
- front-page-steward4
- auto-commit-fleet4
- steve4
- Claude1
Agents used
Skills used
- /claude6
- /code6
- /products4
- /hero-silk4
- /privacy3
- /index3
- /facets3
- /hero-pool2
- /sliders2
- /sample2
- /vendor2
- /tags2
- /body2
- /list2
- /sort1
- /density1
- /abolina-bathroom1
- /abolina-bedroom1
- /abolina-1
- /abolina-office1
- /bedroom1
- /dining1
- /sitting1
- /champagne1
- /emerald1
- /blush1
- /rooms1
- /corner-mark1
- /paper-weave1
- /off1
Creative ideas + design notes
ac0cdd7 · 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
b57bdb1 · 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
727d333 · 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
0457b64 · 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
a441730 · 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
562c03e · 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
2358b77 · 2026-09-14 · silkwallpaper: 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>
64a79de · 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>
4530fed · 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
e719916 · 2026-06-11 · silkwallpaper: rails fire again — wire sliders/grid/facets to aesthetic-OR-tags matcher
All 986 products carry the degenerate aesthetic 'all', so the naive p.aesthetic===key matching collapsed every rail to empty and made the ?aesthetic= grid filter return nothing. /api/sliders, /api/products, and /api/facets now use rail-match (aesthetic OR tags + hybrid share gate), prod-safe via try-require with a self-contained inline fallback for the static-only Kamatera path. Verified on real data: 6/6 rails fire (532-889 items), aesthetic=silk grid 0->410, facet counts honest, aesthetic=all=986.
b71454b · 2026-05-30 · fix: remove leaked public backup file and tighten bak-guard regex + .gitignore
- rm public/index.html.bak-20260526152130 (was served 200 by express.static) - server.js: fix bak-guard regex to also block .bak-TIMESTAMP filenames (hyphen-suffixed) - .gitignore: add *.bak-* pattern to prevent timestamped backups from being tracked
5ed4841 · 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.
8887015 · 2026-05-25 · retag aesthetic from PG: 508 rows updated
before: all=508 after: architectural=1, commercial=6, contemporary=294, silk=38, textured=4, traditional=165 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
- .gitignore
- _universal-auth.js
- _universal-contact.js
- data/products.json
- data/users.json
- package-lock.json
- package.json
- public/ads.txt
- public/care.html
- public/corner-nav-accordion.js
- public/corner-nav.js
- public/corner-nav.manifest.json
- public/drill.js
- public/dw-header.js
- public/dw-theme-nav.js
- public/favicon.svg
- public/hero-bg.jpg
- public/hero-pool.json
- public/hero-silk/abolina-bathroom.jpg
- public/hero-silk/abolina-bedroom.jpg
- public/hero-silk/abolina-dining_room.jpg
- public/hero-silk/abolina-office.jpg
- public/history.html
- public/index.html
- public/privacy.html
- public/sku-redact.js
- public/sourcing.html
- public/trade.html
- public/ux-primitives.bundle.css
- public/ux-primitives.bundle.js
- public/vocabulary.html
- server.js
- site.config.json