# 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
