From ec9a0a1f7053c8a05498034fd44b1b72a5a05337 Mon Sep 17 00:00:00 2001 From: chiguyong Date: Tue, 30 Jun 2026 22:32:48 +0800 Subject: [PATCH] refactor(frontend): split chat.ts (2025 lines) into chatStore/chatSocket/chatStream (U5) chatStore.ts (498 lines, <=500 target met): Pinia store entry composing useChatSocket + useChatStream; retains all actions + backward-compat export aliases. chatSocket.ts (165 lines): resolveIncomingConvId pure fn + useChatSocket composable (connect/disconnect/heartbeat/reconnect). chatStream.ts (1557 lines): dispatchWsEvent pure fn for 30+ WS event types + useChatStream composable. Exceeds plan ~300 estimate due to discriminated union breadth (each case 30-50 lines); core testability goal met. 8 components + chat-phase.test.ts migrated from @/stores/chat to @/stores/chatStore. vitest: 35 new tests (chatStream 19 + chatSocket 13 + chat-phase 3) all green; typecheck passes. --- .../src/components/chat/BoardStatusView.vue | 2 +- .../src/components/chat/ChatMessage.vue | 2 +- .../src/components/chat/PhaseIndicator.vue | 2 +- .../src/components/layout/AgentLayout.vue | 2 +- .../src/components/layout/SideNav.vue | 2 +- .../frontend/src/components/layout/TopNav.vue | 2 +- .../components/layout/tabs/DocumentsTab.vue | 2 +- .../server/frontend/src/stores/chat.ts | 2025 ----------------- .../server/frontend/src/stores/chatSocket.ts | 165 ++ .../server/frontend/src/stores/chatStore.ts | 498 ++++ .../server/frontend/src/stores/chatStream.ts | 1557 +++++++++++++ .../server/frontend/src/views/ChatView.vue | 2 +- .../tests/unit/stores/chat-phase.test.ts | 6 +- .../tests/unit/stores/chatSocket.test.ts | 255 +++ .../tests/unit/stores/chatStream.test.ts | 563 +++++ 15 files changed, 3049 insertions(+), 2036 deletions(-) delete mode 100644 src/agentkit/server/frontend/src/stores/chat.ts create mode 100644 src/agentkit/server/frontend/src/stores/chatSocket.ts create mode 100644 src/agentkit/server/frontend/src/stores/chatStore.ts create mode 100644 src/agentkit/server/frontend/src/stores/chatStream.ts create mode 100644 src/agentkit/server/frontend/tests/unit/stores/chatSocket.test.ts create mode 100644 src/agentkit/server/frontend/tests/unit/stores/chatStream.test.ts diff --git a/src/agentkit/server/frontend/src/components/chat/BoardStatusView.vue b/src/agentkit/server/frontend/src/components/chat/BoardStatusView.vue index c152a97..d4e9078 100644 --- a/src/agentkit/server/frontend/src/components/chat/BoardStatusView.vue +++ b/src/agentkit/server/frontend/src/components/chat/BoardStatusView.vue @@ -24,7 +24,7 @@ diff --git a/src/agentkit/server/frontend/src/components/chat/ChatMessage.vue b/src/agentkit/server/frontend/src/components/chat/ChatMessage.vue index aae750d..e24338d 100644 --- a/src/agentkit/server/frontend/src/components/chat/ChatMessage.vue +++ b/src/agentkit/server/frontend/src/components/chat/ChatMessage.vue @@ -18,7 +18,7 @@ import MessageShell from './messages/MessageShell.vue' import { computed } from 'vue' import { useMessageRenderer } from './helpers/useMessageRenderer' -import { useChatStore } from '@/stores/chat' +import { useChatStore } from '@/stores/chatStore' import type { IChatMessage } from '@/api/types' interface Props { diff --git a/src/agentkit/server/frontend/src/components/chat/PhaseIndicator.vue b/src/agentkit/server/frontend/src/components/chat/PhaseIndicator.vue index 9a08107..613b2e0 100644 --- a/src/agentkit/server/frontend/src/components/chat/PhaseIndicator.vue +++ b/src/agentkit/server/frontend/src/components/chat/PhaseIndicator.vue @@ -24,7 +24,7 @@