From 2ea3c3da9dd72677c86a48412e76e6fc9e066e27 Mon Sep 17 00:00:00 2001 From: DarkSky <25152247+darkskygit@users.noreply.github.com> Date: Thu, 3 Jul 2025 12:46:23 +0800 Subject: [PATCH] feat(server): expose reuse latest chat (#12999) fix AI-289 --- packages/backend/server/src/plugins/copilot/resolver.ts | 6 ++++++ packages/backend/server/src/plugins/copilot/session.ts | 2 +- packages/backend/server/src/plugins/copilot/types.ts | 1 + packages/backend/server/src/schema.gql | 3 +++ packages/common/graphql/src/schema.ts | 2 ++ 5 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/backend/server/src/plugins/copilot/resolver.ts b/packages/backend/server/src/plugins/copilot/resolver.ts index e0fa5ac1d..f1317998a 100644 --- a/packages/backend/server/src/plugins/copilot/resolver.ts +++ b/packages/backend/server/src/plugins/copilot/resolver.ts @@ -64,6 +64,12 @@ class CreateChatSessionInput { @Field(() => Boolean, { nullable: true }) pinned?: boolean; + + @Field(() => Boolean, { + nullable: true, + description: 'true by default, compliant for old version', + }) + reuseLatestChat?: boolean; } @InputType() diff --git a/packages/backend/server/src/plugins/copilot/session.ts b/packages/backend/server/src/plugins/copilot/session.ts index dbd57fc95..467cfdae1 100644 --- a/packages/backend/server/src/plugins/copilot/session.ts +++ b/packages/backend/server/src/plugins/copilot/session.ts @@ -446,7 +446,7 @@ export class ChatSessionService { // when client create chat session, we always find root session parentSessionId: null, }, - true + options.reuseLatestChat ?? true ); } diff --git a/packages/backend/server/src/plugins/copilot/types.ts b/packages/backend/server/src/plugins/copilot/types.ts index fc8186cd9..b34beeb84 100644 --- a/packages/backend/server/src/plugins/copilot/types.ts +++ b/packages/backend/server/src/plugins/copilot/types.ts @@ -76,6 +76,7 @@ export interface ChatSessionOptions { docId: string | null; promptName: string; pinned: boolean; + reuseLatestChat?: boolean; } export interface ChatSessionForkOptions diff --git a/packages/backend/server/src/schema.gql b/packages/backend/server/src/schema.gql index 1e3258a3e..6d8081598 100644 --- a/packages/backend/server/src/schema.gql +++ b/packages/backend/server/src/schema.gql @@ -453,6 +453,9 @@ input CreateChatSessionInput { """The prompt name to use for the session""" promptName: String! + + """true by default, compliant for old version""" + reuseLatestChat: Boolean workspaceId: String! } diff --git a/packages/common/graphql/src/schema.ts b/packages/common/graphql/src/schema.ts index 218b14ed2..b858db634 100644 --- a/packages/common/graphql/src/schema.ts +++ b/packages/common/graphql/src/schema.ts @@ -552,6 +552,8 @@ export interface CreateChatSessionInput { pinned?: InputMaybe; /** The prompt name to use for the session */ promptName: Scalars['String']['input']; + /** true by default, compliant for old version */ + reuseLatestChat?: InputMaybe; workspaceId: Scalars['String']['input']; }