[object Object]

← back to Pm2 Migration

chore: macstudio3 migration — reconcile from mac2 + repoint paths (stevestudio2→macstudio3, node/npm/npx→/opt/homebrew)

cc9d59ebe5774ce1db1643a2458d644873d56c7a · 2026-07-03 08:08:09 -0700 · Steve

Files touched

Diff

commit cc9d59ebe5774ce1db1643a2458d644873d56c7a
Author: Steve <steve@designerwallcoverings.com>
Date:   Fri Jul 3 08:08:09 2026 -0700

    chore: macstudio3 migration — reconcile from mac2 + repoint paths (stevestudio2→macstudio3, node/npm/npx→/opt/homebrew)
---
 ecosystem.config.cjs   | 268 ++++++++++++++++++++++++-------------------------
 migrate.sh             |   2 +-
 processes.json         |   6 +-
 root-shim.js           |   4 +-
 start-tunnels.sh       |   2 +-
 state/norma-email.json |   2 +-
 6 files changed, 142 insertions(+), 142 deletions(-)

diff --git a/ecosystem.config.cjs b/ecosystem.config.cjs
index 44dc3c3..2f28a85 100644
--- a/ecosystem.config.cjs
+++ b/ecosystem.config.cjs
@@ -2,49 +2,49 @@ module.exports = {
   apps: [
     {
       "name": "george-gmail",
-      "cwd": "/Users/stevestudio2/Projects/george-gmail",
+      "cwd": "/Users/macstudio3/Projects/george-gmail",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "slack-dm-viewer",
-      "cwd": "/Users/stevestudio2/Projects/slack-dm-viewer",
+      "cwd": "/Users/macstudio3/Projects/slack-dm-viewer",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "archive-agent",
-      "cwd": "/Users/stevestudio2/Projects/archive-agent",
+      "cwd": "/Users/macstudio3/Projects/archive-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "resize-it",
-      "cwd": "/Users/stevestudio2/Projects/resize-it",
+      "cwd": "/Users/macstudio3/Projects/resize-it",
       "script": "server.py",
       "interpreter": "python3",
       "autorestart": true,
@@ -53,582 +53,582 @@ module.exports = {
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "timeout-agent",
-      "cwd": "/Users/stevestudio2/Projects/timeout-agent",
+      "cwd": "/Users/macstudio3/Projects/timeout-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "sku-check-skill",
-      "cwd": "/Users/stevestudio2/Projects/sku-check-skill",
+      "cwd": "/Users/macstudio3/Projects/sku-check-skill",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "plumbing-agent",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/plumbing-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/plumbing-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "update-sku-agent",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/update-sku-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/update-sku-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "vendor-discount-agent",
-      "cwd": "/Users/stevestudio2/Projects/vendor-discount-agent",
+      "cwd": "/Users/macstudio3/Projects/vendor-discount-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "claudette-agent",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/claudette-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/claudette-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "dex-dedup-agent",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/dex-dedup-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/dex-dedup-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "gemini-classifier",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/scripts",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/scripts",
       "script": "gemini-texture-classify-loop.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "am-recrawl",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/vendor-scrapers",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/vendor-scrapers",
       "script": "scrape-andrewmartin.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "blog-agent",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/blog-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/blog-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror",
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror",
         "PORT": "9971"
       }
     },
     {
       "name": "color-search",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/color-search",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/color-search",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "cost-hunter",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/cost-hunter",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/cost-hunter",
       "script": "cost-hunter.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "dex-hash-backfill",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/dex-dedup-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/dex-dedup-agent",
       "script": "hash-worker.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "dw-central",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/dw-central",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/dw-central",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "full-monty-agent",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/full-monty-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/full-monty-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "gap-agent",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/gap-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/gap-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "gemini-tag-engine",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/Projects/Designer-Wallcoverings/shopify/scripts/gemini-tag-engine",
+      "cwd": "/Users/macstudio3/kamatera-mirror/Projects/Designer-Wallcoverings/shopify/scripts/gemini-tag-engine",
       "script": "index.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "gemini-catalog-tagger",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/Projects/Designer-Wallcoverings/shopify/scripts",
+      "cwd": "/Users/macstudio3/kamatera-mirror/Projects/Designer-Wallcoverings/shopify/scripts",
       "script": "gemini-catalog-tagger.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "graphic-agent",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/graphic-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/graphic-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "hormuz-orchestrator",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/hormuz-orchestrator",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/hormuz-orchestrator",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "launch-supervisor",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/launch-supervisor",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/launch-supervisor",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "product-agent",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/product-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/product-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "hawke",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/hawke-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/hawke-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "yolo-agent",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/yolo-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/yolo-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "silas-sku-agent",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/silas-sku-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/silas-sku-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "vendor-command-center",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/vendor-command-center",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/vendor-command-center",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "vendor-onboarding",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/vendor-onboarding-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/vendor-onboarding-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "room-setting-agent",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/room-setting-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/room-setting-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "shopify-expert-agent",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/shopify-expert-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/shopify-expert-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "shopify-queue-worker",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/shopify-queue-worker",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/shopify-queue-worker",
       "script": "worker.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "momentum-pricer",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/momentum-pricer",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/momentum-pricer",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "norma-bluesky",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/Projects/Norma/agents/bluesky-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/Projects/Norma/agents/bluesky-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "norma-email",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/Projects/Norma/node_modules/.bin",
+      "cwd": "/Users/macstudio3/kamatera-mirror/Projects/Norma/node_modules/.bin",
       "script": "next",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "norma-facebook",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/Projects/Norma/agents/facebook-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/Projects/Norma/agents/facebook-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "norma-instagram",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/Projects/Norma/agents/instagram-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/Projects/Norma/agents/instagram-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "norma-price",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/Projects/Norma/agents/price-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/Projects/Norma/agents/price-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "norma-twitter",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/Projects/Norma/agents/twitter-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/Projects/Norma/agents/twitter-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "arte-coverage-watch",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/Projects/Designer-Wallcoverings/DW-Programming",
+      "cwd": "/Users/macstudio3/kamatera-mirror/Projects/Designer-Wallcoverings/DW-Programming",
       "script": "arte-coverage-watch.sh",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "arte-rescrape-loop",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/Projects/Designer-Wallcoverings/DW-Programming",
+      "cwd": "/Users/macstudio3/kamatera-mirror/Projects/Designer-Wallcoverings/DW-Programming",
       "script": "arte-rescrape-loop.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "artie-agent",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/artie-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/artie-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     },
     {
       "name": "garrett",
-      "cwd": "/Users/stevestudio2/kamatera-mirror/DW-Agents/godaddy-agent",
+      "cwd": "/Users/macstudio3/kamatera-mirror/DW-Agents/godaddy-agent",
       "script": "server.js",
-      "node_args": "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js",
+      "node_args": "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js",
       "autorestart": true,
       "watch": false,
       "max_memory_restart": "500M",
       "env": {
         "NODE_ENV": "production",
         "LOCAL_MIGRATION": "1",
-        "KAMATERA_MIRROR": "/Users/stevestudio2/kamatera-mirror"
+        "KAMATERA_MIRROR": "/Users/macstudio3/kamatera-mirror"
       }
     }
   ],
diff --git a/migrate.sh b/migrate.sh
index fe8e531..e3f3330 100755
--- a/migrate.sh
+++ b/migrate.sh
@@ -23,7 +23,7 @@ KAMATERA_HOST="${KAMATERA_HOST:-45.61.58.125}"
 # Mirror Kamatera's /root/* layout under ~/kamatera-mirror/* so:
 #   - shared node_modules and sibling dirs (../shared/X) resolve via Node's normal lookup
 #   - hardcoded /root/* paths in agent code resolve via root-shim.js
-MIRROR_ROOT="${MIRROR_ROOT:-/Users/stevestudio2/kamatera-mirror}"
+MIRROR_ROOT="${MIRROR_ROOT:-/Users/macstudio3/kamatera-mirror}"
 KIT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
 STATE_DIR="$KIT_DIR/state"
 mkdir -p "$STATE_DIR"
diff --git a/processes.json b/processes.json
index 9aaa428..bdf79c7 100644
--- a/processes.json
+++ b/processes.json
@@ -97,8 +97,8 @@
     }
   },
   "local_layout": {
-    "projects_root": "/Users/stevestudio2/Projects",
-    "ecosystem_config": "/Users/stevestudio2/Projects/pm2-migration/ecosystem.local.cjs",
-    "logs_dir": "/Users/stevestudio2/.pm2/logs"
+    "projects_root": "/Users/macstudio3/Projects",
+    "ecosystem_config": "/Users/macstudio3/Projects/pm2-migration/ecosystem.local.cjs",
+    "logs_dir": "/Users/macstudio3/.pm2/logs"
   }
 }
