diff --git a/apps/ai-game-creator-shell/src/App.tsx b/apps/ai-game-creator-shell/src/App.tsx
index 2c63e38cd..264e9692f 100644
--- a/apps/ai-game-creator-shell/src/App.tsx
+++ b/apps/ai-game-creator-shell/src/App.tsx
@@ -335,11 +335,7 @@ function directCodexProcessDetail({
return '正在记录失败原因';
}
if (status === 'streaming') {
- const text = accumulatedText?.trim();
- if (text) {
- return `正在生成回复:${text}`;
- }
- return directCodexActivityDetail(activity, status);
+ return '正在生成回复';
}
if (status === 'finalizing') {
return directCodexActivityDetail(activity, status);
@@ -351,6 +347,24 @@ function directCodexProcessDetail({
return directCodexActivityDetail(activity, status);
}
+function directCodexTransientReplyText({
+ accumulatedText,
+ status,
+}: {
+ accumulatedText?: string | null;
+ status: string;
+}) {
+ if (
+ status !== 'streaming' &&
+ status !== 'finalizing' &&
+ status !== 'completed'
+ ) {
+ return null;
+ }
+ const text = accumulatedText?.trim();
+ return text || null;
+}
+
function directCodexConversationMessageId(
turnId: string,
role: ChatMessage['role'],
@@ -1305,15 +1319,18 @@ export function App({
setDirectCodexStatus(payload.status);
setDirectCodexProgress(processDetail);
setDirectCodexProgressUpdatedAt(updatedAt);
- setDirectCodexTransientReply(processDetail);
+ setDirectCodexTransientReply('');
setDirectCodexTransientReplyUpdatedAt(null);
return;
}
setDirectCodexStatus(payload.status);
setDirectCodexProgress(processDetail);
setDirectCodexProgressUpdatedAt(updatedAt);
- setDirectCodexTransientReply(processDetail);
- setDirectCodexTransientReplyUpdatedAt(updatedAt);
+ const transientReply = directCodexTransientReplyText(payload);
+ if (transientReply !== null) {
+ setDirectCodexTransientReply(transientReply);
+ setDirectCodexTransientReplyUpdatedAt(updatedAt);
+ }
},
)
.then((unlisten) => {
@@ -1358,7 +1375,6 @@ export function App({
const progressDetail = ensureDirectProcessPrefix(event.payload.message);
setDirectCodexStatus('running');
setDirectCodexProgress(progressDetail);
- setDirectCodexTransientReply(progressDetail);
setDirectCodexProgressUpdatedAt(Date.now());
return;
}
@@ -5537,7 +5553,7 @@ export function App({
setDirectCodexStatus('accepted');
setDirectCodexProcessKey(`${directProjectPath}\u0000${clientTurnId}`);
setDirectCodexProgress('正在等待陶泥儿开始');
- setDirectCodexTransientReply('正在等待陶泥儿开始');
+ setDirectCodexTransientReply('');
setDirectCodexProgressUpdatedAt(Date.now());
setDirectCodexTransientReplyUpdatedAt(null);
setProjectSupervisorRuntimeError('');
@@ -5609,7 +5625,6 @@ export function App({
);
setDirectCodexStatus('finalizing');
setDirectCodexProgress('正在同步项目文件');
- setDirectCodexTransientReply('正在同步项目文件');
setDirectCodexProgressUpdatedAt(Date.now());
await refreshDirectProjectManifest(directProjectPath);
}
diff --git a/apps/ai-game-creator-shell/src/features/project-workspace/ProjectSupervisorView.tsx b/apps/ai-game-creator-shell/src/features/project-workspace/ProjectSupervisorView.tsx
index 566f18df7..98537ada9 100644
--- a/apps/ai-game-creator-shell/src/features/project-workspace/ProjectSupervisorView.tsx
+++ b/apps/ai-game-creator-shell/src/features/project-workspace/ProjectSupervisorView.tsx
@@ -186,7 +186,7 @@ export function ProjectSupervisorView({
))}
{directCodex &&
- (runtimePanelProps.controlBusy || Boolean(transientReply)) ? (
+ (runtimePanelProps.controlBusy || Boolean(directProcessDetail)) ? (
- {(directCodex ? directProcessDetail : transientReply) ? (
+ {directProcessDetail ? (
- {directCodex ? directProcessDetail : transientReply}
+ {directProcessDetail}
- {(directCodex
- ? directProcessDetail
- : transientReply
- ).includes('\n') ||
- (directCodex ? directProcessDetail : transientReply).length >
- 96 ? (
+ {directProcessDetail.includes('\n') ||
+ directProcessDetail.length > 96 ? (