session-server: redis 6 + non-blocking Valkey-aware connect (tomorrow-night candidate) master
Prepped on a branch for an ATTENDED off-peak deploy — do NOT merge blind. Redoes the redis 4->6 bump (mongodb held at 6.20 to isolate the variable; mongodb 7 needs the droplet on node >=20.19 first) plus the actual fix for what broke prod: - redisOpts(): pingInterval + backoff reconnectStrategy. The managed store is DO Valkey 8; without these, an idle TLS socket the server closes sent node-redis v6 into a tight SocketClosedUnexpectedly loop. - connect + subscribe now run in a background IIFE, so redis can never gate fastify.listen() again — the server binds :8889 regardless of redis state. This alone would have prevented the outage. Tomorrow (attended): merge to main, `fish session-server/deploy.fish` (health-gated, auto-rollback), watch the log for redis connect + :8889 bind, confirm chat. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>