multica/apps/web/features
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 fix(auth): restore email verification login flow from main 2026-03-26 17:40:54 +08:00
inbox feat: resizable sidebar, issue detail rewrite, package consolidation 2026-03-26 16:47:04 +08:00
issues feat(notifications): replace hardcoded inbox notifications with subscriber-driven model 2026-03-28 19:33:20 +08:00
modals feat: settings redesign, rich text mentions, inbox listeners, and UI polish 2026-03-26 19:17:14 +08:00
navigation feat(ui): route persistence, sidebar active fix, header spacing 2026-03-26 10:57:32 +08:00
realtime feat: resizable sidebar, issue detail rewrite, package consolidation 2026-03-26 16:47:04 +08:00
runtimes feat(ui): comprehensive UI consistency fixes and list view accordion redesign 2026-03-28 16:18:42 +08:00
skills feat(ui): comprehensive UI consistency fixes and list view accordion redesign 2026-03-28 16:18:42 +08:00
workspace feat: resizable sidebar, issue detail rewrite, package consolidation 2026-03-26 16:47:04 +08:00