Overseer

Last regenerated just now (2026-07-30 15:15:02 UTC) · auto-refresh every 5 min
4 issue(s)
This page shows every automation we have running. Green means working. Yellow means quiet, no recent activity, usually fine for crons that only log on error. Red means broken, needs attention.
WorkingQuietBroken

Scheduled jobs

Tasks that run on a timer.
StatusJobScheduleLast activity
Quiet
Weekly summary
Sunday night wrap-up of the week's automation activity.
Show technical detail
/usr/bin/python3 /home/claude-bot/scripts/overseer-digest.py > /home/claude-bot/kira-mail/digests/latest-run.log 2>&1
Log: /home/claude-bot/kira-mail/digests/latest-run.log
## Proposed improvements (Layer 6b + 6c)

_v1 stub. Not yet wired to parse Discord corrections for proposed rule additions. Karl can flag misses manually in the meantime; Kira logs them as candidate rules._

---
Generated: 2026-07-26 23:00 UTC by `/home/claude-bot/scripts/overseer-digest.py` (Layer 6 v1)
Sundays at 11pm UTC (9am AEST / 7am WITA)3 days ago
Working
Morning brief
Posts the daily summary to Discord at 5am WITA.
Show technical detail
/home/claude-bot/scripts/morning-brief.sh
Log: /home/claude-bot/scripts/morning-brief.log
- **News**: All six slots filled with verified, in-window sources: the AI pacing letter (Tech Xplore, Jul 29), Coursera's first combined Udemy quarter (Jul 29), Instagram passing 3B users (SMT, Jul 26), the AU card-surcharge ban costs (SmartCompany, Jul 29), and Meta Q2 earnings as wildcard (Jul 29). The membership bucket genuinely had nothing verifiable this week, so it got an honest one-liner rather than a stale link, following the same pattern as yesterday's quiet coaching bucket.
- **Homeschooling**: Both regions were quiet inside the 7-day window. Everything I found was either outside the window (WA policy flag Jul 18, HSLDA post May 5, The 74 pieces March–June) or on the banned URL list, so both got single honest lines.
- **Claude Code**: 2.1.219 makes Opus 5 the default with 1M context, plus MCP error reporting and deeper agent nesting; included in the brief.
- **Discord catch-up scan**: One likely-unanswered item found, Karl's "Business Number" thread starter from yesterday 06:19 in the brand channel (the later "Password System" starter was handled). I surfaced it in message 3 of the brief rather than auto-replying. Two ancient starters (Setter System, BotNet, from May) were already chased on 17 May with no response, so I left those alone.

One hook interaction worth knowing: the plain-English hook blocked message 3 for the word "subagent"; I rephrased to "helper agents" and it went through.
delivered, message 1532134348214763560 verified in channel
BRIEF-RUN OK
Daily at 9pm UTC (7am AEST / 5am WITA)17 hours ago
Quiet
Weekly security scan
Checks for exposed env files, .git in webroots, unexpected open ports.
Show technical detail
/home/claude-bot/scripts/security-scan.sh >> /home/claude-bot/scripts/security-scan.log 2>&1
Sundays at 3am UTC (1pm AEST / 11am WITA)74 days ago
Working
Vault audit
Checks the OpenCore vault for stale or empty notes twice weekly.
Show technical detail
/home/claude-bot/scripts/vault-audit.sh >> /home/claude-bot/scripts/vault-audit.log 2>&1
Log: /home/claude-bot/scripts/vault-audit.log
**Archive candidates (0) — reply 'keep <name>' or 'archive <name>' in #systems:**

**Vault health score: 80/100**
Top issues:
  · Broken links: 5 broken wikilink(s)
  · Schema compliance: 71.1% of notes have the floor schema
  · Duplicates: 4 open item(s) in MERGE-PROPOSALS.md
Mondays + Thursdays at 8am UTC (6pm AEST / 4pm WITA)7 hours ago
Working
vault-nightly-guard.sh
Show technical detail
/home/claude-bot/scripts/vault-nightly-guard.sh >> /home/claude-bot/scripts/vault-guard.log 2>&1
Log: /home/claude-bot/scripts/vault-guard.log
 create mode 100644 Brain/Logs/2026-07-30.md
[2026-07-30T14:10:01Z] Committed 19 files as 7872d3b
✓ Switched active account for github.com to purepurposekh
[2026-07-30T14:10:01Z] gh auth switch: ok (purepurposekh active)
To https://github.com/purepurposekh/opencore-vault.git
   e41c22f..7872d3b  main -> main
