← back to Norma Platform
chore: lint fixes (surface local feed write errors, non-blocking intra-batch sleep) + version bump (session close)
aa2a34be7dea14a3b8bb9e7869b37fe4fc3e3567 · 2026-08-12 07:42:22 -0700 · Steve Abrams
Files touched
M agents/instagram-agent/daily-cadence.jsM agents/instagram-agent/gen-ig-activity.jsM agents/instagram-agent/package.json
Diff
commit aa2a34be7dea14a3b8bb9e7869b37fe4fc3e3567
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Wed Aug 12 07:42:22 2026 -0700
chore: lint fixes (surface local feed write errors, non-blocking intra-batch sleep) + version bump (session close)
---
agents/instagram-agent/daily-cadence.js | 4 ++--
agents/instagram-agent/gen-ig-activity.js | 15 ++++++++++++---
agents/instagram-agent/package.json | 2 +-
3 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/agents/instagram-agent/daily-cadence.js b/agents/instagram-agent/daily-cadence.js
index 754f15c..827b1cb 100644
--- a/agents/instagram-agent/daily-cadence.js
+++ b/agents/instagram-agent/daily-cadence.js
@@ -96,7 +96,7 @@ async function findProduct(keyword) {
}
console.log(`Daily cadence ${today} — ${postedToday.size}/${eligible.length} done, posting next ${batch.length}${DRY ? ' (DRY)' : ''}:`);
- const sleep = (ms) => cp.execFileSync('sleep', [String(ms / 1000)]);
+ const sleep = (ms) => new Promise((res) => setTimeout(res, ms));
for (let i = 0; i < batch.length; i++) {
const b = batch[i];
if (DRY) { console.log(` @${b.account} ← ${b.title} [${b.product}]`); continue; }
@@ -110,7 +110,7 @@ async function findProduct(keyword) {
break;
}
console.log(/posted/i.test(out) ? ` ✓ @${b.account} ← ${b.title}` : ` ⚠ @${b.account} — ${out.trim().split('\n').pop()}`);
- if (i < batch.length - 1) sleep(3000); // pace within batch
+ if (i < batch.length - 1) await sleep(3000); // pace within batch
}
if (needsCody.length) console.log(`Deferred to Cody (settlement-sensitive, gated visual pass): ${needsCody.join(', ')}`);
console.log(`Remaining after this batch: ${remaining.length - batch.length}`);
diff --git a/agents/instagram-agent/gen-ig-activity.js b/agents/instagram-agent/gen-ig-activity.js
index 8935e99..ef2a2ff 100644
--- a/agents/instagram-agent/gen-ig-activity.js
+++ b/agents/instagram-agent/gen-ig-activity.js
@@ -35,14 +35,23 @@ const out = {
posts,
};
-const targets = [
+// Local feed paths are REQUIRED — a failed write here (disk/permission) must surface,
+// not silently stale the feed. The Kamatera MCC path is best-effort (host may lack it).
+const required = [
path.join(HERE, 'data', 'ig-activity.json'),
path.join(HERE, 'public', 'ig-activity.json'),
+];
+const optional = [
path.join(process.env.HOME, 'Projects', 'marketing-command-center', 'public', 'ig-activity.json'),
];
-for (const t of targets) {
+for (const t of required) {
+ fs.mkdirSync(path.dirname(t), { recursive: true });
+ fs.writeFileSync(t, JSON.stringify(out, null, 2));
+ console.log('wrote', t);
+}
+for (const t of optional) {
try { fs.mkdirSync(path.dirname(t), { recursive: true }); fs.writeFileSync(t, JSON.stringify(out, null, 2)); console.log('wrote', t); }
- catch (e) { /* MCC may not exist on every host */ }
+ catch (e) { /* MCC may not exist on this host */ }
}
console.log(`ig-activity: ${out.total_posts} posts across ${out.accounts_touched} accounts`);
diff --git a/agents/instagram-agent/package.json b/agents/instagram-agent/package.json
index e765df2..e8a0ad0 100644
--- a/agents/instagram-agent/package.json
+++ b/agents/instagram-agent/package.json
@@ -1,6 +1,6 @@
{
"name": "norma-instagram-agent",
- "version": "1.1.0",
+ "version": "1.1.1",
"description": "Norma Instagram Agent — Posts, Reels, and Stories via Meta Graph API",
"main": "server.js",
"scripts": {
← 2fa68ee daily-cadence: ffepurchasing -> woven texture (broader clean
·
back to Norma Platform
·
auto-data-snapshot: 2026-08-12T07:52:17 (1 data files) — age b83f617 →