import { useEffect } from 'react'; import { Outlet } from 'react-router-dom'; import { useAuth } from '../context/AuthContext'; import { startConversationKeySync } from '../lib/conversationKeySync'; import { ensureNotificationPermission } from '../lib/osNotify'; import { CallUI } from './CallUI'; import { Sidebar } from './Sidebar'; export function AppShell() { const { session, device } = useAuth(); useEffect(() => { // Prompt once per authenticated shell mount. Module-level guard prevents // re-asking if the user already responded this session. void ensureNotificationPermission(); }, []); useEffect(() => { if (!session?.user.id || !device?.id) return; return startConversationKeySync(session.user.id, device.id); }, [session?.user.id, device?.id]); return (