diff --git a/root-shim.js b/root-shim.js
index dffa213..331eeea 100644
--- a/root-shim.js
+++ b/root-shim.js
@@ -1,10 +1,10 @@
 // pm2-migration/root-shim.js
 // Universal path-rewrite shim. Loaded via node --require so all fs calls
 // that reference Kamatera-style /root/... paths get transparently redirected
-// to /Users/stevestudio2/kamatera-mirror/...
+// to /Users/macstudio3/kamatera-mirror/...
 //
 // Used by every migrated agent in ecosystem.config.cjs as:
-//   node_args: "--require /Users/stevestudio2/Projects/pm2-migration/root-shim.js"
+//   node_args: "--require /Users/macstudio3/Projects/pm2-migration/root-shim.js"
 //
 // No agent code changes required. Add new dirs to MIRROR as needed.
 
diff --git a/start-tunnels.sh b/start-tunnels.sh
index 2c971ff..63de66b 100755
--- a/start-tunnels.sh
+++ b/start-tunnels.sh
@@ -37,7 +37,7 @@ sleep 1
 export AUTOSSH_POLL=30
 export AUTOSSH_GATETIME=0          # don't wait for first successful connection
 export AUTOSSH_LOGLEVEL=1          # errors only (was 4 = verbose — log spam source)
-export AUTOSSH_LOGFILE=/Users/stevestudio2/.pm2/logs/kamatera-tunnels.log
+export AUTOSSH_LOGFILE=/Users/macstudio3/.pm2/logs/kamatera-tunnels.log
 export AUTOSSH_MAXLIFETIME=43200   # recycle after 12h to clear lingering sockets
 
 # Dedup repeated identical stderr lines (port-bind / timeout spam during outages)
diff --git a/state/norma-email.json b/state/norma-email.json
index f6ec9e6..64d81c5 100644
--- a/state/norma-email.json
+++ b/state/norma-email.json
@@ -1 +1 @@
-{"name":"norma-email","cwd":"/root/Projects/Norma","script":"/root/Projects/Norma/node_modules/.bin/next","interpreter":"/usr/local/bin/node","args":["start","-p","7400"]}
+{"name":"norma-email","cwd":"/root/Projects/Norma","script":"/root/Projects/Norma/node_modules/.bin/next","interpreter":"/opt/homebrew/bin/node","args":["start","-p","7400"]}

← 4015728 broaden .gitignore to cover *.bak.* and *.pre-* snapshot fil  ·  back to Pm2 Migration  ·  (newest)