{"slug":"flockedwallpaper","total":26,"limit":100,"offset":0,"since":null,"commits":[{"hash":"80278b4","date":"2026-07-06 17:57:07 -0700","author":"Steve","subject":"Square product-card images (aspect-ratio 1/1)","body":""},{"hash":"adf4683","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":"fcffa62","date":"2026-06-22 10:39:40 -0700","author":"Steve Studio","subject":"flockedwallpaper: rebuild data from live catalog (0 banned 'Wallpaper' titles, drop archived/deleted) + wire /img proxy route","body":"- flocked_products PG table rebuilt from live dw_unified shopify_products mirror:\n  synced 106 ACTIVE rows to current 'Wallcovering' titles, dropped 117 archived/deleted/draft + 4 orphans\n- server.js: wire the redact module's /img/<token> image-proxy route (was unrouted in this\n  raw-http server -> product images 404'd) + pre-warm token map at boot\n- result: 106 products, 0 'Wallpaper' titles, images 200 via Cloudflare\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>"},{"hash":"78c5957","date":"2026-06-17 09:47:04 -0700","author":"Steve Abrams","subject":"leak fix: 404-guard raw catalog json (flocked-products.json served 227 products w/ Cole&Son/Thibaut names) + git-rm the artifact; page uses scrubbed /api/products","body":""},{"hash":"5234c73","date":"2026-06-12 09:21:58 -0700","author":"Steve","subject":"code-health: untrack test/diagnostic html + 404-guard scratch/test/backup/source files in static server","body":""},{"hash":"459b4e6","date":"2026-06-04 07:31:48 -0700","author":"Steve","subject":"seo: add canonical + Open Graph + Twitter card + meta description to homepage head","body":""},{"hash":"6367d69","date":"2026-06-01 16:18:32 -0700","author":"Steve","subject":"vendor-redact: scrub DW vendor names from /api/products (raw-http server uses redact() inline; was leaking)","body":""},{"hash":"b397162","date":"2026-05-30 23:56:11 -0700","author":"Steve","subject":"remove publicly-served backup files and tighten .gitignore to prevent recurrence","body":""},{"hash":"6228a2f","date":"2026-05-27 16:34:09 -0700","author":"Steve","subject":"flocked: fix inert sort+density controls — defer wiring to DOMContentLoaded","body":"The controls-wiring IIFE ran at parse time, before #productGrid was declared\n(getElementById -> null -> early return), so the density slider and live\nsort-change listener never bound. Wrapped the wiring in a DOMContentLoaded\nguard so the grid exists when it runs. Sort/density now functional + remain\nlocalStorage-persisted. Corner-nav + controls markup were already present."},{"hash":"1f3cea8","date":"2026-05-26 09:45:04 -0700","author":"Steve","subject":"redact vendor names from customer-facing /api (close fleet leak)","body":""},{"hash":"950ca66","date":"2026-05-20 00:27:39 -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":"3e74f2c","date":"2026-05-19 23:13:47 -0700","author":"Steve","subject":"flockedwallpaper: untrack 6 stale files at repo root (21MB freed from clone)","body":"- claude-skills-export.zip (21MB), claude-skills-md-only.zip (600K): stale ~/.claude/skills exports from May 7\n- index-old-backup.html, server-old-backup.js: pre-rewrite snapshots, superseded\n- test-hex-sort.html, test-load.html: throwaway test pages\nAll 6 now match patterns in .gitignore (previous commit). Files remain on disk; cache-only removal."},{"hash":"1e56daa","date":"2026-05-19 23:13:47 -0700","author":"Steve","subject":"flockedwallpaper: gitignore stale-file patterns + make dotenv path env-overridable","body":"- .gitignore: add *.zip, *-old-backup*, test-*.html (catches the 6 stale files at repo root)\n- server.js:4 — dotenv path now reads process.env.DOTENV_PATH first, falls back to /root/DW-Agents/claudette-agent/.env (Kamatera default); unblocks local dev which can't read the Kamatera-absolute path"},{"hash":"11ebb51","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":"bdd3a6f","date":"2026-05-18 20:35:18 -0700","author":"Steve","subject":"Fix doubled period in footer description copy","body":""},{"hash":"2518b85","date":"2026-05-18 20:34:58 -0700","author":"Steve","subject":"gitignore: also exclude plain *.bak files","body":""},{"hash":"075035f","date":"2026-05-18 20:34:43 -0700","author":"Steve","subject":"Hero search keeps the active sort order applied instead of resetting to DB order","body":""},{"hash":"d957aed","date":"2026-05-18 20:34:43 -0700","author":"Steve","subject":"server.js: confine static file serving to project root — block path traversal","body":""},{"hash":"0f7f065","date":"2026-05-18 20:34:07 -0700","author":"Steve","subject":"Wire the Sort select to actually re-sort the grid (newest/color/style/sku/title) and persist across reload + color filter","body":""},{"hash":"d2dfd90","date":"2026-05-18 20:33:25 -0700","author":"Steve","subject":"Make product grid a CSS grid so the density slider actually changes column count","body":""},{"hash":"a4e67c8","date":"2026-05-13 07:22:47 -0700","author":"Steve","subject":"header: remove duplicate <header> with dwmOpen-contact (was overlapping ns-header) + add display:none default to .ns-modal so How-can-we-help only opens on click. Restores canonical logo-UL + hamburger-UR layout per MEMORY rule.","body":""},{"hash":"a024499","date":"2026-05-13 07:15:16 -0700","author":"Steve","subject":"brand: replace remaining fake brand globally → 'flockedwallpaper' across head/meta/wordmark/footer — enforces MEMORY brand-stem rule","body":""},{"hash":"e3e91f7","date":"2026-05-11 02:21:58 -0700","author":"Steve Abrams","subject":"fleet-grid refine: chip_uniform_aspect (flockedwallpaper)","body":""},{"hash":"ef423f3","date":"2026-05-11 02:19:54 -0700","author":"Steve Abrams","subject":"snapshot before fleet-grid refine tick 4","body":""},{"hash":"f426863","date":"2026-05-08 07:35:37 -0700","author":"Steve","subject":"Hamburger always visible on right — propagated from novasuede a815690","body":"Standing rule (~/.claude/skills/dw-site-build/SKILL.md): hamburger ALWAYS\nvisible on the right, inline nav collapses to drop-panel at all widths.\nSame edit as novasuede + silkwallcoverings.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"},{"hash":"f7432b6","date":"2026-05-07 20:38:37 -0700","author":"Steve","subject":"initial scaffold + ns-header + Atelier rebrand + sort/density/search controls","body":"47/47 fleet QA (100%) milestone state.\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>\n"}]}