feat: 支持 AI 设计项目多会话交互
需求:用户可在同一设计项目中新建和切换会话,任务列表保持项目级共享。 实现: - 增加会话选择、新建入口及本地数据迁移 - Conversation 独立消息、Brief、Quote 与流式状态 - 保留项目任务并修复 Task revision 与 ABA 异步竞态 - 保持 Enter 发送、Shift+Enter 换行及 IME 保护
This commit is contained in:
@@ -87,7 +87,7 @@ describe('local AI design workspace', () => {
|
||||
|
||||
const reloaded = new LocalImageWorkspace({ userDataDir });
|
||||
await expect(reloaded.bootstrap()).resolves.toMatchObject({
|
||||
workspaces: [{ title: '角色设计第二版', turnRevision: 0, viewRevision: 1 }],
|
||||
workspaces: [{ title: '角色设计第二版', conversationCount: 1, viewRevision: 1 }],
|
||||
});
|
||||
});
|
||||
|
||||
@@ -97,8 +97,10 @@ describe('local AI design workspace', () => {
|
||||
clientWorkspaceId: 'client-flow',
|
||||
title: '海洋公益海报',
|
||||
});
|
||||
const conversationId = created.conversations[0].conversationId;
|
||||
const discussed = await service.submitMessage({
|
||||
workspaceId: created.workspaceId,
|
||||
conversationId,
|
||||
clientTurnId: 'turn-one',
|
||||
expectedTurnRevision: 0,
|
||||
message: '做一张保护海洋的竖版公益海报',
|
||||
@@ -111,6 +113,7 @@ describe('local AI design workspace', () => {
|
||||
|
||||
const confirmed = await service.confirmGeneration({
|
||||
workspaceId: created.workspaceId,
|
||||
conversationId,
|
||||
clientTurnId: 'turn-two',
|
||||
expectedTurnRevision: 1,
|
||||
quoteId: quote!.quoteId,
|
||||
@@ -141,15 +144,17 @@ describe('local AI design workspace', () => {
|
||||
clientWorkspaceId: 'client-reset',
|
||||
title: '可重置项目',
|
||||
});
|
||||
const conversationId = created.conversations[0].conversationId;
|
||||
|
||||
await expect(service.submitMessage({
|
||||
workspaceId: created.workspaceId,
|
||||
conversationId,
|
||||
clientTurnId: 'stale-turn',
|
||||
expectedTurnRevision: 3,
|
||||
message: '测试',
|
||||
})).rejects.toMatchObject<LocalImageWorkspaceError>({
|
||||
status: 409,
|
||||
code: 'workspace_revision_conflict',
|
||||
code: 'conversation_revision_conflict',
|
||||
});
|
||||
|
||||
expect(existsSync(getLocalImageWorkspaceDirectory(userDataDir))).toBe(true);
|
||||
|
||||
Reference in New Issue
Block a user