Linear: https://linear.app/engineereddev/issue/ENG-271
Docs only (2 files). Records the staging results the issue requires in an ADR:
- New
docs/adr/0004-railway-staging-verification.md:- §18.1: Railway Buckets accept
PutBucketCors; both environments resolveUPLOAD_MODE=autoto direct. Staging smoke all PASS (incl. 2 MB file); a real Chromium upload from the staging origin got PUT 200 to the bucket, push 201, no CORS errors. - §18.2: keep overlap 0 s / draining 15 s. 150 notes sent across a staging redeploy: 0 send failures, 0 missing, 0 duplicates; the listener reconnected ~3 s after the old instance stopped. (Which instance wrote each push wasn't recorded.)
- An idle WebSocket held ~11 min through Railway's proxy (one upgrade), and a note after 10 idle minutes arrived live.
- ADR 0001's settings and the §12.3 bucket-reference variables were applied through the Railway API/MCP rather than committed IaC (avoids adding the Railway SDK for one service); ENG-273's template carries them.
- §18.1: Railway Buckets accept
docs/SPEC.md§18.1 and §18.2: each gets a "Verified on 2026-11-01" note linking ADR 0004.
Verify: mise run check:infra exit 0.
🤖 Generated with Claude Code