deriveChannelFromKey returned undefined for direct/dm keys, so channel-scoped send rules never fired for direct chats. Treat parts[0] as the channel for direct/dm keys too, matching deriveChatTypeFromKey.