# [REDACTED_PHONE]

## Proactive Run (10:29 UTC)

### Research
- Recent merges: Poncho v0.0.30 + stream hardening + Cmd+Q fix (#139), x402email security hardening + subdomain inboxes, x402scan data API endpoints + CLI refactor
- Open issues: x402scan #633 (docs fix - Next.js path + viem examples), poncho #129 (source citations), #115/#114 (chat icon), #95 (chat search), #70 (virtualization)
- No new open issues on x402email or agentupload

### Action
- Fixed x402scan#633: corrected Next.js route path in DISCOVERY.md (`app/api/.well-known/x402/` → `app/.well-known/x402/`), added viem and Foundry `cast` signing examples
- PR: https://github.com/Merit-Systems/x402scan/pull/639

## ElevenLabs Outreach (03:00-04:00 UTC)

- Researched ElevenLabs via Apollo enrichx402: org ID 62cf12618ef56c00b3c01e1b, 340 emp, $1B total funding (Series D Feb 2026), $330M revenue
- Target contact: Sam Sklar (Growth) — [REDACTED_EMAIL] — also a16z Scout, Stanford CS, ex-Intuit/Facebook
- Co-founders: Piotr Dąbkowski, Mati Staniszewski
- Drafted cold email v1-v8 with Sam Ragsdale's feedback: all lowercase, casual, mentions a16z connection + Coinbase/x402 + "agent without a voice"
- Sent final email from [REDACTED_EMAIL] to [REDACTED_EMAIL], CC [REDACTED_EMAIL]
- replyTo set to [REDACTED_EMAIL] (new subdomain inbox)

## Subdomain Inbox (03:22 UTC)

- Purchased [REDACTED_EMAIL] inbox ($0.25, 500 msg cap, retainMessages enabled)
- Updated HEARTBEAT.md with daily email check at 10am ET (hour 14 UTC)
- Tracks notified emails in ~/.craig-notified-emails to prevent duplicates

## TTS Prospect Research (04:30-05:00 UTC)

- Researched 15 ElevenLabs competitors for x402 TTS integration outreach
- Used Apollo enrichx402 to find org details + leadership contacts
- Key findings:
  - Rime: Head of Eng Matthew Kim is ex-Coinbase ([REDACTED_PHONE]) — strongest ammo for x402 pitch
  - Cartesia: Head of Platform Kunal Shah ex-Google/Facebook, Head of Product Israel Shalom ran Google APIs Platform
  - LMNT: Both founders ex-Google (16+ combined years)
  - Resemble AI: Has dedicated Head of Partnerships (Will Krispin, ex-Uber BD)
  - Altered AI: Founder ex-Google Research 8 years in speech/voice
  - PlayHT: Acquired by Meta (dead prospect)
  - Coqui: 4 people, likely dead
- Reports uploaded to agentupload.dev: tts-prospects.html, tts-outreach-targets.html
- Emailed report link to [REDACTED_EMAIL] as reminder

## Poncho PRs

- PR #139: faster Cmd+Q (remove 3s stream drain await on quit)
- PR #145: subagent tool call animations (slide + blur using motion/react, same pattern as fortell-sieve RunningJobRow)
- PR #12 (CraigClaw): peak RAM monitoring heartbeat

## CAIA Briefing Fix

- Cron schedule was wrong: `0 14 * * *` (2pm ET) instead of `0 10 * * *` (10am ET) — fixed
- Cron `run` command times out (gateway timeout 60s) but scheduled auto-trigger should work
- Manually fired Feb 13 briefing via sessions_spawn, all 8 emails delivered
- Mason feedback: styling must match Feb 12 original (parchment bg, not dark), must hyperlink to sources

## Poncho Screen Recording

- Successfully ran Poncho Electron app on headless EC2 via Xvfb
- Required: git-lfs (claude binary was LFS pointer), --no-sandbox, --disable-gpu flags
- Recorded full demo: invite code CRAIG, typed prompt, 12+ tool calls executed
- Video: https://f.agentupload.dev/vx85k8h42k/poncho-demo-v3.mp4
- Testing PR #144 (sam/stream-isolation) with 3 chats + rapid switching — in progress

## Disk Usage Investigation

- Poncho: 4.6GB (1.8GB node_modules, 1.4GB .git, 1.4GB LFS binaries)
- StableStudio: 2.5GB
- upstream openclaw (~/Code/openclaw/openclaw): 2.2GB — SAFE TO DELETE, fork exists at ~/Code/Merit-Systems/openclaw
- Disk at 72%, need to clean up

## Key Memories Burned

- Always use agentupload.dev for uploads (never catbox)
- Always run CI checks locally before PRs
- OpenClaw fork cloned to ~/Code/Merit-Systems/openclaw
- CAIA styling: parchment bg #fdf6e3, red stamps, blue Comic Sans annotations, coffee stain, hyperlink everything
- craig-ram-monitor.service running (samples every 15s, writes peak to /tmp/craig-ram-peak)

## Poncho Headless Screen Recording — Battle-Tested Playbook

### What Worked (across 4 attempts)

**Run 1 (v1):** Got app to invite code screen, recorded it, but couldn't proceed without invite code. Learned: Xvfb + ffmpeg + xdotool all work fine on this EC2 box.

**Run 2 (v2 — failed):** Electron couldn't find DISPLAY. The `claude` LFS binary was a pointer file (133 bytes instead of 213MB). Learned: MUST run `git lfs pull` after cloning Poncho.

**Run 3 (v3 — success):** Full demo. App was already authed from v1's invite code entry. Typed prompt, agent ran 12+ tool calls, 5 min recording. Video: 6.8MB, valid mp4.

**Run 4 (PR#144 test — success with timeout):** Anti-thrash strategy worked perfectly. Only 5 screenshots, all 3 chats created, rapid switching recorded. ffmpeg cleanly shut down with SIGINT. Sub-agent timed out during upload but video was valid. Uploaded manually after.

### Mandatory Setup Steps for Poncho Dev on EC2

1. **git lfs pull** — The `claude` binary in `apps/desktop/assets/bin/` is tracked by Git LFS. Without this, Electron launches but the agent backend crashes with EPIPE. This is the #1 gotcha.
2. **Install system deps:** `sudo apt-get install -y xvfb xdotool libnss3 libatk-bridge2.0-0 libdrm2 libxkbcommon0 libgbm1 libasound2t64 git-lfs scrot`
3. **Electron flags** — Add before `async function main()` in `apps/desktop/src/main/index.ts`:
   ```
   app.commandLine.appendSwitch('no-sandbox');
   app.commandLine.appendSwitch('disable-gpu');
   app.commandLine.appendSwitch('disable-software-rasterizer');
   ```
4. **Xvfb:** `Xvfb :99 -screen 0 1280x720x24 -ac &`
5. **pnpm install** then **DISPLAY=:99 pnpm dev**
6. **Auth persists** — Once invite code is entered, it persists in Electron's app data across runs. Don't need to re-enter.

### Anti-Thrash Rules for Sub-Agents

These rules dramatically improved reliability on run 4:

1. **Screenshot budget:** Max 15 total. Never take 2 without an action in between.
2. **No polling loops.** Sleep 10-15s, check once. Don't poll every 2s.
3. **ffmpeg shutdown: ALWAYS use `kill -2` (SIGINT)** — SIGTERM/SIGKILL corrupts the mp4 (no moov atom). Wait 5s after SIGINT for finalization.
4. **Save ffmpeg PID explicitly** and echo it to the log file.
5. **Time-box phases:** Setup 2min, launch 2min, interaction 5min, cleanup 2min.
6. **Log every action with timestamp** to a file — if the agent gets killed, we know where it died.
7. **Don't retry more than once** — if something fails twice, document and move on.
8. **NODE_OPTIONS="--max-old-space-size=128"** on mcporter calls to prevent heap bloat OOM kills.

### What DOESN'T Work / Known Issues

- `du` on large directories (poncho node_modules) can get OOM killed — scan specific subdirs instead
- mcporter processes sometimes get SIGKILL'd — not real system OOM, it's Node heap bloat. Use --max-old-space-size flag.
- The `claude` binary may crash with EPIPE on headless — tool calls still show in UI briefly before error dialog appears
- File manager can pop up if xdotool clicks the wrong area — be precise with coordinates, chat input is bottom-center (~640, 680)
- Sub-agents can timeout during upload phase — always verify video exists and is valid before the agent tries to upload

### Poncho CI (from CLAUDE.md + .github/workflows)

- `pnpm check` runs `turbo run lint typecheck test knip format:check`
- Protected stream files: DO NOT MODIFY `stream-lifecycle.ts`, `chat-instance-manager.ts`, `use-chat.ts` unless task specifically involves streaming
- Pre-existing build errors: Rollup can't resolve @ai-sdk/anthropic, csv.tsx has implicit any — not from Craig's changes

## Proactive Run (17:45 ET)

### Research
- Recent merges: Poncho CI larger runners (#148), gitignore routeTree (#146), USDC balance retry (#141), faster quit (#139), subagent truncate (#138); x402email security audit round 2 (#11)
- Open issues reviewed: x402scan #623 (non-string query params), poncho #142 (CI bot PRs), #129 (citations), #114/#115 (chat icon), #95 (chat search)

### Action
- Fixed x402scan #623: `expandFields()` in schema.ts was silently dropping non-string primitive query param values (numbers, booleans). Added handling to convert them to string representation.
- PR: https://github.com/Merit-Systems/x402scan/pull/640

## Late Session (20:00-04:00 UTC)

### x402phone.dev
- Built full Next.js app wrapping Bland.ai behind x402 payments
- $0.54 flat per call (2x markup on ~$0.09/min Bland pricing)
- Routes: POST /api/x402/call, GET /api/x402/call/:id, .well-known/x402, llms.txt
- Follows enrichx402/x402email patterns (Zod v4, @x402/next, Bazaar discovery)
- Repo pushed to Merit-Systems/x402phone
- Sam needs to add BLAND_API_KEY env var for deployment
- Research docs in .claude/ directory

### Poncho Screen Recording (final success)
- Run 6 (v4) succeeded: 2min video, 3 chats, rapid switching, clean ffmpeg shutdown
- Video: https://f.agentupload.dev/ajnhbdkxs2/poncho-pr144-v5.mp4
- Anti-thrash playbook works: screenshot budget, time-boxing, SIGINT shutdown, progress logging
- Key finding: `unzip` was missing on EC2, causing skill extraction failures in claude binary
- EPIPE error is from claude binary crashing (skill extraction + possibly LiteLLM proxy issues), not auth

### Poncho CI Skip PR
- PR to skip CI on craigbidenbot PRs (claude-code-review, preview-release, test.yml)
- Can't push — GitHub App lacks `workflows` permission for .github/workflows/ files
- Diff ready for Sam to apply manually

### Poncho README Hero
- PR #149: Added hero image (donkey breaking through screen)
- Hosted on agentupload.dev

### Infrastructure
- Added 2GB swapfile (/swapfile, swappiness=10, persists via fstab)
- Fixes mcporter subprocess OOM kills (Node heap bloat, not real system OOM)
- Deleted upstream openclaw node_modules (saved ~1.9GB)
- Disk still at 72% on 24GB — Sam will bump to 100GB
- Installed: git-lfs, unzip, fpdf2

### Email Actions
- Sent waste management form to Bob Mercandetti ([REDACTED_EMAIL]) for Sam's 300 Kent Ave unit
- Hunter email verify: Bob's email valid, score 92, deliverable
- Sent follow-up to [REDACTED_EMAIL] about x402email use case, CC'd Sam
- Generated filled PDF of Action Carting form, uploaded to agentupload

### StableStudio Domain Fix
- Domain is **stablestudio.io** (NOT .art or .com — those are dead/wrong)
- API endpoints changed: now /api/x402/gpt-image-1/generate etc.
- Job status still requires SIWX auth (/tmp/siwx_poll.cjs still works)

### Agentic Cash Content Repo
- Created at Merit-Systems/agentic-cash-content
- Living doc for Sam & Mitch's x402 content ideas
- Scripts: RAAD lead gen v1, fat Ryan shirt v1, busker tipping v1+v2, ideas braindump
- Content lanes: "Agent does work while AFK", "Petty revenge", "Real-world interaction", "Clutch moments"
- Key insight from Mitch: need to show outcome first, then reveal x402scan-mcp at the end
- Structure: Hook with outcome → Show agent working → "Here's how: x402scan-mcp"

### Busker Tip Claim Page Prototype
- Generated burner wallet: 0xA38f1c02ef39564a7627D969e64fe3dADcBaD603
- Funded with $0.05 USDC via x402scan.com /api/send endpoint
- Built HTML claim page: https://f.agentupload.dev/rhh9yeq2hg/tip.html
- Uses x402scan.com /api/send for gasless USDC transfers
- x402 signing in the JS is a rough prototype — needs testing against actual x402 payment header format
- Concept: non-custodial tip page, PK embedded in HTML, first to claim gets the USDC

### Key People (new)
- TJ Ragsdale: Sam's brother, runs RAAD (drone imaging company) in Miami, email [REDACTED_EMAIL]
- Bob Mercandetti: Interstate Waste, mobile [REDACTED_PHONE], [REDACTED_EMAIL]
- Sarman: zeroinbox.ai, [REDACTED_EMAIL], interested in x402email use case

### Sam's Personal Info (from waste form)
- Address: 300 Kent Ave, Unit 604, Williamsburg, NY 11249
- Phone: ([REDACTED_PHONE]

### Cron Jobs Set
- DJI mic reminder for Sunday Feb 16: 9am, 12pm, 6pm ET — aggressive escalating reminders to pack mic for Mexico trip
- Disk bump reminder (should have fired at 5:25pm ET)

### Mitch
- Discord: outperformed (ID [REDACTED_PHONE])
- Last name still unknown
- Uploaded his own real GH profile pic (rejected Craig's AI-generated options)
- Co-owns agentic-cash-content repo with Sam
- Working on x402 content strategy — genZ meme-friendly videos