← back to Wallco Ai
chore: macstudio3 migration — reconcile from mac2 + repoint paths (stevestudio2→macstudio3, node/npm/npx→/opt/homebrew)
ce1283be846f5c871a7e22fd5986a9de006c13d0 · 2026-07-03 08:08:19 -0700 · Steve
Files touched
M data/ghost-audit-sample.jsonM data/mural-batch-monterey-2.jsonM data/mural-batch-monterey.jsonM data/seam-fail-scan.jsonM deploy/com.steve.wallco-publish-ok-murals.plistM scratch_fuzz_remediate.pyM scratch_fuzz_scan.pyM scripts/apply-id-collision-resolutions.pyM scripts/auto-deploy-loop.shM scripts/backfill_drunk_animals.shM scripts/cw-rooms-driver.shM scripts/dw-stale-urls-push.jsM scripts/elements_extract_prod.pyM scripts/fuzzy_seam_scan.pyM scripts/instant-image-sync.shM scripts/overnight-noghost-bulk.shM scripts/qa-make-seamless.jsM scripts/refresh_designs_snapshot.pyM scripts/salvage_orphan_pngs.pyM scripts/smoke-test-customizer.jsM scripts/smoke-test-themes.jsM scripts/spoonflower_lib.pyM scripts/sync-geometric-9-to-prod.shM scripts/sync_drunk_animals_to_prod.shM scripts/test-classifier.shM scripts/test_drunk_animals.shM scripts/tile-period-detect/detect_correlation_length.pyM scripts/variants-9roots-supervisor.shM scripts/verify-theme-controls.jsM scripts/watch-rescan-then-notify.shM server.jsM tomorrow-after-25min.sh
Diff
commit ce1283be846f5c871a7e22fd5986a9de006c13d0
Author: Steve <steve@designerwallcoverings.com>
Date: Fri Jul 3 08:08:19 2026 -0700
chore: macstudio3 migration — reconcile from mac2 + repoint paths (stevestudio2→macstudio3, node/npm/npx→/opt/homebrew)
---
data/ghost-audit-sample.json | 100 ++++++++++-----------
data/mural-batch-monterey-2.json | 24 ++---
data/mural-batch-monterey.json | 24 ++---
data/seam-fail-scan.json | 28 +++---
deploy/com.steve.wallco-publish-ok-murals.plist | 8 +-
scratch_fuzz_remediate.py | 2 +-
scratch_fuzz_scan.py | 4 +-
scripts/apply-id-collision-resolutions.py | 2 +-
scripts/auto-deploy-loop.sh | 2 +-
scripts/backfill_drunk_animals.sh | 2 +-
scripts/cw-rooms-driver.sh | 2 +-
scripts/dw-stale-urls-push.js | 2 +-
scripts/elements_extract_prod.py | 4 +-
scripts/fuzzy_seam_scan.py | 4 +-
scripts/instant-image-sync.sh | 2 +-
scripts/overnight-noghost-bulk.sh | 2 +-
scripts/qa-make-seamless.js | 10 +--
scripts/refresh_designs_snapshot.py | 2 +-
scripts/salvage_orphan_pngs.py | 2 +-
scripts/smoke-test-customizer.js | 2 +-
scripts/smoke-test-themes.js | 2 +-
scripts/spoonflower_lib.py | 2 +-
scripts/sync-geometric-9-to-prod.sh | 2 +-
scripts/sync_drunk_animals_to_prod.sh | 2 +-
scripts/test-classifier.sh | 2 +-
scripts/test_drunk_animals.sh | 2 +-
.../detect_correlation_length.py | 8 +-
scripts/variants-9roots-supervisor.sh | 2 +-
scripts/verify-theme-controls.js | 2 +-
scripts/watch-rescan-then-notify.sh | 2 +-
server.js | 6 +-
tomorrow-after-25min.sh | 22 ++---
32 files changed, 141 insertions(+), 141 deletions(-)
diff --git a/data/ghost-audit-sample.json b/data/ghost-audit-sample.json
index 69a5bbe..26b7b22 100644
--- a/data/ghost-audit-sample.json
+++ b/data/ghost-audit-sample.json
@@ -5,7 +5,7 @@
"source": "pg",
"confidence": 0.95,
"reason": "The same leopard motifs appear at full opacity and as faded, semi-transparent copies behind them.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779292861052_30426829.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779292861052_30426829.png",
"image_url": "/designs/img/by-id/27619"
},
{
@@ -14,7 +14,7 @@
"source": "pg",
"confidence": 0.95,
"reason": "Faded, semi-transparent copies of the floral motifs appear behind the sharp, solid ones, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779282431771_898531695.cw-greenhouse-glass.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779282431771_898531695.cw-greenhouse-glass.png",
"image_url": "/designs/img/by-id/23022"
},
{
@@ -23,7 +23,7 @@
"source": "pg",
"confidence": 0.95,
"reason": "Many cacti appear in both a solid dark color and a faded, semi-transparent version behind the solid one.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779291165046_73796089.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779291165046_73796089.png",
"image_url": "/designs/img/by-id/25902"
},
{
@@ -32,7 +32,7 @@
"source": "pg",
"confidence": 0.9,
"reason": "Faint, semi-transparent copies of the branches and leaves appear behind the main motifs.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779274922600_1655325223.cw-antique-brass.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779274922600_1655325223.cw-antique-brass.png",
"image_url": "/designs/img/by-id/16394"
},
{
@@ -41,7 +41,7 @@
"source": "pg",
"confidence": 0.9,
"reason": "Faded, semi-transparent copies of the bird motifs appear behind the sharper, solid ones.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779272162623_1391280064.cw-indigo-library.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779272162623_1391280064.cw-indigo-library.png",
"image_url": "/designs/img/by-id/13728"
},
{
@@ -50,7 +50,7 @@
"source": "pg",
"confidence": 0.95,
"reason": "Faded, semi-transparent copies of the animals and trees appear behind the main motifs, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779299854785_359451565.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779299854785_359451565.png",
"image_url": "/designs/img/by-id/34289"
},
{
@@ -59,7 +59,7 @@
"source": "json",
"confidence": 0.95,
"reason": "The wallpaper pattern has a clear, darker motif with a faded, semi-transparent version behind it, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/var_1688_mono_1778638060094.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/var_1688_mono_1778638060094.png",
"image_url": "/designs/img/by-id/1693"
},
{
@@ -68,7 +68,7 @@
"source": "json",
"confidence": 0.95,
"reason": "The birds and floral elements have faded, semi-transparent copies behind the sharp, opaque versions.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/var_38033_hue+120_1779318836182.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/var_38033_hue+120_1779318836182.png",
"image_url": "/designs/img/by-id/38035"
},
{
@@ -77,7 +77,7 @@
"source": "pg",
"confidence": 0.95,
"reason": "Faded skull motifs appear behind the sharper, more opaque skulls, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779292042906_632388710.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779292042906_632388710.png",
"image_url": "/designs/img/by-id/26803"
},
{
@@ -86,7 +86,7 @@
"source": "json",
"confidence": 0.9,
"reason": "The bear and flower motifs appear at full opacity with faded copies behind them.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1778687526465_225430772.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1778687526465_225430772.png",
"image_url": "/designs/img/by-id/2739"
},
{
@@ -95,7 +95,7 @@
"source": "pg",
"confidence": 0.95,
"reason": "The parrots and palm trees have faded, semi-transparent copies behind the solid foreground motifs.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779299621098_1750355885.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779299621098_1750355885.png",
"image_url": "/designs/img/by-id/34064"
},
{
@@ -104,7 +104,7 @@
"source": "pg",
"confidence": 0.9,
"reason": "Faint, semi-transparent copies of the animals appear behind the solid white motifs, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779278179748_1413090825.cw-forest-loden.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779278179748_1413090825.cw-forest-loden.png",
"image_url": "/designs/img/by-id/19567"
},
{
@@ -113,7 +113,7 @@
"source": "json",
"confidence": 0.99,
"reason": "The same floral motif appears both sharp and faded/translucent in the pattern, indicating a ghost layer.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/var_38049_hue+180_1779320998411.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/var_38049_hue+180_1779320998411.png",
"image_url": "/designs/img/by-id/38052"
},
{
@@ -122,7 +122,7 @@
"source": "json",
"confidence": 0.9,
"reason": "Faint, semi-transparent copies of the floral motifs appear behind the main pattern.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/var_5904_mono_1778753405268.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/var_5904_mono_1778753405268.png",
"image_url": "/designs/img/by-id/5909"
},
{
@@ -131,7 +131,7 @@
"source": "json",
"confidence": 0.95,
"reason": "The buffalo motifs have a distinct, faded copy behind the sharp foreground images, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779273553719_1451513845.cw-antique-brass.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779273553719_1451513845.cw-antique-brass.png",
"image_url": "/designs/img/by-id/15060"
},
{
@@ -140,7 +140,7 @@
"source": "pg",
"confidence": 0.95,
"reason": "Faded, semi-transparent copies of the floral motifs appear behind the sharp, solid versions, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779271123099_1064193713.cw-saddle-mocha.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779271123099_1064193713.cw-saddle-mocha.png",
"image_url": "/designs/img/by-id/12732"
},
{
@@ -149,7 +149,7 @@
"source": "pg",
"confidence": 0.9,
"reason": "Faded, semi-transparent copies of the floral motifs appear behind the sharper, darker ones, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779282931752_1491040935.cw-manor-saddle.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779282931752_1491040935.cw-manor-saddle.png",
"image_url": "/designs/img/by-id/23197"
},
{
@@ -158,7 +158,7 @@
"source": "json",
"confidence": 0.99,
"reason": "The same human figures are repeated at different opacity levels, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779298226956_2140481548.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779298226956_2140481548.png",
"image_url": "/designs/img/by-id/32700"
},
{
@@ -167,7 +167,7 @@
"source": "json",
"confidence": 0.9,
"reason": "Faded, semi-transparent copies of the main floral motifs appear behind the sharper, solid ones.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/var_1159_hue-60_1778619822725.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/var_1159_hue-60_1778619822725.png",
"image_url": "/designs/img/by-id/1163"
},
{
@@ -176,7 +176,7 @@
"source": "json",
"confidence": 0.99,
"reason": "Faded roses and monkey silhouettes appear behind the sharp, solid motifs, indicating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779400863776_1687113879.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779400863776_1687113879.png",
"image_url": "/designs/img/by-id/38944"
},
{
@@ -185,7 +185,7 @@
"source": "pg",
"confidence": 0.95,
"reason": "Faded, semi-transparent floral motifs appear behind the sharp, solid ones, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779275005792_84277211.cw-midnight-navy.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779275005792_84277211.cw-midnight-navy.png",
"image_url": "/designs/img/by-id/16473"
},
{
@@ -194,7 +194,7 @@
"source": "json",
"confidence": 0.9,
"reason": "The same floral motifs appear at two opacity levels, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/var_9407_hue-60_1779226830814.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/var_9407_hue-60_1779226830814.png",
"image_url": "/designs/img/by-id/9411"
},
{
@@ -203,7 +203,7 @@
"source": "json",
"confidence": 0.99,
"reason": "The same flower and butterfly motifs appear at full opacity and as faded, semi-transparent copies behind them.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779295201366_743295464.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779295201366_743295464.png",
"image_url": "/designs/img/by-id/29926"
},
{
@@ -212,7 +212,7 @@
"source": "pg",
"confidence": 0.9,
"reason": "Faint, semi-transparent horse silhouettes appear behind the main, darker horse motifs, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779294489494_1541464443.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779294489494_1541464443.png",
"image_url": "/designs/img/by-id/29171"
},
{
@@ -221,7 +221,7 @@
"source": "json",
"confidence": 0.95,
"reason": "The leaves and flowers appear as sharp motifs, but also as faded, semi-transparent copies behind them.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/var_38421_hue+180_1779333258119.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/var_38421_hue+180_1779333258119.png",
"image_url": "/designs/img/by-id/38424"
},
{
@@ -230,7 +230,7 @@
"source": "json",
"confidence": 0.99,
"reason": "The same floral motifs appear in sharp white and faded translucent versions, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/var_36370_hue+180_1779302018948.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/var_36370_hue+180_1779302018948.png",
"image_url": "/designs/img/by-id/36391"
},
{
@@ -239,7 +239,7 @@
"source": "json",
"confidence": 0.99,
"reason": "The same floral motifs appear at full opacity and as faded, semi-transparent copies behind them.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/var_38381_mono_1779331875710.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/var_38381_mono_1779331875710.png",
"image_url": "/designs/img/by-id/38386"
},
{
@@ -248,7 +248,7 @@
"source": "json",
"confidence": 0.9,
"reason": "Faint, semi-transparent horse and rider motifs appear behind the sharper, more opaque versions, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779285526706_174731365.cw-indigo-library.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779285526706_174731365.cw-indigo-library.png",
"image_url": "/designs/img/by-id/24106"
},
{
@@ -257,7 +257,7 @@
"source": "json",
"confidence": 0.9,
"reason": "Faded, semi-transparent copies of the floral motifs appear behind the solid ones, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1778706085896_985591414.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1778706085896_985591414.png",
"image_url": "/designs/img/by-id/3971"
},
{
@@ -266,7 +266,7 @@
"source": "json",
"confidence": 0.9,
"reason": "Faded, semi-transparent copies of the floral motifs appear behind the sharp, solid ones.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779293952735_1941396548.cw-antique-tan.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779293952735_1941396548.cw-antique-tan.png",
"image_url": "/designs/img/by-id/28653"
},
{
@@ -275,7 +275,7 @@
"source": "json",
"confidence": 0.95,
"reason": "The pattern has faded, semi-transparent copies of the main floral motifs behind the solid ones.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/var_2473_hue+180_1778680732346.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/var_2473_hue+180_1778680732346.png",
"image_url": "/designs/img/by-id/2476"
},
{
@@ -284,7 +284,7 @@
"source": "pg",
"confidence": 0.95,
"reason": "Faint, semi-transparent floral shapes appear behind the solid white flower motifs, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779278264996_1279655031.cw-oxblood.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779278264996_1279655031.cw-oxblood.png",
"image_url": "/designs/img/by-id/19649"
},
{
@@ -293,7 +293,7 @@
"source": "json",
"confidence": 0.99,
"reason": "The same bird and floral motifs appear at full opacity and as faded, semi-transparent copies behind them.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/var_38033_hue+180_1779318843065.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/var_38033_hue+180_1779318843065.png",
"image_url": "/designs/img/by-id/38036"
},
{
@@ -302,7 +302,7 @@
"source": "pg",
"confidence": 0.9,
"reason": "The kangaroo motifs have a faded, semi-transparent copy behind the solid foreground image.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779291316615_1513379526.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779291316615_1513379526.png",
"image_url": "/designs/img/by-id/26062"
},
{
@@ -311,7 +311,7 @@
"source": "pg",
"confidence": 0.9,
"reason": "Faded, semi-transparent copies of the floral motifs appear behind the sharper, solid ones.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779303518341_885068920.cw-deep-plum.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779303518341_885068920.cw-deep-plum.png",
"image_url": "/designs/img/by-id/37836"
},
{
@@ -320,7 +320,7 @@
"source": "json",
"confidence": 0.95,
"reason": "Faded, semi-transparent copies of the floral motifs appear behind the sharper, solid ones.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/var_3950_hue+60_1778705715775.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/var_3950_hue+60_1778705715775.png",
"image_url": "/designs/img/by-id/3951"
},
{
@@ -329,7 +329,7 @@
"source": "pg",
"confidence": 0.9,
"reason": "Faint, semi-transparent copies of the foxes appear behind the solid ones, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779273966118_530845442.cw-deep-plum.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779273966118_530845442.cw-deep-plum.png",
"image_url": "/designs/img/by-id/15460"
},
{
@@ -338,7 +338,7 @@
"source": "pg",
"confidence": 0.95,
"reason": "Faded giraffe and tree silhouettes appear behind the solid foreground motifs, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779301917723_1120460221.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779301917723_1120460221.png",
"image_url": "/designs/img/by-id/36300"
},
{
@@ -347,7 +347,7 @@
"source": "pg",
"confidence": 0.9,
"reason": "The figures have a darker, solid version and a faded, semi-transparent version behind them.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779300499222_972087553.cw-midnight-navy.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779300499222_972087553.cw-midnight-navy.png",
"image_url": "/designs/img/by-id/34900"
},
{
@@ -356,7 +356,7 @@
"source": "pg",
"confidence": 0.9,
"reason": "Faint, semi-transparent copies of the roses appear behind the sharper, more opaque foreground roses.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779299446120_678218883.cw-manor-saddle.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779299446120_678218883.cw-manor-saddle.png",
"image_url": "/designs/img/by-id/33885"
},
{
@@ -365,7 +365,7 @@
"source": "pg",
"confidence": 0.95,
"reason": "There are multiple instances of the same flower appearing at different opacities, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779293612718_1912492634.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779293612718_1912492634.png",
"image_url": "/designs/img/by-id/28314"
},
{
@@ -374,7 +374,7 @@
"source": "pg",
"confidence": 0.9,
"reason": "Faint tiger silhouettes appear behind the main tiger motifs, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779275531146_1936609397.cw-saddle-mocha.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779275531146_1936609397.cw-saddle-mocha.png",
"image_url": "/designs/img/by-id/16975"
},
{
@@ -383,7 +383,7 @@
"source": "pg",
"confidence": 0.9,
"reason": "The image shows a clear duplication of the floral pattern, creating a ghost-like overlay effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779294440151_168373868.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779294440151_168373868.png",
"image_url": "/designs/img/by-id/29118"
},
{
@@ -392,7 +392,7 @@
"source": "pg",
"confidence": 0.9,
"reason": "The same figures appear with a faded, semi-transparent copy behind the main image.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779278460236_1153663569.cw-champagne-linen.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779278460236_1153663569.cw-champagne-linen.png",
"image_url": "/designs/img/by-id/19835"
},
{
@@ -401,7 +401,7 @@
"source": "pg",
"confidence": 0.9,
"reason": "Some motifs appear to have a faded, semi-transparent copy behind the main, darker image.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779293540821_1279028106.cw-midnight-navy.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779293540821_1279028106.cw-midnight-navy.png",
"image_url": "/designs/img/by-id/28246"
},
{
@@ -410,7 +410,7 @@
"source": "json",
"confidence": 0.9,
"reason": "The lighter beige outlines of the leaves appear as a faded, secondary layer behind the solid brown leaves.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1778706472331_1277553684.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1778706472331_1277553684.png",
"image_url": "/designs/img/by-id/3993"
},
{
@@ -419,7 +419,7 @@
"source": "json",
"confidence": 0.95,
"reason": "The image has a translucent overlay of the whole scene, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779301456814_1815948328.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779301456814_1815948328.png",
"image_url": "/designs/img/by-id/35839"
},
{
@@ -428,7 +428,7 @@
"source": "json",
"confidence": 0.99,
"reason": "The same floral motifs appear both sharp white and faded/translucent in the pattern.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/var_38359_mono_1779331256017.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/var_38359_mono_1779331256017.png",
"image_url": "/designs/img/by-id/38364"
},
{
@@ -437,7 +437,7 @@
"source": "pg",
"confidence": 0.9,
"reason": "Faded, semi-transparent floral motifs appear behind the sharper, solid-colored foreground elements.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779294424502_902305510.cw-antique-brass.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779294424502_902305510.cw-antique-brass.png",
"image_url": "/designs/img/by-id/29109"
},
{
@@ -446,7 +446,7 @@
"source": "json",
"confidence": 0.9,
"reason": "Faint, semi-transparent copies of the line art motifs appear behind the main design, creating a ghost layer effect.",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1778636189658_15948922.png",
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1778636189658_15948922.png",
"image_url": "/designs/img/by-id/1627"
}
]
\ No newline at end of file
diff --git a/data/mural-batch-monterey-2.json b/data/mural-batch-monterey-2.json
index c5ea5c5..be88cc2 100644
--- a/data/mural-batch-monterey-2.json
+++ b/data/mural-batch-monterey-2.json
@@ -30,62 +30,62 @@
{
"id": 20774,
"dominant_hex": "#3b251c",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779279406349_1761239685.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779279406349_1761239685.png"
},
{
"id": 31866,
"dominant_hex": "#423328",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779297327224_383564080.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779297327224_383564080.png"
},
{
"id": 33427,
"dominant_hex": "#c0996a",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779298985600_171913157.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779298985600_171913157.png"
},
{
"id": 14124,
"dominant_hex": "#d7c39e",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779272594989_1988053788.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779272594989_1988053788.png"
},
{
"id": 35652,
"dominant_hex": "#746c56",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779301271665_1018451784.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779301271665_1018451784.png"
},
{
"id": 14302,
"dominant_hex": "#615f45",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779272775706_1194218692.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779272775706_1194218692.png"
},
{
"id": 12201,
"dominant_hex": "#919e6e",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779270590520_1743878687.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779270590520_1743878687.png"
},
{
"id": 14972,
"dominant_hex": "#8eb99d",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779273463681_1458301185.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779273463681_1458301185.png"
},
{
"id": 30823,
"dominant_hex": "#3c7985",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779296208586_830889448.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779296208586_830889448.png"
},
{
"id": 27806,
"dominant_hex": "#878f85",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779293051748_84301667.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779293051748_84301667.png"
},
{
"id": 25668,
"dominant_hex": "#353029",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779290938533_1712523307.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779290938533_1712523307.png"
},
{
"id": 34576,
"dominant_hex": "#29211a",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779300170220_659215985.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779300170220_659215985.png"
}
],
"batch_command": "for id in 20774 31866 33427 14124 35652 14302 12201 14972 30823 27806 25668 34576; do python3 scripts/build-mural-master.py $id; done",
diff --git a/data/mural-batch-monterey.json b/data/mural-batch-monterey.json
index 030e56f..a44c48b 100644
--- a/data/mural-batch-monterey.json
+++ b/data/mural-batch-monterey.json
@@ -30,62 +30,62 @@
{
"id": 27151,
"dominant_hex": "#38241d",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779292386636_1863399989.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779292386636_1863399989.png"
},
{
"id": 14681,
"dominant_hex": "#442e1e",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779273166085_2012825945.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779273166085_2012825945.png"
},
{
"id": 21079,
"dominant_hex": "#bb8f5a",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779279719211_1211482687.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779279719211_1211482687.png"
},
{
"id": 21976,
"dominant_hex": "#3c362b",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779280649902_1263199119.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779280649902_1263199119.png"
},
{
"id": 14136,
"dominant_hex": "#e6dab8",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779272608611_79122496.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779272608611_79122496.png"
},
{
"id": 20213,
"dominant_hex": "#a9a78a",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779278839653_957644793.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779278839653_957644793.png"
},
{
"id": 14450,
"dominant_hex": "#d4dbbc",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779272933057_483747888.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779272933057_483747888.png"
},
{
"id": 12635,
"dominant_hex": "#708074",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779271030559_1146357644.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779271030559_1146357644.png"
},
{
"id": 16204,
"dominant_hex": "#136c7c",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779274725819_878426997.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779274725819_878426997.png"
},
{
"id": 11308,
"dominant_hex": "#959389",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779269704427_406092530.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779269704427_406092530.png"
},
{
"id": 31169,
"dominant_hex": "#323533",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779296617990_1000052140.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779296617990_1000052140.png"
},
{
"id": 12599,
"dominant_hex": "#2a2521",
- "local_path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779270987318_1919163578.png"
+ "local_path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779270987318_1919163578.png"
}
],
"batch_command": "for id in 27151 14681 21079 21976 14136 20213 14450 12635 16204 11308 31169 12599; do python3 scripts/build-mural-master.py $id; done",
diff --git a/data/seam-fail-scan.json b/data/seam-fail-scan.json
index fd0f4d4..431ec73 100644
--- a/data/seam-fail-scan.json
+++ b/data/seam-fail-scan.json
@@ -13,72 +13,72 @@
{
"id": 43197,
"overall_max": 38.77,
- "path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779805176441_993290578.png"
+ "path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779805176441_993290578.png"
},
{
"id": 43197,
"overall_max": 38.77,
- "path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779805176441_993290578.png"
+ "path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779805176441_993290578.png"
},
{
"id": 50566,
"overall_max": 36.36,
- "path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779811502549_1280451696.png"
+ "path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779811502549_1280451696.png"
},
{
"id": 50566,
"overall_max": 36.36,
- "path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779811502549_1280451696.png"
+ "path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779811502549_1280451696.png"
},
{
"id": 50565,
"overall_max": 35.01,
- "path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779810576790_159605057.png"
+ "path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779810576790_159605057.png"
},
{
"id": 50565,
"overall_max": 35.01,
- "path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779810576790_159605057.png"
+ "path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779810576790_159605057.png"
},
{
"id": 43199,
"overall_max": 20.13,
- "path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779806462956_732266097.png"
+ "path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779806462956_732266097.png"
},
{
"id": 43199,
"overall_max": 20.13,
- "path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1779806462956_732266097.png"
+ "path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1779806462956_732266097.png"
},
{
"id": 55272,
"overall_max": 16.14,
- "path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1780336621951_1793762070.png"
+ "path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1780336621951_1793762070.png"
},
{
"id": 55272,
"overall_max": 16.14,
- "path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1780336621951_1793762070.png"
+ "path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1780336621951_1793762070.png"
},
{
"id": 54686,
"overall_max": 16.01,
- "path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1780181582926_458477544.png"
+ "path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1780181582926_458477544.png"
},
{
"id": 54686,
"overall_max": 16.01,
- "path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1780181582926_458477544.png"
+ "path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1780181582926_458477544.png"
},
{
"id": 54385,
"overall_max": 13.16,
- "path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1780088222096_113927942.png"
+ "path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1780088222096_113927942.png"
},
{
"id": 54385,
"overall_max": 13.16,
- "path": "/Users/stevestudio2/Projects/wallco-ai/data/generated/1780088222096_113927942.png"
+ "path": "/Users/macstudio3/Projects/wallco-ai/data/generated/1780088222096_113927942.png"
}
]
}
\ No newline at end of file
diff --git a/deploy/com.steve.wallco-publish-ok-murals.plist b/deploy/com.steve.wallco-publish-ok-murals.plist
index 717ea35..9bd92f3 100644
--- a/deploy/com.steve.wallco-publish-ok-murals.plist
+++ b/deploy/com.steve.wallco-publish-ok-murals.plist
@@ -23,11 +23,11 @@
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
- <string>/Users/stevestudio2/Projects/wallco-ai/scripts/publish-ok-murals.sh</string>
+ <string>/Users/macstudio3/Projects/wallco-ai/scripts/publish-ok-murals.sh</string>
</array>
<key>WorkingDirectory</key>
- <string>/Users/stevestudio2/Projects/wallco-ai</string>
+ <string>/Users/macstudio3/Projects/wallco-ai</string>
<!-- every 30 minutes -->
<key>StartInterval</key>
@@ -39,9 +39,9 @@
<false/>
<key>StandardOutPath</key>
- <string>/Users/stevestudio2/Projects/wallco-ai/logs/publish-ok-murals.out.log</string>
+ <string>/Users/macstudio3/Projects/wallco-ai/logs/publish-ok-murals.out.log</string>
<key>StandardErrorPath</key>
- <string>/Users/stevestudio2/Projects/wallco-ai/logs/publish-ok-murals.err.log</string>
+ <string>/Users/macstudio3/Projects/wallco-ai/logs/publish-ok-murals.err.log</string>
<key>EnvironmentVariables</key>
<dict>
diff --git a/scratch_fuzz_remediate.py b/scratch_fuzz_remediate.py
index c93468e..e9b7417 100644
--- a/scratch_fuzz_remediate.py
+++ b/scratch_fuzz_remediate.py
@@ -11,7 +11,7 @@ import os, sys, json, subprocess
import scratch_fuzz_scan as s # reuse scan()
GEN = s.GEN_DIR
-J = "/Users/stevestudio2/.claude/yolo-queue/output/13-fuzzy-cohort-scan-2026-05-26.json"
+J = "/Users/macstudio3/.claude/yolo-queue/output/13-fuzzy-cohort-scan-2026-05-26.json"
def psql(sql):
return subprocess.run(["psql", "dw_unified", "-tAc", sql],
diff --git a/scratch_fuzz_scan.py b/scratch_fuzz_scan.py
index 947e73a..33c3017 100644
--- a/scratch_fuzz_scan.py
+++ b/scratch_fuzz_scan.py
@@ -8,8 +8,8 @@ import os, sys, json, subprocess, time
import numpy as np
from PIL import Image
-GEN_DIR = "/Users/stevestudio2/Projects/wallco-ai/data/generated"
-OUT = "/Users/stevestudio2/.claude/yolo-queue/output/13-fuzzy-cohort-scan-2026-05-26.md"
+GEN_DIR = "/Users/macstudio3/Projects/wallco-ai/data/generated"
+OUT = "/Users/macstudio3/.claude/yolo-queue/output/13-fuzzy-cohort-scan-2026-05-26.md"
BAND_PX = 14 # half-width of the center cross band
INTER_T = 45.0 # RGB euclidean dist beyond which a px is 'intermediate' (between the 2 tones)
DOWN = 256 # downsample edge for palette detection
diff --git a/scripts/apply-id-collision-resolutions.py b/scripts/apply-id-collision-resolutions.py
index bdf3d2d..882f75c 100644
--- a/scripts/apply-id-collision-resolutions.py
+++ b/scripts/apply-id-collision-resolutions.py
@@ -4,7 +4,7 @@
import json, sys, os, subprocess
FT_VERDICT = sys.argv[1] if len(sys.argv) > 1 else "A" # A=no-op preserve prod / B=prod unpublish / C=escalate
-AUDIT = "/Users/stevestudio2/Projects/wallco-ai/data/id-collision-resolutions-2026-05-29.jsonl"
+AUDIT = "/Users/macstudio3/Projects/wallco-ai/data/id-collision-resolutions-2026-05-29.jsonl"
d = json.load(open('/tmp/collisions-data.json'))
collisions = d['collisions']
diff --git a/scripts/auto-deploy-loop.sh b/scripts/auto-deploy-loop.sh
index 73a39cd..6f0671c 100755
--- a/scripts/auto-deploy-loop.sh
+++ b/scripts/auto-deploy-loop.sh
@@ -4,7 +4,7 @@
# PNGs to prod, then reloads.
# Kill: pkill -f auto-deploy-loop.sh
-ROOT="/Users/stevestudio2/Projects/wallco-ai"
+ROOT="/Users/macstudio3/Projects/wallco-ai"
PROD_HOST="root@45.61.58.125"
PROD_PATH="/root/public-projects/wallco-ai"
COOKIE_FILE="/tmp/steve-dw-auth-cookie.txt"
diff --git a/scripts/backfill_drunk_animals.sh b/scripts/backfill_drunk_animals.sh
index f497445..ca30347 100755
--- a/scripts/backfill_drunk_animals.sh
+++ b/scripts/backfill_drunk_animals.sh
@@ -7,7 +7,7 @@
#
# Idempotent — both scripts overwrite in-place; running twice is harmless.
-ROOT=/Users/stevestudio2/Projects/wallco-ai
+ROOT=/Users/macstudio3/Projects/wallco-ai
PSQL=/opt/homebrew/opt/postgresql@14/bin/psql
PY=/opt/homebrew/bin/python3
cd "$ROOT"
diff --git a/scripts/cw-rooms-driver.sh b/scripts/cw-rooms-driver.sh
index abae6eb..0535fb5 100755
--- a/scripts/cw-rooms-driver.sh
+++ b/scripts/cw-rooms-driver.sh
@@ -3,7 +3,7 @@
# Reads /tmp/cw-cats.txt (one category per line), generates PIL living_room composites,
# inserts wallco_rooms rows, reports per-cohort.
set -uo pipefail
-cd /Users/stevestudio2/Projects/wallco-ai
+cd /Users/macstudio3/Projects/wallco-ai
OUT=public/uploads/rooms
mkdir -p "$OUT"
PG="dw_unified"
diff --git a/scripts/dw-stale-urls-push.js b/scripts/dw-stale-urls-push.js
index e38fd6a..7f46e61 100644
--- a/scripts/dw-stale-urls-push.js
+++ b/scripts/dw-stale-urls-push.js
@@ -17,7 +17,7 @@ const path = require('path');
const SHOP = 'designer-laboratory-sandbox.myshopify.com';
const API = '2026-01';
const TOKEN = (() => {
- const envPath = '/Users/stevestudio2/Projects/secrets-manager/.env';
+ const envPath = '/Users/macstudio3/Projects/secrets-manager/.env';
const txt = fs.readFileSync(envPath, 'utf8');
const m = txt.match(/^SHOPIFY_ADMIN_TOKEN=(.+)$/m);
if (!m) throw new Error('SHOPIFY_ADMIN_TOKEN missing');
diff --git a/scripts/elements_extract_prod.py b/scripts/elements_extract_prod.py
index 3f33acf..d600e4d 100644
--- a/scripts/elements_extract_prod.py
+++ b/scripts/elements_extract_prod.py
@@ -4,7 +4,7 @@
Differences from the Mac2 canonical at ~/.claude/skills/elements/scripts/extract.py:
- WALLCO_ROOT = /root/public-projects/wallco-ai (prod path layout)
- Path rewriter: many prod PG rows have local_path pointing at Mac2's
- /Users/stevestudio2/Projects/wallco-ai/... — rewrite to the prod-native
+ /Users/macstudio3/Projects/wallco-ai/... — rewrite to the prod-native
/root/public-projects/wallco-ai/... so the bake can read the source PNG.
- psql invoked via `sudo -u postgres` since the bake script runs as root and
pg_hba peer-auth is by OS user.
@@ -28,7 +28,7 @@ CROP_FRAC = 0.75
PALETTE_K = 6
# Path rewriter — prod PG carries Mac2 paths; rewrite to prod-native.
-MAC2_PREFIX = '/Users/stevestudio2/Projects/wallco-ai/'
+MAC2_PREFIX = '/Users/macstudio3/Projects/wallco-ai/'
PROD_PREFIX = '/root/public-projects/wallco-ai/'
diff --git a/scripts/fuzzy_seam_scan.py b/scripts/fuzzy_seam_scan.py
index b823925..3b750f2 100644
--- a/scripts/fuzzy_seam_scan.py
+++ b/scripts/fuzzy_seam_scan.py
@@ -19,7 +19,7 @@ import argparse, json, os, subprocess, sys, time
import numpy as np
from PIL import Image
-GEN_DIR = "/Users/stevestudio2/Projects/wallco-ai/data/generated"
+GEN_DIR = "/Users/macstudio3/Projects/wallco-ai/data/generated"
# --- tunables (validated against the 2026-05-26 heal cohort) ---
# The heal seam is a THIN blurred line at the EXACT geometric midline, flanked
@@ -175,7 +175,7 @@ def main():
ap.add_argument("--cohort", action="store_true", help="scan all published heal designs")
ap.add_argument("--shard", type=int, default=0)
ap.add_argument("--shards", type=int, default=1)
- ap.add_argument("--out", default="/Users/stevestudio2/Projects/wallco-ai/data/fuzzy-seam-scan.json")
+ ap.add_argument("--out", default="/Users/macstudio3/Projects/wallco-ai/data/fuzzy-seam-scan.json")
ap.add_argument("--json", action="store_true")
args = ap.parse_args()
diff --git a/scripts/instant-image-sync.sh b/scripts/instant-image-sync.sh
index 3f58df6..099c013 100755
--- a/scripts/instant-image-sync.sh
+++ b/scripts/instant-image-sync.sh
@@ -5,7 +5,7 @@
# polling loop checking every 5s.
set -u
-SRC="/Users/stevestudio2/Projects/wallco-ai/data/generated"
+SRC="/Users/macstudio3/Projects/wallco-ai/data/generated"
PROD_HOST="root@45.61.58.125"
PROD_PATH="/root/public-projects/wallco-ai/data/generated"
LOG="/tmp/instant-image-sync.log"
diff --git a/scripts/overnight-noghost-bulk.sh b/scripts/overnight-noghost-bulk.sh
index f4fd8eb..53f689a 100755
--- a/scripts/overnight-noghost-bulk.sh
+++ b/scripts/overnight-noghost-bulk.sh
@@ -71,4 +71,4 @@ OK_NOGHOST=$(grep -c "^OK no-ghost" "$LOG_FILE" || echo 0)
echo "=== overnight no-ghost bulk done $(date) ===" | tee -a "$LOG_FILE"
echo " 2-tone processed: $OK_2TONE" | tee -a "$LOG_FILE"
echo " no-ghost processed: $OK_NOGHOST" | tee -a "$LOG_FILE"
-echo "next: rsync /Users/stevestudio2/Projects/wallco-ai/data/generated/ to prod"
+echo "next: rsync /Users/macstudio3/Projects/wallco-ai/data/generated/ to prod"
diff --git a/scripts/qa-make-seamless.js b/scripts/qa-make-seamless.js
index 9d3aaa6..112bfa3 100644
--- a/scripts/qa-make-seamless.js
+++ b/scripts/qa-make-seamless.js
@@ -25,11 +25,11 @@ fs.mkdirSync(QA_DIR, { recursive: true });
// Tests — passed inline so the script is self-contained.
const TESTS = [
- { bucket: 'sparse-damask', id: 19, category: 'damask', local_path: '/Users/stevestudio2/Projects/wallco-ai/data/generated/1778541171660_1800259551.png' },
- { bucket: 'dense-damask', id: 33932, category: 'damask', local_path: '/Users/stevestudio2/Projects/wallco-ai/data/generated/var_33925_hue+60_1779299498943.png' },
- { bucket: 'zoo-calm', id: 37768, category: 'designer-zoo-calm', local_path: '/Users/stevestudio2/Projects/wallco-ai/data/generated/1779303456129_284434792.png' },
- { bucket: 'scenic', id: 39305, category: 'cactus-pine-scenic', local_path: '/Users/stevestudio2/Projects/wallco-ai/data/generated/regenrev_39122_1779606344330_1457904876.png' },
- { bucket: 'drunk-monkeys-v2', id: 39304, category: 'drunk-monkeys-v2', local_path: '/Users/stevestudio2/Projects/wallco-ai/data/generated/cropfix_39115_1779606289209_561987055.png' },
+ { bucket: 'sparse-damask', id: 19, category: 'damask', local_path: '/Users/macstudio3/Projects/wallco-ai/data/generated/1778541171660_1800259551.png' },
+ { bucket: 'dense-damask', id: 33932, category: 'damask', local_path: '/Users/macstudio3/Projects/wallco-ai/data/generated/var_33925_hue+60_1779299498943.png' },
+ { bucket: 'zoo-calm', id: 37768, category: 'designer-zoo-calm', local_path: '/Users/macstudio3/Projects/wallco-ai/data/generated/1779303456129_284434792.png' },
+ { bucket: 'scenic', id: 39305, category: 'cactus-pine-scenic', local_path: '/Users/macstudio3/Projects/wallco-ai/data/generated/regenrev_39122_1779606344330_1457904876.png' },
+ { bucket: 'drunk-monkeys-v2', id: 39304, category: 'drunk-monkeys-v2', local_path: '/Users/macstudio3/Projects/wallco-ai/data/generated/cropfix_39115_1779606289209_561987055.png' },
];
function runSeamless(algoPath, input, output) {
diff --git a/scripts/refresh_designs_snapshot.py b/scripts/refresh_designs_snapshot.py
index c255f6c..a4e0aa7 100644
--- a/scripts/refresh_designs_snapshot.py
+++ b/scripts/refresh_designs_snapshot.py
@@ -305,7 +305,7 @@ for r in rows:
"image_url": pub_image_url,
"filename": pub_filename,
# NOTE: do NOT include local_path here — it leaks the Mac2 absolute path
- # (`/Users/stevestudio2/...`) into the public /api/designs JSON response.
+ # (`/Users/macstudio3/...`) into the public /api/designs JSON response.
# The /designs/img/by-id/:id route uses filename → IMG_DIR/<filename>,
# and admin ops (settlement-delete, hue-shift, etc.) re-read local_path
# live from PG via psqlQuery — neither needs it in designs.json.
diff --git a/scripts/salvage_orphan_pngs.py b/scripts/salvage_orphan_pngs.py
index 8f89871..4f64cd1 100644
--- a/scripts/salvage_orphan_pngs.py
+++ b/scripts/salvage_orphan_pngs.py
@@ -14,7 +14,7 @@ import subprocess, json
from PIL import Image
from collections import Counter
-ROOT = Path('/Users/stevestudio2/Projects/wallco-ai')
+ROOT = Path('/Users/macstudio3/Projects/wallco-ai')
GEN = ROOT / 'data' / 'generated'
ORPHANS = [
diff --git a/scripts/smoke-test-customizer.js b/scripts/smoke-test-customizer.js
index 1c711ee..6895853 100644
--- a/scripts/smoke-test-customizer.js
+++ b/scripts/smoke-test-customizer.js
@@ -23,7 +23,7 @@
'use strict';
const EXIT_SKIP = 3;
function loadChromium() {
- const tries = ['playwright', '/Users/stevestudio2/Projects/animals/node_modules/playwright'];
+ const tries = ['playwright', '/Users/macstudio3/Projects/animals/node_modules/playwright'];
for (const t of tries) { try { return require(t).chromium; } catch {} }
console.error('SKIP: playwright not found'); process.exit(EXIT_SKIP);
}
diff --git a/scripts/smoke-test-themes.js b/scripts/smoke-test-themes.js
index 7e59886..436c563 100644
--- a/scripts/smoke-test-themes.js
+++ b/scripts/smoke-test-themes.js
@@ -34,7 +34,7 @@ const EXIT_SKIP = 3;
function loadChromium() {
const tries = [
'playwright',
- '/Users/stevestudio2/Projects/animals/node_modules/playwright',
+ '/Users/macstudio3/Projects/animals/node_modules/playwright',
];
for (const t of tries) { try { return require(t).chromium; } catch {} }
console.error('SKIP: playwright not found (tried: ' + tries.join(', ') + ')');
diff --git a/scripts/spoonflower_lib.py b/scripts/spoonflower_lib.py
index 02f041a..915b1a4 100644
--- a/scripts/spoonflower_lib.py
+++ b/scripts/spoonflower_lib.py
@@ -3,7 +3,7 @@ Shared Spoonflower helpers — three auth paths in priority order:
1. Connect to a running Chrome with --remote-debugging-port=9222
(Steve's actual browser, already logged in). This is the pattern
- that worked in /Users/stevestudio2/Projects/Designer-Wallcoverings/
+ that worked in /Users/macstudio3/Projects/Designer-Wallcoverings/
DW-Programming/150dpi/connect_and_download.js — proven reliable.
2. Load a saved cookie jar from ~/.spoonflower-cookies.json
diff --git a/scripts/sync-geometric-9-to-prod.sh b/scripts/sync-geometric-9-to-prod.sh
index 015e0dd..46d74c2 100755
--- a/scripts/sync-geometric-9-to-prod.sh
+++ b/scripts/sync-geometric-9-to-prod.sh
@@ -10,7 +10,7 @@
# UPDATE makes it idempotent. We do NOT setval the sequence (prod keeps issuing
# from ~39287, no collision for the foreseeable future).
set -e
-ROOT=/Users/stevestudio2/Projects/wallco-ai
+ROOT=/Users/macstudio3/Projects/wallco-ai
REMOTE=root@45.61.58.125
REMOTE_DIR=/root/public-projects/wallco-ai
IDS="50571,50572,50573,50578,50580,50581,50583,50585,50586"
diff --git a/scripts/sync_drunk_animals_to_prod.sh b/scripts/sync_drunk_animals_to_prod.sh
index 2860246..0f9c941 100755
--- a/scripts/sync_drunk_animals_to_prod.sh
+++ b/scripts/sync_drunk_animals_to_prod.sh
@@ -18,7 +18,7 @@
# 5. Smoke test https://wallco.ai/api/designs/search?q=drunk
set -e
-ROOT=/Users/stevestudio2/Projects/wallco-ai
+ROOT=/Users/macstudio3/Projects/wallco-ai
REMOTE=root@45.61.58.125
REMOTE_DIR=/root/public-projects/wallco-ai
PSQL=/opt/homebrew/opt/postgresql@14/bin/psql
diff --git a/scripts/test-classifier.sh b/scripts/test-classifier.sh
index f6337f0..e5010e2 100644
--- a/scripts/test-classifier.sh
+++ b/scripts/test-classifier.sh
@@ -52,7 +52,7 @@ source_classifier() {
GEORGE_BASIC_AUTH=""
# shellcheck source=/dev/null
- source /Users/stevestudio2/Projects/wallco-ai/scripts/security-monitor.sh
+ source /Users/macstudio3/Projects/wallco-ai/scripts/security-monitor.sh
}
source_classifier
diff --git a/scripts/test_drunk_animals.sh b/scripts/test_drunk_animals.sh
index fbd5946..3628fe4 100755
--- a/scripts/test_drunk_animals.sh
+++ b/scripts/test_drunk_animals.sh
@@ -37,7 +37,7 @@ check "PG drunk-animals count > 0" $([[ "$pg_count" -gt 0 ]] && echo PASS || ech
echo " → $pg_count rows"
# 4. Snapshot matches PG
-snap_count=$(python3 -c "import json; print(sum(1 for d in json.load(open('/Users/stevestudio2/Projects/wallco-ai/data/designs.json')) if d.get('category')=='drunk-animals'))")
+snap_count=$(python3 -c "import json; print(sum(1 for d in json.load(open('/Users/macstudio3/Projects/wallco-ai/data/designs.json')) if d.get('category')=='drunk-animals'))")
check "designs.json snapshot matches PG" $([[ "$snap_count" == "$pg_count" ]] && echo PASS || echo "snapshot=$snap_count pg=$pg_count")
# 5. In-memory feed total matches PG
diff --git a/scripts/tile-period-detect/detect_correlation_length.py b/scripts/tile-period-detect/detect_correlation_length.py
index 22f7a76..a10e2a7 100644
--- a/scripts/tile-period-detect/detect_correlation_length.py
+++ b/scripts/tile-period-detect/detect_correlation_length.py
@@ -114,10 +114,10 @@ def analyze(label, path, threshold=0.20):
def main():
cases = [
- ('37893_NEW_MURAL_MODE', '/Users/stevestudio2/Projects/wallco-ai/data/rooms/design_37893_living_room.png'),
- ('39358_OLD_CONTROL', '/Users/stevestudio2/Projects/wallco-ai/data/rooms/design_39358_bedroom.png'),
- ('40638_OLD_CONTROL', '/Users/stevestudio2/Projects/wallco-ai/data/rooms/design_40638_living_room.png'),
- ('40931_OLD_CONTROL', '/Users/stevestudio2/Projects/wallco-ai/data/rooms/design_40931_living_room.png'),
+ ('37893_NEW_MURAL_MODE', '/Users/macstudio3/Projects/wallco-ai/data/rooms/design_37893_living_room.png'),
+ ('39358_OLD_CONTROL', '/Users/macstudio3/Projects/wallco-ai/data/rooms/design_39358_bedroom.png'),
+ ('40638_OLD_CONTROL', '/Users/macstudio3/Projects/wallco-ai/data/rooms/design_40638_living_room.png'),
+ ('40931_OLD_CONTROL', '/Users/macstudio3/Projects/wallco-ai/data/rooms/design_40931_living_room.png'),
]
results = []
print(f"{'label':28} {'L20_h':>6} {'L20_v':>6} {'ratio_h':>8} {'ratio_v':>8} {'score':>7} verdict")
diff --git a/scripts/variants-9roots-supervisor.sh b/scripts/variants-9roots-supervisor.sh
index fd2438c..9bee231 100755
--- a/scripts/variants-9roots-supervisor.sh
+++ b/scripts/variants-9roots-supervisor.sh
@@ -3,7 +3,7 @@
# Mac2 (fork-starvation / abrupt termination, no clean error). It's resumable
# (skips done cells via the ledger), so just relaunch until the grid is full.
# Stops when the montage reports 90/90 filled OR the script exits 0 (clean done).
-cd /Users/stevestudio2/Projects/wallco-ai || exit 1
+cd /Users/macstudio3/Projects/wallco-ai || exit 1
LOG=/tmp/variants9.log
for i in $(seq 1 300); do
echo "[supervisor $(date '+%H:%M:%S')] launch #$i" >> "$LOG"
diff --git a/scripts/verify-theme-controls.js b/scripts/verify-theme-controls.js
index 0b4a416..25607ec 100644
--- a/scripts/verify-theme-controls.js
+++ b/scripts/verify-theme-controls.js
@@ -6,7 +6,7 @@
'use strict';
const EXIT_SKIP = 3;
function loadChromium() {
- for (const t of ['playwright', '/Users/stevestudio2/Projects/animals/node_modules/playwright']) {
+ for (const t of ['playwright', '/Users/macstudio3/Projects/animals/node_modules/playwright']) {
try { return require(t).chromium; } catch {}
}
console.error('SKIP: playwright not found'); process.exit(EXIT_SKIP);
diff --git a/scripts/watch-rescan-then-notify.sh b/scripts/watch-rescan-then-notify.sh
index 424745b..99fd71b 100755
--- a/scripts/watch-rescan-then-notify.sh
+++ b/scripts/watch-rescan-then-notify.sh
@@ -6,7 +6,7 @@
set -u
PID="${1:?usage: $0 <scan-pid> <log-path>}"
LOG="${2:?usage: $0 <scan-pid> <log-path>}"
-ROOT="/Users/stevestudio2/Projects/wallco-ai"
+ROOT="/Users/macstudio3/Projects/wallco-ai"
READY="$ROOT/data/.rescan-ready.txt"
while kill -0 "$PID" 2>/dev/null; do
diff --git a/server.js b/server.js
index b2ece7e..01f1b82 100644
--- a/server.js
+++ b/server.js
@@ -4564,7 +4564,7 @@ document.getElementById('btn-merge').addEventListener('click', function(){
// Helper: serve a design image by id (used by /merge previews + new cards).
// Prefer the in-memory DESIGNS snapshot (sourced from designs.json which IS
// synced across Mac2 → Kamatera). Fall back to PG only if not in cache.
-// Important — local_path is a Mac2-absolute path (`/Users/stevestudio2/…`)
+// Important — local_path is a Mac2-absolute path (`/Users/macstudio3/…`)
// and won't resolve on Kamatera. Strip to basename and resolve against the
// local IMG_DIR so the route works on both Mac2 and prod.
app.get('/designs/img/by-id/:id', (req, res) => {
@@ -4611,7 +4611,7 @@ app.get('/designs/img/by-id/:id', (req, res) => {
// 1. localPathForDesign helper (PII-free filename → IMG_DIR/file)
// 2. d.local_path (DB column, may point at the original generated/ path)
// 3. IMG_DIR + basename(d.local_path) — when PG carries a Mac2-style
- // absolute path (/Users/stevestudio2/…/data/generated/X.png) that
+ // absolute path (/Users/macstudio3/…/data/generated/X.png) that
// never exists on prod's filesystem. The PNG IS on prod under
// /root/public-projects/wallco-ai/data/generated/X.png — same basename,
// different prefix. Added 2026-05-29 after the drunk-animals curator
@@ -21970,7 +21970,7 @@ app.post('/api/room', async (req, res) => {
designWidthIn = designWidthIn || Number(d.width_in) || null;
designHeightIn = designHeightIn || Number(d.height_in) || null;
}
- // Prod local_path is often a Mac2 absolute path (/Users/stevestudio2/...) that
+ // Prod local_path is often a Mac2 absolute path (/Users/macstudio3/...) that
// doesn't exist on this box, while the SAME file lives at IMG_DIR/<basename>
// (data/generated). Fall back to that before declaring it missing — fixes the
// "design file missing on disk" error on the admin See-in-Room generate flow
diff --git a/tomorrow-after-25min.sh b/tomorrow-after-25min.sh
index 9a75583..23f66e1 100755
--- a/tomorrow-after-25min.sh
+++ b/tomorrow-after-25min.sh
@@ -116,17 +116,17 @@ log ""
log "=== Step 2/4: Vendor-name sweep on leaked sites ==="
PATHS=(
- "/Users/stevestudio2/Projects/wallsandfabrics/data/products.json"
- "/Users/stevestudio2/Projects/customdigitalmurals/data/products.json"
- "/Users/stevestudio2/Projects/naturaltextilewallpaper/data/products.json"
- "/Users/stevestudio2/Projects/goldleafwallpaper/data/products.json"
- "/Users/stevestudio2/Projects/silkwallpaper/data/products.json"
- "/Users/stevestudio2/Projects/chinoiseriewallpaper/data/products.json"
- "/Users/stevestudio2/Projects/1800swallpaper/data/products.json"
- "/Users/stevestudio2/Projects/1890swallpaper/data/products.json"
- "/Users/stevestudio2/Projects/carmelwallpapers/data/products.json"
- "/Users/stevestudio2/Projects/metallicwallpaper/data/products.json"
- "/Users/stevestudio2/Projects/architecturalwallcoverings/data/products.json"
+ "/Users/macstudio3/Projects/wallsandfabrics/data/products.json"
+ "/Users/macstudio3/Projects/customdigitalmurals/data/products.json"
+ "/Users/macstudio3/Projects/naturaltextilewallpaper/data/products.json"
+ "/Users/macstudio3/Projects/goldleafwallpaper/data/products.json"
+ "/Users/macstudio3/Projects/silkwallpaper/data/products.json"
+ "/Users/macstudio3/Projects/chinoiseriewallpaper/data/products.json"
+ "/Users/macstudio3/Projects/1800swallpaper/data/products.json"
+ "/Users/macstudio3/Projects/1890swallpaper/data/products.json"
+ "/Users/macstudio3/Projects/carmelwallpapers/data/products.json"
+ "/Users/macstudio3/Projects/metallicwallpaper/data/products.json"
+ "/Users/macstudio3/Projects/architecturalwallcoverings/data/products.json"
)
# Vendor denylist — DW vendor names that must never appear in customer-facing
← 3189159 auto-save: 2026-06-26T06:12:56 (65 files) — public/marketpla
·
back to Wallco Ai
·
migrate GoDaddy auth → Bearer PAT (TK-10 key rotation); sso- c08236f →