{"slug":"wallpaperwednesday","total":42,"limit":100,"offset":0,"since":null,"commits":[{"hash":"3956dd0","date":"2026-09-10 11:51:30 -0700","author":"Steve Abrams","subject":"Add clean /privacy route (AdSense URL consistency)","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"5d2effb","date":"2026-09-10 11:20:51 -0700","author":"Steve Abrams","subject":"Add privacy footer link (AdSense discoverability)","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"3dbc29a","date":"2026-09-10 11:02:17 -0700","author":"Steve Abrams","subject":"Add AdSense-compliant privacy policy page + footer link + /privacy route","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"a5895ae","date":"2026-09-09 23:25:07 -0700","author":"Steve Abrams","subject":"Add Instagram embed of latest live posts to homepage (TK-11322)","body":""},{"hash":"79c83c8","date":"2026-09-09 16:02:23 -0700","author":"Steve","subject":"TK-11341: add AdSense Auto-Ads loader + ads.txt (revert to remove ads)","body":""},{"hash":"e85d1af","date":"2026-09-04 08:32:31 -0700","author":"Steve Abrams","subject":"deploy: guard live runtime data from rsync --delete","body":"deploy.sh runs 'rsync -az --delete'. This project's server appends\nuser-submitted state to a path inside its own deployed tree, and the file\ndoes not exist locally — so a deploy DELETED it on prod outright.\n\nProven by itemized rsync --dry-run against prod:\n  WITHOUT guard: *deleting   <the runtime file>\n  WITH guard:    (nothing)\n\nProd held real data at the time of the fix: fabricfriday 19,\ntextiletuesday 70, wallpaperwednesday 30 newsletter subscribers.\n\nFound by the new deploy-data-guard-canary, which caught these four after\na hand-rolled sweep missed them. TK-11227.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_013mq9RQtVZZEWvreDqqTgv2"},{"hash":"c0b31eb","date":"2026-08-18 06:06:29 -0700","author":"Steve Abrams","subject":"GA4+Meta pixel: inject gtag + fbq into homepage","body":""},{"hash":"aea3849","date":"2026-08-04 11:44:42 -0700","author":"Steve Abrams","subject":"SEO: rel=nofollow sponsored on designerwallcoverings.com links (independent ranking) [fleet-seo]","body":""},{"hash":"da37f35","date":"2026-08-04 11:27:34 -0700","author":"Steve Abrams","subject":"Wire DW Meta Pixel 1431180262113856 + DW-network ad slot [ads/tracking rollout]","body":""},{"hash":"2b7123a","date":"2026-07-29 22:24:10 -0700","author":"Steve Abrams","subject":"deploy.conf: smoke-check root / (was a /health path these apps don't serve → false-fail)","body":""},{"hash":"2c2317f","date":"2026-07-29 09:58:13 -0700","author":"Steve Abrams","subject":"corner-nav: block javascript:/data: URIs in search preview (URL-scheme allowlist)","body":""},{"hash":"2434a7b","date":"2026-07-29 09:42:43 -0700","author":"Steve Abrams","subject":"corner-nav: live as-you-type search with thumbnail previews (title+tags+description)","body":""},{"hash":"a3a503d","date":"2026-07-03 09:57:40 -0700","author":"Steve Abrams","subject":"corner-nav: move login to its own hamburger in upper-left (panel slides from left)","body":""},{"hash":"5aa15cd","date":"2026-06-21 17:04:14 -0700","author":"Steve","subject":"deploy: scaffold .deploy.conf for banner deploy","body":""},{"hash":"6e53896","date":"2026-06-21 16:48:57 -0700","author":"Steve","subject":"banner: wire universal promo-banner require above express.static (officer-approved; deploy gated)","body":""},{"hash":"9786164","date":"2026-06-03 20:46:12 -0700","author":"Steve","subject":"Scrub residual vendor names from products.json (title/vendor/tags); preserve sku/handle","body":""},{"hash":"ad8b876","date":"2026-06-03 20:24:35 -0700","author":"Steve Abrams","subject":"gitignore: add missing standard excludes (.next/)","body":""},{"hash":"6b8e62e","date":"2026-06-01 16:14:12 -0700","author":"Steve Abrams","subject":"vendor-redact: mount api-vendor-redact middleware (was missing) — scrubs DW vendor names from /api responses per standing rule","body":""},{"hash":"560291c","date":"2026-06-01 15:58:28 -0700","author":"Steve Abrams","subject":"fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch","body":""},{"hash":"dd3a51d","date":"2026-06-01 15:51:48 -0700","author":"Steve Abrams","subject":"products.json: localize dead Shopify CDN hero/archive images to self-hosted /hero-bg.jpg + /images (kills 404 og:image trail)","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"79b578c","date":"2026-06-01 15:47:52 -0700","author":"Steve Abrams","subject":"dw-header: hide ANY pre-existing <header> (not just ns-header); title-case bare-slug names","body":""},{"hash":"a0d0696","date":"2026-06-01 15:37:48 -0700","author":"Steve","subject":"localize all images — fix broadly-dead Shopify CDN URLs (DTD verdict B)","body":"~12 of 16 hardcoded cdn.shopify.com image URLs had gone 404 (DW store files\nmoved/renamed) -> ORB-blocked broken hero, featured shots, and most archive\nthumbnails. Per claude-codex DTD (Option B: LOCALIZE, high confidence): fetched\neach product's current image by handle from designerwallcoverings.com/products/\n<handle>.json, downloaded 15 images into public/images/, and rewrote every ref\nto a local /images/ path (hero CSS -> /images/agra-3.jpg). 0 Shopify refs remain;\nall 14 referenced image paths verified 200 over HTTP. Removes the volatile-CDN\ndependency entirely. (h1 'Today's<br>Wallpaper Pick' is a 2-line title, not a\nspacing bug — no change.)"},{"hash":"6cd9696","date":"2026-06-01 15:11:41 -0700","author":"Steve Abrams","subject":"header name → domain name 'Wallpaperwednesday' (remove odd brand name)","body":""},{"hash":"6077136","date":"2026-06-01 14:49:50 -0700","author":"Steve Abrams","subject":"header A-rebuild: dw-header.js wins fleet — patched to hide original header + corner-nav + v1, fix centered site-name (title fallback), add theme toggle; v1 removed from index","body":""},{"hash":"23447ee","date":"2026-06-01 14:22:19 -0700","author":"Steve Abrams","subject":"header: remove dw-header.js — fixes overlapping hamburgers (DW-HAMBURGER-NAV v1 sole nav); fleet regression sweep","body":""},{"hash":"8a8df9b","date":"2026-06-01 14:19:54 -0700","author":"Steve Abrams","subject":"og:image → own /hero-bg.jpg (was hardcoded shared Indienne shopify url; deduped viewer + social card)","body":""},{"hash":"a2f3f51","date":"2026-06-01 14:04:37 -0700","author":"Steve Abrams","subject":"fleet rebuild: dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch","body":""},{"hash":"7b16167","date":"2026-06-01 13:55:25 -0700","author":"Steve Abrams","subject":"gradient hero (unique hue 3deg) — no niche photography available","body":""},{"hash":"77a3c6f","date":"2026-06-01 13:53:25 -0700","author":"Steve Abrams","subject":"gradient hero (unique hue 3deg) — no niche photography available","body":""},{"hash":"5e811fa","date":"2026-06-01 13:52:59 -0700","author":"Steve Abrams","subject":"fleet rebuild (gap-fill): dw-header (hamburgers UL + centered name) + unique high-res hero + accent — local branch","body":""},{"hash":"9dea8aa","date":"2026-06-01 13:47:39 -0700","author":"Steve Abrams","subject":"fleet rebuild (header-only): dw-header (hamburgers UL + centered name) + accent — local branch","body":""},{"hash":"b0119bd","date":"2026-05-30 21:40:10 -0700","author":"Steve","subject":"scrub vendor leaks from weekly-feature products.json (hero+archive vendor/subtitle; per sku-redact denylist; DW house brands preserved)","body":""},{"hash":"3c9d2ef","date":"2026-05-29 13:20:46 -0700","author":"Steve Abrams","subject":"feat(fleet): theme1/theme2 query-param-gated toggle on catalog page","body":"Default: theme1, toggle hidden. Opt-in via ?theme=2 or localStorage\n('wallco-page-theme' key shared across the fleet). Same gate pattern\nas dw-domain-fleet productPage."},{"hash":"81da1d2","date":"2026-05-27 16:07:50 -0700","author":"Steve","subject":"scrub residual DW vendor names (Arte International + Lee Jofa) from hero/prose/reveal-cards","body":"Drop \"Arte International\" from reveal-strip title, hero-sub, and editorial\nprose; set reveal-strip vendor label + all 12 reveal-card vendor fields to\n\"Designer Wallcovering\". Shopify product-handle slug in the memo-link href\nkept intact (cart/link rule, matches prod). Mac2 source was stale vs prod."},{"hash":"f1ace19","date":"2026-05-20 00:27:44 -0700","author":"Steve","subject":"add: pre-stage Meta Pixel snippet (placeholder; flip via _dw-batch set-fb-pixel.sh)","body":"Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"},{"hash":"00eb7fc","date":"2026-05-19 22:10:26 -0700","author":"Steve Abrams","subject":"add ns-contact modal (CSS + HTML + JS) — info@wallpaperwednesday.com","body":"Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"},{"hash":"7298d1b","date":"2026-05-19 22:10:26 -0700","author":"Steve Abrams","subject":"add corner-nav.js — universal top-right nav per _shared/corner-nav.js","body":"Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"},{"hash":"3912377","date":"2026-05-19 08:08:51 -0700","author":"Steve Abrams","subject":"Block snapshot-file paths from static root + ignore *.bak/*.pre-*","body":"Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"},{"hash":"85f9050","date":"2026-05-19 08:08:22 -0700","author":"Steve Abrams","subject":"Add noreferrer to all target=_blank external links","body":"Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"},{"hash":"b872bab","date":"2026-05-10 21:40:55 -0700","author":"Steve Abrams","subject":"hamburger nav: apply canonical pattern from sister-site fleet","body":""},{"hash":"538b517","date":"2026-05-10 21:40:13 -0700","author":"Steve Abrams","subject":"snapshot before hamburger nav rollout","body":""},{"hash":"0c619a0","date":"2026-05-07 16:48:01 -0700","author":"Steve Abrams","subject":"initial scaffold: wallpaperwednesday.com botanical green pinned-reveal site","body":""}]}