MessageList.tsx fires scrollToEnd on every onContentSizeChange and on messages.length change. If you're scrolled up reading older messages, new incoming messages yank you to the bottom. Fix: only auto-scroll when already near the bottom (track scroll offset, threshold ~100px).MessageBubble.tsx uses plain <Text> without selectable={true}. Cannot long-press to select/copy text from AI responses or own messages.sessionId/sessionName to the Message type, have the gateway include session info with each message, render it in MessageBubble.tsx next to the timestamp.WsOutgoing type for images/files, gateway handler to route media to the active session, and backend support to process multimodal input.localhost:8765). For use outside home network: self-hosted relay on a VPS with encrypted tunnel (Tailscale, cloudflared), or APNs push relay. See AIBroker PLAN-adapter-architecture.md sections on relay.Created: 2026-03-05