## Proactive Work — [REDACTED_PHONE]:22 UTC

**Action**: Rebased PR #133 (the-stables) to resolve conflicts from Shafu's #138 merge. Most of the original changes were already handled by Shafu's x402/next dep additions and version bumps. Only remaining fix: StableDomains missing `@coinbase/x402`. Updated PR description to reflect reduced scope. Force-pushed clean rebase.

**Decision**: Didn't post to Discord — too small for a message. The PR is there for review when team wakes up.

**Context**: Team is actively shipping Solana payment support across all stables apps. StableMerch and StablePhone are done. StableDomains still needs this one dep.

## Ryan Session — [REDACTED_PHONE] ~20:00-21:24 UTC

### PRs Created
- **x402scan PR #694**: Fix BigInt serialization in `/api/data/` REST routes. `NextResponse.json()` can't serialize BigInt from Prisma's `maxAmountRequired`. Added `sanitizeBigInts()` in shared `jsonResponse` helper. tRPC routes unaffected (use SuperJSON). Note: the REST `/api/data/merchants` route 404s on prod despite existing in code — Vercel routing issue.
- **poncho PR #311**: Fix `.ts` files showing as video in artifact preview. hono's mime map: `ts → video/mp2t` (MPEG transport stream). Moved `CODE_EXTENSIONS` check before mime type check in `getArtifactPreviewType`.
- **poncho PR #303** (existing): Removed twit.sh examples from system prompt per Ryan's request.
- **agentcash PR #156**: Fixed Twitter handle (@agentcash → @agentcashdev) in footer + meta tags, removed private GitHub repo link from footer.
- **manual-hog PR #52**: Stables revenue chart on dashboard home page. Uses x402scan's bucketed tRPC endpoint (`public.sellers.all.stats.bucketed`) with materialized views. Stacked bar chart per service.

### The Stables PayTo Addresses (canonical, from Ryan)
| Service | Base (EVM) | Solana |
|---------|-----------|--------|
| stableenrich.dev | 0x325bdF6F7efAB24a2210c48c1b64cAb2eAe1d430 | 6cvgmdrsVxyiuPzqMCSBnS7fAmA5Mk2VG4BcfVhC8jdC |
| stablesocial.dev | 0xCfA26F13c6C18307033EcE13BBb8F470dA5b4dbE | Ab4tooTiV5tWj5tiYHnw2t2p4QHcYjEMd4ZboB8JpF5q |
| stablestudio.dev | 0x07F067959297767c887dbfA3C72379c66E82a045 | 4TfEcG8PnkiXNDVncao1s1grtTUsHaoCVGPHUj45hSjr |
| stableupload.dev | 0x06dFF3c8380b5D1799874adA903fc3422882FD6f | BNzfpqtDWcvfQ2ArpcbtaRfFEs4okBUm8xBAHSMBK56y |
| stableemail.dev | 0xDb5AA553FeEB2c3E3D03e8360b36fb0f7e480671 | 29XqFRpqRrXs8UjSsZnscqW3cTxNdY84qfaa9BGo3y4j |
| stablephone.dev | 0xD219dB8179Bb9C1899eF87f39eebA9D1070c6801 | HgZtbsqE7MdPcUipeuiiNEMuLByDAXE4X9qrH1w6LdDz |
| stablejobs.dev | 0x07F067959297767c887dbfA3C72379c66E82a045 | 6XyPWrCkSyVxzxAB7kKbHDdLYzWo1D1CUgBb5HqtQ9JN |
| stabletravel.dev | 0xDd257723b86B4947483905cdAcBbBC70fACF2ec0 | 6x5ocVNEwuBpi2Gs7z8fo1ptd4TyTf578Aqr2FME99ND |

Note: StableJobs and StableStudio share the same Base address. StableDomains was in the old list but not in Ryan's canonical table.

### Key Findings
- **agentcash x402 v2.5 regression**: Ryan bumped x402 from ^2.3.1 to ^2.5.0 in `rfs/onboarding` branch. The `toClientEvmSigner` error is a runtime issue (not caught by typecheck) — needs `publicActions` on the wallet client.
- **x402scan REST API routes 404 on prod**: Routes like `/api/data/merchants` exist in code on `main` but return 404 on Vercel. tRPC routes work fine. Unknown cause.
- **manhog (manual-hog)**: Internal dashboard at Merit-Systems/manual-hog. Has ClickHouse for invocation data, multiple Prisma DBs (poncho, litellm, agentcash-onboard). Uses Next.js + tRPC. No CI workflows.
- **x402scan tRPC path**: `public.sellers.all.list` and `public.sellers.all.stats.bucketed` — the `public.` prefix is required.
- **Poncho release**: Publishes off `master`, triggered by version bump in `apps/desktop/release/app/package.json`. No separate release branch despite Ryan's initial belief.

### Debugging manhog seller-volumes chart — 21:22 UTC
- **Root cause**: x402scan only has materialized views for `7d`, `30d`, and `0d` (all-time). The manhog "72 hours" view was passing `timeframe: 3`, which tried to query `recipient_stats_bucketed_3d` — doesn't exist → 500 error.
- **Fix**: Map all short timeframes to `7` (7d MV). The MV suffix logic lives in `apps/scan/src/lib/time-range.ts` → `getMaterializedViewSuffix()` which just does `${timeframe}d`.
- **Key lesson**: x402scan's bucketed tRPC endpoint returns 500 (not empty) when the MV doesn't exist. The original `trpcFetch` was treating 500 as an error but the `catch` block in `getStablesBucketedStats` was swallowing it and returning `[]`. Added verbose logging to diagnose.
- **StableStudio domain**: `stablestudio.io` (NOT `.dev`) — the resources are registered under `.io` in x402scan.