Ffepurchasing
Search the build
-
3bf6daa2026-09-10 Add /privacy clean route (site 301s .html to clean URLs) -
1e064d42026-09-10 Standardize privacy policy to /privacy.html + footer link (AdSense) -
8e1cdd62026-09-10 Add AdSense-compliant privacy policy page + footer link + /privacy route -
ec1c0902026-09-09 Add Instagram embed of latest live posts to homepage (TK-11322) -
5d2df1a2026-09-09 TK-11341: add AdSense Auto-Ads loader + ads.txt (revert to remove ads) -
27ef2ee2026-08-24 auto-data-snapshot: 2026-08-24T04:13:07 (1 data files) — server.js.ldrbak.1787569812 -
3ab081b2026-08-24 Add p.visible!==false guard to product load filter (cluster5 resid) -
07a1be42026-08-22 auto-data-snapshot: 2026-08-22T11:19:22 (1 data files) — data/products.json -
e2119b72026-08-12 viewer standard: add Grid/List toggle + per-field on/off menu to internal record-grid viewer -
57ecf402026-08-04 fix: take infinite-scroll .loading indicator out of flow (kills ~0.3-0.4 CLS scroll-jump) -
23394bf2026-08-01 ffepurchasing: adopt href-to-deeper-data primitives (TK-10093) -
ae481a92026-07-30 search: scroll results into view on mobile (grid was below the fold → looked like nothing happened) -
848b4852026-07-29 corner-nav: block javascript:/data: URIs in search preview (URL-scheme allowlist) -
569080b2026-07-29 search: /api matcher now covers title+tags+description+type+vendor+sku -
803a96e2026-07-29 corner-nav: live as-you-type search with thumbnail previews (title+tags+description) -
098c6b72026-07-06 Square product-card images (aspect-ratio 1/1) -
ff7f64b2026-07-03 corner-nav: move login to its own hamburger in upper-left (panel slides from left) -
a2c5b592026-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. -
4c051582026-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) -
2e367c72026-06-11 ffepurchasing: rails fire again — wire sliders + grid filter to aesthetic-OR-tags matcher (prod-safe try-require + inline fallback) -
1ec14db2026-06-09 step2 vendor-leak fix: dual-key /sample resolver + handle_display hrefs -
004be022026-06-09 snapshot before step2 codemod -
7bd91092026-06-03 Scrub residual vendor names from products.json (title/vendor/tags); preserve sku/handle -
4ffcd752026-06-01 admin: add dw-theme-nav 20-theme navigator (upper-right, admin-only) -
81397e62026-06-01 hero: rotate curated room-setting pool (hero-pool.json), guard >=1400px, no swatch blur -
1fb9ff72026-06-01 homepage: collapse duplicated 'Ideas' rail-eyebrows into one section eyebrow -
1934fb32026-06-01 Unique hero image (backsync from prod, fleet hero dedup 2026-06-01) -
fc990f82026-06-01 clean-URL: 301 redirect legacy /*.html -> extension-less routes (/index.html -> /, /trade-account.html -> /trade-account) -
1dadf892026-06-01 noopener,noreferrer on sister-site constellation window.open popup -
4c34b572026-06-01 /api/facets: drill-down counts over the active filtered set (q/aesthetic/vendor) via shared filterProducts() — was counting whole niche catalog -
02ead9b2026-05-30 remove served backup file public/index.html.bak-20260526152130 and add *.bak-* to .gitignore -
8a7bd962026-05-28 scrub vendor name leaks from products.json source (224 products: title/vendor/tags cleaned per sku-redact denylist) -
14c38052026-05-26 frontend: cleanSku() strips vendor names from displayed sku (.ven/list/detail) + defer renderRailSections call (fix ReferenceError) — click-through verified -
9ea99912026-05-26 sku-redact: wire shared vendor-id display scrubber -
1ac04322026-05-26 ffepurchasing: editorial rail/facet labels — polished neutrals over real aesthetic buckets; behavior unchanged -
6ff2de02026-05-26 ffepurchasing: commit config-rails fix — aspirational hotel/restaurant (0 hydrate) → real buckets (5 rails fire) -
407df7e2026-05-26 wire api-vendor-redact middleware (close vendors-facet leak) -
8b06c9d2026-05-25 remove vendor names from customer-facing cards/rows/rails (DW rule: never expose vendor identity) -
52ff72f2026-05-25 retag aesthetic from PG: 598 rows updated -
f1221c92026-05-19 make server.js self-contained — gate _shared/admin-catalog behind MICROSITE_ADMIN_ENABLED env flag (kamatera deploy unblock) -
118b48e2026-05-19 fix: add noreferrer to target=_blank external links -
084f9b52026-05-19 WIP: partial sort hydration from killed agent — finish in next pass -
2bdb4aa2026-05-19 fix: add .bak/.pre-* 404 guard and correct /api/facets total -
8a7784b2026-05-19 chore: untrack .bak/.pre-* snapshots and broaden .gitignore -
c489d2e2026-05-19 Phase 2b: harden .card .pat against long-token title clipping (overflow-wrap) -
232394b2026-05-19 Phase 2: mobile-ready + tap-to-reveal -
e92af142026-05-19 fix site.config.json — correct slug/identity (was copy-pasted from hospitalitywallpaper) -
0de1c6c2026-05-19 stage2: wire microsite catalog + admin CRUD -
72acf4a2026-05-14 hero-4grid: relocate json from data/ to public/ for Express static -
e92a6292026-05-14 4-grid hero: drop-in script + crop CSS + initial 4 newest products -
768f0bf2026-05-14 favicon: Mag-7-inspired SVG glyph -
eec46e02026-05-13 corner-nav: title-case the brand name even when .ns-name source is lowercase -
84446f42026-05-13 corner-nav: title-case brand display (e.g. corkwallcovering → Cork Wallcovering) -
33c6ad82026-05-13 corner-nav: fix injection — script tag was landing inside HTML comment, now anchored to real </body> -
8dec2712026-05-13 fix: contact modal CSS+HTML (was rendering inline as raw emoji/links) -
29b5c4c2026-05-13 add universal corner-nav.js (UR 4-icon: bag/account/search/menu) -
0102b552026-05-13 remove stray contact modal markup that was rendering inline on the page -
24cf5362026-05-13 snapshot: 5 file(s) changed, +3 new, ~2 modified -
137bcca2026-05-10 add gated figma capture loader (only fires on ?figmacapture= URL param) -
af3374d2026-05-10 brand customization for ffepurchasing -
690b5d62026-05-08 fleet UX: novasuede-style hamburger drawer (DW-Websites/_shared/dw-fleet-nav.js) -
c9699382026-05-07 graphic-loop pass 13: real footer brand + Facebook link + OG/Twitter meta tags -
f8c4ed72026-05-07 graphic-loop pass 12: niche keyword filter (no off-niche products like 'solid' on patterned sites) -
3e4a6bb2026-05-07 graphic-loop pass 11: add Ideas rails (New this week + Curated picks) above main grid -
de6aabe2026-05-07 graphic-loop pass 10: center-mark to top + readable text-shadow + tighter letter-spacing (no mix-blend-mode) -
fb4455f2026-05-07 graphic-loop pass 9: real site name + 20-image hero rotation + 2400px hero res -
9880dd82026-05-07 graphic-loop pass 8: theme-aware font Cormorant Garamond (panel-approved comprehensive 16-bucket assignment) -
2cbfe462026-05-06 graphic-loop pass 2: fix .corner-mark contrast + soften hero overlay (qwen3:14b consensus across fleet) -
404c2522026-05-06 initial scaffold (gitify-all 2026-05-06)
Authors
- Steve66
- auto-commit-fleet2
- steve1
Agents used
Skills used
- /privacy3
- /products3
- /vendor3
- /facets3
- /body3
- /tags2
- /index2
- /trade-account2
- /off1
- /data1
- /sample1
- /handle1
- /aesthetic1
- /list1
- /detail1
- /facet1
- /restaurant1
- /rows1
- /rails1
- /admin-catalog1
- /header1
- /identity1
- /links1
- /account1
- /search1
- /menu1
- /robots1
- /dw-fleet-nav1
Creative ideas + design notes
52ff72f · 2026-05-25 · retag aesthetic from PG: 598 rows updated
before: all=600 after: all=2, beige=43, contemporary=60, gray=3, textured=448, traditional=26, white=18 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>
118b48e · 2026-05-19 · fix: add noreferrer to target=_blank external links
Both index.html (Facebook) and dw-fleet-nav.js (sister-brand rail) had target="_blank" with rel="noopener" only — adds noreferrer per the standing fleet hygiene rule. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2bdb4aa · 2026-05-19 · fix: add .bak/.pre-* 404 guard and correct /api/facets total
- Express middleware before express.static returns 404 for any path matching .bak / .bak.* / .pre-* so leftover local snapshots never serve from public/. - /api/facets total now reflects PRODUCTS_NICHE (the filtered list served by /api/products) instead of the raw PRODUCTS array, so the footer/header counts match what users can actually see. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
8a7784b · 2026-05-19 · chore: untrack .bak/.pre-* snapshots and broaden .gitignore
Removes 16 committed snapshot files (15 index.html backups + 1 server.js backup) from version control; adds *.bak.*, *.pre-*, *.pre-*.bak patterns to .gitignore so future snapshots stay local-only. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
137bcca · 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.
af3374d · 2026-05-10 · brand customization for ffepurchasing
- 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
- .gitignore
- _universal-auth.js
- _universal-contact.js
- data/products.json
- data/trade-inquiries.jsonl
- package-lock.json
- package.json
- public/ads.txt
- public/corner-nav.js
- public/drill.js
- public/dw-fleet-nav.js
- public/dw-theme-nav.js
- public/favicon.svg
- public/hero-4grid.js
- public/hero-4grid.json
- public/hero-bg.jpg
- public/index.html
- public/privacy.html
- public/sku-redact.js
- public/trade-account.html
- server.js
- server.js.ldrbak.1787569812
- site.config.json