multica/server/internal
Naiyuan Qing bfe9498def feat(notifications): replace hardcoded inbox notifications with subscriber-driven model
Replace inbox_listeners.go with a subscriber-driven notification system:

- Add issue_subscriber table with auto-subscribe on create/assign/comment
- New subscriber_listeners.go: maintains subscriber data on domain events
- New notification_listeners.go: notifySubscribers (fanout to all subscribers
  minus actor) and notifyDirect (targeted, punches through unsubscribe)
- Subscriber API: list/subscribe/unsubscribe endpoints
- Frontend: subscribers section in issue detail sidebar with real-time sync
- Frontend: inbox notification grouping by (issue_id, type, actor_id)
- Remove createInboxForIssueCreator from task.go (unified through event bus)
- 21 new Go tests, all passing

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 19:33:20 +08:00
..
auth feat(auth): email verification login and personal access tokens 2026-03-26 14:32:30 +08:00
cli fix: resolve merge conflict in login page, adopt main's CLI auth flow 2026-03-26 17:42:55 +08:00
daemon feat(daemon): inject skills into agent-native directories 2026-03-28 00:47:00 +08:00
events feat(logging): add structured logging across server and SDK 2026-03-26 10:57:11 +08:00
handler feat(notifications): replace hardcoded inbox notifications with subscriber-driven model 2026-03-28 19:33:20 +08:00
logger feat(logging): add structured logging across server and SDK 2026-03-26 10:57:11 +08:00
middleware feat(auth): email verification login and personal access tokens 2026-03-26 14:32:30 +08:00
realtime feat(logging): add structured logging across server and SDK 2026-03-26 10:57:11 +08:00
service feat(notifications): replace hardcoded inbox notifications with subscriber-driven model 2026-03-28 19:33:20 +08:00
util feat(server): add task service layer and daemon REST protocol 2026-03-23 18:34:51 +08:00