feat: Messenger + Inbox on the AppShell data door + live IIOS socket #28
Reference in New Issue
Block a user
Delete Branch "feat/messenger-inbox"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
New "Communication" area in the dashboard, built on the existing appshell-sdk wiring
(useQuery/sdk.command) like Team, with the IIOS MessageSocket for live streaming.
behind one interface, switched by isShellConfigured().
(openThread history + live on("message") + send). REST 4s poll is the automatic
fallback when the socket isn't connected.
(DM 1 person / group 2+); inbox.tsx: filterable feed with Done/Snooze/Archive.
Works on mock immediately; goes live once NEXT_PUBLIC_SUPABASE_URL + the BFF + be-crm are set.
tsc clean; next build passes.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
New "Communication" area in the dashboard, built on the existing appshell-sdk wiring (useQuery/sdk.command) like Team, with the IIOS MessageSocket for live streaming. - messenger-api.ts / inbox-api.ts: mock (demo) + live (crm.messenger.* / crm.inbox.*) behind one interface, switched by isShellConfigured(). - messenger-socket.tsx: MessengerSocketProvider — one IIOS MessageSocket per panel (openThread history + live on("message") + send). REST 4s poll is the automatic fallback when the socket isn't connected. - messenger.tsx: conversation list ⇄ thread + composer + new-chat people picker (DM 1 person / group 2+); inbox.tsx: filterable feed with Done/Snooze/Archive. - sidebar: Communication group (Messenger + Inbox, always-visible); dashboard: panel switch. - .npmrc: add the @insignia Gitea registry for @insignia/iios-kernel-client. Works on mock immediately; goes live once NEXT_PUBLIC_SUPABASE_URL + the BFF + be-crm are set. tsc clean; next build passes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>