- Shipped
- September 23, 2026 at 8:47 AM UTC
- Author
- Kamo
- Commit
- 29cb21e
- NotificationRequest gains actorMemberId/actorName; the old constructor stays for every producer that predates them. - raise() keeps the pair only when both halves are there, the name fits its column, and the title or body really spells it: a name the text does not contain has nowhere to be drawn, and one past 255 would otherwise fail the insert and take the whole notification with it. - toPayload() sends actorMemberId as TEXT beside actorName - the list, browse and the socket frame. - /api/internal/notifications reads actorMemberId (text or number) and actorName. - /api/notifications/self (the browser's unread-chat card) keeps the actor only when that member is in the caller's own organisation. The id is the browser's word; it may name the sender it saw, but not have somebody from elsewhere (an Exec2Exec counterpart, a stale id) drawn as a colleague. Needs kamo-shared-library 727c0ec2 and the DDL in **************** applied to production by hand on 2026-09-23 before this was pushed. Tests: MemberNotificationServiceTest (+4), NotificationSelfRaiseActorTest (4). Full suite: 1912 run, 0 failures, 1 skipped.