[2026-07-30T14:10:01Z] Push: ok
[2026-07-30T14:10:01Z] === nightly guard run complete ===
Daily at 2:10pm UTC (12:10am AEST / 10:10pm WITA)an hour ago
Quiet
Kira email triage
Polls the inbox every minute, archives noise, queues judgment calls.
Show technical detail
/usr/bin/node /home/claude-bot/kira-mail/check-mail.mjs >> /home/claude-bot/kira-mail/logs/cron.log 2>&1
Every minute17 days ago
Quiet
Agent reaper
Cleans up zombie agent processes every minute.
Show technical detail
/home/claude-bot/agents/reaper.sh
Log: /home/claude-bot/agents/reaper.log
2026-04-27T06:22:01+00:00 reaper: removed stale lock (age 95s)
2026-04-27T06:25:01+00:00 reaper: removed stale lock (age 84s)
2026-04-27T06:47:37+00:00 reaper: removed stale lock (age 300s)
Every minute94 days ago
Working
Agent health check
Verifies Kira and Max heartbeats every 15 minutes.
Show technical detail
/home/claude-bot/agents/health-check.sh
Log: /home/claude-bot/agents/health-check.log
2026-07-30T14:45:02+00:00 ALERT: disk_full 92%
2026-07-30T14:45:02+00:00 OK
2026-07-30T15:00:01+00:00 ALERT: systemd_down
2026-07-30T15:00:01+00:00 ALERT: disk_full 92%
2026-07-30T15:00:01+00:00 OK
2026-07-30T15:15:02+00:00 ALERT: systemd_down
2026-07-30T15:15:02+00:00 ALERT: disk_full 92%
2026-07-30T15:15:02+00:00 OK
Every 15 minutesjust now
Quiet
Overseer snapshot
Regenerates this dashboard every 5 minutes.
Show technical detail
/usr/bin/python3 /home/claude-bot/scripts/overseer-snapshot.py >> /home/claude-bot/scripts/overseer-snapshot.log 2>&1
Every 5 minutes77 days ago
Quiet
Overseer alerts
Posts a Discord alert when a service or cron breaks.
Show technical detail
/usr/bin/python3 /home/claude-bot/scripts/overseer-alert.py >> /home/claude-bot/scripts/overseer-alert.log 2>&1
Every 15 minutes77 days ago
Quiet
kira-bridge-watchdog.sh
Show technical detail
/home/claude-bot/agents/kira-bridge-watchdog.sh
Every minuteno log
Quiet
kira-watchdog-deadman.sh
Show technical detail
/home/claude-bot/agents/kira-watchdog-deadman.sh
Every 5 minutesno log
Quiet
circle-index-refresh.sh
Show technical detail
/home/claude-bot/scripts/circle-index-refresh.sh
Log: /home/claude-bot/scripts/circle-index-refresh.log
✨ Success! Uploaded 3 files (1322 already uploaded) (1.53 sec)

