Dw Fleet Registry
Search the build
-
ba7d3db2026-07-03 chore: macstudio3 migration — reconcile from mac2 + repoint paths (stevestudio2→macstudio3, node/npm/npx→/opt/homebrew) -
18b75452026-06-01 deploy: ssh mkdir -p prod rooms/ before rsync (local openrsync lacks --mkpath) -
a6f39b42026-06-01 livefleet viewer: add fleet Sign out (SSO logout) link -
feeb0592026-06-01 rooms: niche-matched pattern picker + regen (fixes off-niche/sample-crop heroes) -
8a74fdf2026-06-01 rooms: batch generator (all standalone sites) + deploy pushes staged room PNGs -
d2901dc2026-06-01 re-assign heroes from 3526-img pool: 33 room settings (was 12) + 32 patterns, 65/65 unique 0 dupes -
a45e5462026-06-01 full 65-site header certification results -
ab9e0502026-06-01 rooms: gen-hero-rooms.mjs (generate room-setting heroes via :3075 + 2x upscale) -
f1cf3382026-06-01 fleet viewer: proxy-side image resize via optional sharp (/img?w=) — caps non-Shopify heroes to webp; sharp is an optionalDependency w/ graceful fallback -
af278f42026-06-01 dw-header: hide ANY pre-existing <header> + propagate to fleet; verified 11 sites render new header public-mode -
2cf83542026-06-01 fix-header-inject: re-inject dw-header before real </body> (was trapped in a doc-comment on 51/65 sites → header rebuild was inert) -
c4ca8912026-06-01 library: harvest full Shopify image arrays + room/pattern/swatch tagging; picker Rooms filter -
389f6212026-06-01 fleet viewer: downsize grid thumbnails (Shopify width param) — saved hero stays full-res -
e53dc972026-06-01 viewer: deploy curated hero pools live (hero-pool.json rsync to prod) -
706726c2026-06-01 viewer: hero-pool picker — pick high-res images to rotate per site -
8a825a82026-06-01 normalize header names → domain name across 53 sites (remove odd brand names like Studio Castel) -
2df70d02026-06-01 fleet viewer: make hero drop zone the whole card, not just the chip -
14428b62026-06-01 viewer: harden rescrape single-flight against client disconnect -
4ab86832026-06-01 viewer: add 'Rescrape heroes (all)' button → POST /api/rescrape-heroes -
30cf4482026-06-01 fleet: 5 parked domains live + unique heroes; rebake clears last dup cluster -
6253b682026-06-01 fix deploy phase: brace-delimit ${BRANCH} (set -u choked on $BRANCH hugging a multibyte arrow) -
9f6548c2026-06-01 rotate-and-deploy.sh — phased one-command driver (route/kamatera/unfreeze/deploy), dry-run default, no auto-chain -
ffa5ab52026-06-01 fleet hero/ideas transform tool + deploy -
4e12b312026-06-01 fleet hero/ideas transform tool -
6006e2f2026-06-01 disable-grid sweep: 44 hero-4grid overlays off so unique high-res heroes show full-bleed (1 known residual: PANEL-grid variant on a few sites) -
0e3363a2026-06-01 viewer: proxy cross-origin hero images through /img — fleet microsites send CORP same-origin (helmet default) which blocked direct <img> hotlinking, leaving ~30 self-hosted hero-bg.jpg cards blank. Now 118/118 render -
f5aaaa02026-06-01 heroes = truly-high-res: 12 real Shopify room settings (niche-matched) + high-res patterns elsewhere; gradients removed; 65/65 unique, 0 dupes -
e0e57372026-06-01 heroes: every site gets a DISTINCT high-res image — pull from /api/products + local catalogs, greedy unique assignment (owner keeps styled hero, cousins get own product img), branded fallback for 5 imageless pages. 0 blanks, 0 dups, 114 distinct URLs -
aa6a5412026-06-01 close out fleet: header-only on 24, niche-search heroes for 7, unique gradient heroes for 17; 65/65 sites have header + a UNIQUE hero (0 dupes) -
a8abc422026-06-01 gap-fill: 13 niche-starved microsites get a unique high-res hero (any-unused pool fallback, fleet-deduped) — closes the hero-dup gap to 61/62 (thesetdecorator excluded by design) -
a6469f02026-06-01 full-fleet fan-out: 41/65 sites rebuilt (header + unique high-res niche hero + accent), 0 fail; 24 skipped (niche has no unused high-res match in 241-img pool) -
42049052026-06-01 viewer: pre-resolve+validate hero images into registry, render baked heroes directly (no 118-fetch storm) — 110/118 paint instantly; reprobe re-bakes -
6392f462026-06-01 viewer: 'Hide redirect dupes' toggle (default on) — folds 6 near-dup redirect domains into their canonical card with a +N alias badge -
80203d02026-06-01 fleet fan-out engine + hero ledger: 4 sites rebuilt (jute+metallic+mylar+wallpapersback), 3 skipped (no high-res hero in slice) -
d8d66292026-06-01 reusable dw-header.js drop-in: hamburgers UL (nav + admin) + centered name, configurable per-site (siteName/accent/navLinks/adminLinks), admin-reveal stub; + hero-dup audit (50 files, only 14 unique) -
e2ab0c22026-06-01 fix(grasscloth board): dark --muted/--rule on white ground so tagline, captions, footer + hairlines are visible (were white-on-white) -
8886e662026-06-01 read-only template-drift audit: 37 mapped sites vs assigned fashion templates (30 match, 7 drift) -
41cdb662026-06-01 live-data boards: scrape theme tokens from served CSS + embed real hero photos (download same-origin so Figma capture serializes them); validate hero URLs vs 404s -
bf166062026-06-01 live fleet viewer (:9774) — 119 cards, live og:image thumbs + status, per-site theme accents, sort+density; carry theme tokens in registry -
e71047d2026-06-01 hybrid brand demo: 3 per-site boards themed from real style-guide tokens (gilt/bodoni, coastal/cormorant, plum/playfair), captured to Figma -
efc57ba2026-06-01 DW brand-starter HTML, captured into Figma (wordmark + type scale + palette + material strip) -
5dc9bf62026-06-01 record DTD-C canonical owners for 6 near-dup clusters (canonicalOwner + shouldRedirectTo per site) -
9e40fd92026-06-01 add live-status probe (119/119 live); fix wallco.ai domain + drop non-site false positive -
e4626c12026-06-01 canonical DW fleet registry: reconcile 76 local microsites + 44 manifest domains into one source-of-truth (120 domains, 6 near-dup clusters)
Authors
- Steve44
Agents used
Skills used
- /rooms3
- /hero-pool3
- /image-library2
- /deploy2
- /ideas2
- /npm1
- /npx1
- /homebrew1
- /sample-crop1
- /static1
- /body1
- /pattern1
- /swatch1
- /short1
- /deploy-map1
- /set1
- /remove1
- /rescrape-heroes1
- /wallpaperestimator1
- /wallpaperdistributors1
- /hospitalitydesignreps1
- /wallpapercontractor1
- /kamatera1
- /unfreeze1
- /products1
- /accent1
- /bodoni1
- /cormorant1
- /playfair1
Creative ideas + design notes
18b7545 · 2026-06-01 · deploy: ssh mkdir -p prod rooms/ before rsync (local openrsync lacks --mkpath)
Fixes hero-pool deploy failing when prod public/rooms/ didn't exist. Deployed all 45 staged sites live (45/45, 0 failures); verified rotateHero v2 paints the room heroes in production. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feeb059 · 2026-06-01 · rooms: niche-matched pattern picker + regen (fixes off-niche/sample-crop heroes)
Picks each site's wall pattern by domain-niche keyword + non-sample preference instead of the newest product. Regenerates only sites where the pattern actually changes (cost- minimal). Re-ran 17/45: era sites get period patterns (1950s vintage utensils, 1960s geometric), chinoiserie gets real bamboo trellis vs a sample crop, jute gets actual jute. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
8a74fdf · 2026-06-01 · rooms: batch generator (all standalone sites) + deploy pushes staged room PNGs
batch-gen-rooms.mjs: per-site fetch top product as pattern -> 3 rooms via :3075 -> 2x upscale -> stage /static/rooms/<domain>/. Redirect + NOPAT guards. Deploy endpoint now rsyncs staged room PNGs to prod public/rooms/ and rewrites pool URLs to live https. Batch: 45 sites / 133 rooms staged (~$5.30). gitignores heavy PNG artifacts. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ab9e050 · 2026-06-01 · rooms: gen-hero-rooms.mjs (generate room-setting heroes via :3075 + 2x upscale)
Reusable pilot pipeline: pattern URL -> Gemini room render (~$0.04) -> sips 2x upscale to ~1728px (clears the 1400px hero guard). Verified on corkwallcovering (3 rooms, luxe quality). gitignores the heavy PNG artifacts. Also lands the user's viewer sharp/thumbSrc edits. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
c4ca891 · 2026-06-01 · library: harvest full Shopify image arrays + room/pattern/swatch tagging; picker Rooms filter
harvest-catalog v2: long-edge>=1600/short>=1100 (catches landscape room shots), classifies each image room|pattern|swatch by filename, sorts room-first. 467 imgs (49 room/360 pattern/ 58 swatch) vs 265 before. /api/image-library gains kind+landscape; picker modal adds a 'Rooms only' dropdown + 🛋 badge. Note: catalog room shots are all Sister Parish lifestyle — true per-niche interiors need room-setting-generator. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
e53dc97 · 2026-06-01 · viewer: deploy curated hero pools live (hero-pool.json rsync to prod)
Adds /api/hero-pool/deploy (writes repo public/hero-pool.json + rsync to prod cwd, static so no reload) and a 'Save & deploy live' modal button. Persists slug->cwd->repo map in data/deploy-map.json (69 sites). Full loop verified on 1950swallpaper: pick hi-res -> save -> deploy -> rotateHero rotates the pool (primary 5773px). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
706726c · 2026-06-01 · viewer: hero-pool picker — pick high-res images to rotate per site
Adds /api/image-library (265-img catalog-hires pool, highest-res first, searchable), /api/hero-pool GET + /set. New ⊞ per-card button opens a modal: left = ordered rotation pool (drag-reorder, remove, sort-by-resolution, top=primary), right = high-res library grid (click to add/remove, shows WxH). Saves heroImages[] to the registry; heroImage = pool[0]. Pairs with the live rotateHero v2 (hero-pool.json). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
14428b6 · 2026-06-01 · viewer: harden rescrape single-flight against client disconnect
reply-once helper resets the flag + guards send() on a destroyed socket, plus a 5-min safety timeout — a short client timeout can no longer wedge the button or crash the server (was hitting EADDRINUSE + stuck 409). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4ab8683 · 2026-06-01 · viewer: add 'Rescrape heroes (all)' button → POST /api/rescrape-heroes
Re-scrapes every site's live hero page and re-bakes heroes via resolve-heroes.mjs (no live-status probe, unlike Re-probe). Single-flight guarded — concurrent click 409s. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
30cf448 · 2026-06-01 · fleet: 5 parked domains live + unique heroes; rebake clears last dup cluster
bestwallpaperplace/wallpaperestimator/wallpaperdistributors/hospitalitydesignreps/wallpapercontractor repointed GoDaddy A @+www to Kamatera, certbot SSL, unique og:image hero each. Registry rebake: 0 effective visible dup clusters, 117 distinct heroes baked. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
File tree
- .gitignore
- README.md
- audit-templates.mjs
- batch-gen-rooms.mjs
- brand/asseeninhotels.html
- brand/build-themes.mjs
- brand/corkwallcovering.html
- brand/etciemurals.html
- brand/grassclothwallpaper.html
- brand/index.html
- brand/linenwallpaper.html
- brand/silkwallpaper.html
- build-registry.mjs
- catalog-hires.json
- certify-results.json
- component/dw-header.js
- component/test.html
- data/deploy-map.json
- disable-grid.mjs
- dw-fleet-registry.json
- fanout-report.json
- fanout.mjs
- fill-gap-report.json
- fill-gap.mjs
- fix-brand-names.mjs
- fix-header-inject.mjs
- fix-hero-ideas.mjs
- gen-hero-rooms.mjs
- gradient-hero.mjs
- harvest-catalog.mjs
- harvest-niche.mjs
- hero-ledger.json
- package.json
- probe.mjs
- propagate-component.mjs
- regen-better-patterns.mjs
- resolve-heroes.mjs
- room-pool.json
- rotate-and-deploy.sh
- template-audit.json
- template-audit.md
- viewer/index.html
- viewer/server.mjs
- viewer/static/fallback-hero.jpg
- viewer/static/rooms/1890swallpaper.com/dining_room-straight_on.png
- viewer/static/rooms/1890swallpaper.com/living_room-straight_on.png
- viewer/static/rooms/1890swallpaper.com/office-angled_left.png
- viewer/static/rooms/1900swallpaper.com/dining_room-straight_on.png
- viewer/static/rooms/1900swallpaper.com/living_room-straight_on.png
- viewer/static/rooms/1900swallpaper.com/office-angled_left.png
- viewer/static/rooms/1920swallpaper.com/dining_room-straight_on.png
- viewer/static/rooms/1920swallpaper.com/living_room-straight_on.png
- viewer/static/rooms/1920swallpaper.com/office-angled_left.png
- viewer/static/rooms/1940swallpaper.com/dining_room-straight_on.png
- viewer/static/rooms/1940swallpaper.com/living_room-straight_on.png
- viewer/static/rooms/1940swallpaper.com/office-angled_left.png
- viewer/static/rooms/1950swallpaper.com/dining_room-straight_on.png
- viewer/static/rooms/1950swallpaper.com/living_room-straight_on.png
- viewer/static/rooms/1950swallpaper.com/office-angled_left.png
- viewer/static/rooms/1960swallpaper.com/dining_room-straight_on.png
- viewer/static/rooms/1960swallpaper.com/living_room-straight_on.png
- viewer/static/rooms/1960swallpaper.com/office-angled_left.png
- viewer/static/rooms/1970swallpaper.com/living_room-straight_on.png
- viewer/static/rooms/1980swallpaper.com/dining_room-straight_on.png
- viewer/static/rooms/1980swallpaper.com/living_room-straight_on.png
- viewer/static/rooms/1980swallpaper.com/office-angled_left.png
- viewer/static/rooms/agedwallpaper.com/dining_room-straight_on.png
- viewer/static/rooms/agedwallpaper.com/living_room-straight_on.png
- viewer/static/rooms/agedwallpaper.com/office-angled_left.png
- viewer/static/rooms/architecturalwallcoverings.com/dining_room-straight_on.png
- viewer/static/rooms/architecturalwallcoverings.com/living_room-straight_on.png
- viewer/static/rooms/architecturalwallcoverings.com/office-angled_left.png
- viewer/static/rooms/bestwallpaperplace.com/dining_room-straight_on.png
- viewer/static/rooms/bestwallpaperplace.com/living_room-straight_on.png
- viewer/static/rooms/bestwallpaperplace.com/office-angled_left.png
- viewer/static/rooms/carmelwallpapers.com/dining_room-straight_on.png
- viewer/static/rooms/carmelwallpapers.com/living_room-straight_on.png
- viewer/static/rooms/carmelwallpapers.com/office-angled_left.png
- viewer/static/rooms/chinoiseriewallpaper.com/dining_room-straight_on.png
- viewer/static/rooms/chinoiseriewallpaper.com/living_room-straight_on.png
- viewer/static/rooms/chinoiseriewallpaper.com/office-angled_left.png
- viewer/static/rooms/contractwallpaper.com/dining_room-straight_on.png
- viewer/static/rooms/contractwallpaper.com/living_room-straight_on.png
- viewer/static/rooms/contractwallpaper.com/office-angled_left.png
- viewer/static/rooms/corkwallcovering.com/dining_room-straight_on.png
- viewer/static/rooms/corkwallcovering.com/living_room-straight_on.png
- viewer/static/rooms/corkwallcovering.com/office-angled_left.png
- viewer/static/rooms/fabricwallpaper.com/living_room-straight_on.png
- viewer/static/rooms/fabricwallpaper.com/office-angled_left.png
- viewer/static/rooms/glitterwalls.com/living_room-straight_on.png
- viewer/static/rooms/greenwallcoverings.com/living_room-straight_on.png