From 80a806aa027d50c119713f243a78009dab25efe4 Mon Sep 17 00:00:00 2001 From: Suzumiya Date: Tue, 15 Sep 2026 19:59:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=8E=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E6=89=93=E5=BC=80=E5=B7=B2=E6=9C=89=E9=A1=B9=E7=9B=AE=E6=97=B6?= =?UTF-8?q?=E4=B8=A2=E6=8E=89=E9=A6=96=E9=A1=B5=E8=BE=93=E5=85=A5=EF=BC=9A?= =?UTF-8?q?initialPrompt=20=E4=B8=8D=E5=86=8D=E5=86=99=E6=AD=BB=E7=A9=BA?= =?UTF-8?q?=E4=B8=B2=EF=BC=8C=E9=A6=96=E9=A1=B5=E8=8D=89=E7=A8=BF=E6=96=87?= =?UTF-8?q?=E6=A1=88=E9=9A=8F=E6=89=93=E5=BC=80=E5=8A=A8=E4=BD=9C=E8=BF=9B?= =?UTF-8?q?=E5=85=A5=E9=A6=96=E8=BD=AE=E4=B8=8E=E5=AF=B9=E8=AF=9D=E5=8E=86?= =?UTF-8?q?=E5=8F=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app-shell/useHomeProjectCreation.ts | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/apps/ai-game-creator-shell/src/features/app-shell/useHomeProjectCreation.ts b/apps/ai-game-creator-shell/src/features/app-shell/useHomeProjectCreation.ts index 6e9a147ad..56201d7d3 100644 --- a/apps/ai-game-creator-shell/src/features/app-shell/useHomeProjectCreation.ts +++ b/apps/ai-game-creator-shell/src/features/app-shell/useHomeProjectCreation.ts @@ -36,6 +36,7 @@ import type { HomeCreationType, HomeDraft, } from '../../view/home'; +import { richTextToPrompt } from '../../view/home/components/RichInputArea/richTextToPrompt'; import { useLauncherHomeDraftStore } from '../../view/home/useHomeDraftStore'; import type { LauncherView } from '../../view/layout'; import type { @@ -49,6 +50,15 @@ import { } from '../project-summary/projectSummary'; import { resolveSessionPreviewOnProjectOpen } from './sessionPreview'; +/** 首页输入框当前的纯文本(Lexical 编辑器状态 -> 文本);没有输入就返回空串。 */ +function homeDraftPromptText() { + try { + return richTextToPrompt(useLauncherHomeDraftStore.getState().draft).trim(); + } catch { + return ''; + } +} + type UseHomeProjectCreationOptions = { setStatus: Dispatch>; setLauncherView: Dispatch>; @@ -471,6 +481,9 @@ export function useHomeProjectCreation({ async function createProjectFromProjectPage( nextProjectPath: string, skipNonEmptyCheck = false, + // 首页输入框里已经写好的要求:打开已有项目时不能再丢掉(此前写死空串, + // 用户写的内容既不发首轮也不进对话历史)。 + initialPrompt = '', ) { if (projectActionRef.current) { return; @@ -523,7 +536,7 @@ export function useHomeProjectCreation({ ), creationType: null, startMode: null, - initialPrompt: '', + initialPrompt, attachments: [], recentRunStatus: null, recentRunStopReason: null, @@ -629,7 +642,7 @@ export function useHomeProjectCreation({ ), creationType: null, startMode: runtimeMode?.activeRuntime === 'design' ? 'planning' : null, - initialPrompt: '', + initialPrompt: homeDraftPromptText(), attachments: [], recentRunStatus: directoryStatus.recentRunStatus, recentRunStopReason: directoryStatus.recentRunStopReason, @@ -922,7 +935,11 @@ export function useHomeProjectCreation({ setProjectPath(selectedPath); projectActionRef.current = null; setProjectAction(null); - await createProjectFromProjectPage(selectedPath); + await createProjectFromProjectPage( + selectedPath, + false, + homeDraftPromptText(), + ); } catch (error) { setStatus(error instanceof Error ? error.message : String(error)); } finally {