# [REDACTED_PHONE]

## Work completed (rsproule tasks, multi-day sprint)

### manhog (manual-hog)
- PRs #19-#24 all merged: stacked bar charts by client_id, shared colors, DAU/WAU charts, exclude internal toggle, EST timezone, 72h/1week/alltime views
- PR #25 open: DAU crash fix — `toStartOfInterval` 3rd arg is `origin` not `timezone`, React hooks violation (useMemo after early return)
- Key: ClickHouse `toStartOfInterval(date, INTERVAL, tz)` 3-arg form treats 3rd arg as origin, NOT timezone. Use 4-arg or workaround.
- 1week view uses `toStartOfHour - (hour % 4)` for 4-hour buckets
- `normalizeDate` appends `Z` to treat bare timestamps as UTC

### agentcash
- PR #74 (client-id fallback), #75 (send endpoint), #78 (version flag), #89 (remove OpenAPI cache) all merged
- PR #77 open: gates `/api/send` with `@agentcash/router` dynamic `payTo`. Preview can't test — Coinbase CDP CORS blocks non-prod URLs.
- Deleted broken `HTTPFacilitatorClient` middleware (initialized without CDP auth headers → 500)

### agentcash-router
- PR #63 merged (v0.6.0→v0.6.1): `payTo` option on `.paid()` — string or `(request) => string | Promise<string>`
- `resolvePayTo()` in `src/orchestrate.ts` handles static, async fn, or fallback

### the-stables
- PR #42: Removed all 12 LinkedIn routes (Data365 key unsupported), fixed old JWT compat (`if (w && ...)`), dismissed Vercel bot false positives
- PR #49: Dismissed Vercel bot false positive on Grok truncation `repairTruncatedJson`
- PR #50: Fixed stablesocial homepage — `npx agentcash fetch` CLI examples, `stablesocial.dev` domain
- llms.txt rewrite still pending on `absolute-firehose` branch — must keep protocol-agnostic style, add SIWX auth, remove x402/agentcash tool references
- Data365 credit monitoring exists at `apps/stablesocial/lib/monitor/data365.ts` but no cron/Discord alerts wired

### Other
- poncho PR #229: artifacts panel tree structure fix
- x402scan PR #648: CORS on 402 responses; PR #640: non-string query params fix
- CraigClaw PR #24: git email fix; #rfs-craig channel configured `requireMention: false`

## Key technical patterns
- agentcash default branch: `master`; agentcash-router: `main`; manhog: `master`; the-stables: `master`
- StableSocial async two-step: POST (pay) → token → GET /api/jobs?token=... (free, SIWX wallet auth). All 57 endpoints async.
- GitHub App token can't push branches modifying `.github/workflows/`
- Handler functions in router must return `Promise<unknown>` (use `Promise.resolve()`)
- agentcash CLI: `-m` for method, `-b` for body (not curl-style `-X`/`-d`)

## Preferences (rsproule)
- Charts: stacked bar (not area), vivid colors (no grays), deterministic color per client_id
- Wants 1 big message not several consecutive
- llms.txt: protocol-agnostic, no tool-specific names, clean generic language
- Shafu: no unnecessary comments in code

## Evening session (Feb 24)

### stabletravel.dev — new x402 resource
- Travel APIs (Amadeus + FlightAware AeroAPI) wrapped in x402 micropayments
- Flight search, hotels, activities, transfers, real-time flight tracking
- Endpoint: `https://stabletravel.dev/api/...`
- Filed issue the-stables#69: All Amadeus endpoints 500ing, FlightAware Foresight/History 401ing (assigned rsproule)
- Only activities + basic FlightAware endpoints work; Foresight ($[REDACTED_PHONE]) and History ($[REDACTED_PHONE]) return 401
- the-stables#73: StableSocial X/Twitter routes all 401 (assigned sragss)

### Sam's flight search (DEN→NY, Feb 24)
- Nor'easter cancelled all DEN→EWR flights on Feb 23
- Used FlightAware via stabletravel.dev to find tomorrow's options
- Best options: UA1283 (12:46 PM MT→EWR), B6 1298 (12:14 PM MT→JFK)
- Evening flights (UA2613, DL716) already cancelled for Feb 24

### agentcash PR #106 — fix bare domain in discover
- `discoverResources()` now auto-prepends `https://` for bare domains
- Closes agentcash#63
- Branch: `craig/fix-bare-domain-discover`

### poncho PR #266 — TOS/Privacy merge conflict resolved
- File moved from `components/access-key-screen.tsx` to `router/onboarding/access-key.tsx` on master
- Kept legal text (Terms + Privacy links), dropped `isWaitingForWallet` progress indicator (vars not in current version)
- Rebased and force-pushed; CI monitoring cron set up (poncho-266-ci-check)

### Poncho sha512 checksum mismatch (poncho#166)
- Root cause: `copy-update-manifests` job uploads rewritten `latest-*.yml` manifests without cache-control headers
- Fix: add `--cache-control "no-cache, no-store, must-revalidate"` to manifest S3 uploads
- Sam merged the fix as poncho#256
- Couldn't push PR myself — GitHub App token lacks `workflows` permission

### Open vs Closed protocol diagrams (agentcash#99)
- Created 4 variants, all uploaded to stableupload.dev:
  1. Brutalist/Terminal: f.stableupload.dev/mbgrhr95hc/diagram-v1-brutalist.html
  2. Clean/Editorial: f.stableupload.dev/67dv5eha6w/diagram-v2-editorial.html
  3. Retro-Futuristic/Neon: f.stableupload.dev/xg5hdqc2a8/diagram-v3-neon.html
  4. Organic/Network: f.stableupload.dev/pebtdtrfx2/diagram-v4-organic.html

### Team PR stats (48hr, Feb 22-24)
- Shafu 36, Sam 14, Ryan 7, Jason 7, Ben 6, Alvaro 4, Mason 1 = 75 total

### Key people
- edevery (Emily Devery) — contributing brand assets/OG tags to the-stables

### Repos
- stabletravel lives in `apps/stabletravel` in the-stables monorepo
- mppscan — appears to be x402scan rebrand/sister site
- agentcash default branch is `master` (not main)

### Cron jobs active
- poncho-266-ci-check: polls every 2min, DMs Sam when CI done
- CAIA Daily Intelligence Briefing: runs daily at 10am ET