- openOrCreatePrivate: load chat by ID directly (skip stale list lookup) - GET /api/chats/🆔 resolve title/avatar/privateUserId for private chats (was returning null title, causing chat area to behave unexpectedly) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>