Carmelwallpapers
Search the build
-
0225c052026-09-13 TK-11556: exclude dev-only verification/ artifacts from deploy rsync -
1a37ae52026-09-12 TK-11556: add home-page editorial content section (146 -> 444 words) -
440ced22026-09-10 Record deployed AdSense fixes and remaining product readiness dependency -
acba1fb2026-09-10 Record live disclosures, ownership verification and Carmel review request -
13429132026-09-10 Add linked Carmel disclosures and crawlable catalog sitemap -
14d24172026-09-10 auto-data-snapshot: 2026-09-10T10:34:55 (2 data files) — public/robots.txt verification/TK-11380/disclosures-local.json -
5261eb22026-09-10 Record approved Carmel live restoration and rollback evidence -
a44568f2026-09-10 Record Carmel HTTP status and deployment boundary proof -
29b14cd2026-09-10 Prepare Carmel storefront on explicit port with identity health check -
f0febc22026-09-10 Keep one AdSense loader in inline page templates -
ff8c53e2026-09-09 TK-11341: add AdSense Auto-Ads loader + ads.txt (revert to remove ads) -
8261bd82026-07-29 deploy.conf: smoke-check root / (was a /health path these apps don't serve → false-fail) -
133251a2026-07-29 corner-nav: block javascript:/data: URIs in search preview (URL-scheme allowlist) -
ab822db2026-07-29 corner-nav: live as-you-type search with thumbnail previews (title+tags+description) -
d62e7c22026-07-03 corner-nav: move login to its own hamburger in upper-left (panel slides from left) -
3eac6d72026-06-21 auto-save: 2026-06-21T18:53:00 (1 files) — public/hero-pool.json -
05018662026-06-21 deploy: scaffold .deploy.conf for banner deploy -
2be9c4b2026-06-21 banner: wire universal promo-banner require above express.static (officer-approved; deploy gated) -
69a8d922026-06-11 carmelwallpapers: rails fire again — wire sliders + grid filter to aesthetic-OR-tags matcher (hand edit; site uses hardcoded RAIL_ORDER scaffold) -
97530352026-06-04 seo: add per-page canonical + Open Graph + Twitter card (HTML_HEAD threads canonical+ogImage; index collapses facets to type per DTD-B, detail uses redacted product slug) -
06b4f592026-06-03 Scrub residual vendor names from products.json (title/vendor/tags); preserve sku/handle -
fd64d512026-06-03 Wire vendor-neutral image-proxy into carmel storefront (no vendor filenames in customer output) -
e802dce2026-06-01 Unique clean image hero (fleet hero dedup 2026-06-01) -
afaefa42026-05-31 render: route buy CTA + View Full Product + card sample link through /buy/:slug (kill vendor-handle DOM leak; mirrors fleet a85eb02) -
b8d3c3a2026-05-31 Add per-site favicon (kills /favicon.ico 404) -
13144ed2026-05-30 scrub residual 3rd-party vendor names from products.json source (per sku-redact denylist; sku/handle + DW house brands preserved) -
f922bba2026-05-30 fix: strip bare '-arte' (Arte International abbrev) from product slugs + sort denylist longest-first so 'arte international' strips before 'arte' (no 'international' residue). Closes residual leak from 2026-05-30 verify sweep. -
24afde42026-05-29 fix: strip vendor tokens from product slug (redactVendorSlug) + dual-key route resolve — closes standalone slug vendor leak -
607c2d82026-05-28 scrub vendor name leaks from products.json source (568 products: title/vendor/tags cleaned per sku-redact denylist) -
f338d342026-05-26 wire api-vendor-redact middleware (close vendor leak in /api/products) -
ff4542f2026-05-25 fix: drop dead 'Raffia' nav links — 0 products tagged raffia, was a 404-equivalent -
fafb0012026-05-25 fix: scrub p.vendor leaks from customer-facing UI (use "Designer Wallcoverings") -
0b699bc2026-05-25 pull-from-shopify: use shared classifier with rails primary, local aestheticOf as fallback -
c78d2c22026-05-25 retag aesthetic from PG: 833 rows updated -
5e16aae2026-05-21 make server.js self-contained — gate _shared/admin-catalog behind MICROSITE_ADMIN_ENABLED env flag (kamatera deploy unblock) -
88aa54b2026-05-19 add ns-contact modal (CSS + HTML + JS) — info@carmelwallpapers.com -
799a8ba2026-05-19 add corner-nav.js — universal top-right nav per _shared/corner-nav.js -
76119fc2026-05-19 Phase 2: mobile-ready + tap-to-reveal -
ccc83e12026-05-19 stage2: wire carmelwallpapers onto shared catalog (hand-tailored) -
5958e2e2026-05-19 fix: wire vendor sort handler, add SKU option, drop dead Price options -
20aecc22026-05-19 fix: add noreferrer to external target=_blank links -
78e1c9d2026-05-19 fix: 404-guard so .bak/.pre- snapshot paths never serve from static root -
d43943c2026-05-19 chore: untrack server.js.pre-sort-skill snapshot, broaden .gitignore -
1797e172026-05-13 snapshot: 2 file(s) changed, +2 new -
ade7d842026-05-11 fleet-grid refine: all-pass (chip-ratio canonical reference site) (carmelwallpapers) -
2c1963a2026-05-10 sort-skill canonical: add light-dark/dark-light/wheel + helpers -
46849562026-05-07 initial scaffold: carmelwallpapers.com DW microsite, 2182 coastal products
Authors
- Steve45
- auto-commit-fleet1
- steve1
Agents used
Skills used
- /vendor2
- /tags2
- /handle2
- /natural1
- /coastal1
- /claude1
- /code1
- /robots1
- /disclosures-local1
- /health1
- /data1
- /hero-pool1
- /buy1
- /favicon1
- /products1
- /admin-catalog1
- /corner-nav1
- /dark-light1
- /wheel1
Creative ideas + design notes
0225c05 · 2026-09-13 · TK-11556: exclude dev-only verification/ artifacts from deploy rsync
verification/ holds static, git-tracked proof/test artifacts from prior TK-11380 disclosure verification work -- not served by server.js (no runtime write path touches it) and not needed on the live box. Excluding it avoids the delete-guard false-positive (it pattern-matched filenames like 'results.json'/'disclosures-live.json' as runtime data even though they're committed static content, not server-written). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1a37ae5 · 2026-09-12 · TK-11556: add home-page editorial content section (146 -> 444 words)
AdSense readiness flagged the home page as thin content (146 words, want >=300). Added a substantive "Wallcoverings for the Carmel Coast" section covering grasscloth, linen/natural textures, and botanical/coastal prints, plus a service paragraph on samples and trade pricing. Verified locally: textLen(home html) now returns 444 words using the exact counter from adsense-manager's audit.mjs. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K61eMmuPFpR4PwzVFf9qbh
ff4542f · 2026-05-25 · fix: drop dead 'Raffia' nav links — 0 products tagged raffia, was a 404-equivalent
Header and footer linked /?type=raffia but the catalog has zero raffia products (rails listed it; data never matched). Header swaps in /?type=natural (136 items); footer simply drops raffia. Facet chips were already filtering on count so they were correct. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fafb001 · 2026-05-25 · fix: scrub p.vendor leaks from customer-facing UI (use "Designer Wallcoverings")
Replaces dynamic vendor renders on product detail card, grid card, rail card, meta description, and schema.org brand with the literal "Designer Wallcoverings". Drops the now-meaningless "Vendor A→Z" sort option from the dropdown and clears the value from any existing localStorage to avoid stale state. Standing rule per global CLAUDE.md: DW vendor names NEVER in customer-facing UI. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
c78d2c2 · 2026-05-25 · retag aesthetic from PG: 833 rows updated
before: botanical=333, coastal=195, grasscloth=813, linen=393, natural=309, raffia=139 after: all=656, botanical=339, coastal=76, grasscloth=792, linen=183, natural=136 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>
5958e2e · 2026-05-19 · fix: wire vendor sort handler, add SKU option, drop dead Price options
Product data has no price field so Price sort was a no-op; SKU sort falls back to handle. Vendor option existed in the select but had no server-side sort handler. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
File tree
- .deploy.conf
- .gitignore
- data/products.json
- ecosystem.config.cjs
- package-lock.json
- package.json
- public/about.html
- public/corner-nav.js
- public/css/site.css
- public/favicon.ico
- public/favicon.svg
- public/hero-pool.json
- public/privacy.html
- public/robots.txt
- scripts/pull-from-shopify.js
- server.js
- site.config.json
- verification/TK-11380/OUTCOME.md
- verification/TK-11380/README.md
- verification/TK-11380/carmel-privacy-live.png
- verification/TK-11380/carmel-privacy-local.png
- verification/TK-11380/console-carmelwallpapers.com-inspect.json
- verification/TK-11380/console-carmelwallpapers.com-next.json
- verification/TK-11380/console-carmelwallpapers.com-request.json
- verification/TK-11380/console-hospitalitydesignreps.com-inspect.json
- verification/TK-11380/console-iwascute.com-next.json
- verification/TK-11380/console-iwascute.com-verify.json
- verification/TK-11380/console-review.cjs
- verification/TK-11380/deploy-approved.sh
- verification/TK-11380/deploy-disclosures.sh
- verification/TK-11380/disclosures-live.json
- verification/TK-11380/disclosures-local.json
- verification/TK-11380/e2e-proof.json
- verification/TK-11380/hospitality-privacy-live.png
- verification/TK-11380/hospitality-privacy-local.png
- verification/TK-11380/live-deploy-proof.json
- verification/TK-11380/results.json
- verification/TK-11380/verify-disclosures.cjs
- verification/TK-11380/verify.cjs
- verification/e2e-proof.json