4280d5a2026-05-18sp: set_variants.js — flatten 72 products to 2 variants (Roll (with specs) / Sample), added missing sample to Dot All Over Pink; Boxwood Stripe skipped (multi-colorway)
62e1af12026-05-18sp: enrich_metafields v2 — fix dwc.content type to multi_line; 72/73 enriched with item_width/roll_size/repeats/match/country
6b8b0b82026-05-18sp: ran private_label — deleted 52 dupes, renumbered 73 keepers to DWPH-10001 (Saybrook House)
c283bfa2026-05-18sp: enrich_metafields.js — push DW spec metafields (item_width, roll_size, repeats, match, country) from PDP crawl, joined to live store by title
2570b302026-05-11tick 7: SP viewer × wallco PD bridge — 'PD inspirations →' button on every SP card opens modal with 3 nearest Lab-color PD matches; image proxy /pd-img/<source>/<file> reads from wallco-ai/data/images
134a4842026-05-11SP color v2: center-crop 80% before palette extraction — near-white dominants 7→4 · cross-match cleanup — Appleton Beige #e4d9c6 → Met 'Seaman's Wife's Reckoning' #e7dac7 (Lab dist 0.91, much improved over v1)
280a3a32026-05-11tick 5: Shopify still 0 · cross-match SP × PD in Lab space (219 matches, 73 × 3) · tileability score (11 seamless / 38 near / 24 photo)
1c085992026-05-11tick 4: Shopify still 0 SP products · recorded 10 Backend-C research link-outs (google+etsy) for 5 SKUs across price tiers; ToS-clean, no scrape
0956a192026-05-11schedule Shopify push for Wed 2am PT via launchd com.steve.sister-parish-push (idempotent, self-unloads at 73/73)
81602d32026-05-11tick 3: normalize curly quotes in specs · extract dominant_hex + 5-color palette (73/73) · wire color-wheel/light-dark sorts + color dot in viewer
17c85262026-05-11viewer: sister parish browse UI on :9790 (sort + density slider, pm2 supervised)
Commits with substantial prose (≥120 chars) — the rationale behind each move.
f1ec46d · 2026-05-19 · broaden .gitignore to exclude .bak/.pre-* snapshot files and .next/
Fleet-wide hygiene rule — snapshot files must never land in git so the
404-guard middleware never has anything stale to refuse. Mirrors the
.gitignore baseline used across the rest of the DW sister sites.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Code-health fleet sweep pass: closes the reverse-tabnabbing vector on
the two external target=_blank anchors (vendor source PDP, PD-corpus
source link in the inspirations modal). Also adds an Express middleware
404-guard so .bak / .bak.* / .pre-* / .pre.* snapshot paths can never
be served via static even if one slips into the tree.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
b825dc7 · 2026-05-12 · sp: preflight.sh — single-shot health read for YOLO ticks
Replaces the curl+grep+dry-run dance future ticks were doing each time
with one O(1) call. Reports: live SP count (status=any), plist installed
& loaded, dry-run would-create count. Exit code: 0 GREEN, 1 mixed, 2 env fail.
Uses the same node-path fallback chain as scheduled_push.sh (homebrew →
/usr/local → which node) so it works on both Mac1 (homebrew) and Mac2
(/usr/local/bin/node).
File tree
35 files tracked. Click any to browse the source at HEAD.