Set DOMAIN default to arbpulse.wayool.com and document the Cloudflare DNS setup (grey-cloud / DNS-only) so Caddy HTTP-01 and SSE work without proxy buffering.
Co-authored-by: Cursor <cursoragent@cursor.com>
Self-contained VPS deployment for 24/7 operation: app container behind Caddy with automatic HTTPS, idempotent deploy.sh, .env template, and runbook. SENTRY_TRACING defaults off to stay within the Sentry free-tier span quota.
Co-authored-by: Cursor <cursoragent@cursor.com>
Moves the completed change to openspec/changes/archive/ and creates the canonical openspec/specs/observability/spec.md.
Co-authored-by: Cursor <cursoragent@cursor.com>
Spans are now created and exported to Sentry only when SENTRY_TRACING is enabled (default off), keeping 24/7 operation within the free-tier span quota. Error monitoring stays always-on. Includes OpenSpec change gate-sentry-spans (proposal, design, specs, tasks).
Co-authored-by: Cursor <cursoragent@cursor.com>
Capture REST/WS/SSE errors in Sentry, emit structured pino logs with correlation IDs, and trace the book-tick pipeline to Sentry via OpenTelemetry.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace hand-written OpenAPI and Swagger UI with schema-driven docs at /api-docs and Zod validation on request bodies.
Co-authored-by: Cursor <cursoragent@cursor.com>