Needs attention

Sites

Media hub (Vercel)

OK

HTTP 307 in 1288 ms

24 h 98.4% · 7 d 90.4% · in this state since 19 Sept, 05:58 · 1288 ms

Media hub cron endpoint (Vercel to Turso)

OK

HTTP 200: {"ran":"2026-09-19T13:44:27.709Z","step":"ping"}

24 h 98.4% · 7 d 90.4% · in this state since 19 Sept, 05:58 · 226 ms

Opportunity API (/api/mobile/v1/feed)

OK

auth wall answering (HTTP 401) in 78 ms

24 h 98.4% · 7 d 90.7% · in this state since 19 Sept, 05:58 · 78 ms

Media Intel team page (Cloudflare)

OK

up; page says "Updated 19 Sep 2026" (9.7 h ago)

24 h 98.4% · 7 d 90.1% · in this state since 19 Sept, 05:58 · 280 ms

Team page functions (D1 notes and submissions)

OK

HTTP 400 {"error":"opp required"}

24 h 99.2% · 7 d 92.0% · in this state since 19 Sept, 05:58 · 52 ms

Client portal (onboarding.launchlink.co)

OK

HTTP 200 in 281 ms

24 h 98.4% · 7 d 90.9% · in this state since 19 Sept, 06:31 · 281 ms

Cycle engine (Railway)

OK

up; 18,922 articles, 279 live cycles, 80/90 feeds healthy, llm api (gemini-flash-latest); disk 64% used (db 266 MB, 157 MB free)

24 h 99.2% · 7 d 93.2% · in this state since 19 Sept, 05:58 · 257 ms

Team dash (Cloudflare)

OK

HTTP 200 in 141 ms

24 h 99.2% · 7 d 91.7% · in this state since 19 Sept, 05:58 · 141 ms

Live processes on the Mac

WhatsApp bridge

OK

up; last message 9 min ago

24 h 100.0% · 7 d 94.4% · in this state since 16 Sept, 20:30

Daily brief action server (:3001)

OK

answering (HTTP 404)

24 h 100.0% · 7 d 100.0% · in this state since 19 Sept, 06:19

Team dash refresh daemon

OK

last tick 0 min ago

24 h 100.0% · 7 d 99.7% · in this state since 19 Sept, 22:38

Scheduled jobs

Opportunity poll actually running (any clock)

OK

last poll finished 16 min ago

24 h 99.2% · 7 d 99.6% · in this state since 19 Sept, 23:02

Gmail media intel (06:30 daily)

OK

last intel file 17 h ago

24 h 100.0% · 7 d 99.5% · in this state since 16 Sept, 22:38

Savings, events, trends + team page deploy (06:45 daily)

OK

last stores file 17 h ago

24 h 100.0% · 7 d 80.3% · in this state since 18 Sept, 06:50

Media hub daily refresh + team digest email (07:15 daily)

Check

last run 16 h ago; digest FAILED; [2026-09-18 17:23:17] digest failed (continuing)

24 h 100.0% · 7 d 100.0% · in this state since 19 Sept, 07:04

How to fix

scripts/daily.sh in media-hub. 'ENOTFOUND ...turso.io' = DNS/network dropped mid-run (travelling wifi); the digest simply retries tomorrow. Re-send today: cd media-hub && set -a && . .turso-env && set +a && npx tsx scripts/media-digest.ts

Opportunity poll (every 15 min)

OK

last poll 1 min ago

24 h 95.9% · 7 d 98.1% · in this state since 19 Sept, 23:02

GitHub Actions opportunity poll (backup clock)

OK

last run 2.9 h ago, success

24 h 100.0% · 7 d 98.2% · in this state since 19 Sept, 05:58

GitHub Actions watchdog (backup, fires every few hours)

OK

last run 1.8 h ago, success

24 h 100.0% · 7 d 97.5% · in this state since 19 Sept, 05:58

Verification sweep (daily)

OK

