Media hub on Vercel (cron endpoint to Turso)
OKHTTP 200: {"ran":"2026-11-14T18:30:19.785Z","step":"ping"}
HTTP 200: {"ran":"2026-11-14T18:30:19.785Z","step":"ping"}
up; page says "Updated 15 Nov 2026" (-810 min ago)
HTTP 400 {"error":"opp required"}
HTTP 200 in 258 ms
up; 0 articles, 0 live cycles, 80/90 feeds healthy, llm api (gemini-flash-latest); disk 82% used (db 344 MB, 79 MB free)
cd ~/Developer/cycle-engine && railway status. 'Application not found' = no active deployment. If railway up says 'Your trial has expired', pick a plan at railway.com (Hobby is enough) and redeploy: railway up --service cycle-engine --detach. A full volume kills SQLite; the Janitor agent now prunes at boot and every 6 h, and a 'disk_warning' in the agent feed means grow the volume in the Railway dashboard.
HTTP 200 in 154 ms
up; last message 31 min ago
answering (HTTP 404)
last tick 1 min ago
last poll finished 9 min ago
last intel file 23 min ago
last stores file 2.2 h ago
last run 3.2 h ago; digest FAILED; [2026-11-14 08:55:17] digest failed (continuing)
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
last poll 12 min ago; email: 80 seen, 0 new, 49 updated, 31 already known, 0 dupes, 22 expir | sourcebottle: 343 seen, 0 new, 298 updated, 45 already known, 0 dupes,
last run 1.9 h ago, success
last run 4.6 h ago, success
last pass 2.1 days ago; [2026-11-12 08:20] pass 1/1 unreadable response / [2026-11-12 08:20] adjudicate adjudication unreadable
'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 21 min ago
last log write 23 min ago; launchd exits [1,0,6,6,6,6]
claude -p answered
9 jobs loaded
reachable in 1021 ms; 3525 staged changes awaiting review
last feed run 15 h ago; 60/69 feeds healthy; failing: AdNews, Banking Day, Business News Australia, HR Leader, Information Age, InnovationAus, InvestorDaily, Karryon, 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.
7 inboxes, last scan 15 h ago
newest callout 20 h ago; 39 in last 24 h; email:haro 20 h ago, sourcebottle 39 h ago
nothing sent in the last 24 h
US$29.40 left; burning about US$2.06/day (about 14 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 5.3 days ago
key present in media-hub/.env.local (delivery proven by the digest job above)
| Component | Started | Ended | What was seen |
|---|---|---|---|
| Felicia's daily brief (6x/day) | 15 Nov, 04:59 | 15 Nov, 05:30 | brief last written 40 h ago; last exit 1; log: API Error: Your computer went to sleep mid-response. The response above may be incomplete. |
| Opportunity engine (callouts arriving) | 14 Nov, 08:39 | 15 Nov, 04:59 | TypeError: fetch failed |
| Opportunity poll (every 15 min) | 14 Nov, 08:39 | 15 Nov, 04:59 | last poll 14 h ago; email: 120 seen, 0 new, 75 updated, 43 already known, 0 dupes, 25 expi | sourcebottle: 358 seen, 0 new, 304 updated, 43 |
| Media hub on Vercel (cron endpoint to Turso) | 14 Nov, 08:39 | 15 Nov, 04:59 | This operation was aborted |
| OpenRouter credit (web lookups, verification, chat) | 13 Nov, 11:27 | 13 Nov, 13:01 | fetch failed |
| Turso production database | 13 Nov, 11:27 | 13 Nov, 13:01 | fetch failed |
| Headless claude (what every extractor job runs on) | 13 Nov, 11:27 | 13 Nov, 13:01 | no answer: exit 143 |
| Media Intel team page (Cloudflare) | 13 Nov, 11:27 | 13 Nov, 13:01 | fetch failed |
| Media hub on Vercel (cron endpoint to Turso) | 13 Nov, 11:27 | 13 Nov, 13:01 | fetch failed |
| Client portal (onboarding.launchlink.co) | 12 Nov, 09:39 | 12 Nov, 10:11 | fetch failed |
| Turso production database | 12 Nov, 08:23 | 12 Nov, 09:09 | fetch failed |
| Team dash (Cloudflare) | 12 Nov, 08:23 | 12 Nov, 09:09 | fetch failed |
| Client portal (onboarding.launchlink.co) | 12 Nov, 08:23 | 12 Nov, 09:09 | fetch failed |
| Team page functions (D1 notes and submissions) | 12 Nov, 08:23 | 12 Nov, 09:09 | fetch failed |
| Media Intel team page (Cloudflare) | 12 Nov, 08:23 | 12 Nov, 09:09 | fetch failed |
| Media hub on Vercel (cron endpoint to Turso) | 12 Nov, 08:23 | 12 Nov, 09:09 | fetch failed |
| Headless claude (what every extractor job runs on) | 12 Nov, 04:41 | 12 Nov, 08:23 | no answer: You've hit your session limit · resets 12:50pm (America/Los_Angeles) |
| Opportunity poll (every 15 min) | 12 Nov, 03:03 | 12 Nov, 04:10 | last poll 2.9 h ago |
| Headless claude (what every extractor job runs on) | 11 Nov, 02:19 | 11 Nov, 07:13 | no answer: You've hit your session limit · resets 9:10am (America/Los_Angeles) |
| OpenRouter credit (web lookups, verification, chat) | 10 Nov, 08:02 | 12 Nov, 09:09 | US$8.08 left; burning about US$2.32/day (about 3 days) |
| OpenRouter credit (web lookups, verification, chat) | 10 Nov, 05:57 | 10 Nov, 06:52 | fetch failed |
| Turso production database | 10 Nov, 05:57 | 10 Nov, 06:52 | fetch failed |
| Team dash (Cloudflare) | 10 Nov, 05:57 | 10 Nov, 06:52 | fetch failed |
| Client portal (onboarding.launchlink.co) | 10 Nov, 05:57 | 10 Nov, 06:52 | fetch failed |
| Team page functions (D1 notes and submissions) | 10 Nov, 05:57 | 10 Nov, 06:52 | fetch failed |
| Component | When | Action |
|---|---|---|
| Verification sweep (daily) | 15 Nov, 05:30 | co.launchlink.media-sweep |
| Felicia's daily brief (6x/day) | 15 Nov, 04:59 | co.launchlink.personal-brief |
| Opportunity poll (every 15 min) | 15 Nov, 04:59 | co.launchlink.opportunities |
| Felicia's daily brief (6x/day) | 14 Nov, 09:44 | co.launchlink.personal-brief |
| Savings, events, trends + team page deploy (06:45 daily) | 14 Nov, 09:44 | co.launchlink.intel-stores |
| Gmail media intel (06:30 daily) | 14 Nov, 09:44 | co.launchlink.media-intel |
| Team dash refresh daemon | 14 Nov, 09:44 | com.launchlink.refresh-daemon |
| Opportunity poll (every 15 min) | 13 Nov, 11:35 | co.launchlink.opportunities |
| Daily brief action server (:3001) | 13 Nov, 11:35 | co.launchlink.action-server |
| Opportunity poll (every 15 min) | 12 Nov, 03:20 | co.launchlink.opportunities |
| Team dash refresh daemon | 12 Nov, 03:20 | com.launchlink.refresh-daemon |
| Savings, events, trends + team page deploy (06:45 daily) | 10 Nov, 12:45 | co.launchlink.intel-stores |
| Verification sweep (daily) | 10 Nov, 08:03 | co.launchlink.media-sweep |
| Team dash refresh daemon | 9 Nov, 04:07 | com.launchlink.refresh-daemon |
| Opportunity poll (every 15 min) | 8 Nov, 11:52 | co.launchlink.opportunities |