Media hub (Vercel)
OKHTTP 307 in 774 ms
HTTP 307 in 774 ms
HTTP 200: {"ran":"2026-09-16T20:46:00.791Z","step":"ping"}
auth wall answering (HTTP 401) in 82 ms
up; page says "Updated 15 Sep 2026" (41 h ago)
The page is regenerated and deployed by the 6:45 intel-stores job. Stale page = that job stopped before its deploy step. Read stores/intel-stores.log.
HTTP 400 {"error":"opp required"}
HTTP 200 in 1477 ms
up; 5,562 articles, 398 live cycles, 80/90 feeds healthy, llm api (gemini-flash-latest); disk 23% used (db 91 MB, 333 MB free)
HTTP 200 in 358 ms
up; last message 25 min ago
answering (HTTP 404)
last tick -255 min ago
last poll finished 1.9 h ago
Three clocks kick the Vercel poll: Cloudflare Worker media-cron every 15 min (primary), GitHub Actions hourly (fires every few hours in practice), launchd on the Mac every 15 min (backup). All three quiet = Vercel poll route or CRON_SECRET broke: curl it by hand with the Bearer secret.
last intel file 7.7 h ago
last stores file 47 h ago
Runs stores/intel-stores.sh. The extractor step is now non-fatal, so the page still regenerates and deploys even if Gmail mining fails. Re-run: bash stores/intel-stores.sh
last run 18 h ago; digest not reached yet
last poll 1 min ago
last run 1.9 h ago, success
last run 1.8 h ago, success
last pass 5.1 h ago; [2026-09-16 11:37] pass 1/1 unreadable response / [2026-09-16 11:38] adjudicate settled 0 · disagreed 0 · for a person 0
'unreadable response' = the cron verify step timed out or returned non-JSON (often OpenRouter out of credit, or a 300 s Vercel window overrun). Check the credits card below first.
brief last written 38 h ago; last exit 1; log: API Error: Unable to connect to API (ConnectionRefused)
refresh.sh needs --permission-mode acceptEdits and current MCP tool names; a stale file with no error usually means the final Write was denied.
last log write 6.4 h ago; launchd exits [6,1,6,6,6,6]
claude -p answered
9 jobs loaded
reachable in 1826 ms; 12,148 journalists; 2441 staged changes awaiting review
last feed run -142 min ago; 61/69 feeds healthy; failing: AdNews, Banking Day, Business News Australia, HR Leader, Information Age, InnovationAus, InvestorDaily, The New Daily
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.
6 inboxes, last scan -171 min ago
newest callout 1.9 h ago; 127 in last 24 h; email:haro 1.9 h ago, email:qwoted 35.6 days ago, sourcebottle 16 h ago
nothing sent in the last 24 h
US$14.66 left; burning about US$3.14/day (about 4 days)
Top up at openrouter.ai/settings/credits. At zero, every web feature returns empty with no error (402 swallowed), verification stalls and the sweep logs 'unreadable response'.
newest post pulled 2.4 days ago
key present in media-hub/.env.local (delivery proven by the digest job above)
| Component | Started | Ended | What was seen |
|---|---|---|---|
| OpenRouter credit (web lookups, verification, chat) | 17 Sept, 00:32 | 17 Sept, 00:45 | fetch failed |
| Turso production database | 17 Sept, 00:32 | 17 Sept, 00:45 | fetch failed |
| Headless claude (what every extractor job runs on) | 17 Sept, 00:32 | 17 Sept, 06:45 | no answer: You've hit your session limit · resets 5:10pm (Europe/Lisbon) |
| Client portal (onboarding.launchlink.co) | 17 Sept, 00:32 | 17 Sept, 00:45 | fetch failed |
| Team page functions (D1 notes and submissions) | 17 Sept, 00:32 | 17 Sept, 00:45 | fetch failed |
| Media Intel team page (Cloudflare) | 17 Sept, 00:32 | 17 Sept, 00:45 | fetch failed |
| Opportunity API (/api/mobile/v1/feed) | 17 Sept, 00:32 | 17 Sept, 00:45 | fetch failed |
| Media hub cron endpoint (Vercel to Turso) | 17 Sept, 00:32 | 17 Sept, 00:45 | fetch failed |
| Media hub (Vercel) | 17 Sept, 00:32 | 17 Sept, 00:45 | fetch failed |
| Team dash (Cloudflare) | 17 Sept, 00:15 | 17 Sept, 00:32 | fetch failed |
| Cycle engine (Railway) | 17 Sept, 00:15 | 17 Sept, 00:45 | fetch failed |
| Turso production database | 16 Sept, 23:55 | 16 Sept, 23:58 | fetch failed |
| GitHub Actions watchdog (backup, fires every few hours) | 16 Sept, 23:50 | 16 Sept, 23:55 | last run 3.6 h ago, success |
| OpenRouter credit (web lookups, verification, chat) | 16 Sept, 23:43 | 16 Sept, 23:50 | fetch failed |
| Media hub cron endpoint (Vercel to Turso) | 16 Sept, 23:43 | 16 Sept, 23:50 | This operation was aborted |
| Media hub (Vercel) | 16 Sept, 23:43 | 16 Sept, 23:50 | fetch failed |
| Turso production database | 16 Sept, 23:29 | 16 Sept, 23:50 | fetch failed |
| GitHub Actions watchdog (backup, fires every few hours) | 16 Sept, 23:29 | 16 Sept, 23:43 | last run 3.3 h ago, success |
| Media Intel team page (Cloudflare) | 16 Sept, 23:29 | 16 Sept, 23:43 | This operation was aborted |
| Team dash morning brief (6x/day) | 16 Sept, 23:15 | 17 Sept, 00:32 | last log write 30 h ago; launchd exits [6,6,6,6,6,6] |
| Felicia's daily brief (6x/day) | 16 Sept, 23:15 | open | brief last written 30 h ago; last exit 1; log: API Error: Unable to connect to API (ConnectionRefused) |
| Client portal (onboarding.launchlink.co) | 16 Sept, 23:15 | 16 Sept, 23:29 | This operation was aborted |
| GitHub Actions opportunity poll (backup clock) | 16 Sept, 22:50 | 16 Sept, 23:55 | last run 3.0 h ago, success |
| GitHub Actions watchdog (backup, fires every few hours) | 16 Sept, 22:25 | 16 Sept, 23:15 | last run 2.2 h ago, success |
| OpenRouter credit (web lookups, verification, chat) | 16 Sept, 21:50 | 16 Sept, 22:00 | fetch failed |
| Component | When | Action |
|---|---|---|
| Daily brief action server (:3001) | 17 Sept, 00:34 | co.launchlink.action-server |
| Team dash morning brief (6x/day) | 17 Sept, 00:18 | co.launchlink.briefing.0900 |
| Gmail media intel (06:30 daily) | 16 Sept, 22:27 | co.launchlink.media-intel |
| Verification sweep (daily) | 16 Sept, 20:34 | co.launchlink.media-sweep |
| Felicia's daily brief (6x/day) | 16 Sept, 16:14 | co.launchlink.personal-brief |
| Opportunity poll (every 15 min) | 16 Sept, 16:14 | co.launchlink.opportunities |
| Team dash refresh daemon | 16 Sept, 16:14 | com.launchlink.refresh-daemon |
| WhatsApp bridge | 16 Sept, 16:14 | com.launchlink.whatsapp-bridge |
| Savings, events, trends + team page deploy (06:45 daily) | 16 Sept, 14:22 | co.launchlink.intel-stores |
| Felicia's daily brief (6x/day) | 16 Sept, 09:11 | co.launchlink.personal-brief |
| Opportunity poll (every 15 min) | 16 Sept, 04:15 | co.launchlink.opportunities |
| Team dash refresh daemon | 16 Sept, 04:15 | com.launchlink.refresh-daemon |
| WhatsApp bridge | 16 Sept, 04:15 | com.launchlink.whatsapp-bridge |