# Inbox & invites — handoff ## Summary The inbox area covers invites, notification feed, and notification preferences. Sidebar Inbox tab routes to invites list and notifications history. ## User-facing behavior - View and accept/decline room invites - Browse notification events (mentions, etc.) - Per-room notification preference overrides ## Architecture ``` client/inbox/ Inbox.tsx — layout Invites.tsx — invite list (allInvitesAtom) Notifications.tsx — notification feed ClientRoomsNotificationPreferences.tsx — bulk prefs ``` ## Key files | Path | Role | |------|------| | `cinny/src/app/pages/client/inbox/Inbox.tsx` | Inbox layout | | `cinny/src/app/pages/client/inbox/Invites.tsx` | Invites UI | | `cinny/src/app/pages/client/inbox/Notifications.tsx` | Notifications list | | `cinny/src/app/state/room-list/inviteList.ts` | `allInvitesAtom` | | `cinny/src/app/pages/client/ClientRoomsNotificationPreferences.tsx` | Room notif prefs | | `cinny/src/app/pages/client/sidebar/InboxTab.tsx` | Sidebar entry | | `cinny/src/app/hooks/useRoomsNotificationPreferences.ts` | Prefs hook | ## Data model | Source | Data | |--------|------| | Sync | `m.room.member` invite membership | | Account data | push rules, per-room notification prefs | ## Dependencies - matrix-js-sdk sync invite events - Push rule APIs ## Integration points - **background-notifications**: same push rules drive system notifications - **user-settings**: notification settings tab - **routing-and-navigation**: `INBOX_PATH`, `_INVITES_PATH`, `_NOTIFICATIONS_PATH` ## Testing ### Manual 1. Receive invite; appears in inbox. 2. Accept invite; room joins home list. 3. Decline invite; removed from list. 4. Notifications page shows recent highlights. ### Automated - None ## Known issues & gotchas - Invite list can desync briefly during sync gap - Notification feed scope depends on push rules setup ## Future work - Mark all invites read - Notification grouping by room ## Related docs - [background-notifications HANDOFF](../background-notifications/HANDOFF.md) - [user-settings HANDOFF](../user-settings/HANDOFF.md) ## Add your extra things here - `getInboxInvitesPath`, `getInboxNotificationsPath` in pathUtils