M5: Railway staging results ADR (ENG-271) #34

Merged demi.dev
targeting main from stoopkidddd/eng-271-railway-deploy-adr
Merged opened by and assigned to demi.dev
targeting main from stoopkidddd/eng-271-railway-deploy-adr

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 resolve UPLOAD_MODE=auto to 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.
  • 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

Commits 0