{"slug":"Norma-platform","total":628,"limit":100,"offset":0,"since":null,"commits":[{"hash":"2626361","date":"2026-09-14 14:02:51 -0700","author":"Steve Abrams","subject":"Stop video re-bloat on feature branch: gitignore cta/rec + demos videos (TK-11533)","body":"27 demo/CTA videos were staged to commit on this branch with no gitignore rule\n— committing them would re-bloat the shared .git object store the main-branch\npurge just shrank (1.1G->168M). Unstage them (files kept on disk) + gitignore,\nmatching main's e6e5582.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"437e1dc","date":"2026-09-10 13:15:47 -0700","author":"Steve Abrams","subject":"Add donation refund reconciliation slice (TK-11335 Section A, local-safe)","body":"Sandbox-only mock provider refund ingest, mirroring the shipped one-time\nreconciliation rails. No money moves; real keys, live signature-verified\nwebhooks, card collection, recurring billing, receipts, and prod deploy all\nremain gated milestone-2 work.\n\n- migration 030: append-only org-scoped organizing_donation_refunds ledger\n  (cents, UNIQUE(org,provider,refund_ref) idempotency, FK->donations CASCADE),\n  because a charge can be partially refunded multiple times.\n- ingestRefund(): throws outside the sandbox; org from the authenticated scope\n  never a payload field; locks the target contribution FOR UPDATE so concurrent\n  refunds are serialized and can't over-refund past the unrefunded balance\n  (rejects over-balance 400); 404 on unknown/cross-tenant ref.\n- idempotency is identity-guarded (Cody red-team fix): a refund_ref already\n  recorded against a DIFFERENT contribution is a 409 conflict, never a false\n  \"idempotent success\" that silently drops the caller's refund. Guard applied to\n  both the pre-insert dup check and the 23505 savepoint recovery.\n- refunds netted into report + workspace stats + Insights card\n  (refunded_cents, net_received_cents). Pledge match left intact; auto-releasing\n  a fulfilled pledge on full refund deferred to milestone 2.\n- tests: partial-nets, idempotent, over-balance 400, unknown-ref 404,\n  tenant-scope 404, sequential cross-donation reuse 409, concurrent race\n  (one 200 / one 409); sandbox-gate 409; migration 030 wired into harness.\n  17/17 campaign integration journeys pass; tsc clean; eslint 0 errors.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"2c3739d","date":"2026-09-09 16:04:10 -0700","author":"Steve Abrams","subject":"chore: lint, refactor, v0.2.0 (session close)","body":"Lint clean (0 errors). Refactor: consolidated duplicate validation import in\nreconcile.ts (behavior-preserving). Minor bump for the two backward-compatible\nfeatures shipped this session (verified consent, donation reconciliation).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01LTfwQCiPbW99SJV5RYRe4L"},{"hash":"b18aac0","date":"2026-09-09 15:59:52 -0700","author":"Steve Abrams","subject":"Add donation reconciliation slice (TK-11335 Section A, local-safe)","body":"Links a pledge (giving intention) to the real donation that fulfills it, with\nNO money movement. Reviewed by the contrarian (Cody) before commit; all three\nof its FIX-FIRST findings folded in and re-verified.\n\n- Migration 029: org-scoped organizing_donations ledger (cents), idempotent on\n  (org, provider, provider_ref). A partial UNIQUE index on matched_participation_id\n  makes one-time reconciliation race-proof (a pledge is fulfilled by at most one\n  donation). Deliberately separate from the legacy non-tenant `donations` table\n  to preserve tenant isolation.\n- lib/campaigns/reconcile.ts: deterministic FIFO matcher for ONE-TIME giving\n  (org + email + exact amount, pledge-before-donation), with a savepoint/23505\n  catch so a concurrent race leaves a donation honestly unattributed rather than\n  double-counting. Recurring (monthly) reconciliation is intentionally deferred\n  to milestone 2 (one-to-many) — monthly donations show as unattributed, never\n  falsely matched. ingestDonation is SANDBOX-ONLY (throws outside sandbox), uses\n  the authenticated scope.org (never a payload org), and accepts a validated\n  provider donated_at.\n- GET /api/campaigns/reconcile + POST /donations/ingest; workspace reconcile\n  totals; a \"Giving reconciliation\" Insights card; RUNBOOK boundaries updated.\n\nSection B (real Stripe/ActBlue keys, live signature-verified webhook transport,\ncard collection/recurring billing/refunds/receipts, prod deploy) stays gated.\n\nVerified on a fresh build: tsc clean, eslint 0 errors, 16/16 API journeys\n(match, idempotency, one-to-one, monthly-deferred, donated_at, tenant-scope),\n8/8 Chromium+WebKit browser, production-default gate (ingest 409 outside sandbox).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01LTfwQCiPbW99SJV5RYRe4L"},{"hash":"6d61307","date":"2026-09-09 15:19:14 -0700","author":"Steve Abrams","subject":"Apply consent red-team fixes: fail-closed token secret + per-IP rate limit","body":"Cody (contrarian) red-team of the verified-consent slice surfaced two real\nholes; both fixed and re-verified:\n\n1. Token signing now FAILS CLOSED on a missing SESSION_SECRET (secret()\n   helper) instead of falling back to the literal 'invalid' — that fallback\n   would have minted a publicly-computable, forgeable consent token in a\n   misconfigured deploy. SESSION_SECRET already underpins the auth cookies,\n   so a real deployment always has it.\n2. Public /api/consent (confirm/unsubscribe) now carries the same per-IP\n   rate limiter as every other public write (consentRateLimit, 60/5min),\n   reusing intake.ts's proven organizing_intake_limits pattern.\n3. RUNBOOK documents that NORMA_PUBLIC_ORIGIN MUST be pinned before a live\n   email provider is wired (Host-header phishing vector; moot while dispatch\n   is sandbox-only).\n\nRe-verified on a fresh build with the fixes on disk: tsc clean, eslint 0\nerrors, 15/15 API journeys, 8/8 Chromium+WebKit browser tests, and the\nproduction-default gate (dispatcher refused outside sandbox). Verification\nevidence refreshed.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01LTfwQCiPbW99SJV5RYRe4L"},{"hash":"f6bd2e4","date":"2026-09-09 14:57:28 -0700","author":"Steve Abrams","subject":"Add verified-consent state machine, immutable log, and sandbox-only mock provider","body":"TK-11334 local-safe slice: supporter consent_state (none->pending->confirmed,\nsticky unsubscribe, bounce->suppressed) with an append-only organizing_consent_events\nlog (BEFORE-UPDATE trigger enforces immutability). Public token-gated confirm/unsubscribe\n(/api/consent + /act/consent) and an organizer Send-confirmation dispatch that is a\nsandbox-only MOCK provider — deterministic delivered/bounced/failed result, logged, never\nsends live and throws outside the sandbox. Live email provider transmission stays gated.\nVerified: tsc, eslint 0 errors, 15/15 API journeys, 8/8 Chromium+WebKit browser tests,\nfull pre-deploy gate green, and the non-sandbox dispatch-gate check.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01VW8Ux2uR4hRuoTSPL62rPP"},{"hash":"f1431e1","date":"2026-09-09 13:59:30 -0700","author":"Steve Abrams","subject":"Refresh campaign verification after field assignment update","body":""},{"hash":"fba8ff6","date":"2026-09-09 13:59:12 -0700","author":"Steve Abrams","subject":"Add local field assignment and shift planning to campaign follow-ups","body":""},{"hash":"1e82ed2","date":"2026-09-09 13:12:00 -0700","author":"Steve Abrams","subject":"Capture populated campaign preview at desktop width","body":""},{"hash":"4de7056","date":"2026-09-09 13:11:16 -0700","author":"Steve Abrams","subject":"Record campaign browser proof and explicit provider integration gaps","body":""},{"hash":"c2e108f","date":"2026-09-09 13:04:26 -0700","author":"Steve Abrams","subject":"Build unified campaign workspace with five action journeys and supporter history","body":""},{"hash":"1113c0b","date":"2026-09-09 11:12:55 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-09T11:09:48 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"fc631f6","date":"2026-09-09 10:30:10 -0700","author":"Steve Abrams","subject":"Update Norma UX evidence from isolated run","body":""},{"hash":"d02cb54","date":"2026-09-09 10:07:24 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-09T10:04:38 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"2f246a7","date":"2026-09-09 09:34:37 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-09T09:32:15 (4 data files) — agents/instagram-agent/public/ig-activity.json cta/CTA-REPORT.md cta/cta-mini.json cta/route-check.json","body":""},{"hash":"152d007","date":"2026-09-09 09:02:14 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-09T08:59:31 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"3d903d4","date":"2026-09-09 08:52:21 -0700","author":"Steve Abrams","subject":"Record Norma UX browser evidence","body":""},{"hash":"f3552f7","date":"2026-09-09 08:29:30 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-09T08:26:36 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"b70d36d","date":"2026-09-09 07:46:27 -0700","author":"Steve Abrams","subject":"Clear Norma release lint and type gate","body":""},{"hash":"55fb2ea","date":"2026-09-09 07:42:10 -0700","author":"Steve Abrams","subject":"Clean lint autofix whitespace","body":""},{"hash":"494dad3","date":"2026-09-09 07:41:55 -0700","author":"Steve Abrams","subject":"Align Norma lint toolchain and autofix safe issues","body":""},{"hash":"318ab90","date":"2026-09-08 20:54:15 -0700","author":"Steve Abrams","subject":"Make session secret narrowing explicit","body":""},{"hash":"9a97f8a","date":"2026-09-08 20:53:39 -0700","author":"Steve Abrams","subject":"Harden Norma OAuth webhooks and release checks","body":""},{"hash":"db3be27","date":"2026-09-08 20:13:13 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-08T20:11:26 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"ac03652","date":"2026-09-08 19:41:25 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-08T19:39:23 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"ddd386c","date":"2026-09-08 19:09:22 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-08T19:07:26 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"4fe632a","date":"2026-09-08 18:37:25 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-08T18:35:21 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"fc89a41","date":"2026-09-08 18:05:20 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-08T18:03:25 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"f133f55","date":"2026-09-08 15:44:08 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-08T15:35:04 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"40c5bce","date":"2026-09-08 15:05:03 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-08T14:56:20 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"6911c0e","date":"2026-09-08 14:26:19 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-08T14:18:02 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"f71b9c3","date":"2026-09-08 13:48:01 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-08T13:39:29 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"d63f76f","date":"2026-09-08 13:09:27 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-08T12:55:25 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"158d3c0","date":"2026-09-08 12:25:24 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-08T12:16:02 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"d40b9cc","date":"2026-09-08 11:46:00 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-08T11:37:41 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"4d4f9ab","date":"2026-09-08 11:07:40 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-08T10:58:37 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"bce4142","date":"2026-09-08 10:28:36 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-08T10:19:39 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"60a5e15","date":"2026-09-08 09:49:38 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-08T09:40:47 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"c3dbf27","date":"2026-09-08 09:10:46 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-08T09:02:39 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"44ce45b","date":"2026-09-08 08:32:37 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-08T08:24:00 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"5f0326a","date":"2026-09-07 19:49:14 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T19:41:38 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"a53f712","date":"2026-09-07 19:11:37 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T19:03:42 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"202b70e","date":"2026-09-07 18:33:41 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T18:25:33 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"5e9b350","date":"2026-09-07 17:55:32 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T17:47:47 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"98efb14","date":"2026-09-07 17:17:46 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T17:09:46 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"b38bcfa","date":"2026-09-07 16:39:45 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T16:31:47 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"0e5da27","date":"2026-09-07 16:01:45 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T15:53:48 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"81a0af5","date":"2026-09-07 15:23:47 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T15:15:55 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"c350475","date":"2026-09-07 14:45:54 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T14:38:12 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"95c833a","date":"2026-09-07 14:08:11 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T14:00:10 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"2d6006f","date":"2026-09-07 13:30:09 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T13:22:13 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"ac0b501","date":"2026-09-07 12:52:12 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T12:38:54 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"8afe343","date":"2026-09-07 12:08:53 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T12:00:23 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"a95d93f","date":"2026-09-07 11:30:22 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T11:21:50 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"d8fcf78","date":"2026-09-07 10:51:49 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T10:43:18 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"bb2e932","date":"2026-09-07 10:13:16 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T10:04:46 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"3c2ed32","date":"2026-09-07 09:34:44 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T09:25:49 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"d46e7c0","date":"2026-09-07 08:55:48 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T08:47:31 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"b01709d","date":"2026-09-07 08:17:30 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-07T08:09:05 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"2e29d6c","date":"2026-09-05 20:24:55 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-05T20:16:42 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"1c38344","date":"2026-09-05 19:46:41 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-05T19:38:25 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"de727f8","date":"2026-09-05 19:08:24 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-05T19:00:09 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"9289eee","date":"2026-09-05 18:30:08 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-05T18:21:36 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"689ad59","date":"2026-09-05 17:51:34 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-05T17:43:09 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"b09567d","date":"2026-09-05 15:18:20 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-05T15:09:59 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"5e6cde3","date":"2026-09-05 14:39:57 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-05T14:31:27 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"afcd15f","date":"2026-09-05 14:01:25 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-05T13:53:26 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"6024213","date":"2026-09-05 13:23:25 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-05T13:15:00 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"faf4a41","date":"2026-09-05 12:44:59 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-05T12:36:37 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"c79f07f","date":"2026-09-05 12:06:35 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-05T11:58:24 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"833ccff","date":"2026-09-05 11:28:23 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-05T11:20:09 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"f29b440","date":"2026-09-05 10:50:08 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-05T10:42:02 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"219ac64","date":"2026-09-05 10:12:00 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-05T10:03:39 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"df6fe09","date":"2026-09-05 09:33:38 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-05T09:24:41 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"d368c38","date":"2026-09-05 08:54:40 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-05T08:46:42 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"eaf7175","date":"2026-09-04 20:07:34 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-04T19:59:19 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"f927685","date":"2026-09-04 19:29:18 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-04T19:20:56 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"b0d2997","date":"2026-09-04 18:50:54 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-04T18:42:47 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"3c23058","date":"2026-09-04 18:12:45 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-04T18:04:25 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"fa4859a","date":"2026-09-04 17:34:24 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-04T17:26:14 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"baf3fb9","date":"2026-09-04 15:39:47 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-04T15:31:50 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"360fef9","date":"2026-09-04 15:01:49 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-04T14:52:10 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"784b4b9","date":"2026-09-04 14:22:09 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-04T14:13:19 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"08fe7b6","date":"2026-09-04 13:43:18 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-04T13:35:12 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"2b32aed","date":"2026-09-04 13:05:11 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-04T12:55:58 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"2b2cdb9","date":"2026-09-04 12:25:57 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-04T12:10:54 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"c4439f7","date":"2026-09-04 11:40:53 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-04T11:31:34 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"40ad919","date":"2026-09-04 11:01:32 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-04T10:48:46 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"e650624","date":"2026-09-04 10:18:45 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-04T10:10:38 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"105b658","date":"2026-09-04 09:19:16 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-04T09:09:45 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"35f1921","date":"2026-09-04 08:39:40 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-04T08:26:29 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"531a4a4","date":"2026-09-03 20:18:09 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-03T20:10:09 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"a2a082e","date":"2026-09-03 19:40:08 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-03T19:32:13 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"66e15b3","date":"2026-09-03 19:02:12 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-03T18:54:12 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"0d3e889","date":"2026-09-03 18:24:11 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-03T18:17:45 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"3e9fbec","date":"2026-09-03 17:47:44 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-03T17:39:42 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"381eecd","date":"2026-09-03 15:53:16 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-03T15:45:08 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"6843c46","date":"2026-09-03 15:15:06 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-03T15:07:41 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"6bba4fa","date":"2026-09-03 14:37:40 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-03T14:29:24 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""},{"hash":"8d6ad09","date":"2026-09-03 13:59:21 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-03T13:47:49 (1 data files) — agents/instagram-agent/public/ig-activity.json","body":""}]}