last pass 17 h ago; [2026-09-18 16:49] pass 1/1 checked 375 · confirmed 42 · staged 9 · 74% verified · 2743 left / [2026-09-18 16:49] adjudicate settled 4 ·

24 h 100.0% · 7 d 100.0% · in this state since 19 Sept, 06:43

Felicia's daily brief (6x/day)

Check

brief last written 11 h ago; last exit 1; log: API Error: The socket connection was closed unexpectedly. For more information, pass `verbose: true` in the second argument to fetch()

24 h 100.0% · 7 d 94.9% · in this state since 19 Sept, 12:15

How to fix

refresh.sh needs --permission-mode acceptEdits and current MCP tool names; a stale file with no error usually means the final Write was denied.

Team dash morning brief (6x/day)

Check

last log write 6.6 h ago; launchd exits [0,1,1,1,1,1]; log: API Error: The socket connection was closed unexpectedly. For more information, pass `verbose: true` in the second argument to fetch()

24 h 100.0% · 7 d 97.9% · in this state since 19 Sept, 12:15

How to fix

team-dash/scripts/morning-brief.sh, two headless claude calls, now pinned to --model opus.

Headless claude (what every extractor job runs on)

Down

no answer: You've hit your weekly limit · resets 3pm (America/New_York)

24 h 94.3% · 7 d 86.4% · in this state since 19 Sept, 15:27

How to fix

If the message is 'issue with the selected model', ~/.claude/settings.json names a model the CLI at /opt/homebrew/bin/claude cannot use; scripts pin --model opus for this reason. 'Unable to connect to API' = network or auth (claude login).

launchd registrations

OK

9 jobs loaded

24 h 100.0% · 7 d 99.7% · in this state since 15 Sept, 08:05

Production data (Turso)

Turso production database

OK

reachable in 1664 ms; 12,148 journalists; 2548 staged changes awaiting review

24 h 97.6% · 7 d 89.3% · in this state since 19 Sept, 06:19 · 1664 ms

Article ingest (Vercel cron, nightly)

Check

last feed run 15 h ago; 61/69 feeds healthy; failing: AdNews, Banking Day, Business News Australia, HR Leader, Information Age, InnovationAus, InvestorDaily, The New Daily

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

How to fix

Feeds returning 403/404 have moved or now block bots. Fix the URL in the sources table (scripts/discover-feeds.ts) or disable the source.

Mailbox scans (Vercel cron, nightly)

OK

6 inboxes, last scan 14 h ago

24 h 100.0% · 7 d 100.0% · in this state since 17 Sept, 01:54

Opportunity engine (callouts arriving)

OK

newest callout 16 h ago; 51 in last 24 h; email:haro 16 h ago, email:qwoted 38.3 days ago, sourcebottle 33 h ago

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

Pressto webhook deliveries (hub to api.yaarn.ai)

OK

last 24 h: 2 delivered, 0 failed of 3; last response: 200 {"received":true}

24 h 100.0% · 7 d 81.2% · in this state since 15 Sept, 18:15

Credits, keys and sessions

OpenRouter credit (web lookups, verification, chat)

OK

US$34.92 left; burning about US$2.99/day (about 11 days)

24 h 92.7% · 7 d 88.8% · in this state since 19 Sept, 21:38

Substack session (On Background, Get Featured)

OK

newest post pulled 5.1 days ago

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

Resend (digest + portal email)

OK

key present in media-hub/.env.local (delivery proven by the digest job above)

24 h 100.0% · 7 d 100.0% · in this state since monitoring began

Incidents (last 25)

