完善客户端模块与工作区能力
Some checks failed
Electron E2E / Electron E2E (macos-latest) (push) Has been cancelled
Electron E2E / Electron E2E (ubuntu-latest) (push) Has been cancelled
Electron E2E / Electron E2E (windows-latest) (push) Has been cancelled

This commit is contained in:
inman
2026-08-13 19:45:30 +08:00
parent 0148b91a15
commit 22add3f01f
97 changed files with 4756 additions and 3226 deletions

View File

@@ -10,6 +10,7 @@ import type {
DesignCreateWorkspaceInput,
DesignGenerationQuote,
DesignGenerationTask,
DesignMessage,
DesignMedium,
DesignRenameWorkspaceInput,
DesignSubmitMessageInput,
@@ -138,6 +139,14 @@ function messageHash(value: unknown): string {
return createHash('sha256').update(JSON.stringify(value)).digest('hex');
}
function latestMessagePreview(messages: DesignMessage[]): string | null {
for (let index = messages.length - 1; index >= 0; index -= 1) {
const preview = messages[index]?.text.replace(/\s+/gu, ' ').trim();
if (preview) return preview;
}
return null;
}
function detectMedium(message: string): DesignMedium {
return /视频|动画|动效|镜头|转场/.test(message) ? 'video' : 'image';
}
@@ -776,7 +785,10 @@ export class LocalImageWorkspace implements DesignWorkspaceModule {
messages: _messages,
...summary
} = conversation;
return clone(summary);
return clone({
...summary,
latestMessagePreview: latestMessagePreview(conversation.messages),
});
}
private conversationView(conversation: PersistedConversation): DesignConversation {
@@ -785,6 +797,9 @@ export class LocalImageWorkspace implements DesignWorkspaceModule {
requestHashes: _requestHashes,
...view
} = conversation;
return clone(view);
return clone({
...view,
latestMessagePreview: latestMessagePreview(conversation.messages),
});
}
}