fix(ui): 5 项 E2E 测试 Bug 修复 — Agent 502 / 错误持久化 / 模型标记 / 侧面板 / 记忆页
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
- BUG-01: createFromTemplate 在 saas-relay 模式下 try-catch 跳过本地 Kernel - BUG-02: upsertActiveConversation 持久化前剥离 error/streaming/optimistic 字段 - BUG-04: ModelSelector 添加 available 标记,ChatArea 追踪失败模型 ID - BUG-05: VikingPanel 移除 status?.available 门控,不可用时 disabled + 重连按钮 - BUG-06: 侧面板 tooltip 改为"查看产物文件",空状态增加图标和说明
This commit is contained in:
@@ -326,8 +326,16 @@ export const useConversationStore = create<ConversationState>()(
|
||||
upsertActiveConversation: (currentMessages: ChatMessage[]) => {
|
||||
const state = get();
|
||||
const currentId = state.currentConversationId || null;
|
||||
// Strip transient fields (error, streaming, optimistic) before persistence
|
||||
// so old errors don't permanently show "重试" buttons on reload
|
||||
const cleanMessages = currentMessages.map(m => ({
|
||||
...m,
|
||||
error: undefined,
|
||||
streaming: undefined,
|
||||
optimistic: undefined,
|
||||
}));
|
||||
const conversations = upsertActiveConversation(
|
||||
[...state.conversations], currentMessages, state.sessionKey,
|
||||
[...state.conversations], cleanMessages, state.sessionKey,
|
||||
state.currentConversationId, state.currentAgent,
|
||||
);
|
||||
// If this was a new conversation (no prior currentConversationId),
|
||||
|
||||
Reference in New Issue
Block a user