diff --git a/.changeset/web-session-list-paging.md b/.changeset/web-session-list-paging.md new file mode 100644 index 000000000..521f45e0f --- /dev/null +++ b/.changeset/web-session-list-paging.md @@ -0,0 +1,5 @@ +--- +"@moonshot-ai/kimi-code": patch +--- + +Page the web session list per workspace so the first screen no longer fetches every session up front. diff --git a/apps/kimi-web/src/App.vue b/apps/kimi-web/src/App.vue index 176910afa..ec2c11487 100644 --- a/apps/kimi-web/src/App.vue +++ b/apps/kimi-web/src/App.vue @@ -562,6 +562,8 @@ function openPr(url: string): void { @rename-workspace="(id, name) => client.renameWorkspace(id, name)" @delete-workspace="(id) => client.deleteWorkspace(id)" @reorder-workspaces="client.reorderWorkspaces($event)" + @load-more-sessions="(id) => void client.loadMoreSessions(id)" + @load-all-sessions="void client.loadAllSessions()" @select-workspaces="handleSelectWorkspaces" @open-settings="showSettings = true" @collapse="toggleSidebarCollapse" @@ -899,6 +901,7 @@ function openPr(url: string): void { @rename="(id, title) => client.renameSession(id, title)" @archive="(id) => client.archiveSession(id)" @delete-workspace="(id) => client.deleteWorkspace(id)" + @load-more="(id) => void client.loadMoreSessions(id)" /> diff --git a/apps/kimi-web/src/api/types.ts b/apps/kimi-web/src/api/types.ts index 84cdd9ae4..620cdad1a 100644 --- a/apps/kimi-web/src/api/types.ts +++ b/apps/kimi-web/src/api/types.ts @@ -656,8 +656,8 @@ export interface KimiWebApi { openInApp(sessionId: string, appId: string, path: string, line?: number): Promise; connectEvents(handlers: KimiEventHandlers): KimiEventConnection; - // Workspaces + daemon folder browser - // PRESUMED — falls back until the daemon ships /workspaces, /fs:browse, /fs:home. + // Workspaces + daemon folder browser. /workspaces now ships and includes + // derived workspaces (cwds with sessions that were never explicitly registered). listWorkspaces(): Promise; addWorkspace(input: { root: string; name?: string }): Promise; deleteWorkspace(id: string): Promise; diff --git a/apps/kimi-web/src/components/Sidebar.vue b/apps/kimi-web/src/components/Sidebar.vue index b3ec0f0b4..adf31d559 100644 --- a/apps/kimi-web/src/components/Sidebar.vue +++ b/apps/kimi-web/src/components/Sidebar.vue @@ -3,7 +3,7 @@ The old workspace rail and workspace tabs have been removed; workspace switching, folding and renaming all live in the group header. -->