[object Object]

← back to Marketing Command Center

auto-data-snapshot: 2026-09-26T08:50:16 (3 data files) — data/com.steve.dw-follow-counts.plist.bak-TK-12008 data/follow-counts-history.json.bak-TK-12008 public/ig-activity.json

c82763cdd20f27d2e0175f2c9c1f97ba6a6bde46 · 2026-09-26 08:50:45 -0700 · auto-commit-fleet

Files touched

Diff

commit c82763cdd20f27d2e0175f2c9c1f97ba6a6bde46
Author: auto-commit-fleet <steve@designerwallcoverings.com>
Date:   Sat Sep 26 08:50:45 2026 -0700

    auto-data-snapshot: 2026-09-26T08:50:16 (3 data files) — data/com.steve.dw-follow-counts.plist.bak-TK-12008 data/follow-counts-history.json.bak-TK-12008 public/ig-activity.json
---
 data/com.steve.dw-follow-counts.plist.bak-TK-12008 |  39 ++
 data/follow-counts-history.json.bak-TK-12008       | 579 +++++++++++++++++++++
 public/ig-activity.json                            |  62 ++-
 3 files changed, 673 insertions(+), 7 deletions(-)

diff --git a/data/com.steve.dw-follow-counts.plist.bak-TK-12008 b/data/com.steve.dw-follow-counts.plist.bak-TK-12008
new file mode 100644
index 0000000..1cbd073
--- /dev/null
+++ b/data/com.steve.dw-follow-counts.plist.bak-TK-12008
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  STAGED — NOT loaded. Once-daily Followers/Following snapshot for the DW Marketing
+  Command Center. Captures each DW IG account's followers_count + follows_count via
+  Norma's instagram-agent (:9810) and persists one row/day so growth charts.
+
+  Local install (Mac2), when Steve approves:
+    cp deploy/com.steve.dw-follow-counts.plist ~/Library/LaunchAgents/
+    launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.steve.dw-follow-counts.plist
+  Verify:  launchctl list | grep dw-follow-counts
+  Run now: launchctl kickstart gui/$(id -u)/com.steve.dw-follow-counts
+
+  Runs daily at 06:05 local (RunAtLoad so a missed forced-sleep day still fires on
+  next login — see MEMORY: keepawake does not block power-button sleep).
+-->
+<plist version="1.0">
+<dict>
+  <key>Label</key>
+  <string>com.steve.dw-follow-counts</string>
+  <key>ProgramArguments</key>
+  <array>
+    <string>/opt/homebrew/bin/node</string>
+    <string>/Users/macstudio3/Projects/marketing-command-center/scripts/follow-counts-snapshot.js</string>
+  </array>
+  <key>WorkingDirectory</key>
+  <string>/Users/macstudio3/Projects/marketing-command-center</string>
+  <key>RunAtLoad</key>
+  <true/>
+  <key>StartCalendarInterval</key>
+  <dict>
+    <key>Hour</key><integer>6</integer>
+    <key>Minute</key><integer>5</integer>
+  </dict>
+  <key>StandardOutPath</key>
+  <string>/Users/macstudio3/Projects/marketing-command-center/data/follow-counts-snapshot.out</string>
+  <key>StandardErrorPath</key>
+  <string>/Users/macstudio3/Projects/marketing-command-center/data/follow-counts-snapshot.err</string>
+</dict>
+</plist>
diff --git a/data/follow-counts-history.json.bak-TK-12008 b/data/follow-counts-history.json.bak-TK-12008
new file mode 100644
index 0000000..5c60c4c
--- /dev/null
+++ b/data/follow-counts-history.json.bak-TK-12008
@@ -0,0 +1,579 @@
+{
+  "designerwallcoverings": [
+    {
+      "date": "2026-06-24",
+      "ts": "2026-06-24T19:17:18.370Z",
+      "followers": 2572,
+      "following": 54,
+      "media": 130,
+      "simulated": true,
+      "source": "norma:monitor"
+    },
+    {
+      "date": "2026-06-25",
+      "ts": "2026-06-25T13:05:05.207Z",
+      "followers": 3157,
+      "following": 91,
+      "media": 147,
+      "simulated": true,
+      "source": "norma:monitor"
+    },
+    {
+      "date": "2026-06-26",
+      "ts": "2026-06-26T19:02:37.793Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-06-27",
+      "ts": "2026-06-27T13:05:02.886Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-06-28",
+      "ts": "2026-06-28T13:05:05.743Z",
+      "followers": 721,
+      "following": 208,
+      "media": 200,
+      "simulated": true,
+      "source": "norma:monitor"
+    },
+    {
+      "date": "2026-06-29",
+      "ts": "2026-06-29T21:22:23.483Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-06-30",
+      "ts": "2026-06-30T15:08:41.109Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-07-01",
+      "ts": "2026-07-01T21:06:36.738Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-07-02",
+      "ts": "2026-07-02T14:15:20.529Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-07-03",
+      "ts": "2026-07-03T19:13:09.780Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-07-04",
+      "ts": "2026-07-04T13:05:01.880Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-07-05",
+      "ts": "2026-07-05T13:05:00.340Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-07-06",
+      "ts": "2026-07-06T13:05:03.717Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-07-07",
+      "ts": "2026-07-07T13:05:05.705Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-07-08",
+      "ts": "2026-07-08T13:05:05.636Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-07-09",
+      "ts": "2026-07-09T13:05:04.653Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-07-10",
+      "ts": "2026-07-10T17:51:52.389Z",
+      "followers": 659,
+      "following": 161,
+      "media": 189,
+      "simulated": true,
+      "source": "norma:monitor"
+    },
+    {
+      "date": "2026-07-11",
+      "ts": "2026-07-11T13:05:03.465Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-12",
+      "ts": "2026-07-12T13:05:05.903Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-13",
+      "ts": "2026-07-13T13:05:03.177Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-14",
+      "ts": "2026-07-14T13:05:05.506Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-15",
+      "ts": "2026-07-15T13:05:05.516Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-16",
+      "ts": "2026-07-16T13:05:04.988Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-17",
+      "ts": "2026-07-17T13:05:05.073Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-18",
+      "ts": "2026-07-18T13:05:04.755Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-19",
+      "ts": "2026-07-19T13:05:04.591Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-20",
+      "ts": "2026-07-20T13:05:04.690Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-21",
+      "ts": "2026-07-21T13:05:00.064Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-22",
+      "ts": "2026-07-22T13:05:03.297Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-23",
+      "ts": "2026-07-23T13:05:05.290Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-24",
+      "ts": "2026-07-24T13:05:02.837Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-25",
+      "ts": "2026-07-25T13:05:05.247Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-26",
+      "ts": "2026-07-26T13:05:01.366Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-27",
+      "ts": "2026-07-27T13:05:04.797Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-28",
+      "ts": "2026-07-28T13:05:02.761Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-29",
+      "ts": "2026-07-29T13:05:03.887Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-07-30",
+      "ts": "2026-07-30T13:05:03.089Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-07-31",
+      "ts": "2026-07-31T13:05:05.103Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-08-01",
+      "ts": "2026-08-01T13:05:05.113Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-08-02",
+      "ts": "2026-08-02T13:05:05.102Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-08-03",
+      "ts": "2026-08-03T13:05:05.013Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-08-04",
+      "ts": "2026-08-04T13:05:05.106Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-08-05",
+      "ts": "2026-08-05T13:05:05.502Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-08-06",
+      "ts": "2026-08-06T13:05:03.502Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-08-07",
+      "ts": "2026-08-07T13:05:05.854Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-08-08",
+      "ts": "2026-08-08T16:04:58.019Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-08-09",
+      "ts": "2026-08-09T13:05:04.494Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-08-10",
+      "ts": "2026-08-10T13:05:04.821Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-08-11",
+      "ts": "2026-08-11T13:05:05.056Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-08-12",
+      "ts": "2026-08-12T13:05:05.020Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-08-13",
+      "ts": "2026-08-13T13:05:05.660Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-08-14",
+      "ts": "2026-08-14T19:01:35.684Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-08-15",
+      "ts": "2026-08-15T15:00:55.669Z",
+      "followers": 14928,
+      "following": 7567,
+      "media": 5478,
+      "simulated": false,
+      "source": "norma:monitor"
+    },
+    {
+      "date": "2026-09-22",
+      "ts": "2026-09-22T17:30:45.872Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-09-23",
+      "ts": "2026-09-23T13:05:04.743Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-09-24",
+      "ts": "2026-09-24T13:05:05.038Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Invalid credentials"
+    },
+    {
+      "date": "2026-09-25",
+      "ts": "2026-09-25T22:32:13.777Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    },
+    {
+      "date": "2026-09-26",
+      "ts": "2026-09-26T13:05:05.270Z",
+      "followers": null,
+      "following": null,
+      "media": null,
+      "simulated": true,
+      "source": "norma-error",
+      "error": "Norma unreachable: fetch failed"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/public/ig-activity.json b/public/ig-activity.json
index bd525ff..3a733bf 100644
--- a/public/ig-activity.json
+++ b/public/ig-activity.json
@@ -1,9 +1,13 @@
 {
-  "generated_at": "2026-09-26T15:11:46.444Z",
-  "total_posts": 2507,
+  "generated_at": "2026-09-26T15:49:43.251Z",
+  "total_posts": 2511,
   "accounts_touched": 30,
-  "last_post_at": "2026-09-26T15:11:46.381Z",
+  "last_post_at": "2026-09-26T15:49:43.140Z",
   "by_account": {
+    "linenwallpaper": 122,
+    "interiordesignervideos": 113,
+    "hollywoodwallcoverings": 127,
+    "grassclothwallpaper": 72,
     "ffepurchasing": 121,
     "fabric_fridays": 124,
     "borninbeverlyhills": 120,
@@ -15,10 +19,6 @@
     "philliperomanodesigns": 118,
     "patterndesignlab": 114,
     "metallicwallpaper": 119,
-    "linenwallpaper": 121,
-    "interiordesignervideos": 112,
-    "hollywoodwallcoverings": 126,
-    "grassclothwallpaper": 71,
     "suedewallpaper": 65,
     "hospitalitywallcoverings": 94,
     "commercialwallcoverings": 118,
@@ -36,6 +36,54 @@
     "beverlyhillsvideos": 2
   },
   "posts": [
+    {
+      "ts": "2026-09-26T15:49:43.140Z",
+      "handle": "linenwallpaper",
+      "page_name": "Linen Wallpaper",
+      "product_handle": "rue-linen-petrol-sanderson",
+      "product_title": "Rue Linen Petrol | Sanderson",
+      "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DRLC237055_407b.jpg?v=1789301950",
+      "images": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/DRLC237055_407b.jpg?v=1789301950",
+      "permalink": "https://www.instagram.com/p/DdwZRh2mHtR/",
+      "media_id": "18113539528836322",
+      "kind": "IMAGE"
+    },
+    {
+      "ts": "2026-09-26T15:49:10.907Z",
+      "handle": "interiordesignervideos",
+      "page_name": "Interior Designer Videos",
+      "product_handle": "paradise-palm-coastal-blue-wallcovering-malibu-wallpaper",
+      "product_title": "Paradise Palm - Coastal Blue Wallcovering | Malibu Wallcovering",
+      "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/0070013_paradise-palm-coastal-blue_650_1b882bdf-083f-4f61-842f-e7e0b179b9c1.jpg?v=1776906749",
+      "images": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/0070013_paradise-palm-coastal-blue_650_1b882bdf-083f-4f61-842f-e7e0b179b9c1.jpg?v=1776906749",
+      "permalink": "https://www.instagram.com/p/DdwZNz4mGoU/",
+      "media_id": "17959447560244492",
+      "kind": "IMAGE"
+    },
+    {
+      "ts": "2026-09-26T15:48:49.473Z",
+      "handle": "hollywoodwallcoverings",
+      "page_name": "Hollywood Wallcoverings",
+      "product_handle": "hollywood-glitter-wallcovering-chrome",
+      "product_title": "Hollywood Glitter - Chrome | Glitter Walls",
+      "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ScreenShot2022-06-29at12.31.00PM.png?v=1748366515",
+      "images": "https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ScreenShot2022-06-29at12.31.00PM.png?v=1748366515",
+      "permalink": "https://www.instagram.com/p/DdwZLb2GKus/",
+      "media_id": "18009451385994587",
+      "kind": "IMAGE"
+    },
+    {
+      "ts": "2026-09-26T15:48:29.048Z",
+      "handle": "grassclothwallpaper",
+      "page_name": "Wallpaper Weekly",
+      "product_handle": "nantucket-grasscloth-grey-brown-wallcovering-phillipe-romano",
+      "product_title": "Nantucket Grasscloth Grey Brown Wallcovering | Phillipe Romano",
+      "image_url": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/f679a8d9c2b56f6bb3e7a064defe77b4.jpg?v=1784214062",
+      "images": "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/8916e7e576e85c1a28ae4231f99de30b.png?v=1784214062,https://cdn.shopify.com/s/files/1/0015/4117/7456/files/f679a8d9c2b56f6bb3e7a064defe77b4.jpg?v=1784214062",
+      "permalink": "https://www.instagram.com/p/DdwZIP_GG7G/",
+      "media_id": "18142798057503393",
+      "kind": "CAROUSEL"
+    },
     {
       "ts": "2026-09-26T15:11:46.381Z",
       "handle": "ffepurchasing",

← 8377f04 follow-counts: write no row on failure + exit 2 (no SIMULATE  ·  back to Marketing Command Center  ·  follow-counts: read Norma auth from secrets-manager IG_AGENT f88c44a →