ComponentStartedEndedWhat was seen
Headless claude (what every extractor job runs on)19 Sept, 21:38openno answer: You've hit your weekly limit · resets 3pm (America/New_York)
Opportunity poll (every 15 min)19 Sept, 15:2719 Sept, 23:13last poll 5.1 h ago; email: 124 seen, 0 new, 66 updated, 57 already known, 0 dupes, 39 expi | sourcebottle: 430 seen, 0 new, 369 updated, 57
Opportunity poll actually running (any clock)19 Sept, 15:2719 Sept, 21:38last poll finished 2.9 h ago
Opportunity poll (every 15 min)19 Sept, 10:2319 Sept, 12:15last poll 2.8 h ago; email: 124 seen, 14 new, 53 updated, 56 already known, 8 dupes, 36 exp | sourcebottle: 408 seen, 0 new, 344 updated, 56
OpenRouter credit (web lookups, verification, chat)19 Sept, 06:5319 Sept, 22:38US$8.23 left; burning about US$4.31/day (about 1 days)
Client portal (onboarding.launchlink.co)19 Sept, 06:3119 Sept, 06:43fetch failed
Turso production database19 Sept, 06:1919 Sept, 06:31fetch failed
OpenRouter credit (web lookups, verification, chat)19 Sept, 05:5819 Sept, 06:08fetch failed
Turso production database19 Sept, 05:5819 Sept, 06:08fetch failed
Team dash (Cloudflare)19 Sept, 05:5819 Sept, 06:08fetch failed
Cycle engine (Railway)19 Sept, 05:5819 Sept, 06:08fetch failed
Client portal (onboarding.launchlink.co)19 Sept, 05:5819 Sept, 06:08fetch failed
Team page functions (D1 notes and submissions)19 Sept, 05:5819 Sept, 06:08fetch failed
Media Intel team page (Cloudflare)19 Sept, 05:5819 Sept, 06:08fetch failed
Opportunity API (/api/mobile/v1/feed)19 Sept, 05:5819 Sept, 06:08fetch failed
Media hub cron endpoint (Vercel to Turso)19 Sept, 05:5819 Sept, 06:08fetch failed
Media hub (Vercel)19 Sept, 05:5819 Sept, 06:08fetch failed
OpenRouter credit (web lookups, verification, chat)18 Sept, 13:0018 Sept, 13:12fetch failed
Turso production database18 Sept, 13:0018 Sept, 13:12fetch failed
Media Intel team page (Cloudflare)18 Sept, 13:0018 Sept, 13:12fetch failed
Opportunity API (/api/mobile/v1/feed)18 Sept, 13:0018 Sept, 13:12fetch failed
Media hub cron endpoint (Vercel to Turso)18 Sept, 13:0018 Sept, 13:12fetch failed
Media hub (Vercel)18 Sept, 13:0018 Sept, 13:12fetch failed
Headless claude (what every extractor job runs on)18 Sept, 09:0818 Sept, 09:29no answer: You've hit your session limit · resets 7:20pm (America/New_York)
Turso production database18 Sept, 03:5718 Sept, 04:18fetch failed

Automatic restarts (last 15)

ComponentWhenAction
Opportunity poll (every 15 min)19 Sept, 10:24co.launchlink.opportunities
Team dash refresh daemon19 Sept, 10:24com.launchlink.refresh-daemon
Daily brief action server (:3001)19 Sept, 06:20co.launchlink.action-server
Team dash refresh daemon18 Sept, 06:50com.launchlink.refresh-daemon
Opportunity poll (every 15 min)18 Sept, 02:27co.launchlink.opportunities
Savings, events, trends + team page deploy (06:45 daily)17 Sept, 13:06co.launchlink.intel-stores
Daily brief action server (:3001)17 Sept, 00:34co.launchlink.action-server
Team dash morning brief (6x/day)17 Sept, 00:18co.launchlink.briefing.0900
Gmail media intel (06:30 daily)16 Sept, 22:27co.launchlink.media-intel
Verification sweep (daily)16 Sept, 20:34co.launchlink.media-sweep
Felicia's daily brief (6x/day)16 Sept, 16:14co.launchlink.personal-brief
Opportunity poll (every 15 min)16 Sept, 16:14co.launchlink.opportunities
Team dash refresh daemon16 Sept, 16:14com.launchlink.refresh-daemon
WhatsApp bridge16 Sept, 16:14com.launchlink.whatsapp-bridge
Savings, events, trends + team page deploy (06:45 daily)16 Sept, 14:22co.launchlink.intel-stores