From 8c6cade69efa42fdcc280f51a283ea6f717d62fc Mon Sep 17 00:00:00 2001 From: qer Date: Mon, 22 Jun 2026 23:56:14 +0800 Subject: [PATCH] refactor(web): consolidate storage and split root state and app shell into composables (#979) * refactor(web): consolidate localStorage access and split appearance/notification modules * refactor(web): extract task polling into useTaskPoller module * refactor(web): split useKimiWebClient into workspace/sideChat/modelProvider modules * refactor(web): extract App.vue composables for page title, auth, sidebar, detail panel and file preview * refactor(web): funnel sessions and activeSessionId mutations through setters * refactor(web): funnel messagesBySession mutations through setters * refactor(web): move FileData type to types.ts to fix type-aware lint --- .../web-storage-appearance-notification.md | 5 + apps/kimi-web/src/App.vue | 535 +--- apps/kimi-web/src/components/FilePreview.vue | 14 +- .../client/useModelProviderState.ts | 385 +++ .../src/composables/client/useSideChat.ts | 242 ++ .../src/composables/client/useTaskPoller.ts | 264 ++ .../composables/client/useWorkspaceState.ts | 1657 +++++++++++ apps/kimi-web/src/composables/useAuthGate.ts | 67 + .../src/composables/useDetailPanel.ts | 257 ++ .../src/composables/useFilePreview.ts | 190 ++ .../src/composables/useKimiWebClient.ts | 2622 ++--------------- apps/kimi-web/src/composables/usePageTitle.ts | 55 + .../src/composables/useSidebarLayout.ts | 54 + apps/kimi-web/src/types.ts | 13 + 14 files changed, 3513 insertions(+), 2847 deletions(-) create mode 100644 .changeset/web-storage-appearance-notification.md create mode 100644 apps/kimi-web/src/composables/client/useModelProviderState.ts create mode 100644 apps/kimi-web/src/composables/client/useSideChat.ts create mode 100644 apps/kimi-web/src/composables/client/useTaskPoller.ts create mode 100644 apps/kimi-web/src/composables/client/useWorkspaceState.ts create mode 100644 apps/kimi-web/src/composables/useAuthGate.ts create mode 100644 apps/kimi-web/src/composables/useDetailPanel.ts create mode 100644 apps/kimi-web/src/composables/useFilePreview.ts create mode 100644 apps/kimi-web/src/composables/usePageTitle.ts create mode 100644 apps/kimi-web/src/composables/useSidebarLayout.ts diff --git a/.changeset/web-storage-appearance-notification.md b/.changeset/web-storage-appearance-notification.md new file mode 100644 index 000000000..792738db4 --- /dev/null +++ b/.changeset/web-storage-appearance-notification.md @@ -0,0 +1,5 @@ +--- +"@moonshot-ai/kimi-code": patch +--- + +Consolidate web client localStorage access and split the root state store and app shell into focused composables. diff --git a/apps/kimi-web/src/App.vue b/apps/kimi-web/src/App.vue index 0b5ea163e..beffa8e33 100644 --- a/apps/kimi-web/src/App.vue +++ b/apps/kimi-web/src/App.vue @@ -1,16 +1,15 @@