Retrowalls

repo: ~/Projects/retrowalls · 83 commits · 0 in last 24h, 0 in last 7d ·

Search the build

83 commits indexed

  1. 51baae5 2026-09-15 hero: retire hero-4grid.js collision, keep the R4 alternating hero as sole owner
  2. c81f9bd 2026-09-10 Standardize privacy policy to /privacy.html + footer link (AdSense)
  3. 3442ed9 2026-09-10 Add AdSense-compliant privacy policy page + footer link + /privacy route
  4. a02ae2a 2026-09-09 Add Instagram embed of latest live posts to homepage (TK-11322)
  5. 2c44e4f 2026-09-09 TK-11341: add AdSense Auto-Ads loader + ads.txt (revert to remove ads)
  6. b7c4bb7 2026-08-12 viewer standard: add per-field on/off menu (Fields ▾) to product grid
  7. 0353ad2 2026-08-04 fix: take infinite-scroll .loading indicator out of flow (kills ~0.3-0.4 CLS scroll-jump)
  8. 0f210dc 2026-08-04 Wire DW Meta Pixel 1431180262113856 + DW-network ad slot [ads/tracking rollout]
  9. bd3f2fb 2026-08-01 retrowalls: adopt href-to-deeper-data storefront primitives (TK-10093)
  10. 0a0fc65 2026-07-30 search: scroll results into view on mobile (grid was below the fold → looked like nothing happened)
  11. 23e93e3 2026-07-29 corner-nav: block javascript:/data: URIs in search preview (URL-scheme allowlist)
  12. 26929d0 2026-07-29 search: /api matcher now covers title+tags+description+type+vendor+sku
  13. 5cabcfc 2026-07-29 corner-nav: live as-you-type search with thumbnail previews (title+tags+description)
  14. 7d3dbeb 2026-07-06 Square product-card images (aspect-ratio 1/1)
  15. 6502ef1 2026-07-03 corner-nav: move login to its own hamburger in upper-left (panel slides from left)
  16. b9d8b89 2026-07-03 chore: macstudio3 migration — reconcile from mac2 + repoint paths (stevestudio2→macstudio3, node/npm/npx→/opt/homebrew)
  17. 1cf0d0e 2026-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.
  18. 70a042d 2026-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)
  19. cc8f3a4 2026-06-11 retrowalls: rails fire again — wire sliders + grid filter to aesthetic-OR-tags matcher (prod-safe try-require + inline fallback)
  20. 7d4425e 2026-06-09 step2 vendor-leak fix: dual-key /sample resolver + handle_display hrefs
  21. b05db52 2026-06-03 seo: add robots.txt + sitemap.xml (was 404 — crawl gap)
  22. 1a1317d 2026-06-03 Scrub residual vendor names from products.json (title/vendor/tags); preserve sku/handle
  23. edbec61 2026-06-03 a11y: add aria-label to contact/sample form inputs (zero visual; screen-reader association)
  24. 286f53e 2026-06-01 admin: add dw-theme-nav 20-theme navigator (upper-right, admin-only)
  25. 4c2a861 2026-06-01 hero: rotate curated room-setting pool (hero-pool.json), guard >=1400px, no swatch blur
  26. 58219f9 2026-06-01 homepage: retire redundant corner-nav.js (ns-header hamburger is the live nav)
  27. f971984 2026-06-01 homepage: collapse duplicated 'Ideas' rail-eyebrows into one section eyebrow
  28. 20fcec5 2026-06-01 Unique hero image (backsync from prod, fleet hero dedup 2026-06-01)
  29. b877cdb 2026-06-01 Revert "Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep)"
  30. 1f44003 2026-06-01 hero: activate self-contained 2x2 hero-4grid (fleet sweep, local)
  31. 92b10d4 2026-06-01 Remove Big Red widget — never UX-worked, collided with Help pill (fleet sweep)
  32. 216a456 2026-06-01 /api/facets honors q+aesthetic+vendor filters via shared filterProducts() — counts + total reflect filtered set, not unfiltered catalog
  33. 4e776b9 2026-06-01 noopener,noreferrer on sister-site map window.open(_blank)
  34. e76c444 2026-05-30 fix: block .bak-TIMESTAMP backup files from being served + add *.bak-* to .gitignore
  35. 8d0ed49 2026-05-29 feat(fleet): theme1/theme2 query-param-gated toggle on catalog page
  36. 0e8b620 2026-05-28 scrub vendor name leaks from products.json source (344 products: title/vendor/tags cleaned per sku-redact denylist)
  37. ca212d4 2026-05-26 frontend: cleanSku() strips vendor names from displayed sku (.ven/list/detail) + defer renderRailSections call (fix ReferenceError) — click-through verified
  38. cc7338e 2026-05-26 sku-redact: wire shared vendor-id display scrubber
  39. 644afec 2026-05-26 rails: editorial labels for firing aesthetic buckets
  40. 2049623 2026-05-26 rails: wire /api/sliders into horizontal scroll-snap rail sections [fixed]
  41. 15614c6 2026-05-25 pre-hydrate density --cols CSS var before first paint — eliminates 6→saved flash on reload
  42. f096823 2026-05-25 redact p.vendor on Ideas rail — replace with 'Designer Wallcoverings' brand string
  43. b3bdcce 2026-05-25 wire api-vendor-redact middleware as first app.use() — strips vendor field + vendors facet from /api/* responses
  44. 21a9a16 2026-05-25 pull-from-shopify: use shared classifier with rails primary, local aestheticOf as fallback
  45. 30b2add 2026-05-25 retag aesthetic from PG: 573 rows updated
  46. caa78e6 2026-05-20 add: pre-stage Meta Pixel snippet (placeholder; flip via _dw-batch set-fb-pixel.sh)
  47. b4cd573 2026-05-19 make server.js self-contained — gate _shared/admin-catalog behind MICROSITE_ADMIN_ENABLED env flag (kamatera deploy unblock)
  48. a2f77f5 2026-05-19 sort: hydrate saved sort from localStorage before first grid load + send to /api/products
  49. d3b1cfc 2026-05-19 fix(grid): hydrate saved sort BEFORE first /api/products call
  50. daad56e 2026-05-19 chore(gitignore): cover *.bak.* and *.pre-* snapshot patterns
  51. cd1cf67 2026-05-19 chore(repo): untrack editor snapshots and broaden gitignore for *.bak.* / *.pre-*
  52. f88113a 2026-05-19 fix(security): 404-guard for .bak/.pre-* editor snapshots in static root
  53. f782674 2026-05-19 fix(api): /api/facets total counts the served niche list, not raw catalog
  54. c0aa94c 2026-05-19 Phase 2b: harden .card .pat against long-token title clipping (overflow-wrap)
  55. 41252b2 2026-05-19 Phase 2: mobile-ready + tap-to-reveal
  56. b573903 2026-05-19 stage2: wire microsite catalog + admin CRUD + grid/list view
  57. 5679179 2026-05-14 hero-4grid: relocate json from data/ to public/ for Express static
  58. 5774b97 2026-05-14 4-grid hero: drop-in script + crop CSS + initial 4 newest products
  59. 616e31a 2026-05-14 favicon: Mag-7-inspired SVG glyph
  60. 9cd36b6 2026-05-13 fix env wiring — anchor dotenv to __dirname so .env loads even when pm2 cwd is wrong
  61. 9cabf1d 2026-05-13 corner-nav: title-case the brand name even when .ns-name source is lowercase
  62. cb97b37 2026-05-13 corner-nav: title-case brand display (e.g. corkwallcovering → Cork Wallcovering)
  63. 4a26fe6 2026-05-13 corner-nav: fix injection — script tag was landing inside HTML comment, now anchored to real </body>
  64. bd98dca 2026-05-13 fix: contact modal CSS+HTML (was rendering inline as raw emoji/links)
  65. 430d914 2026-05-13 embed Big Red customer chat (lower-left, retail mode, vendor-redacted)
  66. c279abf 2026-05-13 chip-click → product details modal; vendor redacted in card overlay
  67. fd83003 2026-05-13 add universal corner-nav.js (UR 4-icon: bag/account/search/menu)
  68. c856c16 2026-05-13 remove stray contact modal markup that was rendering inline on the page
  69. e35ced9 2026-05-11 fleet-grid refine: chip_uniform_aspect (retrowalls)
  70. 0f4396b 2026-05-11 snapshot before fleet-grid refine tick 7
  71. 4599216 2026-05-10 sort-skill UI: add Light→Dark / Dark→Light / Color Wheel options
  72. 17996f8 2026-05-10 sort-skill canonical: add light-dark/dark-light/wheel + helpers
  73. 76c1d31 2026-05-10 apply R1+R2+R4 hero standing rules — strip Studio Castel, lowercase serif wordmark below photo, add data-hero-mode huge default + four-square hydration
  74. 1ad1285 2026-05-07 Scrub Designer Wallcoverings from products.json (vendor/imageAlt/tags)
  75. 4cdc2f8 2026-05-07 graphic-loop pass 13: real footer brand + Facebook link + OG/Twitter meta tags
  76. a99d6b6 2026-05-07 graphic-loop pass 12: niche keyword filter (no off-niche products like 'solid' on patterned sites)
  77. 26fd8af 2026-05-07 graphic-loop pass 11: add Ideas rails (New this week + Curated picks) above main grid
  78. a49889a 2026-05-07 fix: stale res.json fragment causing SyntaxError
  79. 0397efd 2026-05-07 graphic-loop pass 10: center-mark to top + readable text-shadow + tighter letter-spacing (no mix-blend-mode)
  80. a461ff2 2026-05-07 graphic-loop pass 9: real site name + 20-image hero rotation + 2400px hero res
  81. b1f1b62 2026-05-06 graphic-loop pass 5: serif hero typography (Cormorant Garamond) + nav legibility (qwen3 unanimous)
  82. a565987 2026-05-06 graphic-loop pass 2: fix .corner-mark contrast + soften hero overlay (qwen3:14b consensus across fleet)
  83. 57d4abb 2026-05-06 initial scaffold (gitify-all 2026-05-06)

Authors

Agents used

  • none detected

Skills used

  • /products5
  • /tags3
  • /index3
  • /privacy2
  • /sample2
  • /vendor2
  • /facets2
  • /list2
  • /clear1
  • /claude1
  • /code1
  • /off1
  • /tracking1
  • /data1
  • /npm1
  • /npx1
  • /homebrew1
  • /handle1
  • /theme21
  • /detail1
  • /sliders1
  • /admin-catalog1
  • /vendors1
  • /body1
  • /links1
  • /account1
  • /search1
  • /menu1
  • /dark-light1
  • /wheel1

Creative ideas + design notes

Commits with substantial prose (≥120 chars) — the rationale behind each move.

51baae5 · 2026-09-15 · hero: retire hero-4grid.js collision, keep the R4 alternating hero as sole owner
A fleet-sweep had activated the generic hero-4grid.js on retrowalls, which forced
four-square on EVERY load and raced the bespoke inline R4 block over #heroGrid
(nondeterministic content; up to 8 cells in a 2x2 on an append/clear race), defeating
the "alternating" huge<->four-square behavior. Removed the hero-4grid.js <script> tag.

Hardened the surviving R4 block: flip data-hero-mode to four-square only AFTER the 4
cells are painted (kills the empty-grid flash the CSS hid .cinema-bg into), and clear
#heroGrid first (guards against re-hydration double-append). huge stays the server
default + graceful fallback.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UxvvaJ7p6VRZ4RzKDaBXqK
58219f9 · 2026-06-01 · homepage: retire redundant corner-nav.js (ns-header hamburger is the live nav)
Brings retrowalls in line with the other 47 sister sites: the static
.ns-header + nsToggleNav() hamburger is the working nav, so the legacy
corner-nav.js overlay is redundant. Eyebrow fix already committed prior.
e76c444 · 2026-05-30 · fix: block .bak-TIMESTAMP backup files from being served + add *.bak-* to .gitignore
public/index.html.bak-20260526152130 was accessible via HTTP (200) because
the bak-guard regex only matched .bak followed by a dot or EOL, not .bak-*.
Updated regex to /\.bak(?:[\.\-]|$)/ to cover all three variants (.bak, .bak.,
.bak-). Removed the leaked file and added *.bak-* to .gitignore.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
8d0ed49 · 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.
30b2add · 2026-05-25 · retag aesthetic from PG: 573 rows updated
before: all=600
after:  abstract=3, all=27, damask=130, deco=31, geometric=401, global=7, vintage=1

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>
a2f77f5 · 2026-05-19 · sort: hydrate saved sort from localStorage before first grid load + send to /api/products
Completes the sort wire-up — change listener was already attached but state.sort
was never restored on load and never sent as a query param, so the saved selection
had no effect on first render.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
d3b1cfc · 2026-05-19 · fix(grid): hydrate saved sort BEFORE first /api/products call
Two bugs combined to make the saved sort effectively write-only:
1. loadGridPage() didn't pass state.sort to the server, so the API
   always defaulted to 'newest' regardless of the slider state.
2. The sort-select wire-up that reads localStorage and assigns
   state.sort runs AFTER loadGridPage(), so even if the API had read
   state.sort it would have seen the default 'newest'.

Fix: hydrate state.sort from localStorage in the early state-init block
(alongside view), and include state.sort in the /api/products query string.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
cd1cf67 · 2026-05-19 · chore(repo): untrack editor snapshots and broaden gitignore for *.bak.* / *.pre-*
Removes 22 tracked snapshot files (server.js.bak.*, public/index.html.bak.*,
public/index.html.pre-*, data/products.json.bak.*) from the index and adds
*.bak.* + *.pre-* patterns so future on-disk snapshots stay local. Pairs
with the .bak/.pre- HTTP 404-guard in server.js.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
f88113a · 2026-05-19 · fix(security): 404-guard for .bak/.pre-* editor snapshots in static root
Stray *.bak/*.bak.*/*.pre-* files under public/ should never be reachable
via HTTP. Adds an Express middleware that returns 404 for any path matching
those snapshot patterns, so the public static mount can't accidentally
leak prior revisions of index.html or other pages.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
f782674 · 2026-05-19 · fix(api): /api/facets total counts the served niche list, not raw catalog
Previously total reflected pre-niche-filter PRODUCTS.length while the
aesthetics/vendors histograms were computed from PRODUCTS_NICHE; clients
saw a "total" that didn't match the sum of facet counts.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1ad1285 · 2026-05-07 · Scrub Designer Wallcoverings from products.json (vendor/imageAlt/tags)
Replaced literal 'Designer Wallcoverings' (vendor field, imageAlt suffix,
and tag arrays) with site brand_name. The static HTML was already clean,
but Browserbase rendered-page check found these JS-injected strings.

Now: 0 DW leaks rendered.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

File tree

29 files tracked. Click any to browse the source at HEAD.

Other build journals

← Resume Queue Viewer  ·  all 4 projects  ·  Rigo Line Viewer →

Export

commits.csv · feed.atom · project.json · commits.json

rendered in 10ms