✨ Uploading _headers
✨ Uploading _redirects
✨ Uploading Functions bundle
🌎 Deploying...
✨ Deployment complete! Take a peek over at https://f6684c4a.tracy-harris-co.pages.dev
2026-07-26T20:00:51+00:00 OK refreshed + deployed, 155 index entries
Sundays at 8pm UTC (6am AEST / 4am WITA)3 days ago
Working
dashboard-maintainer.sh
Show technical detail
/home/claude-bot/scripts/dashboard-maintainer.sh >> /home/claude-bot/scripts/dashboard-maintainer.log 2>&1
Log: /home/claude-bot/scripts/dashboard-maintainer.log
**The slice:** the standing dirty-tree pattern held. The 07-29/30 interactive body (Karl's "Staff Sections" starter) was uncommitted: /staff page with presence wall, self-scoped hours/leave editing, owner-only leave approvals, plus a podcast drop queue card on the studio page. Reviewed before committing: all gates are solid (staff tab in ALL_TABS so middleware covers it, writes take the user id from the session never the payload, queue trigger is owner/admin), and the D1 migration was verified applied remotely with seed data present. tsc clean, build green, committed `91d2aac`, deployed (version c94c1439), verified live: /login 200, /staff and both new API routes 307-gated, no 500s. Backlog updated and committed (`c756204`), tree clean.

**Health:** dashboard 200, all key pages gated not broken, box healthy, every cron key "ok". Netlify still 503 usage_exceeded so the one-time kill-switch deploy did not trigger. Disk at 91% (up from 89%), Max's lane, below the 95% escalation line. No box code changed, no content-studio restart.

**Discord scan:** five unanswered bare starters from Karl, all his header-then-detail pattern, all interactive lane, flagged in the backlog and the Discord summary: Daily Digests (today 00:40), FFB Members, FRESH Website Concept, Business Number, Password System (all 07-29). No maintainer action taken on them.

Summary posted to Discord. Nothing blocked on Karl beyond the parked starters and the Monday token confirmation.
=== maintainer done 2026-07-30T02:09:11Z ===
Daily at 2am UTC (12pm AEST / 10am WITA)13 hours ago
Quiet
Agent reaper
Cleans up zombie agent processes every minute.
Show technical detail
/home/claude-bot/agents/stale-process-reaper.sh >> /home/claude-bot/agents/stale-process-reaper.log 2>&1
Every 15 minutes37 days ago
Working
cd
Show technical detail
cd /home/claude-bot/content-studio-svc && /usr/bin/python3 discord_sync.py --limit 40 >> /home/claude-bot/content-studio-svc/discord_sync.log 2>&1
Log: /home/claude-bot/content-studio-svc/discord_sync.log
  Dashboard: +0 new (40 fetched)
  Ops: +0 new (40 fetched)
  Systems: +0 new (40 fetched)
  Strategy: +0 new (40 fetched)
  Content: +0 new (40 fetched)
  Funnels: +0 new (40 fetched)
  Brand/Design: +0 new (40 fetched)
done: 0 new recall rows
Every 15 minutes14 minutes ago
Working
python3
Show technical detail
/usr/bin/python3 /home/claude-bot/data-pipeline/scripts/product_analytics.py >> /home/claude-bot/data-pipeline/product-analytics.log 2>&1
Log: /home/claude-bot/data-pipeline/product-analytics.log
wrote /home/claude-bot/content-studio-svc/product-analytics.json: 7398 customers, 39682 charges, 10 products
wrote /home/claude-bot/content-studio-svc/product-analytics.json: 7397 customers, 39682 charges, 10 products
wrote /home/claude-bot/content-studio-svc/product-analytics.json: 7398 customers, 39682 charges, 10 products
wrote /home/claude-bot/content-studio-svc/product-analytics.json: 7397 customers, 39682 charges, 10 products
wrote /home/claude-bot/content-studio-svc/product-analytics.json: 7397 customers, 39683 charges, 10 products
wrote /home/claude-bot/content-studio-svc/product-analytics.json: 7398 customers, 39683 charges, 10 products
wrote /home/claude-bot/content-studio-svc/product-analytics.json: 7397 customers, 39683 charges, 10 products
wrote /home/claude-bot/content-studio-svc/product-analytics.json: 7397 customers, 39683 charges, 10 products
Every hour at :3539 minutes ago
Working
python3
Show technical detail
/usr/bin/python3 /home/claude-bot/data-pipeline/scripts/crm_analytics.py >> /home/claude-bot/data-pipeline/crm-analytics.log 2>&1
Log: /home/claude-bot/data-pipeline/crm-analytics.log
[   0.0s] connected
[   0.1s] customers loaded
[   0.6s] charges pass done
[   2.8s] quaderno non-stripe fold-in done
[   2.8s] subs query done
[   2.8s] churn query done
[   2.9s] aggregates done
wrote /home/claude-bot/content-studio-svc/crm-analytics.json: 112 live members, 25 win-back candidates
Every hour at :4034 minutes ago
Working
python3
Show technical detail
/usr/bin/python3 /home/claude-bot/data-pipeline/scripts/content_analytics.py >> /home/claude-bot/data-pipeline/content-analytics.log 2>&1
Log: /home/claude-bot/data-pipeline/content-analytics.log
wrote /home/claude-bot/content-studio-svc/content-analytics.json: 10 lists, 64701 contacts
wrote /home/claude-bot/content-studio-svc/content-analytics.json: 10 lists, 64701 contacts
wrote /home/claude-bot/content-studio-svc/content-analytics.json: 10 lists, 64701 contacts
wrote /home/claude-bot/content-studio-svc/content-analytics.json: 10 lists, 64701 contacts
wrote /home/claude-bot/content-studio-svc/content-analytics.json: 10 lists, 64701 contacts
wrote /home/claude-bot/content-studio-svc/content-analytics.json: 10 lists, 64702 contacts
wrote /home/claude-bot/content-studio-svc/content-analytics.json: 10 lists, 64702 contacts
wrote /home/claude-bot/content-studio-svc/content-analytics.json: 10 lists, 64702 contacts
Every hour at :4529 minutes ago
Working
python3
Show technical detail
/usr/bin/python3 /home/claude-bot/data-pipeline/scripts/agent_feed.py >> /home/claude-bot/data-pipeline/agent-feed.log 2>&1
Log: /home/claude-bot/data-pipeline/agent-feed.log
wrote /home/claude-bot/content-studio-svc/agentfeed.json: 30 kira events, 17 timers, 3 services
wrote /home/claude-bot/content-studio-svc/agentfeed.json: 30 kira events, 17 timers, 3 services
wrote /home/claude-bot/content-studio-svc/agentfeed.json: 30 kira events, 17 timers, 3 services
wrote /home/claude-bot/content-studio-svc/agentfeed.json: 30 kira events, 17 timers, 3 services
wrote /home/claude-bot/content-studio-svc/agentfeed.json: 30 kira events, 17 timers, 3 services
wrote /home/claude-bot/content-studio-svc/agentfeed.json: 30 kira events, 17 timers, 3 services
wrote /home/claude-bot/content-studio-svc/agentfeed.json: 30 kira events, 17 timers, 3 services
wrote /home/claude-bot/content-studio-svc/agentfeed.json: 30 kira events, 17 timers, 3 services
Every 5 minutesjust now
Working
python3
Show technical detail
/usr/bin/python3 /home/claude-bot/data-pipeline/scripts/identity_resolution.py >> /home/claude-bot/data-pipeline/identity.log 2>&1
Log: /home/claude-bot/data-pipeline/identity.log
wrote /home/claude-bot/data-pipeline/data/identity-map.json: 615 merged emails across 594 people; review at /home/claude-bot/data-pipeline/data/identity-review.md
wrote /home/claude-bot/data-pipeline/data/identity-map.json: 616 merged emails across 595 people; review at /home/claude-bot/data-pipeline/data/identity-review.md
wrote /home/claude-bot/data-pipeline/data/identity-map.json: 615 merged emails across 594 people; review at /home/claude-bot/data-pipeline/data/identity-review.md
wrote /home/claude-bot/data-pipeline/data/identity-map.json: 616 merged emails across 595 people; review at /home/claude-bot/data-pipeline/data/identity-review.md
wrote /home/claude-bot/data-pipeline/data/identity-map.json: 616 merged emails across 595 people; review at /home/claude-bot/data-pipeline/data/identity-review.md
wrote /home/claude-bot/data-pipeline/data/identity-map.json: 615 merged emails across 594 people; review at /home/claude-bot/data-pipeline/data/identity-review.md
wrote /home/claude-bot/data-pipeline/data/identity-map.json: 616 merged emails across 595 people; review at /home/claude-bot/data-pipeline/data/identity-review.md
wrote /home/claude-bot/data-pipeline/data/identity-map.json: 616 merged emails across 595 people; review at /home/claude-bot/data-pipeline/data/identity-review.md
Every hour at :3243 minutes ago
Working
python3
Show technical detail
/usr/bin/python3 /home/claude-bot/data-pipeline/scripts/quaderno_extract.py >> /home/claude-bot/data-pipeline/quaderno.log 2>&1 && /usr/bin/python3 /home/claude-bot/data-pipeline/scripts/quaderno_load.py >> /home/claude-bot/data-pipeline/quaderno.log 2>&1 && /usr/bin/python3 /home/claude-bot/data-pipeline/scripts/quaderno_reconcile.py >> /home/claude-bot/data-pipeline/quaderno.log 2>&1
Log: /home/claude-bot/data-pipeline/quaderno.log
2019 Q paid    579,398 | non-stripe   271,696 | stripe net    318,028 | residual  -10,326 | credits  21,422 | stripe-not-in-Q 476
2020 Q paid    938,591 | non-stripe   302,308 | stripe net    636,666 | residual     -383 | credits  50,484 | stripe-not-in-Q 11
2021 Q paid    840,114 | non-stripe   206,667 | stripe net    594,635 | residual   38,812 | credits  38,687 | stripe-not-in-Q 0
2022 Q paid    929,267 | non-stripe   148,705 | stripe net    759,131 | residual   21,431 | credits  35,091 | stripe-not-in-Q 0
2023 Q paid  1,030,131 | non-stripe    97,362 | stripe net    907,040 | residual   25,728 | credits  34,704 | stripe-not-in-Q 0
2024 Q paid  1,202,832 | non-stripe    63,368 | stripe net  1,120,329 | residual   19,135 | credits  43,642 | stripe-not-in-Q 8
2025 Q paid    959,462 | non-stripe    55,271 | stripe net    888,704 | residual   15,487 | credits  19,451 | stripe-not-in-Q 0
2026 Q paid    486,322 | non-stripe     4,401 | stripe net    469,900 | residual   12,021 | credits  11,841 | stripe-not-in-Q 0
Daily at 2:15am UTC (12:15pm AEST / 10:15am WITA)12 hours ago
Working
python3
Show technical detail
/usr/bin/python3 /home/claude-bot/data-pipeline/scripts/insights_engine.py >> /home/claude-bot/data-pipeline/insights.log 2>&1
Log: /home/claude-bot/data-pipeline/insights.log
wrote /home/claude-bot/content-studio-svc/insights.json: 4 cards in 2.8s
Daily at 2:50am UTC (12:50pm AEST / 10:50am WITA)12 hours ago
Quiet
python3
Show technical detail
/usr/bin/python3 /home/claude-bot/data-pipeline/scripts/xero_keepalive.py >> /home/claude-bot/data-pipeline/xero.log 2>&1
Mondays at 3:05am UTC (1:05pm AEST / 11:05am WITA)2 days ago
Working
python3
Show technical detail
/usr/bin/python3 /home/claude-bot/data-pipeline/scripts/deep_analytics.py >> /home/claude-bot/data-pipeline/deep-analytics.log 2>&1
Log: /home/claude-bot/data-pipeline/deep-analytics.log
wrote /home/claude-bot/content-studio-svc/deep-analytics.json: 9 cohorts, 7398 customers, 103 months
wrote /home/claude-bot/content-studio-svc/deep-analytics.json: 9 cohorts, 7397 customers, 103 months
wrote /home/claude-bot/content-studio-svc/deep-analytics.json: 9 cohorts, 7398 customers, 103 months
wrote /home/claude-bot/content-studio-svc/deep-analytics.json: 9 cohorts, 7397 customers, 103 months
wrote /home/claude-bot/content-studio-svc/deep-analytics.json: 9 cohorts, 7397 customers, 103 months
wrote /home/claude-bot/content-studio-svc/deep-analytics.json: 9 cohorts, 7398 customers, 103 months
wrote /home/claude-bot/content-studio-svc/deep-analytics.json: 9 cohorts, 7397 customers, 103 months
wrote /home/claude-bot/content-studio-svc/deep-analytics.json: 9 cohorts, 7397 customers, 103 months
Every hour at :5024 minutes ago
Working
python3
Show technical detail
/usr/bin/python3 /home/claude-bot/data-pipeline/scripts/contact_propensity.py >> /home/claude-bot/data-pipeline/propensity.log 2>&1
Log: /home/claude-bot/data-pipeline/propensity.log
wrote /home/claude-bot/content-studio-svc/propensity.json: 534 scored, top targets: darly108@hotmail.com (90), hello@biancamckenzie.com (90), louiseeast19@gmail.com (90)
wrote /home/claude-bot/content-studio-svc/propensity.json: 533 scored, top targets: darly108@hotmail.com (90), hello@biancamckenzie.com (90), louiseeast19@gmail.com (90)
wrote /home/claude-bot/content-studio-svc/propensity.json: 533 scored, top targets: darly108@hotmail.com (90), hello@biancamckenzie.com (90), louiseeast19@gmail.com (90)
wrote /home/claude-bot/content-studio-svc/propensity.json: 534 scored, top targets: darly108@hotmail.com (90), hello@biancamckenzie.com (90), louiseeast19@gmail.com (90)
wrote /home/claude-bot/content-studio-svc/propensity.json: 534 scored, top targets: darly108@hotmail.com (90), hello@biancamckenzie.com (90), louiseeast19@gmail.com (90)
wrote /home/claude-bot/content-studio-svc/propensity.json: 534 scored, top targets: darly108@hotmail.com (90), hello@biancamckenzie.com (90), louiseeast19@gmail.com (90)
wrote /home/claude-bot/content-studio-svc/propensity.json: 534 scored, top targets: darly108@hotmail.com (90), hello@biancamckenzie.com (90), louiseeast19@gmail.com (90)
wrote /home/claude-bot/content-studio-svc/propensity.json: 533 scored, top targets: darly108@hotmail.com (90), hello@biancamckenzie.com (90), louiseeast19@gmail.com (90)
Every hour at :5519 minutes ago
Working
python3
Show technical detail
/usr/bin/python3 /home/claude-bot/data-pipeline/scripts/committed_revenue.py >> /home/claude-bot/data-pipeline/committed.log 2>&1
Log: /home/claude-bot/data-pipeline/committed.log
wrote /home/claude-bot/content-studio-svc/committed-revenue.json: 51 active plans, contracted next month A$37,131, total expected next month A$41,699
wrote /home/claude-bot/content-studio-svc/committed-revenue.json: 51 active plans, contracted next month A$37,131, total expected next month A$41,699
wrote /home/claude-bot/content-studio-svc/committed-revenue.json: 51 active plans, contracted next month A$37,131, total expected next month A$41,699
wrote /home/claude-bot/content-studio-svc/committed-revenue.json: 51 active plans, contracted next month A$37,131, total expected next month A$41,699
wrote /home/claude-bot/content-studio-svc/committed-revenue.json: 51 active plans, contracted next month A$37,131, total expected next month A$41,699
wrote /home/claude-bot/content-studio-svc/committed-revenue.json: 51 active plans, contracted next month A$37,131, total expected next month A$41,699
wrote /home/claude-bot/content-studio-svc/committed-revenue.json: 50 active plans, contracted next month A$37,131, total expected next month A$41,607
wrote /home/claude-bot/content-studio-svc/committed-revenue.json: 50 active plans, contracted next month A$37,131, total expected next month A$41,607
Every hour at :5816 minutes ago
Quiet
logrotate
Show technical detail
/usr/sbin/logrotate -s /home/claude-bot/scripts/logrotate.state /home/claude-bot/scripts/logrotate-claude-bot.conf >> /home/claude-bot/scripts/logrotate.log 2>&1
Daily at 1:30am UTC (11:30am AEST / 9:30am WITA)18 days ago
Quiet
disk-guard.sh
Show technical detail
/home/claude-bot/scripts/disk-guard.sh >> /home/claude-bot/scripts/disk-guard.log 2>&1
Every hour at :1719 days ago
Quiet
python3
Show technical detail
/usr/bin/python3 /home/claude-bot/scripts/consistent-systems-audit.py >> /home/claude-bot/scripts/consistent-systems-audit.log 2>&1
Sundays at 10pm UTC (8am AEST / 6am WITA)17 days ago
Quiet
monthly-disk-cleanup.sh
Show technical detail
/home/claude-bot/scripts/monthly-disk-cleanup.sh
Log: /home/claude-bot/scripts/monthly-disk-cleanup.log
--- after ---
/dev/sda1        75G   69G  3.4G  96% /
=== monthly cleanup done ===
=== monthly cleanup 2026-07-20T02:30:36Z ===
/dev/sda1        75G   70G  2.4G  97% /
--- after ---
/dev/sda1        75G   70G  2.7G  97% /
=== monthly cleanup done ===
Day 1 of each month at 3:30am UTC (1:30pm AEST / 11:30am WITA)10 days ago
Quiet
run-digest.sh
Show technical detail
/home/claude-bot/client-slack-monitor/run-digest.sh
Daily at 11pm UTC (9am AEST / 7am WITA)no log
Quiet
touch
Show technical detail
touch -c /tmp/cbpg5433 /tmp/cbpg5433/.s.PGSQL.5433 /tmp/cbpg5433/.s.PGSQL.5433.lock
Daily at 2:17am UTC (12:17pm AEST / 10:17am WITA)no log
Working
auto-import-episodes.sh
Show technical detail
/home/claude-bot/tracy-harris-com-karl-home/scripts/auto-import-episodes.sh >> /home/claude-bot/agents/state/auto-import-episodes.log 2>&1
Log: /home/claude-bot/agents/state/auto-import-episodes.log
Re-synced 0 changed title(s).
auto-import-episodes: nothing new
Fetching Buzzsprout feed…
  parsed 494 episodes from feed
  existing: 522 episodes; missing from site: 0
Created 0 new episode posts.
Re-synced 0 changed title(s).
auto-import-episodes: nothing new
Every 6 hours3 hours ago
Broken
python3
Show technical detail
/usr/bin/python3 /home/claude-bot/scripts/ffb-applications-reconcile.py >> /home/claude-bot/scripts/ffb-applications-reconcile.log 2>&1
Log: /home/claude-bot/scripts/ffb-applications-reconcile.log
[ffb-reconcile] ffb-application tag id = 1068
[ffb-reconcile] AC: 1 tagged application(s)
[ffb-reconcile] dashboard: 1 row(s)
[ffb-reconcile] no drift: dashboard is in sync with AC
[ffb-reconcile] ffb-application tag id = 1068
[ffb-reconcile] AC: 1 tagged application(s)
[ffb-reconcile] dashboard: 1 row(s)
[ffb-reconcile] no drift: dashboard is in sync with AC
Daily at 10:30pm UTC (8:30am AEST / 6:30am WITA)16 hours ago
Quiet
atlas-builder.sh
Show technical detail
/home/claude-bot/scripts/atlas-builder.sh
20 5,13,21 * * *no log
Quiet
memory-guard.sh
Show technical detail
/home/claude-bot/scripts/memory-guard.sh
Daily at 6:40pm UTC (4:40am AEST / 2:40am WITA)no log
Quiet
ai-check-canary.sh
Show technical detail
/home/claude-bot/agents/ai-check-canary.sh >> /home/claude-bot/agents/state/ai-check-canary.log 2>&1
Daily at 7am UTC (5pm AEST / 3pm WITA)10 days ago
Quiet
nginx-watchdog.sh
Show technical detail
/home/claude-bot/scripts/nginx-watchdog.sh
Every 5 minutesno log
Working
python3
Show technical detail
/usr/bin/python3 /home/claude-bot/content-os-svc/podcast_safety_net.py >/dev/null 2>> /home/claude-bot/content-os-svc/safety-net.log
Log: /home/claude-bot/content-os-svc/safety-net.log
2026-07-30T08:47:09+00:00 552 live episodes in the Buzzsprout feed
2026-07-30T08:47:09+00:00 nothing new since the last run
2026-07-30T10:47:09+00:00 552 live episodes in the Buzzsprout feed
2026-07-30T10:47:09+00:00 nothing new since the last run
2026-07-30T12:47:09+00:00 552 live episodes in the Buzzsprout feed
2026-07-30T12:47:09+00:00 nothing new since the last run
2026-07-30T14:47:10+00:00 552 live episodes in the Buzzsprout feed
2026-07-30T14:47:10+00:00 nothing new since the last run
Every 2 hours27 minutes ago
Working
python3
Show technical detail
/usr/bin/python3 /home/claude-bot/content-os-svc/dropbox_watcher.py >/dev/null 2>> /home/claude-bot/content-os-svc/dropbox-watcher.log
Log: /home/claude-bot/content-os-svc/dropbox-watcher.log
2026-07-30T14:35:05+00:00 nothing ready to process this run
2026-07-30T14:40:05+00:00 nothing ready to process this run
2026-07-30T14:45:06+00:00 nothing ready to process this run
2026-07-30T14:50:05+00:00 nothing ready to process this run
2026-07-30T14:55:05+00:00 nothing ready to process this run
2026-07-30T15:00:05+00:00 nothing ready to process this run
2026-07-30T15:05:06+00:00 nothing ready to process this run
2026-07-30T15:10:05+00:00 nothing ready to process this run
Every 5 minutes4 minutes ago
Working
python3
Show technical detail
/usr/bin/python3 /home/claude-bot/scripts/sms-forwarding-watch.py >> /home/claude-bot/scripts/sms-forwarding-watch.log 2>&1
Log: /home/claude-bot/scripts/sms-forwarding-watch.log
quiet (last SMS 6.6 days ago)
Daily at 10:30pm UTC (8:30am AEST / 6:30am WITA)16 hours ago
Quiet
pull-repo.sh
Show technical detail
/home/claude-bot/ventures/homeschool/scripts/pull-repo.sh
Every 4 hoursno log
Broken
python3
Show technical detail
/usr/bin/python3 /home/claude-bot/notion-approval/approval_watcher.py >/dev/null 2>> /home/claude-bot/notion-approval/notion-approval.log
Log: /home/claude-bot/notion-approval/notion-approval.log
2026-07-30T12:02:30+00:00 sent content-os:b_8154bf2defa7c31b (Thursday · IG Reel (Show)) home=calendar cal=3ad86540-591d-813e-bf27-cc7777980be0
2026-07-30T12:02:31+00:00 sent content-os:b_67595c7ab73bf29c (Friday · IG Carousel (Share)) home=calendar cal=3ad86540-591d-8161-a8b8-d65cdd4cbb83
2026-07-30T12:02:32+00:00 sent content-os:b_7e15951bc7f0f505 (Saturday · IG Reel (Teach)) home=calendar cal=3ad86540-591d-81c7-b579-fecc42e5f0cf
2026-07-30T12:02:33+00:00 sent content-os:b_a3119c3465975fef (Sunday · IG Story set (Show)) home=calendar cal=3ad86540-591d-81be-bf31-f9b30d9ab5d5
2026-07-30T12:02:34+00:00 sent content-os:b_27619ae08f06dd37 (Story prompts for the week) home=calendar cal=3ad86540-591d-81b6-a0b8-eebb6cef004c
2026-07-30T12:02:34+00:00 week content-os:w_5344afa74b9415ce: sent=24 skipped=0 failed=0
2026-07-30T12:05:02+00:00 checking 24 pending piece(s)
2026-07-30T12:05:02+00:00 checking 24 pending piece(s)
Every 5 minutes3 hours ago

Always-on services

Background processes that should be running 24/7.
StatusServiceUptime
Running
Webhook receiver
Accepts inbound webhooks (Stripe, podcast, image uploads); 11 routes total.
Show technical detail
systemd unit: webhook-server.service
Started: Thu 2026-07-30 11:24:21 UTC
3h 50m
Stopped
Max (Hermes)
Tracy Harris Co's secondary agent. Codex-backed, handles visuals and image gen.
Show technical detail
systemd unit: hermes-gateway.service
Started: Sun 2026-05-24 04:07:15 UTC
-- No entries --
67d 11h
Running
Kira (Claude bot)
Primary agent. The one you talk to in Discord.
Show technical detail
systemd unit: claude-bot.service
Started: Mon 2026-06-22 23:32:20 UTC
37d 15h
Running
Mission Control
Internal ops dashboard at mission-control.tracyharris.co.
Show technical detail
systemd unit: mission-control.service
Started: Tue 2026-07-28 06:39:11 UTC
2d 8h
Starting
Ops API
Backend for the Tracy admin dashboard. Serves brand-kit approvals and ops state.
Show technical detail
systemd unit: ops-api.service
Started: Wed 2026-04-15 13:20:48 UTC
-- No entries --
106d 1h
Running
Obsidian sync
Bidirectional sync between OpenCore vault on disk and Obsidian.
Show technical detail
systemd unit: obsidian-sync.service
Started: Tue 2026-07-28 06:39:11 UTC
2d 8h
Running
Senja MCP server
Exposes Senja testimonials to Claude via MCP.
Show technical detail
systemd unit: senja-mcp.service
Started: Tue 2026-07-28 06:39:10 UTC
2d 8h
Running
Cloudflare tunnel
Routes traffic from Cloudflare to local services.
Show technical detail
systemd unit: cloudflared.service
Started: Mon 2026-05-11 05:37:44 UTC
80d 9h
Running
Nginx
Reverse proxy for webhook.tracyharris.com.au and the dashboards.
Show technical detail
systemd unit: nginx.service
Started: Tue 2026-07-28 07:02:37 UTC
2d 8h
Running
Content Studio
TSS content engine: dashboard chat, tools library, funnel builder data.
Show technical detail
systemd unit: content-studio.service
Started: Thu 2026-07-30 11:38:26 UTC
3h 36m
Running
Content OS v2
Unified podcast + IG content system (assessment build, port 8790).
Show technical detail
systemd unit: content-os.service
Started: Thu 2026-07-30 11:38:27 UTC
3h 36m
Running
Slack Kira bridge
Full-context Kira in Slack via Socket Mode.
Show technical detail
systemd unit: slack-kira.service
Started: Wed 2026-07-29 10:35:31 UTC
1d 4h

Webhook endpoints

Inbound URLs the webhook server answers. Auth-protected routes return 401 to a probe, that's normal.
StatusEndpointResponse
Working
Health check
Returns 200 if the webhook server is alive.
Show technical detail
GET /health
Got 200 · expected 200
Tested 2026-07-30T15:15:02+00:00
200 (expected 200)
Working
Ops state read
Returns the current tasks and ideas backlog for the dashboard.
Show technical detail
GET /ops-state
Got 200 · expected 200
Tested 2026-07-30T15:15:02+00:00
200 (expected 200)
Working
Generic webhook receiver
Accepts authenticated webhooks from any source.
Show technical detail
POST /hook/test
Got 401 · expected 401
Tested 2026-07-30T15:15:02+00:00
401 (expected 401)
Working
Run a registered automation
Authenticated trigger for predefined automations.
Show technical detail
POST /run
Got 401 · expected 401
Tested 2026-07-30T15:15:02+00:00
401 (expected 401)
Working
Image upload (legacy)
Multipart photo upload via nginx (1MB limit, being phased out).
Show technical detail
POST /image-upload
Got 401 · expected 401
Tested 2026-07-30T15:15:02+00:00
401 (expected 401)
Working
Image tagger callback
Tags a photo already in R2 via the v2 schema tagger.
Show technical detail
POST /tag-by-slug
Got 401 · expected 401
Tested 2026-07-30T15:15:02+00:00
401 (expected 401)

Recent script activity

Last lines from each log file. Click to expand.
morning-brief.log (2026-07-29T21:16:34+00:00)
/home/claude-bot/scripts/morning-brief.log
- **Data pulls**: Metrics came through clean ($77,081.42 AUD MTD, AC list 13,530). Calendar and email scripts both report not configured, so Karl got the standard one-liners. Slack pull worked; the notable items were Alannah needing ads help, Jessica Read's 8% opt-in (routed to me), the Kajabi code flow being used successfully by three team members, and Tracy's recorded intros/outros.
- **News**: All six slots filled with verified, in-window sources: the AI pacing letter (Tech Xplore, Jul 29), Coursera's first combined Udemy quarter (Jul 29), Instagram passing 3B users (SMT, Jul 26), the AU card-surcharge ban costs (SmartCompany, Jul 29), and Meta Q2 earnings as wildcard (Jul 29). The membership bucket genuinely had nothing verifiable this week, so it got an honest one-liner rather than a stale link, following the same pattern as yesterday's quiet coaching bucket.
- **Homeschooling**: Both regions were quiet inside the 7-day window. Everything I found was either outside the window (WA policy flag Jul 18, HSLDA post May 5, The 74 pieces March–June) or on the banned URL list, so both got single honest lines.
- **Claude Code**: 2.1.219 makes Opus 5 the default with 1M context, plus MCP error reporting and deeper agent nesting; included in the brief.
- **Discord catch-up scan**: One likely-unanswered item found, Karl's "Business Number" thread starter from yesterday 06:19 in the brand channel (the later "Password System" starter was handled). I surfaced it in message 3 of the brief rather than auto-replying. Two ancient starters (Setter System, BotNet, from May) were already chased on 17 May with no response, so I left those alone.

One hook interaction worth knowing: the plain-English hook blocked message 3 for the word "subagent"; I rephrased to "helper agents" and it went through.
delivered, message 1532134348214763560 verified in channel
BRIEF-RUN OK
senja-sync.log (2026-05-14T03:22:56+00:00)
/home/claude-bot/scripts/senja-sync.log
[Sun Apr 12 08:00:01 PM UTC 2026] Starting Senja sync
[Sun Apr 12 08:00:01 PM UTC 2026] Senja sync failed or returned 0 testimonials
[Sun Apr 19 08:00:01 PM UTC 2026] Starting Senja sync
[Sun Apr 19 08:00:02 PM UTC 2026] Senja sync failed or returned 0 testimonials
[Thu May 14 03:22:55 AM UTC 2026] Starting Senja sync
[Thu May 14 03:22:56 AM UTC 2026] Senja sync failed or returned 0 testimonials
vault-audit.log (2026-07-30T08:00:09+00:00)
/home/claude-bot/scripts/vault-audit.log
**Moved to obsolete (0):**

**Archive candidates (0) — reply 'keep <name>' or 'archive <name>' in #systems:**

**Vault health score: 80/100**
Top issues:
  · Broken links: 5 broken wikilink(s)
  · Schema compliance: 71.1% of notes have the floor schema
  · Duplicates: 4 open item(s) in MERGE-PROPOSALS.md
cron.log (2026-07-13T01:30:02+00:00)
/home/claude-bot/kira-mail/logs/cron.log
(empty)
actions.log (2026-07-30T15:14:19+00:00)
/home/claude-bot/kira-mail/logs/actions.log
2026-07-30T15:14:17.922Z queue-for-kira from=Actionable AI <the-actionable-ai@mail.theactionableai.com> subject="what people are building" path=/home/claude-bot/kira-mail/pending/3c577963774e35326e5259797730674e725145334f7a7740.json
2026-07-30T15:14:18.217Z queue-for-kira from=Actionable AI <the-actionable-ai@mail.theactionableai.com> subject="fire your designer" path=/home/claude-bot/kira-mail/pending/3c6b77794d756e3873516f474b554c53376d6b5048617740.json
2026-07-30T15:14:18.385Z queue-for-kira from=Team Tracy <hello@mumswithhustle.com> subject="New FFB application: Kira Livetest" path=/home/claude-bot/kira-mail/pending/3c38383831306238352d623433312d346563352d39313839.json
2026-07-30T15:14:18.558Z queue-for-kira from=Team Tracy <hello@mumswithhustle.com> subject="Your FFB application is in" path=/home/claude-bot/kira-mail/pending/3c65316131646432642d343832342d343861632d62656361.json
2026-07-30T15:14:18.735Z queue-for-kira from=Team Tracy <hello@mumswithhustle.com> subject="New FFB application: Karl" path=/home/claude-bot/kira-mail/pending/3c38373765306438362d303335382d343631352d38373834.json
2026-07-30T15:14:18.907Z queue-for-kira from=Team Tracy <hello@mumswithhustle.com> subject="New FFB application: LiveTest" path=/home/claude-bot/kira-mail/pending/3c33383763383163652d643430332d343061362d39373235.json
2026-07-30T15:14:19.310Z queue-for-kira from=Team Tracy <hello@mumswithhustle.com> subject="New FFB application: LiveTest" path=/home/claude-bot/kira-mail/pending/3c33366437613330392d386266382d343339382d61333761.json
2026-07-30T15:14:19.485Z queue-for-kira from=Team Tracy <hello@mumswithhustle.com> subject="Your FFB application is in" path=/home/claude-bot/kira-mail/pending/3c39376539303538322d396361302d343365382d39326131.json
2026-07-30T15:14:19.659Z queue-for-kira from=Team Tracy <hello@mumswithhustle.com> subject="Your FFB application is in" path=/home/claude-bot/kira-mail/pending/3c34653539633933302d613334612d346265382d38636633.json
2026-07-30T15:14:19.832Z queue-for-kira from=Kajabi Support <support@m.kajabimail.net> subject="Customer subscription payment failed" path=/home/claude-bot/kira-mail/pending/3c32303236303731373233313933392e3632633431653764.json
errors.log (2026-07-19T21:05:12+00:00)
/home/claude-bot/kira-mail/logs/errors.log
2026-05-05T12:10:12.319Z fatal=fetch failed
2026-05-05T12:11:12.005Z fatal=fetch failed
2026-05-21T05:25:03.755Z message=<TKyAgw47QJuRXDJbxTF9BA@geopod-ismtpd-45> err=ENOSPC: no space left on device, write
2026-05-21T05:26:02.354Z message=<20260520011921.181.484846026.swift@mumswithhustle97268.activehosted.com> err=ENOSPC: no space left on device, write
2026-05-21T05:26:02.859Z message=<20260519071924.179.2122338712.swift@mumswithhustle97268.activehosted.com> err=ENOSPC: no space left on device, write
2026-05-21T05:26:04.201Z message=<TKyAgw47QJuRXDJbxTF9BA@geopod-ismtpd-45> err=ENOSPC: no space left on device, write
2026-05-21T05:27:01.982Z message=<20260520011921.181.484846026.swift@mumswithhustle97268.activehosted.com> err=ENOSPC: no space left on device, write
2026-06-29T02:21:03.227Z message=<20260626090806.9dea79327832f43f@c.kajabimail.net> err=terminated
2026-07-13T22:52:32.497Z fatal=terminated
2026-07-19T21:05:12.249Z fatal=GET /inboxes/kira.thc@agentmail.to/messages?labels=unread&limit=50 -> 500 {"name":"ServerError","message":"An unexpected error occurred"}
health-check.log (2026-07-30T15:15:02+00:00)
/home/claude-bot/agents/health-check.log
2026-07-30T14:30:02+00:00 OK
2026-07-30T14:45:02+00:00 ALERT: systemd_down
2026-07-30T14:45:02+00:00 ALERT: disk_full 92%
2026-07-30T14:45:02+00:00 OK
2026-07-30T15:00:01+00:00 ALERT: systemd_down
2026-07-30T15:00:01+00:00 ALERT: disk_full 92%
2026-07-30T15:00:01+00:00 OK
2026-07-30T15:15:02+00:00 ALERT: systemd_down
2026-07-30T15:15:02+00:00 ALERT: disk_full 92%
2026-07-30T15:15:02+00:00 OK
reaper.log (2026-04-27T06:47:37+00:00)
/home/claude-bot/agents/reaper.log
2026-04-27T06:22:01+00:00 reaper: removed stale lock (age 95s)
2026-04-27T06:25:01+00:00 reaper: removed stale lock (age 84s)
2026-04-27T06:47:37+00:00 reaper: removed stale lock (age 300s)
alerts.log (2026-07-30T14:30:03+00:00)
/home/claude-bot/agents/alerts.log
Dashboard: https://webhook.tracyharris.com.au/overseer.html
[2026-07-30T14:15:02.922647+00:00] sent (200): **Overseer status change**
- ALERT  cron error: /home/claude-bot/scripts/vault-nightly-guard.sh >> /home/claude-bot/scripts/vault-guard.log 2>&1

Dashboard: https://webhook.tracyharris.com.au/overseer.html
[2026-07-30T14:30:03.146792+00:00] sent (200): **Overseer status change**
- OK  cron recovered: /home/claude-bot/scripts/vault-nightly-guard.sh >> /home/claude-bot/scripts/vault-guard.log 2>&1

Dashboard: https://webhook.tracyharris.com.au/overseer.html

Paused or disabled

Scheduled jobs that have been switched off, with the reason.
JobPaused sinceReason
Vault nightly push
(PAUSED) Was auto-committing vault changes; conflicts with canon protection.
Show technical detail
(was 2026-04-21): 0 14 * * * /home/claude-bot/scripts/vault-nightly-push.sh
2026-05-14Blocked by canon-protect hook by design; re-enable would bypass canon review; superseded by vault-nightly-guard 2026-07-06
Senja testimonial sync
(PAUSED) Pulls testimonials from Senja; API key needs rotation.
Show technical detail
(was 2026-04-21): 0 20 * * 0 /home/claude-bot/scripts/senja-sync.sh
2026-05-14Senja API key dead (401); needs new key in ~/.secrets/senja.env
Finance dashboard refresh
(PAUSED) Rebuilds the finance dashboard JSON; blocked on branch mismatch.
Show technical detail
(was 2026-04-21): 0 21 * * * /home/claude-bot/scripts/finance-snapshot-nightly.sh
2026-05-14Snapshot regen works, but git push fails (repo on sera-preview branch, not main)