← back to Animals
chore: macstudio3 migration — reconcile from mac2 + repoint paths (stevestudio2→macstudio3, node/npm/npx→/opt/homebrew)
821fb8be6dc9a02d63eed78288aeaba693b6a502 · 2026-07-03 08:07:50 -0700 · Steve
Files touched
M public/uploads/avatars/e17b0fe7d7cf459c/subject.jsonM public/uploads/avatars/people/dylan.jsonM public/uploads/avatars/people/natalia.jsonM public/uploads/avatars/people/steve.jsonM public/uploads/avatars/test-bowie/subject.jsonM public/uploads/avatars/test-humphrey/subject.jsonM public/uploads/avatars/test-madison/subject.jsonM src/scripts/2week-followup-audit.shM src/scripts/debug-loop.shM src/scripts/dog-image-topup.shM src/scripts/hawk-local.shM src/scripts/import_pet_photos_via_george.shM src/scripts/mockup-watchdog.shM src/scripts/weekly-refresh.sh
Diff
commit 821fb8be6dc9a02d63eed78288aeaba693b6a502
Author: Steve <steve@designerwallcoverings.com>
Date: Fri Jul 3 08:07:50 2026 -0700
chore: macstudio3 migration — reconcile from mac2 + repoint paths (stevestudio2→macstudio3, node/npm/npx→/opt/homebrew)
---
public/uploads/avatars/e17b0fe7d7cf459c/subject.json | 2 +-
public/uploads/avatars/people/dylan.json | 2 +-
public/uploads/avatars/people/natalia.json | 2 +-
public/uploads/avatars/people/steve.json | 2 +-
public/uploads/avatars/test-bowie/subject.json | 2 +-
public/uploads/avatars/test-humphrey/subject.json | 2 +-
public/uploads/avatars/test-madison/subject.json | 2 +-
src/scripts/2week-followup-audit.sh | 4 ++--
src/scripts/debug-loop.sh | 4 ++--
src/scripts/dog-image-topup.sh | 10 +++++-----
src/scripts/hawk-local.sh | 4 ++--
src/scripts/import_pet_photos_via_george.sh | 4 ++--
src/scripts/mockup-watchdog.sh | 2 +-
src/scripts/weekly-refresh.sh | 2 +-
14 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/public/uploads/avatars/e17b0fe7d7cf459c/subject.json b/public/uploads/avatars/e17b0fe7d7cf459c/subject.json
index c933b1d..de4bfae 100644
--- a/public/uploads/avatars/e17b0fe7d7cf459c/subject.json
+++ b/public/uploads/avatars/e17b0fe7d7cf459c/subject.json
@@ -11,5 +11,5 @@
"relaxed expression"
],
"one_sentence_subject": "A large chocolate Labrador Retriever with a smooth coat and floppy ears lounges with a calm demeanor.",
- "source": "/Users/stevestudio2/Projects/animals/public/uploads/avatars/_inbox/e17b0fe7d7cf459c.jpeg"
+ "source": "/Users/macstudio3/Projects/animals/public/uploads/avatars/_inbox/e17b0fe7d7cf459c.jpeg"
}
\ No newline at end of file
diff --git a/public/uploads/avatars/people/dylan.json b/public/uploads/avatars/people/dylan.json
index 3927f7f..8f0898c 100644
--- a/public/uploads/avatars/people/dylan.json
+++ b/public/uploads/avatars/people/dylan.json
@@ -17,6 +17,6 @@
"clothing_style_in_photo": "black shirt",
"suggested_avatar_outfit": "casual outfit appropriate for a dog park: navy blue t-shirt, gray jeans, white sneakers",
"one_sentence_subject": "A young man in his late teens with medium length shaggy dark brown hair framing his face, fair-medium skin, clean-shaven, and a lean build, characterized by a bright, wide smile.",
- "source": "/Users/stevestudio2/Projects/animals/public/uploads/_demo/dylan-natalia-steve.jpg",
+ "source": "/Users/macstudio3/Projects/animals/public/uploads/_demo/dylan-natalia-steve.jpg",
"prompt": "A teen man (approximately 19 years old) with dark brown, medium length, shaggy, framing the face ,fair-medium skin , a oval face and a lean build . Distinguishing features: bright smile, shaggy hair, clean-shaven, youthful appearance . Wearing casual outfit appropriate for a dog park: navy blue t-shirt, gray jeans, white sneakers. Full-body standing pose, three-quarter view facing slightly camera-left, arms relaxed at sides, friendly natural expression. Stylized semi-realistic Pixar/Horizon-Worlds rendering, soft PBR shading, low-roughness skin with subtle subsurface scattering, warm rim light from upper-right, painterly. Subject centered with full body visible from head to feet. Plain neutral solid background (light dove-gray, NOT a scene). 1:1 square framing. CRITICAL: hair color, facial hair, skin tone, and build must match the description exactly — do not default to a generic person. No text, no watermark."
}
\ No newline at end of file
diff --git a/public/uploads/avatars/people/natalia.json b/public/uploads/avatars/people/natalia.json
index a0a94b6..20283c5 100644
--- a/public/uploads/avatars/people/natalia.json
+++ b/public/uploads/avatars/people/natalia.json
@@ -18,6 +18,6 @@
"clothing_style_in_photo": "dark top",
"suggested_avatar_outfit": "casual green t-shirt, light blue jeans, white sneakers",
"one_sentence_subject": "The subject is a woman around 35 years old with long reddish-auburn-brown wavy hair past shoulders, light sun-kissed skin, an average build, an oval face, and a friendly broad smile.",
- "source": "/Users/stevestudio2/Projects/animals/public/uploads/_demo/natalia-headshot.jpg",
+ "source": "/Users/macstudio3/Projects/animals/public/uploads/_demo/natalia-headshot.jpg",
"prompt": "A adult woman (approximately 35 years old) with reddish-auburn-brown, long, wavy, past shoulders ,light with sun-kissed warmth skin , a oval face and a average build . Distinguishing features: large gold hoop earrings, friendly broad smile, teeth showing, wavy hair, sun-kissed skin . Wearing casual green t-shirt, light blue jeans, white sneakers. Full-body standing pose, three-quarter view facing slightly camera-left, arms relaxed at sides, friendly natural expression. Stylized semi-realistic Pixar/Horizon-Worlds rendering, soft PBR shading, low-roughness skin with subtle subsurface scattering, warm rim light from upper-right, painterly. Subject centered with full body visible from head to feet. Plain neutral solid background (light dove-gray, NOT a scene). 1:1 square framing. CRITICAL: hair color, facial hair, skin tone, and build must match the description exactly — do not default to a generic person. No text, no watermark."
}
\ No newline at end of file
diff --git a/public/uploads/avatars/people/steve.json b/public/uploads/avatars/people/steve.json
index 46f179d..f424818 100644
--- a/public/uploads/avatars/people/steve.json
+++ b/public/uploads/avatars/people/steve.json
@@ -1,4 +1,4 @@
{
- "source": "/Users/stevestudio2/Projects/animals/public/uploads/_demo/dylan-natalia-steve.jpg",
+ "source": "/Users/macstudio3/Projects/animals/public/uploads/_demo/dylan-natalia-steve.jpg",
"prompt": "A adult person with short hair ,fair skin , a oval face and a average build . Wearing a casual t-shirt, jeans, and sneakers. Full-body standing pose, three-quarter view facing slightly camera-left, arms relaxed at sides, friendly natural expression. Stylized semi-realistic Pixar/Horizon-Worlds rendering, soft PBR shading, low-roughness skin with subtle subsurface scattering, warm rim light from upper-right, painterly. Subject centered with full body visible from head to feet. Plain neutral solid background (light dove-gray, NOT a scene). 1:1 square framing. CRITICAL: hair color, facial hair, skin tone, and build must match the description exactly — do not default to a generic person. No text, no watermark."
}
\ No newline at end of file
diff --git a/public/uploads/avatars/test-bowie/subject.json b/public/uploads/avatars/test-bowie/subject.json
index 92eb980..f2434bd 100644
--- a/public/uploads/avatars/test-bowie/subject.json
+++ b/public/uploads/avatars/test-bowie/subject.json
@@ -13,5 +13,5 @@
"broad head"
],
"one_sentence_subject": "A black Labrador Retriever mix with a white chest patch sitting alertly on a red chair in a garden setting.",
- "source": "/Users/stevestudio2/Projects/animals/public/uploads/owner-pets/pet-1-1FOch8NsG08AhQGf_kP8rdr486yrvjTEQ.jpeg"
+ "source": "/Users/macstudio3/Projects/animals/public/uploads/owner-pets/pet-1-1FOch8NsG08AhQGf_kP8rdr486yrvjTEQ.jpeg"
}
\ No newline at end of file
diff --git a/public/uploads/avatars/test-humphrey/subject.json b/public/uploads/avatars/test-humphrey/subject.json
index 9f094e6..e1145af 100644
--- a/public/uploads/avatars/test-humphrey/subject.json
+++ b/public/uploads/avatars/test-humphrey/subject.json
@@ -13,5 +13,5 @@
"black collar"
],
"one_sentence_subject": "A large, cream-colored Labrador Retriever with floppy ears and a black collar stands attentively in a lush garden setting.",
- "source": "/Users/stevestudio2/Projects/animals/public/uploads/owner-pets/pet-2-1_epsqjZqpgJdBGhJQXtRI5w8AsuIEhgX.jpg"
+ "source": "/Users/macstudio3/Projects/animals/public/uploads/owner-pets/pet-2-1_epsqjZqpgJdBGhJQXtRI5w8AsuIEhgX.jpg"
}
\ No newline at end of file
diff --git a/public/uploads/avatars/test-madison/subject.json b/public/uploads/avatars/test-madison/subject.json
index a67dc05..5de217a 100644
--- a/public/uploads/avatars/test-madison/subject.json
+++ b/public/uploads/avatars/test-madison/subject.json
@@ -12,5 +12,5 @@
"calm expression"
],
"one_sentence_subject": "A chocolate brown Labrador Retriever lies in profile, showcasing a sleek coat and calm demeanor.",
- "source": "/Users/stevestudio2/Projects/animals/public/uploads/owner-pets/pet-2-1Zccoy7SYOM7dgvvVaeLw7T7gqclP4Upi.jpg"
+ "source": "/Users/macstudio3/Projects/animals/public/uploads/owner-pets/pet-2-1Zccoy7SYOM7dgvvVaeLw7T7gqclP4Upi.jpg"
}
\ No newline at end of file
diff --git a/src/scripts/2week-followup-audit.sh b/src/scripts/2week-followup-audit.sh
index eb00eb7..4c2b7c8 100755
--- a/src/scripts/2week-followup-audit.sh
+++ b/src/scripts/2week-followup-audit.sh
@@ -6,7 +6,7 @@
set -uo pipefail
-PROJECT=/Users/stevestudio2/Projects/animals
+PROJECT=/Users/macstudio3/Projects/animals
PG_DB=animals_directory
GEORGE_URL=http://localhost:9850/api/send
# GEORGE_AUTH must be set in env or read from the secrets-manager .env. Never
@@ -18,7 +18,7 @@ fi
if [[ -z "${GEORGE_AUTH:-}" ]]; then
echo "[abort] GEORGE_AUTH not in env or secrets-manager — skipping email send" >&2
fi
-SELF_PLIST=/Users/stevestudio2/Library/LaunchAgents/com.steve.animals-2week-followup.plist
+SELF_PLIST=/Users/macstudio3/Library/LaunchAgents/com.steve.animals-2week-followup.plist
OUT_LOG="$PROJECT/logs/2week-followup-$(date +%Y%m%d-%H%M%S).log"
exec > >(tee -a "$OUT_LOG") 2>&1
diff --git a/src/scripts/debug-loop.sh b/src/scripts/debug-loop.sh
index 0285175..ec93ea3 100755
--- a/src/scripts/debug-loop.sh
+++ b/src/scripts/debug-loop.sh
@@ -8,8 +8,8 @@
# Per Steve's no-cloud-agents rule, runs locally on Mac Studio 2.
set -u
-cd /Users/stevestudio2/Projects/animals
-PATH=/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/Users/stevestudio2/.npm-global/bin
+cd /Users/macstudio3/Projects/animals
+PATH=/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/Users/macstudio3/.npm-global/bin
export PATH
TS=$(date -u +%FT%TZ)
diff --git a/src/scripts/dog-image-topup.sh b/src/scripts/dog-image-topup.sh
index 9b97417..c3ae629 100755
--- a/src/scripts/dog-image-topup.sh
+++ b/src/scripts/dog-image-topup.sh
@@ -16,7 +16,7 @@ echo "[topup] start $(date -Iseconds)" | tee -a "$LOG"
EXIT=0
for SPECIES in dog cat horse; do
echo "[topup] species=$SPECIES" | tee -a "$LOG"
- /usr/local/bin/node src/enrich/dog_pd_images.js \
+ /opt/homebrew/bin/node src/enrich/dog_pd_images.js \
--species "$SPECIES" \
--max-per-breed 1000 \
--min-existing 1000 \
@@ -28,11 +28,11 @@ done
# Always re-run the hero backfill so freshly enriched breeds get a headline shot
echo "[topup] backfilling heros" | tee -a "$LOG"
-/usr/local/bin/node src/enrich/backfill_heros.js >> "$LOG" 2>&1 || EXIT=$?
+/opt/homebrew/bin/node src/enrich/backfill_heros.js >> "$LOG" 2>&1 || EXIT=$?
# Image health audit — flags broken URLs so the gallery query skips them
echo "[topup] auditing image URLs" | tee -a "$LOG"
-/usr/local/bin/node src/audit/image_health.js >> "$LOG" 2>&1 || EXIT=$?
+/opt/homebrew/bin/node src/audit/image_health.js >> "$LOG" 2>&1 || EXIT=$?
# Phase-3 vision audit — Kimi (Moonshot) classifies each image as
# real_photo / art / wrong_subject / low_quality / unclear. art and
@@ -40,11 +40,11 @@ echo "[topup] auditing image URLs" | tee -a "$LOG"
# ingest can't catch sculptures, trading cards, ceramic figurines, etc.).
# ~$0.15-0.30 per 500 images at moonshot-v1-32k-vision-preview rates.
echo "[topup] vision-auditing 500 images" | tee -a "$LOG"
-/usr/local/bin/node src/audit/vision_audit.js --limit 500 >> "$LOG" 2>&1 || EXIT=$?
+/opt/homebrew/bin/node src/audit/vision_audit.js --limit 500 >> "$LOG" 2>&1 || EXIT=$?
# Refresh dog-park avatar picks (3 per breed) — non-pinned slots only
echo "[topup] re-picking dog-park avatars" | tee -a "$LOG"
-/usr/local/bin/node src/enrich/pick_dogpark_avatars.js --species all >> "$LOG" 2>&1 || EXIT=$?
+/opt/homebrew/bin/node src/enrich/pick_dogpark_avatars.js --species all >> "$LOG" 2>&1 || EXIT=$?
echo "[topup] end $(date -Iseconds) exit=$EXIT" | tee -a "$LOG"
# Keep last 8 weeks of logs
diff --git a/src/scripts/hawk-local.sh b/src/scripts/hawk-local.sh
index f21060d..58d97a7 100755
--- a/src/scripts/hawk-local.sh
+++ b/src/scripts/hawk-local.sh
@@ -3,7 +3,7 @@
# Pings each animals-* health endpoint; pm2 restart on failure.
set -u
-log() { echo "$(date -u +%FT%TZ) animals-hawk $*" >> /Users/stevestudio2/Projects/animals/logs/hawk.log; }
+log() { echo "$(date -u +%FT%TZ) animals-hawk $*" >> /Users/macstudio3/Projects/animals/logs/hawk.log; }
# pm2 location varies (Homebrew on Mac1, npm-global on Mac2) — pick whichever exists.
PM2_BIN="${HOME}/.npm-global/bin/pm2"
@@ -18,7 +18,7 @@ check() {
log "SKIP ${name} — not registered in pm2 (intentionally disabled or never deployed)"
else
log "DOWN ${name} — restarting via pm2"
- "$PM2_BIN" restart "${name}" >> /Users/stevestudio2/Projects/animals/logs/hawk.log 2>&1
+ "$PM2_BIN" restart "${name}" >> /Users/macstudio3/Projects/animals/logs/hawk.log 2>&1
fi
}
diff --git a/src/scripts/import_pet_photos_via_george.sh b/src/scripts/import_pet_photos_via_george.sh
index 713fbe2..b2438d4 100755
--- a/src/scripts/import_pet_photos_via_george.sh
+++ b/src/scripts/import_pet_photos_via_george.sh
@@ -7,8 +7,8 @@
# downloads each via the existing ingest:gdrive-pets npm script.
set -u
-cd /Users/stevestudio2/Projects/animals
-PATH=/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/Users/stevestudio2/.npm-global/bin
+cd /Users/macstudio3/Projects/animals
+PATH=/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/Users/macstudio3/.npm-global/bin
export PATH
GEORGE="http://localhost:9850"
diff --git a/src/scripts/mockup-watchdog.sh b/src/scripts/mockup-watchdog.sh
index b5486df..29cd864 100755
--- a/src/scripts/mockup-watchdog.sh
+++ b/src/scripts/mockup-watchdog.sh
@@ -8,7 +8,7 @@
# Logs to: ~/Projects/animals/logs/mockup-watchdog.log (rotated by cap)
set -uo pipefail
-PROJECT=/Users/stevestudio2/Projects/animals
+PROJECT=/Users/macstudio3/Projects/animals
LOG="$PROJECT/logs/mockup-watchdog.log"
mkdir -p "$(dirname "$LOG")"
diff --git a/src/scripts/weekly-refresh.sh b/src/scripts/weekly-refresh.sh
index 85a2bba..13c3163 100755
--- a/src/scripts/weekly-refresh.sh
+++ b/src/scripts/weekly-refresh.sh
@@ -12,7 +12,7 @@
# Each subprocess gets its own .log too so failures isolate.
set -u
-cd /Users/stevestudio2/Projects/animals
+cd /Users/macstudio3/Projects/animals
PATH=/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin
export PATH
← d2da3c7 Untrack committed .log files and ignore *.pre-* backups
·
back to Animals
·
animals: basic-auth creds admin/DW2024!; deployed on mac3:97 a4bf2fe →