multica/server/internal/handler
Naiyuan Qing 66b1defab7 refactor: migrate stores to features/, remove dead packages, add modals + workspace sync
## Store migration (packages → features)
- Delete `packages/store/` — stores moved into web app's feature modules
- Delete `packages/hooks/` — replaced by feature-level hooks
- `features/issues/store.ts` — useIssueStore (was packages/store/issue-store)
- `features/inbox/store.ts` — useInboxStore (was packages/store/inbox-store)
- `features/workspace/store.ts` — absorbs agent state (was packages/store/agent-store)
- All imports updated from `@multica/store` → `@/features/*/store`

## Global modal system
- `features/modals/store.ts` — useModalStore (zustand)
- `features/modals/registry.tsx` — ModalRegistry renders active modal
- Mounted in app/layout.tsx alongside Toaster
- Create Workspace dialog now works (was broken: DropdownMenu ate click)

## Workspace real-time sync
- useRealtimeSync subscribes to workspace:updated, member:removed
- Member removal → auto-switch to another workspace
- Workspace settings update → sidebar reflects name change
- Workspace switch → parallel fetch issues + inbox + agents

## Bug fixes
- theme-provider: guard event.key for IME composition (isComposing check)
- task.go: publish comment:created + inbox:new events on task complete/fail
- listeners.go: broadcast comment:created, workspace:updated, member events
- events.go: add EventCommentUpdated, EventCommentDeleted constants

## Cleanup
- Remove _features/ tracking files (dev-only, not for main)
- Remove server/server binary from worktree
- Update CLAUDE.md to reflect new architecture

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 16:37:22 +08:00
..
agent.go refactor(server): extract inbox creation to bus listeners, add agent visibility filtering 2026-03-25 11:24:45 +08:00
auth.go Provision default workspaces and harden daemon pairing 2026-03-24 15:19:27 +08:00
comment.go refactor(server): extract inbox creation to bus listeners, add agent visibility filtering 2026-03-25 11:24:45 +08:00
daemon.go refactor: migrate stores to features/, remove dead packages, add modals + workspace sync 2026-03-25 16:37:22 +08:00
daemon_pairing.go feat(runtime): add local codex daemon pairing 2026-03-24 12:03:14 +08:00
handler.go feat: add event bus, WS workspace isolation, and global store migration 2026-03-25 10:08:27 +08:00
handler_test.go Provision default workspaces and harden daemon pairing 2026-03-24 15:19:27 +08:00
inbox.go feat(inbox): notification triggers, unread badge, archive UI, View Issue link 2026-03-25 11:00:07 +08:00
issue.go refactor(server): extract inbox creation to bus listeners, add agent visibility filtering 2026-03-25 11:24:45 +08:00
runtime.go feat(runtime): add local codex daemon pairing 2026-03-24 12:03:14 +08:00
workspace.go refactor: migrate stores to features/, remove dead packages, add modals + workspace sync 2026-03-25 16:37:22 +08:00