multica/apps/web/app
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)/login fix(test): update login tests to match email verification flow 2026-03-26 18:05:23 +08:00
(dashboard) feat(notifications): replace hardcoded inbox notifications with subscriber-driven model 2026-03-28 19:33:20 +08:00
favicon.ico Provision default workspaces and harden daemon pairing 2026-03-24 15:19:27 +08:00
pair/local feat: resizable sidebar, issue detail rewrite, package consolidation 2026-03-26 16:47:04 +08:00
custom.css feat(ui): UI/UX polish — layout, sidebar, button, theme improvements 2026-03-25 18:53:14 +08:00
globals.css feat: settings redesign, rich text mentions, inbox listeners, and UI polish 2026-03-26 19:17:14 +08:00
layout.tsx feat: inbox actor tracking, issue detail extraction, UI polish 2026-03-26 12:36:12 +08:00
page.tsx feat(ui): route persistence, sidebar active fix, header spacing 2026-03-26 10:57:32 +08:00