Verifying claudelines locally
Stack handle
pnpm dev --port 3456— Next.js dev server. DB access goes through the Neon HTTP driver:DATABASE_URL(local Postgres in Docker onlocalhost:5433) +NEON_HTTP_PROXY(local-neon-http-proxy container onlocalhost:4444/sql). Both from.env.local.- If API routes 500 with
Failed query …on every DB endpoint, the proxy container is likely wedged (it returnsControl plane request failedfor evenselect 1, while directpsqlon 5433 works). Workaround that avoids restarting Docker: run the ~50-line Neon-protocol shim overpg(POST/sql, raw-text types, honor theNeon-Array-Modeheader) against 5433 and start dev withNEON_HTTP_PROXY=http://localhost:<shim>/sql. - Migrations:
drizzle-kit migratehangs locally (the neon driver can't reach a non-Neon Postgres). Apply by hand:psql "$DATABASE_URL" -f drizzle/NNNN_*.sql, then insert(hash, created_at)intodrizzle.__drizzle_migrations— hash = sha256 of the SQL file, created_at = thewhenfromdrizzle/meta/_journal.json. Recent migrations are hand-written SQL + hand-edited journal (snapshots stopped at 0010). Beware0016_wipe_data.sqltruncatesstatuslines.
Driving flows
- Public reads are plain curl:
/api/statuslines?q=,/api/statuslines/{slug},/{slug}/script,/api/leaderboard, site pages at/statuslines/{slug}. - SIWX-signed routes (preview, archive, report, identity/connect): use the
agentcash MCP
fetchtool againsthttp://localhost:3456/...— it signs automatically. The local agentcash wallet address (for seeding owned rows) isaddressin~/.agentcash/wallet.json. - Paid routes (register, download, audit) charge real USDC even locally — prefer seeding rows straight into Postgres via psql for fixtures, and delete them after.